------------------------------------------------ Istorija za promena Artiklite ------------------------------------------------------------------------
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'tg_Komint_Insert' AND type = 'TR') DROP TRIGGER tg_Komint_Insert
Go
CREATE TRIGGER tg_Komint_Insert
ON dbo.Komint
FOR INSERT, UPDATE
AS
BEGIN
Declare @Sifra_Kup Char(6)
Declare @VtoraBaza as Varchar(20)
Declare @DaliKup as char(1)
Declare @DaliPodelKup as char(1)
Declare @SSQL as varchar(8000)
Declare @ImeKup Varchar(40)
Declare @Redovi as Smallint
Declare @Propagiraj as char(1)
------------------------------------- Od Stariot Triger -------------------------------------------------------------------------------------
Select @Sifra_Kup=Sifra_Kup, @ImeKup=ImeKup From Inserted
-- UPDATE Komint SET DodadenNa=GetDate(), DodadenOd=SUser_SName() WHERE Sifra_Kup = @Sifra_Kup Trgnato 12.08.2010 (staveno vo procedurata)
If Not Exists (Select Sifra_Obj From KObjekti Where Sifra_Kup = @Sifra_Kup)
Insert KObjekti (Sifra_Kup, Sifra_Obj, ImeObj)
Values (@Sifra_Kup, 0, @ImeKup)
------------------------------------------------ Istorija za promena komintenti ------------------------------------------------------------------------
FROM Usl_Komerc_Per WHERE VlIzl=@VlIzl and Tip_Sif_Kup=@Tip_Sif_Kup and Sif_Kup_Gen=@Sif_Kup_Gen and Tip_Sif_Art=@Tip_Sif_Art and Sif_Art_Gen = @Sif_Art_Gen AND Datum_Do IS NOT NULL AND Datum_Od <= @Datum AND Datum_Do >= @Datum
FROM Usl_Komerc_Per WHERE VlIzl=@VlIzl and Tip_Sif_Kup=@Tip_Sif_Kup and Sif_Kup_Gen=@Sif_Kup_Gen and Tip_Sif_Art=@Tip_Sif_Art and Sif_Art_Gen = @Sif_Art_Gen AND Datum_Do IS NULL AND Datum_Od <= @Datum
ORDER BY Datum_Od DESC
End
RETURN
END
' exec(@SSQL)
end
Go
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fix_dajkomintsrv]'))
begin declare @SSQL as varchar(8000) set @SSQL = '
CREATE FUNCTION dbo.fix_DajKomintSrv ( )
RETURNS @KomintSrv TABLE
(
Sifra_Kup char(6),
ImeKup varchar(40),
Adresa varchar(40),
SMesto varchar(20),
Posta char(10),
Zemja varchar(20),
Danocen char(15),
Uces decimal(6,2)
)
AS
BEGIN
--INSERT INTO @KomintSrv
--SELECT Sifra_Kup,ImeKup,Adresa,SMesto, Posta, Zemja,Danocen,Uces from komint
RETURN
END
' exec(@SSQL)
end
Go
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fix_dokrbrsmoze]'))
begin declare @SSQL as varchar(8000) set @SSQL = '
create FUNCTION fix_DokrBrsMoze
( @Sega smalldatetime,
@Sifra_Oe smallint,
@Sifra_Dok smallint,
@Broj_Dok int,
@ImaDodatna char(1),
@Sifra_Prim smallint
)
RETURNS char (1)
AS
BEGIN
Return (''D'')
END
' exec(@SSQL)
end
Go
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fix_dokrizmmoze]'))
begin declare @SSQL as varchar(8000) set @SSQL = '
create FUNCTION fix_DokrIzmMoze
( @Sega smalldatetime,
@Datum_Dok smalldatetime,
@Sifra_Oe smallint,
@Sifra_Dok smallint,
@Broj_Dok int,
@ImaDodatna char(1),
@Sifra_Prim smallint
)
RETURNS char (1)
AS
BEGIN
Return (''D'')
END
' exec(@SSQL)
end
Go
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fix_dokrvnesmoze]'))
begin declare @SSQL as varchar(8000) set @SSQL = '
create FUNCTION fix_DokrVnesMoze
( @Sega smalldatetime,
@Datum_Dok smalldatetime
)
RETURNS char (1)
AS
BEGIN
Return (''D'')
END
' exec(@SSQL)
end
Go
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fix_fisc_vo_tkng]'))
begin declare @SSQL as varchar(8000) set @SSQL = '
create FUNCTION [dbo].[fix_fisc_vo_tkng]
( @Sifra_Oe smallint
)
RETURNS char (1)
AS
BEGIN
Return (''N'')
END
' exec(@SSQL)
end
Go
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fix_kade_pec_treb]'))
begin declare @SSQL as varchar(8000) set @SSQL = '
CREATE FUNCTION fix_Kade_Pec_Treb
(
@Sifra_Podg char(6),
@Spec_Opis varchar(200)
)
RETURNS Smallint
AS
BEGIN
Declare @KadePec as smallint
If @Sifra_Podg < ''000500''
If @Spec_Opis Is Not Null And @Spec_Opis <> '' ''
Set @KadePec = 0
Else
Set @KadePec = 1
Else if @Sifra_Podg >= ''000500'' and @Sifra_Podg < ''000900''
Set @KadePec = 2
Else
If @Spec_Opis Is Not Null And @Spec_Opis <> '' ''
Set @KadePec = 0
Else
Set @KadePec = 3
Return(@KadePec)
END
' exec(@SSQL)
end
Go
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fix_kdfi_od_fiscprom]'))
begin declare @SSQL as varchar(8000) set @SSQL = '
create FUNCTION [dbo].[fix_kdfi_od_fiscprom]
( @Sifra_Oe smallint
)
RETURNS char (1)
AS
BEGIN
Return (''N'')
END
' exec(@SSQL)
end
Go
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fix_list_atr]'))
begin declare @SSQL as varchar(8000) set @SSQL = '
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_presmpoienitxagen]'))
drop function [dbo].[fn_presmpoienitxagen]
Go
CREATE FUNCTION fn_PresmPoieniTXAgen
(
@Sifra_OE smallint,
@Sifra_Dok smallint,
@Broj_Dok int
)
RETURNS integer
AS
BEGIN
Declare @wPoeni int
SET @wPoeni = 0
SELECT @wPoeni = @wPoeni + Kolic * 25 FROM Stavr WHERE Sifra_OE=@Sifra_OE AND Sifra_Dok=@Sifra_Dok AND Broj_Dok=@Broj_Dok AND Sifra_Art='141115'
SELECT @wPoeni = @wPoeni + Round(Kolic*DokCena*(1-Uces/100) * 0.1/61.5,0) FROM Stavr WHERE Sifra_OE=@Sifra_OE AND Sifra_Dok=@Sifra_Dok AND Broj_Dok=@Broj_Dok AND Sifra_Art='141119'
SELECT @wPoeni = @wPoeni + Round(Kolic*DokCena*(1-Uces/100) * 0.3/61.5,0) FROM Stavr WHERE Sifra_OE=@Sifra_OE AND Sifra_Dok=@Sifra_Dok AND Broj_Dok=@Broj_Dok AND Sifra_Art='141117'
Return(@wPoeni)
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_presmrevalnabprethgod]'))
drop function [dbo].[fn_presmrevalnabprethgod]
Go
CREATE FUNCTION fn_PresmRevalNabPrethGod
(
@DatAkt smalldatetime,
@DatPrest smalldatetime,
@DatPresmOd smalldatetime,
@DatPresmDo smalldatetime
)
RETURNS decimal(18,3)
AS
BEGIN
Declare @Koef decimal(18,3)
Declare @PomalMes smallint
Declare @KoefOdMes decimal(18,4)
Declare @KoefDoMes decimal(18,4)
If @DatAkt>@DatPresmDo -- Neaktivirano do datumpt na presmetka
Set @Koef = 0
If Month(@DatPrest)<>0 And Year(@DatPrest)<Year(@DatPresmOd) -- Otpisano vo prethodni godini
Set @Koef=0
Else If Month(@DatPrest)<>0 And Year(@DatPrest)=Year(@DatPresmOd) -- Otpisano Godinava
Begin
If Year(@DatPrest)=Year(@DatPresmOd) And Month(@DatPrest)<Month(@DatPresmDo) -- ???????????????
Set @Koef=0
Else
Begin
If Month(@DatPrest)<Month(@DatPresmDo)
Set @PomalMes = Month(@DatPrest)
Else
Set @PomalMes = Month(@DatPresmDo)
Set @Koef = (Select Stapka From PorastCeniSt Where Godina = Year(@DatPresmDo) And Mesec=@PomalMes)
End
End
Else --Neotpisano, mislam deka moze slobodno da se zeme 12 kako mesec za utvrduvanje na koef
Begin
If Month(@DatPresmDo) <= 12
Set @PomalMes = Month(@DatPresmDo)
Else
Set @PomalMes = 12
Set @Koef = (Select Stapka From PorastCeniSt Where Godina = Year(@DatPresmDo) And Mesec=@PomalMes)
End
Return @Koef
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_presmrevalnabtekgod]'))
drop function [dbo].[fn_presmrevalnabtekgod]
Go
CREATE FUNCTION fn_PresmRevalNabTekGod
(
@DatAkt smalldatetime,
@DatPrest smalldatetime,
@DatPresmOd smalldatetime,
@DatPresmDo smalldatetime
)
RETURNS decimal(18,3)
AS
BEGIN
Declare @Koef decimal(18,3)
Declare @PomalMes smallint
Declare @KoefOdMes decimal(18,4)
Declare @KoefDoMes decimal(18,4)
If @DatAkt>@DatPresmDo -- Neaktivirano do datumpt na presmetka
Set @Koef = 0
If Year(@DatAkt) = Year(@DatPresmOd) And Month(@DatAkt) > Month(@DatPresmDo) -- Aktivirano po datumot na presmetka
Set @Koef=0
Else If Month(@DatPrest) <> 0 And Year(@DatPrest) < Year(@DatPresmOd) -- Otpisano vo prethodni god
Set @Koef=0
Else If Month(@DatPrest) <> 0 And Year(@DatPrest)=Year(@DatPresmOd) -- Otpisano godinava
Begin
If Month(@DatAkt) >= Month(@DatPrest) -- Aktivirano posle presmetkata
Set @Koef=0
Else If Year(@DatPrest)=Year(@DatPresmOd) And Month(@DatPrest)<Month(@DatPresmDo) -- ?????????????
Set @Koef=0
Else
Begin
If Month(@DatPrest)<Month(@DatPresmDo)
Set @PomalMes = Month(@DatPrest)
Else
Set @PomalMes = Month(@DatPresmDo)
Set @KoefOdMes = (Select Stapka From PorastCeniSt Where Godina = Year(@DatPresmDo) And Mesec=Month(@DatAkt))
Set @KoefDoMes = (Select Stapka From PorastCeniSt Where Godina = Year(@DatPresmDo) And Mesec=@PomalMes)
Set @Koef = (1+@KoefDoMes)/(1+@KoefOdMes) - 1
End
End
Else
Begin
If Month(@DatPresmDo) <= 12
Set @PomalMes = Month(@DatPresmDo)
Else
Set @PomalMes = 12
Set @KoefOdMes = (Select Stapka From PorastCeniSt Where Godina = Year(@DatPresmDo) And Mesec=Month(@DatAkt))
Set @KoefDoMes = (Select Stapka From PorastCeniSt Where Godina = Year(@DatPresmDo) And Mesec=@PomalMes)
--print @KoefOdMes, @KoefDoMes
Set @Koef = (1+@KoefDoMes)/(1+@KoefOdMes) - 1
--set @koef = @KoefDoMes
End
Return @Koef
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_presmrevalorizacija]'))
drop function [dbo].[fn_presmrevalorizacija]
Go
CREATE FUNCTION fn_PresmRevalorizacija
(
@DatAkt smalldatetime,
@DatPrest smalldatetime,
@DatPresmOd smalldatetime,
@DatPresmDo smalldatetime
)
RETURNS decimal(18,4)
AS
BEGIN
Declare @Koef decimal(18,4)
Declare @PomalMes smallint
Declare @KoefOdMes decimal(18,4)
Declare @KoefDoMes decimal(18,4)
If @DatAkt>@DatPresmDo -- Neaktivirano do datumpt na presmetka
Set @Koef = 0
Else If Year(@DatAkt)<Year(@DatPresmOd) -- Nabaveni vo prethodni godini
Begin
If Month(@DatPrest)<>0 And Year(@DatPrest)<Year(@DatPresmOd) -- Otpisano vo prethodni godini
Set @Koef=0
Else If Month(@DatPrest)<>0 And Year(@DatPrest)=Year(@DatPresmOd) -- Otpisano Godinava
Begin
If Year(@DatPrest)=Year(@DatPresmOd) And Month(@DatPrest)<Month(@DatPresmDo)
Set @Koef=0
Else
Begin
If Month(@DatPrest)<Month(@DatPresmDo)
Set @PomalMes = Month(@DatPrest)
Else
Set @PomalMes = Month(@DatPresmDo)
Set @Koef = (Select Stapka From PorastCeniSt Where Godina = Year(@DatPresmDo) And Mesec=@PomalMes)
End
End
Else --Neotpisano, mislam deka moze slobodno da se zeme 12 kako mesec za utvrduvanje na koef
Begin
If Month(@DatPrest) <= 12
Set @PomalMes = Month(@DatPrest)
Else
Set @PomalMes = 12
Set @Koef = (Select Stapka From PorastCeniSt Where Godina = Year(@DatPresmDo) And Mesec=@PomalMes)
End
End
Else -- Nabaveni godinava
Begin
If Year(@DatAkt) = Year(@DatPresmOd) And Month(@DatAkt) > Month(@DatPresmDo)
Set @Koef=0
Else If Month(@DatPrest) <> 0 And Year(@DatPrest) < Year(@DatPresmOd)
Set @Koef=0
Else If Month(@DatPrest) <> 0 And Year(@DatPrest)=Year(@DatPresmOd)
Begin
If Month(@DatAkt) >= Month(@DatPrest)
Set @Koef=0
Else If Year(@DatPrest)=Year(@DatPresmOd) And Month(@DatPrest)<Month(@DatPresmDo)
Set @Koef=0
Else
Begin
If Month(@DatPrest)<Month(@DatPresmDo)
Set @PomalMes = Month(@DatPrest)
Else
Set @PomalMes = Month(@DatPresmDo)
Set @KoefOdMes = (Select Stapka From PorastCeniSt Where Godina = Year(@DatPresmDo) And Mesec=Month(@DatAkt))
Set @KoefDoMes = (Select Stapka From PorastCeniSt Where Godina = Year(@DatPresmDo) And Mesec=@PomalMes)
Set @Koef = (1+@KoefDoMes)/(1+@KoefOdMes) - 1
End
End
Else
Begin
If Month(@DatPrest) <= 12
Set @PomalMes = Month(@DatPrest)
Else
Set @PomalMes = 12
Set @KoefOdMes = (Select Stapka From PorastCeniSt Where Godina = Year(@DatPresmDo) And Mesec=Month(@DatAkt))
Set @KoefDoMes = (Select Stapka From PorastCeniSt Where Godina = Year(@DatPresmDo) And Mesec=@PomalMes)
Set @Koef = (1+@KoefDoMes)/(1+@KoefOdMes) - 1
End
End
Return @Koef
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_rbrsort]'))
drop function [dbo].[fn_rbrsort]
Go
CREATE FUNCTION fn_RbrSort
(
@RbrSt int,
@RbrVrs int
)
RETURNS int
AS
BEGIN
Declare @RbrVrati int
If @RbrVrs Is NULL
Set @RbrVrati = @RbrSt
Else
Begin
If @RbrSt > @RbrVrs
Set @RbrVrati = @RbrSt
Else
Set @RbrVrati = @RbrVrs
End
Return(@RbrVrati)
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_smr_filtriart]'))
drop function [dbo].[fn_smr_filtriart]
Go
CREATE FUNCTION [dbo].[fn_smr_FiltriArt]
(
@Sifra_Art_Od Varchar(20) = Null,
@Sifra_Art_Do Varchar(20) = Null,
@Kto char(6) = Null,
@Sifra_Podg char(6) = Null,
@Sifra_Gr varchar(6) = Null,
@Lokacija varchar(11) = Null,
@Sifra_Brand Smallint,
@Sifra_Zbiren Smallint,
@Drugo1 smallint = Null,
@Drugo2 smallint = Null,
@Drugo3 smallint = Null,
@Drugo4 smallint = Null,
@Drugo5 smallint = Null,
@Drugo6 smallint = Null,
@Drugo7 smallint = Null,
@Sifra_Layout int,
@Sifra_PodOblast Varchar(10)=null,
@Sifra_Asort Varchar(10)=null,
@Sifra_Oblast Varchar(10)=null,
@Datum_Art_Poc_Od smalldatetime = NULL,
@Datum_Art_Poc_Do smalldatetime = NULL,
@Datum_Art_Kr_Od smalldatetime = NULL,
@Datum_Art_Kr_Do smalldatetime = NULL,
@Sifra_LayOutUnit smallint = null
)
RETURNS Varchar(8000)
AS
BEGIN
Declare @SSQL as varchar(8000)
Set @SSQL = ' Select Distinct K.Sifra_Art
From Katart K
Inner Join Podgrupi P on P.Sifra_Podg=K.Sifra_Podg
Inner Join Grupi G on G.Sifra_Gr=P.Sifra_Gr
Left Outer Join Podoblast PO On PO.Sifra_Podoblast=G.Sifra_Podoblast
Left Outer Join Oblast OB On OB.Sifra_Oblast=PO.Sifra_oblast
Left Outer Join DrgPodel DR On DR.Sifra_Drg=K.Sifra_Drg
Left Outer Join Layoutunit L on L.Sifra_layoutunit=K.Sifra_layoutunit
Left Outer Join LayoutElem LE On LE.Sifra_Layoutunit=L.Sifra_Layoutunit '
Set @SSQL = @SSQL + ' Where 1=1 '
If @Sifra_Art_Od Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_Art >= ''' + @Sifra_Art_Od + ''' '
If @Sifra_Art_Do Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_Art <= ''' + @Sifra_Art_Do + ''' '
If @Kto Is Not Null
Set @SSQL = @SSQL + ' And K.Kto = ''' + @Kto + ''' '
If @Lokacija Is Not Null
Set @SSQL = @SSQL + ' And K.Lokacija = ''' + @Lokacija + ''' '
If @Sifra_Podg Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_Podg = ''' + @Sifra_Podg + ''' '
If @Sifra_Gr IS NOT NULL
Set @SSQL = @SSQL + ' And P.Sifra_Gr='''+@Sifra_Gr+''' '
If @Sifra_Brand Is Not NULL
Set @SSQL = @SSQL + ' And K.Sifra_Drg=''' + Cast(@Sifra_Brand As Varchar(5)) + ''' '
If @Sifra_Zbiren Is Not Null
Set @SSQL = @SSQL + ' And B.Sifra_Drg1=''' + Cast(@Sifra_Zbiren As Varchar(5)) + ''' '
If @Drugo1 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo1 = ' + Cast(@Drugo1 as varchar(6)) + ' '
If @Drugo2 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo2 = ' + Cast(@Drugo2 as varchar(6)) + ' '
If @Drugo3 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo3 = ' + Cast(@Drugo3 as varchar(6)) + ' '
If @Drugo4 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo4 = ' + Cast(@Drugo4 as varchar(6)) + ' '
If @Drugo5 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo5 = ' + Cast(@Drugo5 as varchar(6)) + ' '
If @Drugo6 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo6 = ' + Cast(@Drugo6 as varchar(6)) + ' '
If @Drugo7 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo7 = ' + Cast(@Drugo7 as varchar(6)) + ' '
If @Datum_Art_Poc_Od Is NOT Null
SET @SSQL = @SSQL + ' And K.Datum_Art_Poc>= ''' + Cast(@Datum_Art_Poc_Od As Varchar(35)) + ''' '
If @Datum_Art_Poc_Do Is NOT Null
SET @SSQL = @SSQL + ' And K.Datum_Art_Poc<= ''' + Cast(@Datum_Art_Poc_Do As Varchar(35)) + ''' '
If @Datum_Art_Kr_Od Is NOT Null
SET @SSQL = @SSQL + ' And K.Datum_Art_Kr>= ''' + Cast(@Datum_Art_Kr_Od As Varchar(35)) + ''' '
If @Datum_Art_Kr_Do Is NOT Null
SET @SSQL = @SSQL + ' And K.Datum_Art_Kr<= ''' + Cast(@Datum_Art_Kr_Do As Varchar(35)) + ''' '
If @Sifra_LayOut Is Not NULL
Set @SSQL = @SSQL + ' And LE.Sifra_LayOut=''' + Cast(@Sifra_LayOut As Varchar(5)) + ''' '
If @Sifra_Asort Is Not Null
Set @SSQL = @SSQL + ' And OB.Sifra_Asort=''' + @Sifra_asort + ''' '
If @Sifra_Oblast IS NOT NULL
Set @SSQL = @SSQL + ' And PO.Sifra_Oblast='''+@Sifra_Oblast+''' '
If @Sifra_PodOblast IS NOT NULL
Set @SSQL = @SSQL + ' And G.Sifra_PodOblast='''+@Sifra_PodOblast+''' '
If @Sifra_LayOutUnit Is Not NULL
Set @SSQL = @SSQL + ' And K.Sifra_LayOutUnit=''' + Cast(@Sifra_LayOutUnit As Varchar(5)) + ''' '
Return @SSQL
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_soannab]'))
drop function [dbo].[fn_soannab]
Go
CREATE FUNCTION fn_soannab
(
@NNabCena Decimal(18,6),
@VRN_Vlez Decimal(18,6),
@VRN_Izlez Decimal(18,6),
@Vlez Decimal(18,6),
@Izlez Decimal(18,6)
)
RETURNS Decimal(18,6)
AS
BEGIN
Declare @tempCena Decimal(18,6)
If @Vlez-@Izlez <> 0
Set @tempCena = (@VRN_Vlez-@VRN_Izlez)/(@Vlez-@Izlez)
If @tempCena > 0
Set @NNabCena = @tempCena
Return(@NNabCena)
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_split]'))
drop function [dbo].[fn_split]
Go
CREATE FUNCTION dbo.fn_Split(@String varchar(8000), @Delimiter char(1))
returns @temptable TABLE (Pole varchar(8000))
as
begin
declare @idx int
declare @slice varchar(8000)
select @idx = 1
if len(@String)<1 or @String is null
return
while @idx != 0
begin
set @idx = charindex(@Delimiter,@String)
if @idx != 0
set @slice = left(@String, @idx - 1)
else
set @slice = @String
if len(@slice) > 0
insert into @temptable (Pole)
values(@slice)
set @String = right(@String,len(@String) - @idx)
if len(@String) = 0
break
end
return
end
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_ulkod]'))
drop function [dbo].[fn_ulkod]
Go
CREATE FUNCTION fn_ULKod
(
@Sifra_Art Varchar(20),
@Alt_Sifra varchar(15)
)
RETURNS char(5)
AS
BEGIN
Declare @Kod char(5)
Set @Kod = ' '
If LTRIM(@Alt_Sifra) <> ''
Set @Kod = LTRIM(@Alt_Sifra)
Else
Set @Kod = 'L' + SUBSTRING(@Sifra_Art, 3, 4)
Return(@Kod)
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_vm_naridtrail]'))
drop function [dbo].[fn_vm_naridtrail]
Go
create FUNCTION [dbo].[fn_vm_NarIdTrail]
(
@NarId int
)
RETURNS @tTrail Table
(
NarId int,
KodUloga varchar(30),
Uloga varchar(100)
)
AS
BEGIN
Declare @KodUloga varchar(30)
Declare @Uloga varchaR(100)
Declare @Sifra_Nar smallint
select @Sifra_Nar = Sifra_Nar
from Naracki
where NarId = @NarId
-- NE MENUVAJ VO FISKNIVE OPISI NISTO!!!!!
-- INAKU MOZE DA DUPLIRA, ZASTO POVIKUVACOT PRAVI SELECT DISTINCT
-- AKO SE SMENI, PROVERI JA CELAVA FN DO KRAJ, DA SE ZAMENAT OPISITE I KODOVITE
if @Sifra_Nar = 21
begin
set @KodUloga = 'ORIG_NAR'
set @Uloga = 'Narudzba'
end
else if @Sifra_Nar = 20
begin
set @KodUloga = 'DOPUNA'
set @Uloga = 'Dopuna narudzbe'
end
else if @Sifra_Nar = 22
begin
set @KodUloga = 'KONS_VIRT'
set @Uloga = 'Konsolidovana-virt.mag.'
end
else if @Sifra_Nar = 23
begin
set @KodUloga = 'KONS_FIL'
set @Uloga = 'Konsolidovana-filiala'
end
else if @Sifra_Nar = 24
begin
set @KodUloga = 'PREDPRIEM'
set @Uloga = 'Predprijem-faktura'
end
else if @Sifra_Nar = 26
begin
set @KodUloga = 'KOMISIONIRANJE'
set @Uloga = 'Komisioniranje'
end
-- Dodaj go originalniot dokument
insert into @tTrail
( NarId, KodUloga, Uloga )
values ( @NarId, @KodUloga, @Uloga )
Declare @NarId1 int
if @Sifra_nar = 23
Begin
-- AKo e ZBIRNA NA NIVO NA FILIALA, najdi ja konsolidiranata naracka na nivo na magacin
-- Najdi ja konsolidiranata na nivo na magacin
select @NarId1 = NarId_Orig
From DokNarVrski
where NarId_Real = @NarId
and TipVrska = 'VIRT_POED_ZB'
if @NarId1 is not null
insert into @tTrail
( NarId, KodUloga, Uloga )
values ( @NarId1, 'KONS_VIRT', '' )
end
else if @Sifra_nar = 24
Begin
-- AKo e PREDPRIEM, najdi ja konsolidiranata naracka na nivo na magacin
-- Najdi ja konsolidiranata na nivo na magacin
select @NarId1 = NarId_Orig
From DokNarVrski
where NarId_Real = @NarId
and TipVrska = 'NAR_VIRT_FRA'
if @NarId1 is not null
insert into @tTrail
( NarId, KodUloga, Uloga )
values ( @NarId1, 'KONS_VIRT', '' )
end
else if @Sifra_nar = 26
Begin
-- AKo e KOMISONIRANJE, najdi go PREDPRIEMOT i potoa konsolidiranata naracka na nivo na magacin
-- Najdi ja konsolidiranata na nivo na magacin
Declare @NarId2 int
select @NarId2 = NarId_Orig
From DokNarVrski
where NarId_Real = @NarId
and TipVrska = 'VIRT_KOMIS'
set @NarId1 = null
if @NarId2 is not null
select @NarId1 = NarId_Orig
From DokNarVrski
where NarId_Real = @NarId2
and TipVrska = 'NAR_VIRT_FRA'
if @NarId1 is not null
insert into @tTrail
( NarId, KodUloga, Uloga )
values ( @NarId1, 'KONS_VIRT', '' )
end
else
-- AKo e obicna naracka, ke ja ima vo KONSOLIDACIJATA NA NARACKI
insert into @tTrail
( NarId, KodUloga, Uloga )
select NarId_Konsol, 'KONS_VIRT', ''
from NarKonsolNar
where NarId_Orig = @NarId
-- Dodaj gi i site drugi originalni naracki za taa konsilidirana naracka
insert into @tTrail
( NarId, KodUloga, Uloga )
select NarId_Orig, 'ORIG_NAR', ''
from NarKonsolNar NKN
inner join @tTrail T
on NKN.NarID_Konsol = T.NarId
where T.KodUloga = 'KONS_VIRT'
-- Dodaj gi i konsolidiranite na nivo na filijala
insert into @tTrail
( NarId, KodUloga, Uloga )
select NarId_Real, 'KONS_FIL', ''
from DokNarVrski DNV
inner join @tTrail T
on DNV.NarID_Orig = T.NarId
where T.KodUloga = 'KONS_VIRT'
and DNV.TipVrska = 'VIRT_POED_ZB'
-- Dodaj gi i deviznite predpriemi
insert into @tTrail
( NarId, KodUloga, Uloga )
select NarId_Real, 'PREDPRIEM', ''
from DokNarVrski DNV
inner join @tTrail T
on DNV.NarID_Orig = T.NarId
where T.KodUloga = 'KONS_VIRT'
and DNV.TipVrska = 'NAR_VIRT_FRA'
-- Dodaj gi i komisioniranjeto
insert into @tTrail
( NarId, KodUloga, Uloga )
select NarId_Real, 'KOMISIONIRANJE', ''
from DokNarVrski DNV
inner join @tTrail T
on DNV.NarID_Orig = T.NarId
where T.KodUloga = 'PREDPRIEM'
and DNV.TipVrska = 'VIRT_KOMIS'
return
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_vodat]'))
Set @Vr_Krajna=dbo.fn_VratiCena(@DokCena, @POsnPren, @DanDokCena, @SoDanok)
If @VlIzl = 'V'
Set @Vr_Krajna=dbo.fn_VratiCena(@MagCena, @POsn, @DanMagCena, @SoDanok)
Return(@Vr_Krajna)
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_vratidatum]'))
drop function [dbo].[fn_vratidatum]
Go
CREATE FUNCTION fn_VratiDatum
(
@DatumVreme smalldatetime
)
RETURNS smalldatetime
AS
BEGIN
Declare @Datum smalldatetime
Set @Datum = NULL
Set @Datum = cast(cast(datepart(yyyy, @DatumVreme) as char(4)) +'-'+
cast(datepart(mm, @DatumVreme) as char(2)) +'-'+
cast(datepart(dd, @DatumVreme) as char(2)) as smalldatetime)
Return(@Datum)
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_vratidatumbezcrti]'))
drop function [dbo].[fn_vratidatumbezcrti]
Go
CREATE FUNCTION fn_VratiDatumBezCrti
(
@DatumVreme smalldatetime
)
RETURNS char(10)
AS
BEGIN
Declare @Datum char(10)
Set @Datum = NULL
Set @Datum = cast(datepart(yyyy, @DatumVreme) as char(4)) +
case when cast(datepart(mm, @DatumVreme) as char(2))<10 then '0'+ cast(datepart(mm, @DatumVreme) as char(1)) else cast(datepart(mm, @DatumVreme) as char(2)) end +
case when cast(datepart(dd, @DatumVreme) as char(2))<10 then '0'+ cast(datepart(dd, @DatumVreme) as char(1)) else cast(datepart(dd, @DatumVreme) as char(2)) end
Return(@Datum)
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_vratidatumbezcrtiobratno]'))
drop function [dbo].[fn_vratidatumbezcrtiobratno]
Go
CREATE FUNCTION fn_VratiDatumBezCrtiObratno
(
@DatumVreme smalldatetime
)
RETURNS char(10)
AS
BEGIN
Declare @Datum char(10)
Set @Datum = NULL
Set @Datum = case when datepart(dd, @DatumVreme)<10 then '0'+ cast(datepart(dd, @DatumVreme) as char(1))
else cast(datepart(dd, @DatumVreme) as char(2)) end +
case when datepart(mm, @DatumVreme)<10 then '0'+ cast(datepart(mm, @DatumVreme) as char(1))
else cast(datepart(mm, @DatumVreme) as char(2)) end +
cast(datepart(yyyy, @DatumVreme) as char(4))
Return(@Datum)
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_vratidatumod]'))
drop function [dbo].[fn_vratidatumod]
Go
CREATE FUNCTION fn_VratiDatumOd
(
@Godina smallint,
@Mesec smallint
)
RETURNS smalldatetime
AS
BEGIN
Declare @DatOd smalldatetime
Set @DatOd = NULL
Set @DatOd = Cast(Cast(@Godina as Varchar(4)) + '-' + Cast(@Mesec as Varchar(2))+ '-' + '01' as smalldatetime)
Return(@DatOd)
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_vratidatumoddo]'))
drop function [dbo].[fn_vratidatumoddo]
Go
CREATE FUNCTION fn_VratiDatumOdDo
(
@Godina varchar(4),
@Mesec varchar(2),
@Den varchar(2)
)
RETURNS smalldatetime
AS
BEGIN
If @Den > 30 and @Mesec In (4,6,9,11)
Set @Den = 30
Else If @Den > 28 and @Mesec=2
Begin
Declare @DatPres as smalldatetime
Set @DatPres = Cast(@Godina + '-03-01' as smalldatetime)
Set @DatPres = dateadd(day, -1, @DatPres)
Set @Den = Day(@DatPres)
End
Declare @Dat smalldatetime
Set @Dat = NULL
Set @Dat = Cast(@Godina + '-' + @Mesec + '-' + @Den as smalldatetime)
Return(@Dat)
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_vratidatumstring]'))
drop function [dbo].[fn_vratidatumstring]
Go
CREATE FUNCTION fn_VratiDatumString
(
@Datum smalldatetime
)
RETURNS varchar(30)
AS
BEGIN
Declare @DatOd varchar(30)
Declare @Mesec varchar(2)
Declare @Den varchar(2)
If Month(@Datum) < 10
Set @Mesec = '0' + cast(Month(@Datum) as varchar(1))
Else
Set @Mesec = cast(Month(@Datum) as varchar(2))
If Day(@Datum) < 10
Set @Den = '0' + cast(Day(@Datum) as varchar(1))
Else
Set @Den = cast(Day(@Datum) as varchar(2))
Set @DatOd = NULL
Set @DatOd = @Den + '-' + @Mesec + '-' + Cast(Year(@Datum) as Varchar(4))
Return(@DatOd)
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_vratidatumstring2]'))
drop function [dbo].[fn_vratidatumstring2]
Go
Create FUNCTION fn_VratiDatumString2
(
@Datum smalldatetime
)
RETURNS varchar(30)
AS
BEGIN
Declare @DatOd varchar(30)
Declare @Mesec varchar(2)
Declare @Den varchar(2)
If Month(@Datum) < 10
Set @Mesec = '0' + cast(Month(@Datum) as varchar(1))
Else
Set @Mesec = cast(Month(@Datum) as varchar(2))
If Day(@Datum) < 10
Set @Den = '0' + cast(Day(@Datum) as varchar(1))
Else
Set @Den = cast(Day(@Datum) as varchar(2))
Set @DatOd = NULL
Set @DatOd = @Den + '/' + @Mesec + '/' + Cast(Year(@Datum) as Varchar(4))
Return(@DatOd)
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_vratidatumstringobratno]'))
drop function [dbo].[fn_vratidatumstringobratno]
Go
CREATE FUNCTION fn_VratiDatumStringObratno
(
@Datum smalldatetime
)
RETURNS varchar(8)
AS
BEGIN
Declare @DatOd varchar(30)
Declare @Mesec varchar(2)
Declare @Den varchar(2)
If Month(@Datum) < 10
Set @Mesec = '0' + cast(Month(@Datum) as varchar(1))
Else
Set @Mesec = cast(Month(@Datum) as varchar(2))
If Day(@Datum) < 10
Set @Den = '0' + cast(Day(@Datum) as varchar(1))
Else
Set @Den = cast(Day(@Datum) as varchar(2))
Set @DatOd = NULL
Set @DatOd = Cast(Year(@Datum) as varchar(4))+ @Mesec+@Den
Set @DatOd=substring(@DatOd, 3, 6)
Return(@DatOd)
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_vratidatumstringobratnopoc]'))
drop function [dbo].[fn_vratidatumstringobratnopoc]
Go
CREATE FUNCTION fn_VratiDatumStringObratnoPoc
(
@Datum smalldatetime
)
RETURNS varchar(8)
AS
BEGIN
Declare @DatOd varchar(30)
Declare @Mesec varchar(2)
Declare @Den varchar(2)
If Month(@Datum) < 10
Set @Mesec = '0' + cast(Month(@Datum) as varchar(1))
Else
Set @Mesec = cast(Month(@Datum) as varchar(2))
If Day(@Datum) < 10
Set @Den = '0' + cast(Day(@Datum) as varchar(1))
Else
Set @Den = cast(Day(@Datum) as varchar(2))
Set @DatOd = NULL
Set @DatOd = Cast(Year(@Datum) as varchar(4))+ @Mesec+@Den
Set @DatOd=substring(@DatOd, 1, 8)
Return(@DatOd)
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_vratidatumstringsocrti]'))
drop function [dbo].[fn_vratidatumstringsocrti]
Go
CREATE FUNCTION fn_VratiDatumStringSoCrti
(
@Datum smalldatetime
)
RETURNS varchar(30)
AS
BEGIN
Declare @DatOd varchar(30)
Declare @Mesec varchar(2)
Declare @Den varchar(2)
If Month(@Datum) < 10
Set @Mesec = '0' + cast(Month(@Datum) as varchar(1))
Else
Set @Mesec = cast(Month(@Datum) as varchar(2))
If Day(@Datum) < 10
Set @Den = '0' + cast(Day(@Datum) as varchar(1))
Else
Set @Den = cast(Day(@Datum) as varchar(2))
Set @DatOd = Cast(Year(@Datum) as Varchar(4)) + '-' + @Mesec + '-' + @Den
Return(@DatOd)
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_vratidenabezvikend]'))
drop function [dbo].[fn_vratidenabezvikend]
Go
CREATE FUNCTION fn_VratiDenaBezVikend
(
@Datum smalldatetime
)
RETURNS Smallint
AS
BEGIN
Declare @Denovi as smallint
Set @Denovi = 0
IF DatePart(weekday, @Datum) IN (5,6,7)
Set @Denovi = 2
Return(@Denovi)
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_vratigodmes]'))
drop function [dbo].[fn_vratigodmes]
Go
CREATE FUNCTION dbo.fn_VratiGodMes
( @Datum as datetime )
RETURNS int AS
BEGIN
Declare @GodMes char(6)
Declare @IGodMes int
Declare @Mes char(2)
SET @IGodMes = 0
IF @Datum IS NULL RETURN @IGodMes
SET @GodMes =CAST(YEAR(@Datum) as char(4))
IF Month(@Datum) < 10
SET @Mes = '0' + ltrim(CAST(MONTH(@Datum) as char(1)))
ELSE
SET @Mes = ltrim(CAST(MONTH(@Datum) as char(2)))
SET @IGodMes = Cast(rtrim(ltrim(@GodMes)) + @Mes as int)
RETURN @IGodMes
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_vratigodmesden]'))
drop function [dbo].[fn_vratigodmesden]
Go
CREATE FUNCTION dbo.fn_VratiGodMesDen
( @KontrSer as varchar(25),
@Datum_Dok as smalldatetime )
RETURNS varchar(25) AS
BEGIN --Mnogu vazna fn - SE UPOTREBUVA vo trigeri na Stavr
Declare @God char(4)
Declare @Mes char(2)
Declare @Den char(2)
Declare @Datum smalldatetime
Declare @Prefix char(3)
SET @Prefix = Substring(@KontrSer,1,3)
IF @Prefix = 'RR>' OR @Prefix = 'DD>'
SET @Datum = dbo.fn_NapraviDatum(Cast(Substring(@KontrSer, 10, 4) as smallint),
Cast(Substring(@KontrSer, 7, 2) as smallint), Cast(Substring(@KontrSer, 4, 2) as smallint))
Else IF @Prefix = 'KK>'
SET @Datum = @Datum_Dok
IF @Datum IS NULL RETURN ''
SET @God = CAST(YEAR(@Datum) as char(4))
IF Month(@Datum) < 10
SET @Mes = '0' + ltrim(CAST(MONTH(@Datum) as char(1)))
ELSE
SET @Mes = ltrim(CAST(MONTH(@Datum) as char(2)))
IF Day(@Datum) < 10
SET @Den = '0' + ltrim(CAST(Day(@Datum) as char(1)))
ELSE
SET @Den = ltrim(CAST(Day(@Datum) as char(2)))
RETURN @God+@Mes+@Den
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_vratigodmesdenbas]'))
drop function [dbo].[fn_vratigodmesdenbas]
Go
CREATE FUNCTION dbo.fn_VratiGodMesDenBas
( @Datum as datetime )
RETURNS CHAR(8) AS
BEGIN
Declare @GodMesDen varchar(8)
IF @Datum IS NULL RETURN @GodMesDen
SET @GodMesDen =CAST(YEAR(@Datum) as char(4))
IF Month(@Datum) < 10
SET @GodMesDen = @GodMesDen + '0' + CAST(MONTH(@Datum) as char(1))
ELSE
SET @GodMesDen = @GodMesDen + CAST(MONTH(@Datum) as char(2))
IF Day(@Datum) < 10
SET @GodMesDen = @GodMesDen + '0' + CAST(Day(@Datum) as char(1))
ELSE
SET @GodMesDen = @GodMesDen + CAST(Day(@Datum) as char(2))
RETURN @GodMesDen
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_vratigodmespred]'))
drop function [dbo].[fn_vratigodmespred]
Go
CREATE FUNCTION dbo.fn_VratiGodMesPred
( @IGodMes as int,
@MesPred as smallint
)
RETURNS int AS
BEGIN
Declare @GodMes char(6)
Declare @Mes char(2)
Declare @IMes int
Declare @Vrati int
SET @GodMes = CAST(@IGodMes as char(6))
SET @IMes = Cast(Substring(@GodMes,5,2) as smallint)
IF @IMes >= @MesPred
Begin
If @MesPred <10
begin
SET @Mes = '0' + ltrim(CAST(@MesPred as char(1)))
end
Else
SET @Mes = CAST(@MesPred as char(2))
SET @Vrati = Cast(Cast(Cast(substring(@GodMes, 1,4) as int) as char(4)) + cast(@Mes as char(2)) as int)
end
ELSE
Begin
SET @IMes = @IMes +12
SET @Vrati = Cast(Cast(Cast(substring(@GodMes, 1,4) as int) -1 as char(4)) + cast(@IMes as char(2)) as int)
SET @Vrati = @Vrati - @MesPred+1
End
RETURN @Vrati
/*
IF @IMes > @MesPred
SET @Vrati = @IGodMes - 1
ELSE
Begin
SET @IMes = @IMes +12
SET @Vrati = Cast(Cast(Cast(substring(@GodMes, 1,4) as int) -1 as char(4)) + cast(@IMes as char(2)) as int)
SET @Vrati = @Vrati - @MesPred
End
RETURN @Vrati
*/
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_vratikasabezddv]'))
drop function [dbo].[fn_vratikasabezddv]
Go
CREATE FUNCTION fn_VratiKasaBezDDV
(
@Kolic Decimal(18,6),
@DokCena Decimal(18,6),
@DanDokCena Char(1),
@POsn Decimal(6,2),
@Uces Decimal(6,2),
@Kasa Decimal(6,2)
)
RETURNS Decimal(18,6)
AS
BEGIN
Declare @Vr_Krajna Decimal(18,6)
Set @Vr_Krajna = 0
If @Kasa = 0
Return(@Vr_Krajna)
Set @Vr_Krajna = @Kolic * @DokCena * (1-@Uces/100) * @Kasa/100
If @DanDokCena='D'
Set @Vr_Krajna = @Vr_Krajna / (1 + @Posn / 100)
Return(@Vr_Krajna)
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_vratimarza]'))
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_vrativreme]'))
drop function [dbo].[fn_vrativreme]
Go
CREATE FUNCTION fn_VratiVreme
(
@DatumVreme smalldatetime
)
RETURNS varchar(5)
AS
BEGIN
Declare @Vreme varchar(5)
Declare @Cas varchar(2)
Declare @Min varchar(2)
Set @Vreme = ' '
if @DatumVreme IS NOT NULL
Set @Cas = cast(datepart(hh, @DatumVreme) as varchar(2))
If @Cas < 10
Set @Cas = '0' + @Cas
Set @Min = cast(datepart(mi, @DatumVreme) as varchar(2))
If @Min < 10
Set @Min = '0' + @Min
Set @Vreme = @Cas + ':' + @Min
-- Set @Vreme = cast(datepart(hh, @DatumVreme) as char(2)) +':'+
-- cast(datepart(mi, @DatumVreme) as char(2))
-- Set @Vreme = Replace(@Vreme, ' ', '0')
Return(@Vreme)
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_zaokr_5]'))
drop function [dbo].[fn_zaokr_5]
Go
CREATE FUNCTION fn_zaokr_5
(
@NekojBroj Decimal(18,6)
)
RETURNS Decimal(18,6)
AS
BEGIN
if @NekojBroj < 0
Return - dbo.fn_zaokr_5(-@NekojBroj)
Declare @Cel Decimal(18,6)
Set @Cel = floor (@NekojBroj)
If @NekojBroj - @Cel < 0.25
Return (@Cel)
else If @NekojBroj - @Cel > 0.75
Return (@Cel + 1)
Return (@Cel + 0.5)
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_zaokr_5den]'))
drop function [dbo].[fn_zaokr_5den]
Go
create FUNCTION fn_zaokr_5den
(
@NekojBroj Decimal(18,6)
)
RETURNS Decimal(18,6)
AS
BEGIN
if @NekojBroj < 0
Return - dbo.fn_zaokr_5den(-@NekojBroj)
Declare @Cel Decimal(18,6)
set @NekojBroj = @NekojBroj / 10
Set @Cel = floor (@NekojBroj)
If @NekojBroj - @Cel < 0.25
Return (@Cel * 10)
else If @NekojBroj - @Cel > 0.75
Return (@Cel + 1) * 10
Return (@Cel * 10 + 5)
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_zaokr5]'))
drop function [dbo].[fn_zaokr5]
Go
create FUNCTION fn_Zaokr5
(@Broj Decimal(18,6)
)
RETURNS decimal (18, 6)
AS
BEGIN
Declare @Broj1 as decimal(18,6)
Declare @BrojVrati as decimal(18,6)
Declare @wCel as int
Declare @wDec as decimal(18,6)
SET @Broj1 = ABS(@Broj)
SET @wCel = @Broj1
SET @wDec = @Broj1 - @wCel
IF @wDec<=0.255 -- DK -- do Apr 6, 2007 besse 0.0255 !?!
SET @BrojVrati = @wCel
ELSE IF @wDec > 0.755
SET @BrojVrati = @wCel + 1
ELSE
SET @BrojVrati = @wCel + 0.5
IF @Broj<0 SET @BrojVrati = @BrojVrati * -1
RETURN @BrojVrati
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[pros_min_max]'))
drop function [dbo].[pros_min_max]
Go
CREATE FUNCTION dbo.Pros_Min_Max
( @Kandidat_NabC decimal(18,6),
@TekMinCena decimal(18,6),
@TekMaxCena decimal(18,6),
@Stavr_NabCena decimal(18,6)
)
RETURNS decimal(18,6)
AS
BEGIN
Declare @wTekMinCena decimal(18,6)
Declare @wTekMaxCena decimal(18,6)
SET @wTekMinCena = @TekMinCena * 0.9 -- Sigurnosen faktor za dobivanje linearnost
SET @wTekMaxCena = @TekMaxCena * 1.1 -- Sigurnosen faktor za dobivanje linearnost
If @Stavr_NabCena > 0
Begin
If @Stavr_NabCena < @wTekMinCena
SET @wTekMinCena = @Stavr_NabCena
If @Stavr_NabCena > @wTekMaxCena
SET @wTekMaxCena = @Stavr_NabCena
End
If @Kandidat_NabC < @wTekMinCena
SET @Kandidat_NabC = @wTekMinCena
If @Kandidat_NabC > @wTekMaxCena and @wTekMaxCena > 0
SET @Kandidat_NabC = @wTekMaxCena
RETURN @Kandidat_NabC
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_anal_arkpopisred]'))
drop procedure [dbo].[rk_anal_arkpopisred]
Go
create PROCEDURE rk_Anal_ArkPopisRed
@Sifra_Oe smallint,
@Datum_Popis smalldatetime
AS
Select Sifra_Oe, BrKasa, Datum_Popis, Broj_Popis,
Count(*) as VkStavki, Sum(Kolic * Cena) VKVrednost, Sum(Kolic) VkKolic
From ArkPopisRed
Where Sifra_Oe=@Sifra_Oe And Datum_Popis=@Datum_Popis
Group By Sifra_Oe, BrKasa, Datum_Popis, Broj_Popis
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_anal_voucher_one]'))
drop procedure [dbo].[rk_anal_voucher_one]
Go
CREATE PROCEDURE [dbo].[rk_Anal_Voucher_ONE]
@Sifra_Oe smallint = Null,
@Datum_Od smalldatetime = null,
@Datum_Do smalldatetime = null,
@BrKasa smallint = Null,
@KlucSodrz varchar(20) = 'ONE_ART',
@POSKod varchar(200) = null,
@TelBroj decimal(18, 6) = null,
@TransKod varchar(20) = null
AS
Declare @SSQL as varchar(8000)
Declare @SSQLUsl as varchar(8000)
Set @SSQLUsl = ' '
------------------------------------------------------------------- U S L O V ------------------------------------------------------------------------------------
If @Datum_Od Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid >= ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid <= ''' + cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Oe Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
If @BrKasa Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.BrKasa = ' + Cast(@BrKasa as varchar(10)) + ' '
If @POSKod Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And SA.OpisADH = ''' + Cast(@POSKod as varchar(200)) + ''' '
If @TelBroj Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And SA.Vredn2 = ' + Cast(@TelBroj as varchar(20)) + ' '
If @TransKod Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And SA.Oznaka2 = ' + Cast(@TransKod as varchar(20)) + ' '
Inner Join SPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Inner Join SPrometAdh SA On S.Sifra_Oe=SA.Sifra_Oe And S.Grp_Kasa=SA.Grp_Kasa And S.BrKasa=SA.BrKasa And S.Broj_Ska=SA.Broj_Ska And S.Rbr=SA.Rbr
Left Outer Join Orged O on O.Sifra_Oe = P.Sifra_Oe '
Set @SSQL = @SSQL + ' Where 1=1 ' + @SSQLUsl
Set @SSQL = @SSQL + ' And SA.KlucSodrz= ''' + @KlucSodrz + ''' '
Set @SSQL = @SSQL + ' Order By P.Sifra_Oe, P.BrKasa, SA.OpisADH, P.DatumVreme'
print @SSQL
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_anal_voucher_proaqua]'))
drop procedure [dbo].[rk_anal_voucher_proaqua]
Go
CREATE PROCEDURE [dbo].[rk_Anal_Voucher_PROAQUA]
@Sifra_Oe smallint = Null,
@Datum_Od smalldatetime = null,
@Datum_Do smalldatetime = null,
@BrKasa smallint = Null,
@KlucSodrz varchar(20) = 'PROAQUA_ART',
@POSKod varchar(200) = null,
@TelBroj decimal(18, 6) = null,
@TransKod varchar(20) = null
AS
Declare @SSQL as varchar(8000)
Declare @SSQLUsl as varchar(8000)
Set @SSQLUsl = ' '
------------------------------------------------------------------- U S L O V ------------------------------------------------------------------------------------
If @Datum_Od Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid >= ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid <= ''' + cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Oe Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
If @BrKasa Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.BrKasa = ' + Cast(@BrKasa as varchar(10)) + ' '
If @POSKod Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And SA.OpisADH = ''' + Cast(@POSKod as varchar(200)) + ''' '
If @TelBroj Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And SA.Vredn2 = ' + Cast(@TelBroj as varchar(20)) + ' '
If @TransKod Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And SA.Oznaka2 = ' + Cast(@TransKod as varchar(20)) + ' '
-- Inner Join ArkaKasaDn A on AKS.Sifra_Oe=A.Sifra_oe and AKS.Datum_Evid=A.Datum_Evid and AKS.BrKAsa=A.BrKasa and AKS.BrSmena=A.BrSmena and AKS.Broj_Dok=A.Broj_Dok
-- Left Outer Join NacPLak NP on AKS.Sifra_Nac=NP.Sifra_Nac
-- Left Outer Join Komint K on A.Sifra_Kup=K.Sifra_Kup
-- Left Outer Join Operatori O on A.Sifra_Oper_Vnes=O.Sifra_Oper
-- left Outer Join Orged OE on AKS.Sifra_Oe=OE.Sifra_Oe
-- Where 1=1 '
--IF @Sifra_Oe is not null
-- Set @SSQL=@SSQL+ ' And AKS.Sifra_Oe='+cast(@Sifra_Oe as varchar(3))+' '
--IF @DatumOD is not null
-- Set @SSQL=@SSQL+ ' And AKS.Datum_Evid>='''+cast(@DatumOd as varchar(35))+''' '
--IF @DatumDO is not null
-- Set @SSQL=@SSQL+ ' And AKS.Datum_Evid<='''+cast(@DatumDo as varchar(35))+''' '
--IF @BrKasa is not null
-- Set @SSQL=@SSQL+ ' And AKS.BrKasa='+cast(@BrKasa as varchar(6))+ ' '
--IF @Sifra_Oper is not null
-- Set @SSQL=@SSQL+ ' And A.SIfra_Oper_Promet='+cast(@Sifra_Oper as varchar(6))+ ' '
--IF @Tip_Kasa is not null
-- Set @SSQL=@SSQL+ ' And A.Tip_Kasa='+cast(@Tip_Kasa as varchar(6))+ ' '
--Set @SSQL=@SSQL+ ' Group by AKS.Sifra_Oe, AKS.Datum_Evid, AKS.BrKasa, AKS.BrSmena, AKS.Broj_Dok,AKS.Sifra_Nac,
Inner Join #Dupli D On D.Sifra_Oe = A.Sifra_Oe And D.Sifra_Kor=A.Sifra_Kor And D.Sifra_Nac=A.Sifra_Nac And D.cDatumSka=A.cDatumSka And D.Broj_Ska=A.Broj_Ska
Where A.Datum_Ska >= DateAdd(Day,-70, GetDate())
Open Smetki
Fetch Next From Smetki Into @SifOe, @Grp_Kasa, @BrKasa, @Broj_Ska, @Sifra_Kor, @Sifra_Nac, @cDatumSka
While @@Fetch_Status = 0
Begin
Select @KolkuNeraskniz = Count(*)
From ArkaKartKpm Where Sifra_Oe=@SifOe And Sifra_Kor=@Sifra_Kor And Sifra_Nac=@Sifra_Nac And cDatumSka=@cDatumSka And Broj_Ska=@Broj_Ska And (Rasknizen<>'D' Or Rasknizen Is Null)
If @KolkuNeraskniz >= 1
Begin
Set @NovBrSka = @BrKasa*1000+@Broj_Ska
Set @I = 0
While @I = 0
Begin
If Not Exists (Select * From ArkaKartKpm Where Sifra_Oe=@SifOe And Grp_Kasa=@Grp_Kasa And BrKasa=@BrKasa And Broj_Ska=@NovBrSka)
Begin
Update ArkaKartKpm Set Broj_Ska = @NovBrSka Where Sifra_Oe=@SifOe And Grp_Kasa=@Grp_Kasa And BrKasa=@BrKasa And Broj_Ska=@Broj_Ska And (Rasknizen<>'D' Or Rasknizen Is Null)
Set @I=1
End
Else
Set @NovBrSka = @NovBrSka + 1
End
End
Fetch Next From Smetki Into @SifOe, @Grp_Kasa, @BrKasa, @Broj_Ska, @Sifra_Kor, @Sifra_Nac, @cDatumSka
End
Close Smetki
Deallocate Smetki
End
Select * from ArkaKartKpm where Rasknizen <>'D' or Rasknizen is Null
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_dajarkakasadnstazaprenos]'))
drop procedure [dbo].[rk_dajarkakasadnstazaprenos]
Go
CREATE PROCEDURE rk_DajArkaKasaDnStaZaPrenos
@Sifra_Oe smallint ,
@Datum_Evid smalldatetime ,
@BrKasa smallint ,
@BrSmena smallint ,
@Broj_Dok int
AS
Select * from ArkaKasaDnSta Where
Sifra_oe=@Sifra_Oe and
Datum_Evid=@Datum_Evid and
BrKasa=@BrKasa and
BrSmena=@BrSmena and
Broj_Dok=@Broj_Dok
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_dajarkakasadnzaprenos]'))
drop procedure [dbo].[rk_dajarkakasadnzaprenos]
Go
CREATE PROCEDURE rk_DajArkaKasaDnZaPrenos
AS
Select * from ArkaKasaDn where Rasknizen ='N' or Rasknizen is Null
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_dajarkalogzaprenos]'))
drop procedure [dbo].[rk_dajarkalogzaprenos]
Go
CREATE PROCEDURE rk_DajArkaLogZaPrenos
AS
Select * from ArkaLog where Rasknizen <>'D' or Rasknizen is Null
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_dajarkpopisred_srv]'))
drop procedure [dbo].[rk_dajarkpopisred_srv]
Go
CREATE PROCEDURE rk_DajArkPopisRed_Srv
@Sifra_Oe smallint,
@BrKasa smallint
AS
Declare @Datum Smalldatetime
Set @Datum = dbo.fn_VratiDatum (DateAdd(Day,-2,GetDate()))
Select Sifra_Oe, BrKasa, Datum_Popis, Broj_Popis, Rbr, Sifra_Art, Kolic, Cena
From ArkPopisRed
Where Sifra_Oe=@Sifra_Oe And BrKasa=@BrKasa And Datum_Popis>@Datum
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_dajart_sitenom]'))
drop procedure [dbo].[rk_dajart_sitenom]
Go
create PROCEDURE rk_DajArt_SiteNom
@Nom varchar(50),
@KolkuArtikli smallint = Null Output
AS
Create Table #Art
( Sifra_Art varchar(20)
)
insert into #Art
select Sifra_Art
from ArkaKat WITH(NOLOCK)
Where Nom = @Nom
insert into #Art
Select distinct(Sifra_Art)
from AbarKod WITH(NOLOCK)
Where Nom = @Nom
select *
From ArkaKat K
Inner Join #Art TA
on K.Sifra_Art = TA.Sifra_Art
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_dajart_sostsite]'))
drop procedure [dbo].[rk_dajart_sostsite]
Go
create PROCEDURE [dbo].[rk_DajArt_SostSite]
@Sifra_Oe smallint,
@DelOdIme NVARCHAR(50) = Null,
@PozNegSite char(1) = Null
AS
SET @DelOdIme = Replace(@DelOdIme, '[', '[[]')
Declare @SSQL as varchar(8000)
Declare @SSQLArt as varchar(8000)
Declare @Za_Datum smalldatetime
Set @SSQLArt = ' '
SET @Za_Datum = dbo.fn_VratiDatum (GetDate())
--------------------------------- S O S T O J B A ----------------------------------------
Create Table #Sost
(
Sifra_Art varchar(20),
Sostojba decimal(18,6),
Cena decimal(18,6),
cParam2 varchaR(20)
)
Set @SSQL = 'Select K.Sifra_Art, S.Sostojba, K.CenaOsn, K.cParam2
From ArkaKat K
left outer Join ArkaSoa S
On K.Sifra_Art = S.Sifra_Art
AND S.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
Set @SSQL = @SSQL + ' Where 1 = 1 '
If @DelOdIme IS NOT NULL
If IsNumeric(@DelOdIme)=1
Set @SSQLArt = @SSQLArt + ' And K.Sifra_Art Like ''' + @DelOdIme + '%'' '
Else
Set @SSQLArt = @SSQLArt + ' And K.ImeArt Like ''' + @DelOdIme + '%'' '
if @PozNegSite = 'P'
Set @SSQLArt = @SSQLArt + ' And K.cParam2 = ''P'' '
else if @PozNegSite = 'N'
Set @SSQLArt = @SSQLArt + ' And (K.cParam2 <> ''P'' or K.cParam2 is null) '
Insert Into #Sost Exec(@SSQL+@SSQLArt)
--------------------------------- P R O M E T ----------------------------------------
Create Table #Prom
(
Sifra_Art varchar(20),
Promet decimal(18,6)
)
Set @SSQL = 'Select S.Sifra_Art, Sum(S.Kolic)
From Spromet S
Inner Join Promet P
On P.Sifra_Oe = S.Sifra_Oe and P.Grp_Kasa = S.Grp_Kasa
and P.BrKasa = S.BrKasa and P.Broj_Ska = S.Broj_Ska
Inner Join ArkaKat K On K.Sifra_Art = S.Sifra_Art '
Set @SSQL = @SSQL + ' Where S.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6))
+ ' And P.Datum_Evid = ''' + Cast(@Za_Datum as varchar(30)) + ''' '
-- OGromna greska and P.BrKasa = ' + cast(@BrKasa as varchaR(5)) Ogromna Greska
Insert Into #Prom Exec(@SSQL + @SSQLArt + ' Group By S.Sifra_Art ')
--- NE ANALIZIRAME R A S K N I Z A N P R O M E T ---------------------------------------
update #Sost
set Sostojba = 0
where Sostojba is null
-- Ako za nekoi artikli nema sostojba, a ima promet
Insert Into #Sost
Select Sifra_Art, 0, 0, ''
From #Prom
Where Sifra_Art Not In (Select Sifra_Art From #Sost)
+ (Case When R.Raskniz <> 0 And R.Raskniz Is Not Null Then R.Raskniz Else 0 End)
- (Case When P.Promet <> 0 And P.Promet Is Not Null Then P.Promet Else 0 End)) Sostojba
From #Sost S
Left Outer Join #Prom P On P.Sifra_Art = S.Sifra_Art
Left Outer Join #Raskn R On R.Sifra_Art = S.Sifra_Art
Inner Join ArkaKat K On K.Sifra_Art=S.Sifra_Art
Left Outer Join Komint Kom on K.cParam1 = Kom.Sifra_Kup
--Nema Potreba Left Outer Join Tarifi T On T.Sifra_Tar = K.Sifra_Tar
RETURN @@Error
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_dajartzaklubkart_sala]'))
drop procedure [dbo].[rk_dajartzaklubkart_sala]
Go
CREATE PROCEDURE [dbo].[rk_DajArtZaKlubKart_Sala]
@Sifra_Kor varchar(20),
@Drugo1 smallint=null
AS
Declare @SSQL as varchar(8000)
SET @SSQL = 'SELECT Top 3 KS.Sifra_art, K.ImeArt, N.Datum_Evid
FROM KSPromet KS
Left Outer Join KPromet N On N.Sifra_Oe=KS.Sifra_Oe And N.Grp_Kasa=KS.Grp_Kasa And N.BrKasa=KS.BrKasa And N.Broj_Ska=KS.Broj_Ska
Left Outer Join Katart K On K.Sifra_Art=KS.Sifra_Art
where 1=1'
Set @SSQL = @SSQL + ' And N.Sifra_Kor = ''' + @Sifra_Kor + ''' '
If @Drugo1 is not null
Set @SSQL = @SSQL + 'And K.Drugo1=' + Cast(@Drugo1 As Varchar(6)) + ' '
Set @SSQL = @SSQL + ' Order By N.Datum_Evid desc '
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_dajartzawrk]'))
drop procedure [dbo].[rk_dajartzawrk]
Go
CREATE PROCEDURE [dbo].[rk_DajArtZawRK]
@KlkDena int = 0,
@Koi_GrOrg varchar(50)=NULL
AS
Declare @SSQL varchar(3000)
SET @SSQL='SELECT A.Sifra_Art,A.ImeArt,A.EdMera,A.Nom,A.Sifra_Podg,A.Sifra_Tar,A.SMatUsl,
A.ImaBroevi, A.ImaKomerc, A.PDA_Ime, T.ProcOsn, A.MKProiz, A.DaliSurov, A.Alt_Sifra, A.Drugo1 FROM KatArt A
INNER JOIN Tarifi T ON A.Sifra_Tar = T.Sifra_Tar WHERE 1=1 '
If @KlkDena > 0
SET @SSQL=@SSQL+' AND (A.DodadenNa>=DateAdd(day, '+cast(@KlkDena * -1 as varchar(10))+', GetDate()) OR A.IzmenetNa>=DateAdd(day, '+cast(@KlkDena * -1 as varchar(10))+', GetDate()) ) '
If @Koi_GrOrg IS NOT NULL
SET @SSQL=@SSQL+' AND A.Sifra_Art in (SELECT distinct Sifra_Art FROM CenGrOrg WHERE Sif_GrOrg in (''' + @Koi_GrOrg + '''))'
EXEC (@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_dajdatumizablok]'))
drop procedure [dbo].[rk_dajdatumizablok]
Go
CREATE PROCEDURE [dbo].[rk_DajDatumiZaBlok]
@BrojBlok smallint
As
SELECT DISTINCT Datum_Evid
FROM Promet
WHERE BrojBlok = @BrojBlok
Return @@Error
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_dajelem_boi]'))
drop procedure [dbo].[rk_dajelem_boi]
Go
create PROCEDURE [dbo].[rk_DajElem_Boi]
@Sifra_Art varchar(20)
AS
-- Na primer, vrati gi SITE MOZNI BOI od prijavenite podsifri na SIFRA_ART
-- Vrati gi i IMINJATA NA BOITE koi se zapisani vo ArkaKatAtr so Tip_Atr = 'BOJA'
-- Zapisi gi moznite sifri na boi ili velicini koi se pojavuvaat
-- Malku e izvrteno: vo SIFRA_ART e bar kodot vo tabela, a vo cParam3 e sifrata na artikl
select distinct cast(A.dParam1 as smallint) Sifra, M.cParam3 Ime
From ArkaKatAtr A WITH(NOLOCK)
left outer join ArkaKatAtr M
on A.dParam1 = cast(M.Sifra_Art as smallint) and M.Tip_Atr = 'BOJA'
Where A.Tip_Atr = 'BOIVEL' and A.cParam3 = @Sifra_Art
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_dajelem_velic]'))
drop procedure [dbo].[rk_dajelem_velic]
Go
create PROCEDURE [dbo].[rk_DajElem_Velic]
@Sifra_Art varchar(20)
AS
-- Na primer, vrati gi SITE MOZNI VELICINI od prijavenite podsifri na SIFRA_ART
-- Vrati gi i IMINJATA NA VELICINITE koi se zapisani vo ArkaKatAtr so Tip_Atr = 'VELICINA'
-- Malku e izvrteno: vo SIFRA_ART e bar kodot vo tabela, a vo cParam3 e sifrata na artikl
select distinct cast(A.dParam2 as smallint) Sifra, M.cParam3 Ime
From ArkaKatAtr A WITH(NOLOCK)
left outer join ArkaKatAtr M
on A.dParam2 = cast(M.Sifra_Art as smallint) and M.Tip_Atr = 'VELICINA'
Where A.Tip_Atr = 'BOIVEL' and A.cParam3 = @Sifra_Art
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_dajfiskprom_srv]'))
drop procedure [dbo].[rk_dajfiskprom_srv]
Go
CREATE PROCEDURE rk_DajFiskProm_Srv
@Sifra_Oe smallint,
@BrKasa smallint
AS
Declare @Datum Smalldatetime
Set @Datum = dbo.fn_VratiDatum (DateAdd(Day,-7,GetDate()))
Select *
From FiskProm
Where Sifra_Oe=@Sifra_Oe And Datum_Dok>@Datum
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_dajkartpromkumzaprenos]'))
drop procedure [dbo].[rk_dajkartpromkumzaprenos]
Go
Create PROCEDURE rk_DajKartPromKumZaPrenos
AS
Select * from KartProm_Klub_Kumulc where Rasknizen <>'D' or Rasknizen is Null
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_dajkod_arkafisk]'))
drop procedure [dbo].[rk_dajkod_arkafisk]
Go
CREATE PROCEDURE rk_DajKod_ArkaFisk
@Sifra_Art varchar(20),
@ImeArt varchar(100),
@Plu_Sifra varchar(20) = Null Output,
@Plu_Ime varchar(100) = Null Output
AS
Declare @Kolku as smallint
If Len(@ImeArt) > 32
Set @ImeArt = Substring(@ImeArt,1,32)
Select @Plu_Sifra = Sifra_Art, @Plu_Ime = ImeArt
From ArkaFisk
Where ImeArt = @ImeArt
Set @Kolku = @@RowCount
If @Kolku >= 1 -- Najdeno po IME, znaci imame PLU sifra i IME, ok e
Return
Else -- Go nema IMETO
Begin
If Exists (Select Sifra_Art
From ArkaFisk
Where Sifra_Art = @Sifra_Art) -- Ako postoi treba da se dodade nova sifra za tij artikal vo ArkaFisk
Begin
Declare @MaxSif Int
Select @MaxSif = Max(Cast(Substring(Sifra_Art, 5, 5) as int))
From ArkaFisk
Where Sifra_Art > '099900000' And Sifra_Art <= '099999999'
If @MaxSif Is Not Null
Set @MaxSif = @MaxSif + 1
Else
Set @MaxSif = 1
Set @Plu_Sifra = '0999' + dbo.fn_LevoNuli(@MaxSif, 5)
set @Plu_Ime = @ImeArt
Insert Into ArkaFisk (Sifra_Art, ImeArt, VremeVnes)
Values (@Plu_Sifra, @Plu_Ime, GetDate())
End
Else -- Sosema nov regularen artikl
Begin
Set @Plu_Sifra = @Sifra_Art
Set @Plu_Ime = @ImeArt
Insert Into ArkaFisk (Sifra_Art, ImeArt, VremeVnes)
Values (@Plu_Sifra, @Plu_Ime, GetDate())
End
End
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_dajkod_arkafisk_fix]'))
drop procedure [dbo].[rk_dajkod_arkafisk_fix]
Go
-- Proveruva dali go ima imeto
-- AKo go ima, OK, ja vraka sifrata
-- Vo sprotivni DODAJ ja kombinacijata so nova ssifra i vrati uspeh
CREATE PROCEDURE rk_DajKod_ArkaFisk_Fix
@Sifra_Art varchar(100),
@ImeArt varchar(100),
@Plu_Sifra varchar(20) = Null Output,
@Plu_Ime varchar(100) = Null Output
AS
Declare @Kolku as smallint
If Len(@ImeArt) > 32
Set @ImeArt = Substring(@ImeArt,1,32)
Select @Plu_Sifra = Sifra_Art,
@Plu_Ime = ImeArt
From ArkaFisk
Where ImeArt = @ImeArt
Set @Kolku = @@RowCount
If @Kolku >= 1 -- Najdeno po IME, znaci imame PLU sifra i IME, ok e
Return
Else -- Go nema IMETO
Begin
Declare @MaxSif Int
Select @MaxSif = Max(Cast(Substring(Sifra_Art, 5, 5) as int))
From ArkaFisk
Where Sifra_Art > '099900000' And Sifra_Art <= '099999999'
If @MaxSif Is Not Null
Set @MaxSif = @MaxSif + 1
Else
Set @MaxSif = 1
Set @Plu_Sifra = '0999' + dbo.fn_LevoNuli(@MaxSif, 5)
set @Plu_Ime = @ImeArt
Insert Into ArkaFisk (Sifra_Art, ImeArt, VremeVnes)
Values (@Plu_Sifra, @Plu_Ime, GetDate())
End
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_dajkomintf12]'))
drop procedure [dbo].[rk_dajkomintf12]
Go
CREATE PROCEDURE rk_DajKomintF12
@DelOdIme NVARCHAR(50)
AS
SET @DelOdIme = Replace(@DelOdIme, '[', '[[]')
SELECT TOP 1000 Sifra_Kup, ImeKup, SMesto, Posta, Zemja FROM Komint
WHERE ImeKup LIKE @DelOdIme + '%'
ORDER BY ImeKup
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_dajkplkprometzaprenos]'))
drop procedure [dbo].[rk_dajkplkprometzaprenos]
Go
CREATE PROCEDURE [dbo].[rk_DajKPlkPrometZaPrenos]
@Sifra_Oe smallint,
@Grp_Kasa smallint,
@BrKasa smallint,
@Broj_Ska int
AS
Select * from KPlkProm Where
Sifra_oe=@Sifra_Oe and
Grp_Kasa=@Grp_Kasa and
BrKasa=@BrKasa and
Broj_Ska=@Broj_Ska
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_dajkprometzaprenos]'))
drop procedure [dbo].[rk_dajkprometzaprenos]
Go
CREATE PROCEDURE [dbo].[rk_DajKPrometZaPrenos]
AS
Select * from Kpromet where (Rasknizen ='N' or Rasknizen is Null) and
Otvoren='Z'
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_dajksprometzaprenos]'))
drop procedure [dbo].[rk_dajksprometzaprenos]
Go
CREATE PROCEDURE [dbo].[rk_DajKSPrometZaPrenos]
@Sifra_Oe smallint,
@Grp_Kasa smallint,
@BrKasa smallint,
@Broj_Ska int
AS
Select * from KSPromet Where
Sifra_oe=@Sifra_Oe and
Grp_Kasa=@Grp_Kasa and
BrKasa=@BrKasa and
Broj_Ska=@Broj_Ska
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_dajnepratenkplkpromet]'))
drop procedure [dbo].[rk_dajnepratenkplkpromet]
Go
CREATE PROCEDURE [dbo].[rk_DajNepratenKPlkPromet]
@Datum_Od smalldatetime,
@Datum_Do smalldatetime
AS
Declare @SSQL as VarChar(5000)
Declare @Tip as char(1)
Create Table #Tab
( Tip char(1))
Set @SSQL ='select KasaTip from Konfig'
insert into #Tab Exec (@SSQL)
Set @Tip=(Select Tip From #Tab)
if @Tip='K'
SELECT S.* FROM KPlkProm S
INNER JOIN KPromet P ON S.Sifra_OE = P.Sifra_Oe AND S.Grp_Kasa = P.Grp_Kasa AND S.BrKasa = P.BrKasa AND S.Broj_Ska = P.Broj_Ska
WHERE P.Datum_Evid >= @Datum_Od AND P.Datum_Evid <= @Datum_Do and P.Otvoren='Z'
else
SELECT S.* FROM KPlkProm S
INNER JOIN KPromet P ON S.Sifra_OE = P.Sifra_Oe AND S.Grp_Kasa = P.Grp_Kasa AND S.BrKasa = P.BrKasa AND S.Broj_Ska = P.Broj_Ska
WHERE P.Datum_Evid >= @Datum_Od AND P.Datum_Evid <= @Datum_Do
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_dajnepratenkplkprometzb]'))
drop procedure [dbo].[rk_dajnepratenkplkprometzb]
Go
CREATE PROCEDURE rk_DajNepratenKPlkPrometZb
@Datum_Od smalldatetime,
@Datum_Do smalldatetime
AS
CREATE TABLE #TmpPlkProm
(Sifra_OE smallint,
Grp_Kasa smallint,
BrKasa smallint ,
Broj_Ska Integer,
BrSmena smallint ,
Rbr smallint ,
Sifra_Oper smallint,
Datum_Evid smalldatetime,
Sifra_Nac smallint ,
Iznos Decimal (18,4),
Sifra_Kup char(6),
Broj_Nac varchar(30),
Opis varchar(30),
Kamata decimal(18,4))
INSERT INTO #TmpPlkProm (Sifra_OE,Grp_Kasa,BrKasa,BrSmena,Sifra_Oper,Datum_Evid,Sifra_Nac,Iznos, Kamata)
(Case When PP.Sifra_Nac=@NacPlakKart Then (Case KK.Sifra_TipKArtKor When 6 Then 42 When 2 Then 12 Else '''' End) Else PP.Sifra_Nac End) Sifra_Nac,
(Case When PP.Sifra_Nac=@NacPlakKart Then (Case KK.Sifra_TipKArtKor When 6 Then 'Biznis' When 2 Then 'Plate`ni' Else '''' End) Else NP.ImeNac End) ImeNac,
R.VkPromet, Sum(PP.Iznos) Promet
From Promet P
Inner Join PlkProm PP On PP.Sifra_Oe=P.Sifra_Oe And PP.Grp_Kasa=P.Grp_Kasa And PP.BrKasa=P.BrKasa And PP.Broj_Ska=P.Broj_Ska
Left Outer Join #Rez R On R.Sifra_Oe=P.Sifra_Oe And R.Grp_Kasa=P.Grp_Kasa and R.BrKasa=P.BrKasa And R.Sifra_Oper=P.Sifra_Oper
Left Outer Join ArkaKartKpm AKK On AKK.Sifra_Oe=P.Sifra_Oe And AKK.Grp_Kasa=P.Grp_Kasa And AKK.BrKasa=P.BrKasa And AKK.Broj_Ska=P.Broj_Ska
Left Outer Join ArkaKartKor KK On KK.Sifra_Kor=AKK.Sifra_Kor
Left Outer Join Operatori O On O.Sifra_Oper = R.Sifra_Oper
Left Outer Join NacPlak NP On NP.Sifra_Nac=PP.Sifra_Nac
Where P.Datum_Evid>=@Datum_Od And P.Datum_Evid<=@Datum_Do AND P.Sifra_OE IN (SELECT Sifra_OE FROM #TmpOE)
Group By P.Sifra_Oe, P.Grp_Kasa, P.BrKasa, P.Sifra_Oper, O.Ime_Oper, R.VkPromet,
(Case When PP.Sifra_Nac=@NacPlakKart Then (Case KK.Sifra_TipKArtKor When 6 Then 42 When 2 Then 12 Else '''' End) Else PP.Sifra_Nac End),
(Case When PP.Sifra_Nac=@NacPlakKart Then (Case KK.Sifra_TipKArtKor When 6 Then 'Biznis' When 2 Then 'Plate`ni' Else '''' End) Else NP.ImeNac End)
Sum(Case When (T.Sifra_Nac=1 And K.Sifra_Drg = 1) Then (S.Kolic*T.Procent*S.Cena*(1-S.Popust/100)) Else 0 End) GotB1,
Sum(Case When (T.Sifra_Nac=1 And K.Sifra_Drg = 2) Then (S.Kolic*T.Procent*S.Cena*(1-S.Popust/100)) Else 0 End) GotB2,
Sum(Case When (T.Sifra_Nac=1 And K.Sifra_Drg = 3) Then (S.Kolic*T.Procent*S.Cena*(1-S.Popust/100)) Else 0 End) GotB3,
Sum(Case When (T.Sifra_Nac=1 And K.Sifra_Drg = 4) Then (S.Kolic*T.Procent*S.Cena*(1-S.Popust/100)) Else 0 End) GotB4,
Sum(Case When (T.Sifra_Nac=1 And K.Sifra_Drg = 5) Then (S.Kolic*T.Procent*S.Cena*(1-S.Popust/100)) Else 0 End) GotB5,
Sum(Case When (T.Sifra_Nac=1 And (K.Sifra_Drg Not In (1,2,3,4,5) Or K.Sifra_Drg Is Null)) Then (S.Kolic*T.Procent*S.Cena*(1-S.Popust/100)) Else 0 End) GotB6,
Sum(Case When T.Sifra_Nac=1 Then (S.Kolic*T.Procent*S.Cena*(1-S.Popust/100)) Else 0 End) GotVk,
Sum(Case When T.Sifra_Nac=3 Then (S.Kolic*T.Procent*S.Cena*(1-S.Popust/100)) Else 0 End) Faktura,
Sum(Case When T.Sifra_Nac=2 Then (S.Kolic*T.Procent*S.Cena*(1-S.Popust/100)) Else 0 End) Reprez,
Sum(Case When T.Sifra_Nac=5 Then (S.Kolic*T.Procent*S.Cena*(1-S.Popust/100)) Else 0 End) MAT,
Sum(Case When T.Sifra_Nac=9 Then (S.Kolic*T.Procent*S.Cena*(1-S.Popust/100)) Else 0 End) GotAvion
From KPromet P
Inner Join KSPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Inner Join #Tmp1 T On T.Sifra_Oe=P.Sifra_Oe And T.Grp_Kasa=P.Grp_Kasa And T.BrKasa=P.BrKasa And T.Broj_Ska=P.Broj_Ska
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_izmeniprivoper]'))
drop procedure [dbo].[rk_izmeniprivoper]
Go
CREATE PROCEDURE rk_IzmeniPrivOper
@Sifra_GrOper char(20),
@OperInter char(20),
@Moze_Vlez char(1) = Null,
@Moze_So_Odobr char(1) = Null,
@Moze_Da_Odobri char(1) = Null
AS
Update PrivOper
Set Moze_Vlez=@Moze_Vlez, Moze_So_Odobr=@Moze_So_Odobr, Moze_Da_Odobri=@Moze_Da_Odobri
Where Sifra_GrOper=@Sifra_GrOper And OperInter=@OperInter
Return @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_izmenipromet]'))
drop procedure [dbo].[rk_izmenipromet]
Go
CREATE PROCEDURE rk_IzmeniPromet
@Sifra_Oe smallint,
@Grp_Kasa smallint,
@BrKasa smallint,
@Broj_Ska int,
@Sifra_Oper smallint,
@Datum_Evid smalldatetime,
@DatumVreme smalldatetime,
@Rasknizen char(1) = Null,
@Departm varchar(10) = Null,
@BrSmena smallint = Null
AS
Update Promet
Set Sifra_Oper=@Sifra_Oper, Datum_Evid=@Datum_Evid, Rasknizen=@Rasknizen, Departm=@Departm, BrSmena=@BrSmena
Where Sifra_Oe=@Sifra_Oe And Grp_Kasa=@Grp_Kasa And BrKasa=@BrKasa And Broj_Ska=@Broj_Ska
Return @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_izmenirkasgrupaoperac]'))
drop procedure [dbo].[rk_izmenirkasgrupaoperac]
Go
CREATE PROCEDURE rk_IzmeniRKasGrupaOperac
@Sifra_GrOperac char(20),
@ImeGrupaOperac varchar(50),
@NivoOperac smallint
AS
Update RKasGrupaOperac
set ImeGrupaOperac=@ImeGrupaOperac,NivoOperac=@NivoOperac
Where Sifra_GrOperac=@Sifra_GrOperac
Return @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_izmenirkasi]'))
drop procedure [dbo].[rk_izmenirkasi]
Go
CREATE PROCEDURE rk_IzmeniRKasi
@BrKasa smallint,
@ImeKasa nvarchar(50),
@Sifra_Oe smallint,
@Grp_Kasa smallint,
@IPAdr_Def varchar(30),
@ImeBaza varchar(30),
@Aktivna char(1)
AS
Update RKasi
Set ImeKasa=@ImeKasa, Sifra_Oe=@Sifra_Oe, Grp_Kasa=@Grp_Kasa, IPAdr_Def=@IPAdr_Def, ImeBaza=@ImeBaza, Aktivna=@Aktivna
Where BrKasa=@BrKasa
Return @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_izmenirkasoperac]'))
drop procedure [dbo].[rk_izmenirkasoperac]
Go
CREATE PROCEDURE rk_IzmeniRKasOperac
@Sifra_Operac char(20),
@ImeOperac varchar(50),
@NivoOperac smallint,
@Sifra_GrOperac char(20)
AS
Update RKasOperac
set ImeOperac=@ImeOperac,NivoOperac=@NivoOperac ,Sifra_GrOperac=@Sifra_GrOperac
Where Sifra_Operac=@Sifra_Operac
Return @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_izmenirkasporaki]'))
drop procedure [dbo].[rk_izmenirkasporaki]
Go
CREATE PROCEDURE rk_IzmeniRKasPoraki
@Broj_Por INT,
@Datum_Vnes SMALLDATETIME,
@Datum_Izm SMALLDATETIME = NULL,
@Datum_Akt SMALLDATETIME = NULL,
@Datum_Kraj SMALLDATETIME,
@TekstPor NVARCHAR(2000),
@Prioritet SMALLINT = NULL
AS
UPDATE RKasPoraki SET Datum_Vnes = @Datum_Vnes,
Datum_Izm = @Datum_Izm,
Datum_Akt = @Datum_Akt,
Datum_Kraj = @Datum_Kraj,
TekstPor = @TekstPor,
Prioritet = @Prioritet
WHERE Broj_Por = @Broj_Por
RETURN @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_izmenirkasprivil]'))
drop procedure [dbo].[rk_izmenirkasprivil]
Go
CREATE PROCEDURE rk_IzmeniRKasPrivil
@Sifra_Oper smallint,
@Sifra_GrOper char(20),
@Sifra_Operac char(20),
@Gener_Moze char(1),
@Vnes char(1),
@Izmena char(1),
@Brisenje char(1),
@Pregled char(1)
AS
Update RKasPrivil
set Gener_Moze=@Gener_Moze,Vnes=@Vnes,Izmena=@Izmena,Brisenje=@Brisenje,Pregled=@Pregled
Where Sifra_Oper=@Sifra_Oper and Sifra_GrOper=@Sifra_GrOper and Sifra_Operac=@Sifra_Operac
Return @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_izmenistatuskasi]'))
drop procedure [dbo].[rk_izmenistatuskasi]
Go
CREATE PROCEDURE rk_IzmeniStatusKasi
@BrKasa smallint,
@PoslPrevz smalldatetime = NULL,
@PoslPrevzPomosni smalldatetime = NULL,
@PoslProm smalldatetime = NULL,
@IPAdresa varchar(20),
@ImeBaza varchar(20),
@ServerIP varchar(100),
@ServerBaza varchar(100)
AS
If @PoslPrevz IS Not Null
Update StatusKasi Set PoslPrevz=@PoslPrevz,IPAdresa=@IPAdresa, ImeBaza=@ImeBaza ,ServerIP=@ServerIP, ServerBaza=@ServerBaza Where BrKasa=@BrKasa
If @PoslProm IS Not Null
Update StatusKasi Set PoslProm=@PoslProm,IPAdresa=@IPAdresa, ImeBaza=@ImeBaza,ServerIP=@ServerIP, ServerBaza=@ServerBaza Where BrKasa=@BrKasa
If @PoslPrevzPomosni IS Not Null
Update StatusKasi Set PoslPrevzPomosni=@PoslPrevzPomosni,IPAdresa=@IPAdresa, ImeBaza=@ImeBaza,ServerIP=@ServerIP, ServerBaza=@ServerBaza Where BrKasa=@BrKasa
Return @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_izmenistatuskasiart]'))
drop procedure [dbo].[rk_izmenistatuskasiart]
Go
CREATE PROCEDURE rk_IzmeniStatusKasiArt
@BrKasa smallint,
@KojaSifra_Art varchar(20)
AS
Update StatusKasi Set KojaSifra_Art=@KojaSifra_Art Where BrKasa=@BrKasa
Return @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_izmenitekstsmetki]'))
drop procedure [dbo].[rk_izmenitekstsmetki]
Go
CREATE PROCEDURE rk_IzmeniTekstSmetki
@Kade varchar(10),
@Rbr smallint ,
@Tekst nvarchar(100)
AS
UPDATE TekstSmetki SET Tekst=@Tekst WHERE Kade=@Kade AND Rbr=@Rbr
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_izvestaj_dneven]'))
drop procedure [dbo].[rk_izvestaj_dneven]
Go
CREATE PROCEDURE [dbo].[rk_Izvestaj_Dneven]
@Datum_Od smalldatetime,
@Datum_Do smalldatetime,
@BrKasa smallint = Null,
@Sifra_Oper smallint = Null,
@Sifra_Oe smallint = Null,
@NacPlakKart smallint = Null,
@BrSmena smallint = Null
AS
Declare @SSQL as varchar(8000)
Declare @SSQLUsl as varchar(8000)
Set @SSQLUsl = ' '
If @BrKasa Is Not Null
Set @SSQLUsl = @SSQLUsl + ' AND P.BrKasa = ' + Cast(@BrKasa as varchar(6)) + ' '
If @Sifra_Oper Is Not Null
Set @SSQLUsl = @SSQLUsl + ' AND P.Sifra_Oper = ' + Cast(@Sifra_Oper as varchar(6)) + ' '
If @Sifra_Oe Is Not Null
Set @SSQLUsl = @SSQLUsl + ' AND P.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
If @BrSmena Is Not Null
Set @SSQLUsl = @SSQLUsl + ' AND P.BrSmena = ' + Cast(@BrSmena as varchar(6)) + ' '
---------------- Promet i storno promet ------------------------------------------
Create Table #OdPlkProm
(
Datum_Evid smalldatetime,
BrKasa smallint,
Sifra_Oper smallint,
BrSmena smallint,
Sifra_Nac smallint,
VkPromet decimal(18,6),
VkStornoProm decimal(18,6),
BrSki int,
BrStornoSki int,
BrStavki int,
BrStornoStavki int,
BrSkiOper int,
BrStornoSkiOper int,
BrStavkiOper int,
BrStornoStavkiOper int,
BrSkiKasa int,
BrStornoSkiKasa int,
BrStavkiKasa int,
BrStornoStavkiKasa int,
BrSkiDatum int,
BrStornoSkiDatum int,
BrStavkiDatum int,
BrStornoStavkiDatum int,
BrSkiSmena int,
BrStornoSkiSmena int,
BrStavkiBrSmena int,
BrStornoStavkiBrSmena int
)
Set @SSQL = ' Select P.Datum_Evid, P.BrKasa, P.Sifra_Oper, P.BrSmena, '
If @NacPlakKart Is Not Null
Set @SSQL = @SSQL+ ' (Case When PL.Sifra_Nac=' + Cast(@NacPlakKart as varchar(6)) + ' Then (Case KK.Sifra_TipKArtKor When 6 Then 42 When 2 Then ' + Cast(@NacPlakKart as varchar(6)) + ' Else 7777 End) Else PL.Sifra_Nac End) Sifra_Nac, '
Else
Set @SSQL = @SSQL+ ' PL.Sifra_Nac, '
Set @SSQL = @SSQL+ ' Sum(Case When (P.TipSmetka <> ''S'' Or TipSmetka Is Null) Then PL.Iznos End) VkPromet,
Inner Join PlkProm PL On PL.Sifra_Oe=P.Sifra_Oe And PL.Grp_Kasa=P.Grp_Kasa And PL.BrKasa=P.BrKasa And PL.Broj_Ska=P.Broj_Ska '
If @NacPlakKart Is Not Null
Set @SSQL = @SSQL+ ' Left Outer Join ArkaKartKpm AKK On AKK.Sifra_Oe=P.Sifra_Oe And AKK.Grp_Kasa=P.Grp_Kasa And AKK.BrKasa=P.BrKasa And AKK.Broj_Ska=P.Broj_Ska
Left Outer Join ArkaKartKor KK On KK.Sifra_Kor=AKK.Sifra_Kor '
Set @SSQL = @SSQL+ ' Where P.Datum_Evid>= ''' + Cast(@Datum_Od as varchar(35)) + ''' And P.Datum_Evid<= ''' + Cast(@Datum_Do as varchar(35)) + ''' '
Set @SSQL = @SSQL + @SSQLUsl + ' Group By P.Datum_Evid, P.BrKasa, P.Sifra_Oper, BrSmena, '
If @NacPlakKart Is Not Null
Set @SSQL = @SSQL+ ' (Case When PL.Sifra_Nac=' + Cast(@NacPlakKart as varchar(6)) + ' Then (Case KK.Sifra_TipKArtKor When 6 Then 42 When 2 Then ' + Cast(@NacPlakKart as varchar(6)) + ' Else 7777 End) Else PL.Sifra_Nac End) '
Else
Set @SSQL = @SSQL+ ' PL.Sifra_Nac '
Insert Into #OdPlkProm Exec(@SSQL)
------------------- Broj na smetki po nacini na plakkanje ---------------------------------
Create Table #BrSmetki
(
Datum_Evid smalldatetime,
BrKasa smallint,
Sifra_Oper smallint,
BrSmena smallint,
Sifra_Nac smallint,
BrSki int
)
Set @SSQL = ' Select P.Datum_Evid, P.BrKasa, P.Sifra_Oper, P.BrSmena, '
If @NacPlakKart Is Not Null
Set @SSQL = @SSQL+ ' (Case When PL.Sifra_Nac=' + Cast(@NacPlakKart as varchar(6)) + ' Then (Case KK.Sifra_TipKArtKor When 6 Then 42 When 2 Then ' + Cast(@NacPlakKart as varchar(6)) + ' Else 7777 End) Else PL.Sifra_Nac End) Sifra_Nac, '
Else
Set @SSQL = @SSQL+ ' PL.Sifra_Nac, '
Set @SSQL = @SSQL+ ' Count(Distinct Cast(P.Sifra_Oe as char(6))+Cast(P.Datum_Evid as char(35))+Cast(P.BrKasa as char(6))+Cast(P.Sifra_Oper as char(6))+Cast(PL.Sifra_Nac as char(6))+Cast(P.Broj_Ska as char(10)))
From Promet P
Inner Join PlkProm PL On PL.Sifra_Oe=P.Sifra_Oe And PL.Grp_Kasa=P.Grp_Kasa And PL.BrKasa=P.BrKasa And PL.Broj_Ska=P.Broj_Ska '
If @NacPlakKart Is Not Null
Set @SSQL = @SSQL+ ' Left Outer Join ArkaKartKpm AKK On AKK.Sifra_Oe=P.Sifra_Oe And AKK.Grp_Kasa=P.Grp_Kasa And AKK.BrKasa=P.BrKasa And AKK.Broj_Ska=P.Broj_Ska
Left Outer Join ArkaKartKor KK On KK.Sifra_Kor=AKK.Sifra_Kor '
Set @SSQL = @SSQL+ ' Where P.Datum_Evid>= ''' + Cast(@Datum_Od as varchar(35)) + ''' And P.Datum_Evid<= ''' + Cast(@Datum_Do as varchar(35)) + '''
And (P.TipSmetka <> ''S'' Or P.TipSmetka Is Null) '
Set @SSQL = @SSQL + @SSQLUsl + ' Group By P.Datum_Evid, P.BrKasa, P.Sifra_Oper, P.BrSmena, '
If @NacPlakKart Is Not Null
Set @SSQL = @SSQL+ ' (Case When PL.Sifra_Nac=' + Cast(@NacPlakKart as varchar(6)) + ' Then (Case KK.Sifra_TipKArtKor When 6 Then 42 When 2 Then ' + Cast(@NacPlakKart as varchar(6)) + ' Else 7777 End) Else PL.Sifra_Nac End) '
Else
Set @SSQL = @SSQL+ ' PL.Sifra_Nac '
Insert Into #BrSmetki Exec(@SSQL)
Update #OdPlkProm Set BrSmena = 1234 Where BrSmena Is Null
Update #BrSmetki Set BrSmena = 1234 Where BrSmena Is Null
Update #OdPlkProm Set BrSki = #BrSmetki.BrSki
From #BrSmetki
Where #OdPlkProm.Datum_Evid=#BrSmetki.Datum_Evid
And #OdPlkProm.BrKasa=#BrSmetki.BrKasa
And #OdPlkProm.Sifra_Oper=#BrSmetki.Sifra_Oper
And #OdPlkProm.BrSmena=#BrSmetki.BrSmena
And #OdPlkProm.Sifra_Nac=#BrSmetki.Sifra_Nac
Create Table #BrStornoSmetki
(
Datum_Evid smalldatetime,
BrKasa smallint,
Sifra_Oper smallint,
BrSmena smallint,
Sifra_Nac smallint,
BrSki int
)
Set @SSQL = ' Select P.Datum_Evid, P.BrKasa, P.Sifra_Oper, P.BrSmena, '
If @NacPlakKart Is Not Null
Set @SSQL = @SSQL+ ' (Case When PL.Sifra_Nac=' + Cast(@NacPlakKart as varchar(6)) + ' Then (Case KK.Sifra_TipKArtKor When 6 Then 42 When 2 Then ' + Cast(@NacPlakKart as varchar(6)) + ' Else 7777 End) Else PL.Sifra_Nac End) Sifra_Nac, '
Else
Set @SSQL = @SSQL+ ' PL.Sifra_Nac, '
Set @SSQL = @SSQL+ ' Count(Distinct Cast(P.Sifra_Oe as char(6))+Cast(P.Datum_Evid as char(35))+Cast(P.BrKasa as char(6))+Cast(P.Sifra_Oper as char(6))+Cast(PL.Sifra_Nac as char(6))+Cast(P.Broj_Ska as char(10)))
From Promet P
Inner Join PlkProm PL On PL.Sifra_Oe=P.Sifra_Oe And PL.Grp_Kasa=P.Grp_Kasa And PL.BrKasa=P.BrKasa And PL.Broj_Ska=P.Broj_Ska '
If @NacPlakKart Is Not Null
Set @SSQL = @SSQL+ ' Left Outer Join ArkaKartKpm AKK On AKK.Sifra_Oe=P.Sifra_Oe And AKK.Grp_Kasa=P.Grp_Kasa And AKK.BrKasa=P.BrKasa And AKK.Broj_Ska=P.Broj_Ska
Left Outer Join ArkaKartKor KK On KK.Sifra_Kor=AKK.Sifra_Kor '
Set @SSQL = @SSQL+ ' Where P.Datum_Evid>= ''' + Cast(@Datum_Od as varchar(35)) + ''' And P.Datum_Evid<= ''' + Cast(@Datum_Do as varchar(35)) + '''
And P.TipSmetka = ''S'' '
Set @SSQL = @SSQL + @SSQLUsl + ' Group By P.Datum_Evid, P.BrKasa, P.Sifra_Oper, P.BrSmena, '
If @NacPlakKart Is Not Null
Set @SSQL = @SSQL+ ' (Case When PL.Sifra_Nac=' + Cast(@NacPlakKart as varchar(6)) + ' Then (Case KK.Sifra_TipKArtKor When 6 Then 42 When 2 Then ' + Cast(@NacPlakKart as varchar(6)) + ' Else 7777 End) Else PL.Sifra_Nac End) '
Else
Set @SSQL = @SSQL+ ' PL.Sifra_Nac '
Insert Into #BrStornoSmetki Exec(@SSQL)
Update #BrStornoSmetki Set BrSmena = 1234 Where BrSmena Is Null
Update #OdPlkProm Set BrStornoSki = #BrStornoSmetki.BrSki
From #BrStornoSmetki
Where #OdPlkProm.Datum_Evid=#BrStornoSmetki.Datum_Evid
And #OdPlkProm.BrKasa=#BrStornoSmetki.BrKasa
And #OdPlkProm.Sifra_Oper=#BrStornoSmetki.Sifra_Oper
And #OdPlkProm.BrSmena=#BrStornoSmetki.BrSmena
And #OdPlkProm.Sifra_Nac=#BrStornoSmetki.Sifra_Nac
------------------- Broj na Stavki po nacini na plakkanje ---------------------------------
Create Table #BrStavki
(
Datum_Evid smalldatetime,
BrKasa smallint,
Sifra_Oper smallint,
BrSmena smallint,
Sifra_Nac smallint,
BrStavki int
)
Set @SSQL = ' Select P.Datum_Evid, P.BrKasa, P.Sifra_Oper, P.BrSmena, '
If @NacPlakKart Is Not Null
Set @SSQL = @SSQL+ ' (Case When PL.Sifra_Nac=' + Cast(@NacPlakKart as varchar(6)) + ' Then (Case KK.Sifra_TipKArtKor When 6 Then 42 When 2 Then ' + Cast(@NacPlakKart as varchar(6)) + ' Else 7777 End) Else PL.Sifra_Nac End) Sifra_Nac, '
Else
Set @SSQL = @SSQL+ ' PL.Sifra_Nac, '
Set @SSQL = @SSQL+ ' Count(Distinct Cast(P.Sifra_Oe as char(6))+Cast(P.Datum_Evid as char(35))+Cast(S.BrKasa as char(6))+Cast(P.Sifra_Oper as char(6))+Cast(PL.Sifra_Nac as char(6))+Cast(S.Broj_Ska as char(10))+Cast(S.Rbr as char(6)))
From Promet P
Inner Join SPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Inner Join PlkProm PL On PL.Sifra_Oe=P.Sifra_Oe And PL.Grp_Kasa=P.Grp_Kasa And PL.BrKasa=P.BrKasa And PL.Broj_Ska=P.Broj_Ska '
If @NacPlakKart Is Not Null
Set @SSQL = @SSQL+ ' Left Outer Join ArkaKartKpm AKK On AKK.Sifra_Oe=P.Sifra_Oe And AKK.Grp_Kasa=P.Grp_Kasa And AKK.BrKasa=P.BrKasa And AKK.Broj_Ska=P.Broj_Ska
Left Outer Join ArkaKartKor KK On KK.Sifra_Kor=AKK.Sifra_Kor '
Set @SSQL = @SSQL+ ' Where P.Datum_Evid>= ''' + Cast(@Datum_Od as varchar(35)) + ''' And P.Datum_Evid<= ''' + Cast(@Datum_Do as varchar(35)) + '''
And (P.TipSmetka <> ''S'' Or P.TipSmetka Is Null) '
Set @SSQL = @SSQL + @SSQLUsl + ' Group By P.Datum_Evid, P.BrKasa, P.Sifra_Oper, P.BrSmena, '
If @NacPlakKart Is Not Null
Set @SSQL = @SSQL+ ' (Case When PL.Sifra_Nac=' + Cast(@NacPlakKart as varchar(6)) + ' Then (Case KK.Sifra_TipKArtKor When 6 Then 42 When 2 Then ' + Cast(@NacPlakKart as varchar(6)) + ' Else 7777 End) Else PL.Sifra_Nac End) '
Else
Set @SSQL = @SSQL+ ' PL.Sifra_Nac '
Insert Into #BrStavki Exec(@SSQL)
Update #BrStavki Set BrSmena = 1234 Where BrSmena Is Null
Update #OdPlkProm Set BrStavki = #BrStavki.BrStavki
From #BrStavki
Where #OdPlkProm.Datum_Evid=#BrStavki.Datum_Evid
And #OdPlkProm.BrKasa=#BrStavki.BrKasa
And #OdPlkProm.Sifra_Oper=#BrStavki.Sifra_Oper
And #OdPlkProm.BrSmena=#BrStavki.BrSmena
And #OdPlkProm.Sifra_Nac=#BrStavki.Sifra_Nac
Create Table #BrStornoStavki
(
Datum_Evid smalldatetime,
BrKasa smallint,
Sifra_Oper smallint,
BrSmena smallint,
Sifra_Nac smallint,
BrStavki int
)
Set @SSQL = ' Select P.Datum_Evid, P.BrKasa, P.Sifra_Oper, P.BrSmena, '
If @NacPlakKart Is Not Null
Set @SSQL = @SSQL+ ' (Case When PL.Sifra_Nac=' + Cast(@NacPlakKart as varchar(6)) + ' Then (Case KK.Sifra_TipKArtKor When 6 Then 42 When 2 Then ' + Cast(@NacPlakKart as varchar(6)) + ' Else 7777 End) Else PL.Sifra_Nac End) Sifra_Nac, '
Else
Set @SSQL = @SSQL+ ' PL.Sifra_Nac, '
Set @SSQL = @SSQL+ ' Count(Distinct Cast(P.Sifra_Oe as char(6))+Cast(P.Datum_Evid as char(35))+Cast(S.BrKasa as char(6))+Cast(P.Sifra_Oper as char(6))+Cast(PL.Sifra_Nac as char(6))+Cast(S.Broj_Ska as char(10))+Cast(S.Rbr as char(6)))
From Promet P
Inner Join SPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Inner Join PlkProm PL On PL.Sifra_Oe=P.Sifra_Oe And PL.Grp_Kasa=P.Grp_Kasa And PL.BrKasa=P.BrKasa And PL.Broj_Ska=P.Broj_Ska '
If @NacPlakKart Is Not Null
Set @SSQL = @SSQL+ ' Left Outer Join ArkaKartKpm AKK On AKK.Sifra_Oe=P.Sifra_Oe And AKK.Grp_Kasa=P.Grp_Kasa And AKK.BrKasa=P.BrKasa And AKK.Broj_Ska=P.Broj_Ska
Left Outer Join ArkaKartKor KK On KK.Sifra_Kor=AKK.Sifra_Kor '
Set @SSQL = @SSQL+ ' Where P.Datum_Evid>= ''' + Cast(@Datum_Od as varchar(35)) + ''' And P.Datum_Evid<= ''' + Cast(@Datum_Do as varchar(35)) + '''
And P.TipSmetka = ''S'' '
Set @SSQL = @SSQL + @SSQLUsl + ' Group By P.Datum_Evid, P.BrKasa, P.Sifra_Oper, P.BrSmena, '
If @NacPlakKart Is Not Null
Set @SSQL = @SSQL+ ' (Case When PL.Sifra_Nac=' + Cast(@NacPlakKart as varchar(6)) + ' Then (Case KK.Sifra_TipKArtKor When 6 Then 42 When 2 Then ' + Cast(@NacPlakKart as varchar(6)) + ' Else 7777 End) Else PL.Sifra_Nac End) '
Else
Set @SSQL = @SSQL+ ' PL.Sifra_Nac '
Insert Into #BrStornoStavki Exec(@SSQL)
Update #BrStornoStavki Set BrSmena = 1234 Where BrSmena Is Null
Update #OdPlkProm Set BrStornoStavki = #BrStornoStavki.BrStavki
From #BrStornoStavki
Where #OdPlkProm.Datum_Evid=#BrStornoStavki.Datum_Evid
And #OdPlkProm.BrKasa=#BrStornoStavki.BrKasa
And #OdPlkProm.Sifra_Oper=#BrStornoStavki.Sifra_Oper
And #OdPlkProm.BrSmena=#BrStornoStavki.BrSmena
And #OdPlkProm.Sifra_Nac=#BrStornoStavki.Sifra_Nac
------------------- Broj na smetki po Operatori / Broj na kasa / Datum_Evid ---------------------------------
------- Broj na smetki po operater ----------
Create Table #BrSmetkiOper
(
Datum_Evid smalldatetime,
BrKasa smallint,
Sifra_Oper smallint,
BrSmena smallint,
BrSkiOper int
)
Set @SSQL = ' Select P.Datum_Evid, P.BrKasa, P.Sifra_Oper, P.BrSmena,
Count(Distinct Cast(P.Sifra_Oe as char(6))+Cast(P.Datum_Evid as char(35))+Cast(P.BrKasa as char(6))+Cast(P.Sifra_Oper as char(6))+Cast(P.Broj_Ska as char(10)))
From Promet P
Inner Join PlkProm PL On PL.Sifra_Oe=P.Sifra_Oe And PL.Grp_Kasa=P.Grp_Kasa And PL.BrKasa=P.BrKasa And PL.Broj_Ska=P.Broj_Ska
Where P.Datum_Evid>= ''' + Cast(@Datum_Od as varchar(35)) + ''' And P.Datum_Evid<= ''' + Cast(@Datum_Do as varchar(35)) + '''
And (P.TipSmetka <> ''S'' Or P.TipSmetka Is Null) '
Set @SSQL = @SSQL + @SSQLUsl + ' Group By P.Datum_Evid, P.BrKasa, P.Sifra_Oper, P.BrSmena '
Insert Into #BrSmetkiOper Exec(@SSQL)
Update #BrSmetkiOper Set BrSmena = 1234 Where BrSmena Is Null
Update #OdPlkProm Set BrSkiOper = #BrSmetkiOper.BrSkiOper
From #BrSmetkiOper
Where #OdPlkProm.Datum_Evid=#BrSmetkiOper.Datum_Evid
And #OdPlkProm.BrKasa=#BrSmetkiOper.BrKasa
And #OdPlkProm.Sifra_Oper=#BrSmetkiOper.Sifra_Oper
And #OdPlkProm.BrSmena=#BrSmetkiOper.BrSmena
--------- Broj na smetki po broj na kasa -----------
Create Table #BrSmetkiBrKasa
(
Datum_Evid smalldatetime,
BrKasa smallint,
BrSmena smallint,
BrSkiKasa int
)
Insert Into #BrSmetkiBrKasa
Select Datum_Evid, BrKasa, BrSmena, Sum(BrSkiOper) From #BrSmetkiOper
Group By Datum_Evid, BrKasa, BrSmena
Update #OdPlkProm Set BrSkiKasa = #BrSmetkiBrKasa.BrSkiKasa
From #BrSmetkiBrKasa
Where #OdPlkProm.Datum_Evid=#BrSmetkiBrKasa.Datum_Evid
And #OdPlkProm.BrKasa=#BrSmetkiBrKasa.BrKasa
And #OdPlkProm.BrSmena=#BrSmetkiBrKasa.BrSmena
--------- Broj na smetki po smena -----------
Create Table #BrSmetkiBrSmena
(
Datum_Evid smalldatetime,
BrSmena smallint,
BrSkiSmena int
)
Insert Into #BrSmetkiBrSmena
Select Datum_Evid, BrSmena, Sum(BrSkiOper) From #BrSmetkiOper
Group By Datum_Evid, BrSmena
Update #OdPlkProm Set BrSkiSmena = #BrSmetkiBrSmena.BrSkiSmena
From #BrSmetkiBrSmena
Where #OdPlkProm.Datum_Evid=#BrSmetkiBrSmena.Datum_Evid
And #OdPlkProm.BrSmena=#BrSmetkiBrSmena.BrSmena
--------- Bjoj na smetki po datum -----------
Create Table #BrSmetkiDatum
(
Datum_Evid smalldatetime,
BrSkiDatum int
)
Insert Into #BrSmetkiDatum
Select Datum_Evid, Sum(BrSkiOper) From #BrSmetkiOper
Group By Datum_Evid
Update #OdPlkProm Set BrSkiDatum = #BrSmetkiDatum.BrSkiDatum
From #BrSmetkiDatum
Where #OdPlkProm.Datum_Evid=#BrSmetkiDatum.Datum_Evid
-------- Broj na storno smetko po operater ---------
Create Table #BrStornoSmetkiOper
(
Datum_Evid smalldatetime,
BrKasa smallint,
Sifra_Oper smallint,
BrSmena smallint,
BrSkiOper int
)
Set @SSQL = ' Select P.Datum_Evid, P.BrKasa, P.Sifra_Oper, P.BrSmena,
Count(Distinct Cast(P.Sifra_Oe as char(6))+Cast(P.Datum_Evid as char(35))+Cast(P.BrKasa as char(6))+Cast(P.Sifra_Oper as char(6))+Cast(P.Broj_Ska as char(10)))
From Promet P
Inner Join PlkProm PL On PL.Sifra_Oe=P.Sifra_Oe And PL.Grp_Kasa=P.Grp_Kasa And PL.BrKasa=P.BrKasa And PL.Broj_Ska=P.Broj_Ska
Where P.Datum_Evid>= ''' + Cast(@Datum_Od as varchar(35)) + ''' And P.Datum_Evid<= ''' + Cast(@Datum_Do as varchar(35)) + '''
And P.TipSmetka = ''S'' '
Set @SSQL = @SSQL + @SSQLUsl + ' Group By P.Datum_Evid, P.BrKasa, P.Sifra_Oper, P.BrSmena '
Insert Into #BrStornoSmetkiOper Exec(@SSQL)
Update #BrStornoSmetkiOper Set BrSmena = 1234 Where BrSmena Is Null
Update #OdPlkProm Set BrStornoSkiOper = #BrStornoSmetkiOper.BrSkiOper
From #BrStornoSmetkiOper
Where #OdPlkProm.Datum_Evid=#BrStornoSmetkiOper.Datum_Evid
And #OdPlkProm.BrKasa=#BrStornoSmetkiOper.BrKasa
And #OdPlkProm.Sifra_Oper=#BrStornoSmetkiOper.Sifra_Oper
And #OdPlkProm.BrSmena=#BrStornoSmetkiOper.BrSmena
--------- Bjoj na storno smetki po broj na kasa -----------
Create Table #BrStornoSmetkiKasa
(
Datum_Evid smalldatetime,
BrKasa smallint,
BrSmena smallint,
BrSkiKasa int
)
Insert Into #BrStornoSmetkiKasa
Select Datum_Evid, BrKasa, BrSmena, Sum(BrSkiOper) From #BrStornoSmetkiOper
Group By Datum_Evid, BrKasa, BrSmena
Update #OdPlkProm Set BrStornoSkiKasa = #BrStornoSmetkiKasa.BrSkiKasa
From #BrStornoSmetkiKasa
Where #OdPlkProm.Datum_Evid=#BrStornoSmetkiKasa.Datum_Evid
And #OdPlkProm.BrKasa=#BrStornoSmetkiKasa.BrKasa
And #OdPlkProm.BrSmena=#BrStornoSmetkiKasa.BrSmena
--------- Broj na storno smetki po smena -----------
Create Table #BrStornoSmetkiBrSmena
(
Datum_Evid smalldatetime,
BrSmena smallint,
BrSkiSmena int
)
Insert Into #BrStornoSmetkiBrSmena
Select Datum_Evid, BrSmena, Sum(BrSkiOper) From #BrStornoSmetkiOper
Group By Datum_Evid, BrSmena
Update #OdPlkProm Set BrStornoSkiSmena = #BrStornoSmetkiBrSmena.BrSkiSmena
From #BrStornoSmetkiBrSmena
Where #OdPlkProm.Datum_Evid=#BrStornoSmetkiBrSmena.Datum_Evid
And #OdPlkProm.BrSmena=#BrStornoSmetkiBrSmena.BrSmena
--------- Bjoj na storno smetki po datum -----------
Create Table #BrStornoSmetkiDatum
(
Datum_Evid smalldatetime,
BrSkiDatum int
)
Insert Into #BrStornoSmetkiDatum
Select Datum_Evid, Sum(BrSkiOper) From #BrStornoSmetkiOper
Group By Datum_Evid
Update #OdPlkProm Set BrStornoSkiDatum = #BrStornoSmetkiDatum.BrSkiDatum
From #BrStornoSmetkiDatum
Where #OdPlkProm.Datum_Evid=#BrStornoSmetkiDatum.Datum_Evid
-------------- Broj na stavki po Operater / Kasa / Datum --------------------------
------------------- Broj na Stavki po Operatori ---------------------------------
Create Table #BrStavkiOper
(
Datum_Evid smalldatetime,
BrKasa smallint,
Sifra_Oper smallint,
BrSmena smallint,
BrStavkiOper int
)
Set @SSQL = ' Select P.Datum_Evid, P.BrKasa, P.Sifra_Oper, P.BrSmena,
Count(Distinct Cast(P.Sifra_Oe as char(6))+Cast(P.Datum_Evid as char(35))+Cast(S.BrKasa as char(6))+Cast(P.Sifra_Oper as char(6))+Cast(S.Broj_Ska as char(10))+Cast(S.Rbr as char(6)))
From Promet P
Inner Join SPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Inner Join PlkProm PL On PL.Sifra_Oe=P.Sifra_Oe And PL.Grp_Kasa=P.Grp_Kasa And PL.BrKasa=P.BrKasa And PL.Broj_Ska=P.Broj_Ska
Where P.Datum_Evid>= ''' + Cast(@Datum_Od as varchar(35)) + ''' And P.Datum_Evid<= ''' + Cast(@Datum_Do as varchar(35)) + '''
And (P.TipSmetka <> ''S'' Or P.TipSmetka Is Null) '
Set @SSQL = @SSQL + @SSQLUsl + ' Group By P.Datum_Evid, P.BrKasa, P.Sifra_Oper, P.BrSmena '
Insert Into #BrStavkiOper Exec(@SSQL)
Update #BrStavkiOper Set BrSmena = 1234 Where BrSmena Is Null
Update #OdPlkProm Set BrStavkiOper = #BrStavkiOper.BrStavkiOper
From #BrStavkiOper
Where #OdPlkProm.Datum_Evid=#BrStavkiOper.Datum_Evid
And #OdPlkProm.BrKasa=#BrStavkiOper.BrKasa
And #OdPlkProm.Sifra_Oper=#BrStavkiOper.Sifra_Oper
And #OdPlkProm.BrSmena=#BrStavkiOper.BrSmena
--------- Bjoj na stavki po broj na kasa -----------
Create Table #BrStavkiBrKasa
(
Datum_Evid smalldatetime,
BrKasa smallint,
BrSmena smallint,
BrStavkiKasa int
)
Insert Into #BrStavkiBrKasa
Select Datum_Evid, BrKasa, BrSmena, Sum(BrStavkiOper) From #BrStavkiOper
Group By Datum_Evid, BrKasa, BrSmena
Update #OdPlkProm Set BrStavkiKasa = #BrStavkiBrKasa.BrStavkiKasa
From #BrStavkiBrKasa
Where #OdPlkProm.Datum_Evid=#BrStavkiBrKasa.Datum_Evid
And #OdPlkProm.BrKasa=#BrStavkiBrKasa.BrKasa
And #OdPlkProm.BrSmena=#BrStavkiBrKasa.BrSmena
--------- Broj na stavki po smena -----------
Create Table #BrStavkiBrSmena
(
Datum_Evid smalldatetime,
BrSmena smallint,
BrStavkiSmena int
)
Insert Into #BrStavkiBrSmena
Select Datum_Evid, BrSmena, Sum(BrStavkiOper) From #BrStavkiOper
Group By Datum_Evid, BrSmena
Update #OdPlkProm Set BrStavkiBrSmena = #BrStavkiBrSmena.BrStavkiSmena
From #BrStavkiBrSmena
Where #OdPlkProm.Datum_Evid=#BrStavkiBrSmena.Datum_Evid
And #OdPlkProm.BrSmena=#BrStavkiBrSmena.BrSmena
--------- Bjoj na Stavki po datum -----------
Create Table #BrStavkiDatum
(
Datum_Evid smalldatetime,
BrStavkiDatum int
)
Insert Into #BrStavkiDatum
Select Datum_Evid, Sum(BrStavkiOper) From #BrStavkiOper
Group By Datum_Evid
Update #OdPlkProm Set BrStavkiDatum = #BrStavkiDatum.BrStavkiDatum
From #BrStavkiDatum
Where #OdPlkProm.Datum_Evid=#BrStavkiDatum.Datum_Evid
------ Broj na storno stavki po operater ---------
Create Table #BrStornoStavkiOper
(
Datum_Evid smalldatetime,
BrKasa smallint,
Sifra_Oper smallint,
BrSmena smallint,
BrStavkiOper int
)
Set @SSQL = ' Select P.Datum_Evid, P.BrKasa, P.Sifra_Oper, P.BrSmena,
Count(Distinct Cast(P.Sifra_Oe as char(6))+Cast(P.Datum_Evid as char(35))+Cast(S.BrKasa as char(6))+Cast(P.Sifra_Oper as char(6))+Cast(S.Broj_Ska as char(10))+Cast(S.Rbr as char(6)))
From Promet P
Inner Join SPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Inner Join PlkProm PL On PL.Sifra_Oe=P.Sifra_Oe And PL.Grp_Kasa=P.Grp_Kasa And PL.BrKasa=P.BrKasa And PL.Broj_Ska=P.Broj_Ska
Where P.Datum_Evid>= ''' + Cast(@Datum_Od as varchar(35)) + ''' And P.Datum_Evid<= ''' + Cast(@Datum_Do as varchar(35)) + '''
And P.TipSmetka = ''S'' '
Set @SSQL = @SSQL + @SSQLUsl + ' Group By P.Datum_Evid, P.BrKasa, P.Sifra_Oper, P.BrSmena '
Insert Into #BrStornoStavkiOper Exec(@SSQL)
Update #BrStornoStavkiOper Set BrSmena = 1234 Where BrSmena Is Null
Update #OdPlkProm Set BrStornoStavkiOper = #BrStornoStavkiOper.BrStavkiOper
From #BrStornoStavkiOper
Where #OdPlkProm.Datum_Evid=#BrStornoStavkiOper.Datum_Evid
And #OdPlkProm.BrKasa=#BrStornoStavkiOper.BrKasa
And #OdPlkProm.Sifra_Oper=#BrStornoStavkiOper.Sifra_Oper
And #OdPlkProm.BrSmena=#BrStornoStavkiOper.BrSmena
--------- Bjoj na storno stavki po broj na kasa -----------
Create Table #BrStornoStavkiKasa
(
Datum_Evid smalldatetime,
BrKasa smallint,
BrSmena smallint,
BrStavkiKasa int
)
Insert Into #BrStornoStavkiKasa
Select Datum_Evid, BrKasa, BrSmena, Sum(BrStavkiOper) From #BrStornoStavkiOper
Group By Datum_Evid, BrKasa, BrSmena
Update #OdPlkProm Set BrStornoStavkiKasa = #BrStornoStavkiKasa.BrStavkiKasa
From #BrStornoStavkiKasa
Where #OdPlkProm.Datum_Evid=#BrStornoStavkiKasa.Datum_Evid
And #OdPlkProm.BrKasa=#BrStornoStavkiKasa.BrKasa
And #OdPlkProm.BrSmena=#BrStornoStavkiKasa.BrSmena
--------- Broj na storno stavki po smena -----------
Create Table #BrStornoStavkiBrSmena
(
Datum_Evid smalldatetime,
BrSmena smallint,
BrStavkiSmena int
)
Insert Into #BrStornoStavkiBrSmena
Select Datum_Evid, BrSmena, Sum(BrStavkiOper) From #BrStornoStavkiOper
Group By Datum_Evid, BrSmena
Update #OdPlkProm Set BrStornoStavkiBrSmena = #BrStornoStavkiBrSmena.BrStavkiSmena
From #BrStornoStavkiBrSmena
Where #OdPlkProm.Datum_Evid=#BrStornoStavkiBrSmena.Datum_Evid
And #OdPlkProm.BrSmena=#BrStornoStavkiBrSmena.BrSmena
--------- Broj na storno smetki po datum -----------
Create Table #BrStornoStavkiDatum
(
Datum_Evid smalldatetime,
BrStavkiDatum int
)
Insert Into #BrStornoStavkiDatum
Select Datum_Evid, Sum(BrStavkiOper) From #BrStornoStavkiOper
Group By Datum_Evid
Update #OdPlkProm Set BrStornoStavkiDatum = #BrStornoStavkiDatum.BrStavkiDatum
From #BrStornoStavkiDatum
Where #OdPlkProm.Datum_Evid=#BrStornoStavkiDatum.Datum_Evid
------------------------------------------------------------ Promet od SPromet ---------------------------------------------------------------------------------
Left Outer Join Tarifi T On T.Sifra_Tar=K.Sifra_Tar
Where K.Sifra_Art = @Sifra_Art
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_komint_so_frarepr]'))
drop procedure [dbo].[rk_komint_so_frarepr]
Go
CREATE PROCEDURE rk_Komint_So_FraRepr
@FraRepr char(1) -- F - Faktura R-Reprezentacija K - Faktura i Reprezentacija
AS
If @FraRepr = 'K'
Select K.Sifra_Kup, K.ImeKup, K.Smesto, K.FraRepr
From Komint K WITH(NOLOCK)
Where FraRepr In ('F', 'R')
Order By K.ImeKup
Else
Select K.Sifra_Kup, K.ImeKup, K.Smesto, K.FraRepr
From Komint K WITH(NOLOCK)
Where FraRepr=@FraRepr
Order By K.ImeKup
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_kontrolenpregled]'))
drop procedure [dbo].[rk_kontrolenpregled]
Go
CREATE PROCEDURE rk_KontrolenPregled
@Sifra_Oe smallint = Null,
@Gr_Org char(6) = Null,
@Datum_Od smalldatetime,
@Datum_Do smalldatetime,
@Sifra_Oper smallint = Null,
@SamoRazliki char(1) = 'D'
AS
Declare @SSQL as varchar(8000)
Declare @SSQLUsl as varchar(8000)
Set @SSQLUsl = ' '
------------------------------------------------------------------- PROMET PO NACINI NA PLAKANJE OD KPLKPROM ---------------------------------------------------------------------------------
Inner Join KPlkProm N On N.Sifra_Oe=P.Sifra_Oe And N.Grp_Kasa=P.Grp_Kasa And N.BrKasa=P.BrKasa And N.Broj_Ska=P.Broj_Ska
Where 1=1 '
If @Datum_Od Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid >= ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid <= ''' + cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Oper Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Oper = ' + cast(@Sifra_Oper as varchar(6)) + ' '
If @Sifra_Oe Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Oe = ' + cast(@Sifra_Oe as varchar(6)) + ' '
If @Gr_Org Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Oe In (Select Sifra_Oe From SGrorg Where Sif_GrOrg = ''' + @Gr_Org + ''') '
Set @SSQL = @SSQL + @SSQLUsl -- za da prodolzam vo @SSQL
Set @SSQL = @SSQL + ' Group By P.Sifra_Oe, P.Grp_Kasa, P.BrKasa, P.Broj_Ska, P.Datum_Evid
Order By P.Datum_Evid, P.Sifra_Oe, P.Grp_Kasa, P.BrKasa, P.Broj_Ska '
Insert Into #PromNacPlak Exec(@SSQL)
---------------------------------------------------------------------------- PROMET PO ARTIKLI OD KSPROMET -----------------------------------------------------------------------------------------------
Where Cast(#PromArt.Sifra_Oe as varchar(6)) + '$$$' + Cast(#PromArt.Grp_Kasa as varchar(6)) + '$$$' + Cast(#PromArt.BrKasa as varchar(6)) + '$$$' + Cast(#PromArt.Broj_Ska as varchar(10)) + '$$$'
Not In (Select Cast(Sifra_Oe as varchar(6)) + '$$$' + Cast(Grp_Kasa as varchar(6)) + '$$$' + Cast(BrKasa as varchar(6)) + '$$$' + Cast(Broj_Ska as varchar(10)) + '$$$' From #PromNacPlak)
Set @SSQL = ' Select S.Sifra_Oe, S.Sifra_Art, Sum((Case S.VlIzl When ''V'' Then S.Kolic When ''I'' Then -1*S.Kolic End)) Sostojba
From Stavr S
Inner Join Katart K On K.Sifra_Art = S.Sifra_Art
Inner Join Tarifi T On T.Sifra_Tar=K.Sifra_Tar '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + ' Inner Join Podgrupi PG On PG.Sifra_Podg=K.Sifra_Podg '
If @Sifra_Drg1 Is Not Null
Set @SSQL = @SSQL + ' Left Outer Join DrgPodel B On B.Sifra_Drg=K.Sifra_Drg '
Set @SSQL = @SSQL + ' Where S.Datum_Dok < ''' + Cast(@Datum as varchar(30)) + ''' '
If @ADrugo5 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo5 = ' + cast(@ADrugo5 as varchar(6)) + ' '
If @ADrugo4 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo4 = ' + cast(@ADrugo4 as varchar(6)) + ' '
If @ADrugo3 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo3 = ' + cast(@ADrugo3 as varchar(6)) + ' '
If @ADrugo2 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo2 = ' + cast(@ADrugo2 as varchar(6)) + ' '
If @ADrugo1 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo1 = ' + cast(@ADrugo1 as varchar(6)) + ' '
If @Sifra_Drg1 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And B.Sifra_Drg1 = ' + cast(@Sifra_Drg1 as varchar(6)) + ' '
If @Sifra_Drg Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Sifra_Drg = ' + cast(@Sifra_Drg as varchar(6)) + ' '
If @Sifra_Gr Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And PG.Sifra_Gr = ''' + @Sifra_Gr + ''' '
If @Sifra_Podg Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Sifra_Podg = ''' + @Sifra_Podg + ''' '
If @Sifra_Oe Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_Oe = ' + cast(@Sifra_Oe as varchar(6)) + ' '
If @Gr_Org Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_Oe In (Select Sifra_Oe From SGrOrg Where Sif_GrOrg = ''' + @Gr_Org + ''') '
If @Sifra_ArtOd Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_Art >= ''' + @Sifra_ArtOd + ''' '
If @Sifra_ArtDo Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_Art <= ''' + @Sifra_ArtDo + ''' '
Insert Into #PrethSost Exec(@SSQL+@SSQLUsl + 'Group By S.Sifra_Oe, S.Sifra_Art Order By S.Sifra_Oe, S.Sifra_Art' )
CREATE TABLE #TmpOrgEd
(Sifra_OE smallint)
IF @Sifra_OE IS NOT NULL INSERT INTO #TmpOrgEd VALUES (@Sifra_OE)
IF @Gr_Org IS NOT NULL INSERT INTO #TmpOrgEd SELECT DISTINCT Sifra_OE FROM SGrOrg WHERE Sif_GrOrg = @Gr_Org
-- Gi Vklucuvame Nerasknizenite stavki vo prethodniot promet
CREATE TABLE #TmpStavr
(
Sifra_Art varchar(20),
Kolic decimal(18,6),
DaliSurov char(1),
POsn decimal(8,2),
DokCena decimal(18,6),
DanDokCena char(1),
Rasknizen char(1)
)
Declare @Sifra_OE_Sur0 smallint
Declare @DanCenaOESur0 char(1)
Declare @Sif_GrOrg char(6)
Declare @SifArt varchar(20)
-- Declare @Datum smalldatetime
-- Set @Datum = GetDate()
SELECT @Sifra_OE_Sur0 = Sifra_OE_Sur FROM GotovSurovOrg WHERE Sifra_OE_Got = @Sifra_OE AND Reden=0
SELECT @Sif_GrOrg = G.Sif_GrOrg FROM GrOrg G Inner Join SGrOrg S On G.Sif_GrOrg=S.Sif_GrOrg And S.Sifra_OE= @Sifra_OE WHERE G.GotovPro='D'
IF @Sifra_OE_Sur0 IS NULL SET @Sifra_OE_Sur0 = @Sifra_OE
SELECT @DanCenaOESur0 = CeniSoDanok FROM Orged WHERE Sifra_OE = @Sifra_OE_Sur0
INSERT INTO #TmpStavr (Sifra_art, Kolic, DaliSurov, POsn, DokCena, DanDokCena)
SELECT S.Sifra_Art, SUM(S.Kolic - S.RKolic), A.DaliSurov, S.Proc_Osn, S.Cena, 'D' FROM KSPromet S
INNER JOIN KatArt A ON S.Sifra_Art = A.Sifra_Art
INNER JOIN KPromet P ON P.Sifra_OE=S.Sifra_OE AND P.Grp_Kasa=S.Grp_Kasa AND
P.BrKasa=S.BrKasa AND P.Broj_Ska=S.Broj_Ska AND P.Datum_evid<@Datum
WHERE S.Sifra_OE = @Sifra_OE AND (S.Rkolic IS NULL OR S.Kolic <> S.RKolic) AND A.SMatUsl='M'
GROUP BY S.Sifra_Art, A.DaliSurov, S.Proc_Osn, S.Cena
UPDATE #TmpStavr SET DaliSurov='' WHERE DaliSurov IS NULL
UPDATE #TmpStavr SET Rasknizen='N'
CREATE TABLE #TmpZaRaskn
(
Sifra_OE smallint,
Sifra_Art varchar(20),
Kolic decimal(18,6),
DokCena decimal(18,6),
DanDokCena char(1)
)
INSERT INTO #TmpZaRaskn (Sifra_OE, Sifra_Art, Kolic, DokCena)
SELECT O.Sifra_OE_Sur, S.Sifra_Sur, (Case When (S.Za_Kolku<=0 Or S.Za_Kolku Is Null) Then (S.Kolicina * T.Kolic) Else (S.Kolicina * T.Kolic / S.Za_Kolku) End), 0 -- * S.Za_Kolku dod G 13.09.05
FROM #TmpStavr T
INNER JOIN GSostav S ON T.Sifra_art = S.Sifra_Art AND S.Sif_GrOrg = @Sif_GrOrg
INNER JOIN GotovSurovOrg O ON S.Reden = O.Reden AND O.Sifra_OE_Got = @Sifra_OE --WHERE T.DaliSurov <> 'T'
UPDATE #TmpStavr SET Rasknizen='D' FROM GSostav S, GotovSurovOrg O
WHERE #TmpStavr.Sifra_art = S.Sifra_Art AND S.Sif_GrOrg=@Sif_GrOrg AND S.Reden=O.Reden AND O.Sifra_OE_Got=@Sifra_OE
INSERT INTO #TmpZaRaskn (Sifra_OE, Sifra_Art, Kolic, DokCena)
SELECT @Sifra_OE_Sur0, S.Sifra_Sur, (Case When (S.Za_Kolku <=0 Or S.Za_Kolku Is Null) Then (S.Ima_Kolic * T.Kolic) Else (S.Ima_Kolic * T.Kolic / S.Za_Kolku) End), 0 -- * S.Za_Kolku dod G 13.09.05
FROM #TmpStavr T
INNER JOIN Sostav S ON T.Sifra_art = S.Sifra_Art
WHERE T.Sifra_Art NOT IN (SELECT Sifra_Art FROM GSostav WHERE Sif_GrOrg = @Sif_GrOrg) -- AND T.DaliSurov <> 'T'
UPDATE #TmpStavr SET Rasknizen='D' FROM Sostav S
WHERE #TmpStavr.Sifra_art = S.Sifra_Art
AND #TmpStavr.Sifra_Art NOT IN (SELECT Sifra_Art FROM GSostav WHERE Sif_GrOrg = @Sif_GrOrg) --AND #TmpStavr.DaliSurov <> 'T'
INSERT INTO #TmpZaRaskn (Sifra_OE, Sifra_Art, Kolic, DokCena, DanDokCena)
Inner Join KSPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Inner Join Sostav SO On SO.Sifra_Art=S.Sifra_Art
WHERE P.Datum_evid<@Datum And S.Sifra_OE = @Sifra_OE AND S.Kolic <> (Case When S.RKolic Is Null Then 0 Else S.RKolic End)
Group By P.Sifra_Oe, SO.Sifra_Sur
*/
---------------------------------------------------------------------------- DNEVEN PROMET ---------------------------------------------------------------------------------------------
Create Table #DnProm
(
Sifra_Oe smallint,
Sifra_Art varchar(20),
Vlez decimal(18,6),
Izlez decimal(18,6),
)
Set @SSQL = ' Select S.Sifra_Oe, S.Sifra_Art, Sum((Case S.VlIzl When ''V'' Then S.Kolic Else 0 End)),
Sum((Case S.VlIzl When ''I'' Then S.Kolic Else 0 End))
From Stavr S
Inner Join Katart K On K.Sifra_Art = S.Sifra_Art
Inner Join Tarifi T On T.Sifra_Tar=K.Sifra_Tar '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + ' Inner Join Podgrupi PG On PG.Sifra_Podg=K.Sifra_Podg '
If @Sifra_Drg1 Is Not Null
Set @SSQL = @SSQL + ' Left Outer Join DrgPodel B On B.Sifra_Drg=K.Sifra_Drg '
Set @SSQL = @SSQL + ' Where S.Datum_Dok = ''' + Cast(@Datum as varchar(30)) + ''' '
Insert Into #DnProm Exec(@SSQL+@SSQLUsl + 'Group By S.Sifra_Oe, S.Sifra_Art Order By S.Sifra_Oe, S.Sifra_Art' )
-- Gi Vklucuvame Nerasknizenite stavki vo prometot
/*CREATE TABLE #TmpStavr
(
Sifra_Art varchar(20),
Kolic decimal(18,6),
DaliSurov char(1),
POsn decimal(8,2),
DokCena decimal(18,6),
DanDokCena char(1),
Rasknizen char(1)
)
*/
Delete From #TmpStavr
Set @Sifra_OE_Sur0 = Null
Set @DanCenaOESur0 = Null
Set @Sif_GrOrg = Null
Set @SifArt = Null
-- Declare @Datum smalldatetime
-- Set @Datum = GetDate()
SELECT @Sifra_OE_Sur0 = Sifra_OE_Sur FROM GotovSurovOrg WHERE Sifra_OE_Got = @Sifra_OE AND Reden=0
SELECT @Sif_GrOrg = G.Sif_GrOrg FROM GrOrg G Inner Join SGrOrg S On G.Sif_GrOrg=S.Sif_GrOrg And S.Sifra_OE= @Sifra_OE WHERE G.GotovPro='D'
SELECT @DanCenaOESur0 = CeniSoDanok FROM Orged WHERE Sifra_OE = @Sifra_OE_Sur0
IF @Sifra_OE_Sur0 IS NULL SET @Sifra_OE_Sur0 = @Sifra_OE
INSERT INTO #TmpStavr (Sifra_art, Kolic, DaliSurov, POsn, DokCena, DanDokCena)
SELECT S.Sifra_Art, S.Kolic - S.RKolic, A.DaliSurov, S.Proc_Osn, S.Cena, 'D' FROM KSPromet S
INNER JOIN KatArt A ON S.Sifra_Art = A.Sifra_Art
INNER JOIN KPromet P ON P.Sifra_OE=S.Sifra_OE AND P.Grp_Kasa=S.Grp_Kasa AND
P.BrKasa=S.BrKasa AND P.Broj_Ska=S.Broj_Ska AND P.Datum_evid=@Datum
WHERE S.Sifra_OE = @Sifra_OE AND (S.Rkolic IS NULL OR S.Kolic <> S.RKolic) AND A.SMatUsl='M'
UPDATE #TmpStavr SET DaliSurov='' WHERE DaliSurov IS NULL
UPDATE #TmpStavr SET Rasknizen='N'
/*CREATE TABLE #TmpZaRaskn
(
Sifra_OE smallint,
Sifra_Art varchar(20),
Kolic decimal(18,6),
DokCena decimal(18,6),
DanDokCena char(1)
)
*/
Delete From #TmpZaRaskn
INSERT INTO #TmpZaRaskn (Sifra_OE, Sifra_Art, Kolic, DokCena)
SELECT O.Sifra_OE_Sur, S.Sifra_Sur, (Case When (S.Za_Kolku<=0 Or S.Za_Kolku Is Null) Then (S.Kolicina * T.Kolic) Else (S.Kolicina * T.Kolic / S.Za_Kolku) End), 0 -- * S.Za_Kolku dod G 13.09.05
FROM #TmpStavr T
INNER JOIN GSostav S ON T.Sifra_art = S.Sifra_Art AND S.Sif_GrOrg = @Sif_GrOrg
INNER JOIN GotovSurovOrg O ON S.Reden = O.Reden AND O.Sifra_OE_Got = @Sifra_OE --WHERE T.DaliSurov <> 'T'
UPDATE #TmpStavr
SET Rasknizen='D'
FROM GSostav S, GotovSurovOrg O
WHERE #TmpStavr.Sifra_art = S.Sifra_Art AND S.Sif_GrOrg=@Sif_GrOrg AND S.Reden=O.Reden AND O.Sifra_OE_Got=@Sifra_OE
INSERT INTO #TmpZaRaskn (Sifra_OE, Sifra_Art, Kolic, DokCena)
SELECT @Sifra_OE_Sur0, S.Sifra_Sur, (Case When (S.Za_Kolku <=0 Or S.Za_Kolku Is Null) Then (S.Ima_Kolic * T.Kolic) Else (S.Ima_Kolic * T.Kolic / S.Za_Kolku) End), 0 -- * S.Za_Kolku dod G 13.09.05
FROM #TmpStavr T
INNER JOIN Sostav S ON T.Sifra_art = S.Sifra_Art
WHERE T.Sifra_Art NOT IN (SELECT Sifra_Art FROM GSostav WHERE Sif_GrOrg = @Sif_GrOrg) -- AND T.DaliSurov <> 'T'
UPDATE #TmpStavr
SET Rasknizen='D'
FROM Sostav S
WHERE #TmpStavr.Sifra_art = S.Sifra_Art
AND #TmpStavr.Sifra_Art NOT IN (SELECT Sifra_Art FROM GSostav WHERE Sif_GrOrg = @Sif_GrOrg) --AND #TmpStavr.DaliSurov <> 'T'
INSERT INTO #TmpZaRaskn (Sifra_OE, Sifra_Art, Kolic, DokCena, DanDokCena)
Set @SSQL = ' Select S.Sifra_Oe, S.Sifra_Art, Sum((Case S.VlIzl When ''V'' Then S.Kolic When ''I'' Then -1*S.Kolic End)) Sostojba
From Stavr S
Inner Join Katart K On K.Sifra_Art = S.Sifra_Art
Inner Join Tarifi T On T.Sifra_Tar=K.Sifra_Tar '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + ' Inner Join Podgrupi PG On PG.Sifra_Podg=K.Sifra_Podg '
If @Sifra_Drg1 Is Not Null
Set @SSQL = @SSQL + ' Left Outer Join DrgPodel B On B.Sifra_Drg=K.Sifra_Drg '
Set @SSQL = @SSQL + ' Where S.Datum_Dok < ''' + Cast(@PocDatum as varchar(30)) + ''' '
If @ADrugo5 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo5 = ' + cast(@ADrugo5 as varchar(6)) + ' '
If @ADrugo4 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo4 = ' + cast(@ADrugo4 as varchar(6)) + ' '
If @ADrugo3 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo3 = ' + cast(@ADrugo3 as varchar(6)) + ' '
If @ADrugo2 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo2 = ' + cast(@ADrugo2 as varchar(6)) + ' '
If @ADrugo1 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo1 = ' + cast(@ADrugo1 as varchar(6)) + ' '
If @Sifra_Drg1 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And B.Sifra_Drg1 = ' + cast(@Sifra_Drg1 as varchar(6)) + ' '
If @Sifra_Drg Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Sifra_Drg = ' + cast(@Sifra_Drg as varchar(6)) + ' '
If @Sifra_Gr Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And PG.Sifra_Gr = ''' + @Sifra_Gr + ''' '
If @Sifra_Podg Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Sifra_Podg = ''' + @Sifra_Podg + ''' '
If @Sifra_Oe Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_Oe = ' + cast(@Sifra_Oe as varchar(6)) + ' '
If @Gr_Org Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_Oe In (Select Sifra_Oe From SGrOrg Where Sif_GrOrg = ''' + @Gr_Org + ''') '
If @Sifra_ArtOd Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_Art >= ''' + @Sifra_ArtOd + ''' '
If @Sifra_ArtDo Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_Art <= ''' + @Sifra_ArtDo + ''' '
Insert Into #PrethSost Exec(@SSQL+@SSQLUsl + 'Group By S.Sifra_Oe, S.Sifra_Art Order By S.Sifra_Oe, S.Sifra_Art' )
CREATE TABLE #TmpOrgEd
(Sifra_OE smallint)
IF @Sifra_OE IS NOT NULL INSERT INTO #TmpOrgEd VALUES (@Sifra_OE)
IF @Gr_Org IS NOT NULL INSERT INTO #TmpOrgEd SELECT DISTINCT Sifra_OE FROM SGrOrg WHERE Sif_GrOrg = @Gr_Org
-- Gi Vklucuvame Nerasknizenite stavki vo prethodniot promet
CREATE TABLE #TmpStavr
(
Sifra_Art varchar(20),
Kolic decimal(18,6),
DaliSurov char(1),
POsn decimal(8,2),
DokCena decimal(18,6),
DanDokCena char(1),
Rasknizen char(1)
)
Declare @Sifra_OE_Sur0 smallint
Declare @DanCenaOESur0 char(1)
Declare @Sif_GrOrg char(6)
Declare @SifArt varchar(20)
-- Declare @Datum smalldatetime
-- Set @Datum = GetDate()
SELECT @Sifra_OE_Sur0 = Sifra_OE_Sur FROM GotovSurovOrg WHERE Sifra_OE_Got = @Sifra_OE AND Reden=0
SELECT @Sif_GrOrg = G.Sif_GrOrg FROM GrOrg G Inner Join SGrOrg S On G.Sif_GrOrg=S.Sif_GrOrg And S.Sifra_OE= @Sifra_OE WHERE G.GotovPro='D'
IF @Sifra_OE_Sur0 IS NULL SET @Sifra_OE_Sur0 = @Sifra_OE
SELECT @DanCenaOESur0 = CeniSoDanok FROM Orged WHERE Sifra_OE = @Sifra_OE_Sur0
INSERT INTO #TmpStavr (Sifra_art, Kolic, DaliSurov, POsn, DokCena, DanDokCena)
SELECT S.Sifra_Art, SUM(S.Kolic - S.RKolic), A.DaliSurov, S.Proc_Osn, S.Cena, 'D' FROM KSPromet S
INNER JOIN KatArt A ON S.Sifra_Art = A.Sifra_Art
INNER JOIN KPromet P ON P.Sifra_OE=S.Sifra_OE AND P.Grp_Kasa=S.Grp_Kasa AND
P.BrKasa=S.BrKasa AND P.Broj_Ska=S.Broj_Ska AND P.Datum_evid<@PocDatum
WHERE S.Sifra_OE = @Sifra_OE AND (S.Rkolic IS NULL OR S.Kolic <> S.RKolic) AND A.SMatUsl='M'
GROUP BY S.Sifra_Art, A.DaliSurov, S.Proc_Osn, S.Cena
UPDATE #TmpStavr SET DaliSurov='' WHERE DaliSurov IS NULL
UPDATE #TmpStavr SET Rasknizen='N'
CREATE TABLE #TmpZaRaskn
(
Sifra_OE smallint,
Sifra_Art varchar(20),
Kolic decimal(18,6),
DokCena decimal(18,6),
DanDokCena char(1)
)
INSERT INTO #TmpZaRaskn (Sifra_OE, Sifra_Art, Kolic, DokCena)
SELECT O.Sifra_OE_Sur, S.Sifra_Sur, (Case When (S.Za_Kolku<=0 Or S.Za_Kolku Is Null) Then (S.Kolicina * T.Kolic) Else (S.Kolicina * T.Kolic / S.Za_Kolku) End), 0 -- * S.Za_Kolku dod G 13.09.05
FROM #TmpStavr T
INNER JOIN GSostav S ON T.Sifra_art = S.Sifra_Art AND S.Sif_GrOrg = @Sif_GrOrg
INNER JOIN GotovSurovOrg O ON S.Reden = O.Reden AND O.Sifra_OE_Got = @Sifra_OE --WHERE T.DaliSurov <> 'T'
UPDATE #TmpStavr SET Rasknizen='D' FROM GSostav S, GotovSurovOrg O
WHERE #TmpStavr.Sifra_art = S.Sifra_Art AND S.Sif_GrOrg=@Sif_GrOrg AND S.Reden=O.Reden AND O.Sifra_OE_Got=@Sifra_OE
INSERT INTO #TmpZaRaskn (Sifra_OE, Sifra_Art, Kolic, DokCena)
SELECT @Sifra_OE_Sur0, S.Sifra_Sur, (Case When (S.Za_Kolku <=0 Or S.Za_Kolku Is Null) Then (S.Ima_Kolic * T.Kolic) Else (S.Ima_Kolic * T.Kolic / S.Za_Kolku) End), 0 -- * S.Za_Kolku dod G 13.09.05
FROM #TmpStavr T
INNER JOIN Sostav S ON T.Sifra_art = S.Sifra_Art
WHERE T.Sifra_Art NOT IN (SELECT Sifra_Art FROM GSostav WHERE Sif_GrOrg = @Sif_GrOrg) -- AND T.DaliSurov <> 'T'
UPDATE #TmpStavr SET Rasknizen='D' FROM Sostav S
WHERE #TmpStavr.Sifra_art = S.Sifra_Art
AND #TmpStavr.Sifra_Art NOT IN (SELECT Sifra_Art FROM GSostav WHERE Sif_GrOrg = @Sif_GrOrg) --AND #TmpStavr.DaliSurov <> 'T'
INSERT INTO #TmpZaRaskn (Sifra_OE, Sifra_Art, Kolic, DokCena, DanDokCena)
Inner Join KSPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Inner Join Sostav SO On SO.Sifra_Art=S.Sifra_Art
WHERE P.Datum_evid<@Datum And S.Sifra_OE = @Sifra_OE AND S.Kolic <> (Case When S.RKolic Is Null Then 0 Else S.RKolic End)
Group By P.Sifra_Oe, SO.Sifra_Sur
*/
---------------------------------------------------------------------------- DNEVEN PROMET ---------------------------------------------------------------------------------------------
Create Table #DnProm
(
Sifra_Oe smallint,
Sifra_Art varchar(20),
Vlez decimal(18,6),
Izlez decimal(18,6),
)
Set @SSQL = ' Select S.Sifra_Oe, S.Sifra_Art, Sum((Case S.VlIzl When ''V'' Then S.Kolic Else 0 End)),
Sum((Case S.VlIzl When ''I'' Then S.Kolic Else 0 End))
From Stavr S
Inner Join Katart K On K.Sifra_Art = S.Sifra_Art
Inner Join Tarifi T On T.Sifra_Tar=K.Sifra_Tar '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + ' Inner Join Podgrupi PG On PG.Sifra_Podg=K.Sifra_Podg '
If @Sifra_Drg1 Is Not Null
Set @SSQL = @SSQL + ' Left Outer Join DrgPodel B On B.Sifra_Drg=K.Sifra_Drg '
Set @SSQL = @SSQL + ' Where S.Datum_Dok >= ''' + Cast(@PocDatum as varchar(30)) + ''' and S.Datum_Dok <= ''' + Cast(@Datum as varchar(30)) + ''' '
Insert Into #DnProm Exec(@SSQL+@SSQLUsl + 'Group By S.Sifra_Oe, S.Sifra_Art Order By S.Sifra_Oe, S.Sifra_Art' )
-- Gi Vklucuvame Nerasknizenite stavki vo prometot
/*CREATE TABLE #TmpStavr
(
Sifra_Art varchar(20),
Kolic decimal(18,6),
DaliSurov char(1),
POsn decimal(8,2),
DokCena decimal(18,6),
DanDokCena char(1),
Rasknizen char(1)
)
*/
Delete From #TmpStavr
Set @Sifra_OE_Sur0 = Null
Set @DanCenaOESur0 = Null
Set @Sif_GrOrg = Null
Set @SifArt = Null
-- Declare @Datum smalldatetime
-- Set @Datum = GetDate()
SELECT @Sifra_OE_Sur0 = Sifra_OE_Sur FROM GotovSurovOrg WHERE Sifra_OE_Got = @Sifra_OE AND Reden=0
SELECT @Sif_GrOrg = G.Sif_GrOrg FROM GrOrg G Inner Join SGrOrg S On G.Sif_GrOrg=S.Sif_GrOrg And S.Sifra_OE= @Sifra_OE WHERE G.GotovPro='D'
SELECT @DanCenaOESur0 = CeniSoDanok FROM Orged WHERE Sifra_OE = @Sifra_OE_Sur0
IF @Sifra_OE_Sur0 IS NULL SET @Sifra_OE_Sur0 = @Sifra_OE
INSERT INTO #TmpStavr (Sifra_art, Kolic, DaliSurov, POsn, DokCena, DanDokCena)
SELECT S.Sifra_Art, S.Kolic - S.RKolic, A.DaliSurov, S.Proc_Osn, S.Cena, 'D' FROM KSPromet S
INNER JOIN KatArt A ON S.Sifra_Art = A.Sifra_Art
INNER JOIN KPromet P ON P.Sifra_OE=S.Sifra_OE AND P.Grp_Kasa=S.Grp_Kasa AND
P.BrKasa=S.BrKasa AND P.Broj_Ska=S.Broj_Ska AND P.Datum_evid >= @PocDatum And P.Datum_Evid <= @Datum
WHERE S.Sifra_OE = @Sifra_OE AND (S.Rkolic IS NULL OR S.Kolic <> S.RKolic) AND A.SMatUsl='M'
UPDATE #TmpStavr SET DaliSurov='' WHERE DaliSurov IS NULL
UPDATE #TmpStavr SET Rasknizen='N'
/*CREATE TABLE #TmpZaRaskn
(
Sifra_OE smallint,
Sifra_Art varchar(20),
Kolic decimal(18,6),
DokCena decimal(18,6),
DanDokCena char(1)
)
*/
Delete From #TmpZaRaskn
INSERT INTO #TmpZaRaskn (Sifra_OE, Sifra_Art, Kolic, DokCena)
SELECT O.Sifra_OE_Sur, S.Sifra_Sur, (Case When (S.Za_Kolku<=0 Or S.Za_Kolku Is Null) Then (S.Kolicina * T.Kolic) Else (S.Kolicina * T.Kolic / S.Za_Kolku) End), 0 -- * S.Za_Kolku dod G 13.09.05
FROM #TmpStavr T
INNER JOIN GSostav S ON T.Sifra_art = S.Sifra_Art AND S.Sif_GrOrg = @Sif_GrOrg
INNER JOIN GotovSurovOrg O ON S.Reden = O.Reden AND O.Sifra_OE_Got = @Sifra_OE --WHERE T.DaliSurov <> 'T'
UPDATE #TmpStavr
SET Rasknizen='D'
FROM GSostav S, GotovSurovOrg O
WHERE #TmpStavr.Sifra_art = S.Sifra_Art AND S.Sif_GrOrg=@Sif_GrOrg AND S.Reden=O.Reden AND O.Sifra_OE_Got=@Sifra_OE
INSERT INTO #TmpZaRaskn (Sifra_OE, Sifra_Art, Kolic, DokCena)
SELECT @Sifra_OE_Sur0, S.Sifra_Sur, (Case When (S.Za_Kolku <=0 Or S.Za_Kolku Is Null) Then (S.Ima_Kolic * T.Kolic) Else (S.Ima_Kolic * T.Kolic / S.Za_Kolku) End), 0 -- * S.Za_Kolku dod G 13.09.05
FROM #TmpStavr T
INNER JOIN Sostav S ON T.Sifra_art = S.Sifra_Art
WHERE T.Sifra_Art NOT IN (SELECT Sifra_Art FROM GSostav WHERE Sif_GrOrg = @Sif_GrOrg) -- AND T.DaliSurov <> 'T'
UPDATE #TmpStavr
SET Rasknizen='D'
FROM Sostav S
WHERE #TmpStavr.Sifra_art = S.Sifra_Art
AND #TmpStavr.Sifra_Art NOT IN (SELECT Sifra_Art FROM GSostav WHERE Sif_GrOrg = @Sif_GrOrg) --AND #TmpStavr.DaliSurov <> 'T'
INSERT INTO #TmpZaRaskn (Sifra_OE, Sifra_Art, Kolic, DokCena, DanDokCena)
Inner Join ArkaKasaDn A on AKS.Sifra_Oe=A.Sifra_oe and AKS.Datum_Evid=A.Datum_Evid and AKS.BrKAsa=A.BrKasa and AKS.BrSmena=A.BrSmena and AKS.Broj_Dok=A.Broj_Dok
Left Outer Join NacPLak NP on AKS.Sifra_Nac=NP.Sifra_Nac
Where A.Tip_Kasa = 'D' And AKS.Sifra_Oe = @Sifra_Oe
And AKS.Datum_Evid> = @DatumOd And AKS.Datum_Evid <= @DatumDo And AKS.BrKasa = @BrKasa
And AKS.BrSmena = @BrSmena And AKS.Broj_Dok = @Broj_Dok
Inner Join ArkaKasaDn A on AKS.Sifra_Oe=A.Sifra_oe and AKS.Datum_Evid=A.Datum_Evid and AKS.BrKAsa=A.BrKasa and AKS.BrSmena=A.BrSmena and AKS.Broj_Dok=A.Broj_Dok
Left Outer Join NacPLak NP on AKS.Sifra_Nac=NP.Sifra_Nac
Where A.Tip_Kasa = 'B' And AKS.Sifra_Oe = @Sifra_Oe
And AKS.Datum_Evid> = @DatumOd And AKS.Datum_Evid <= @DatumDo
Inner Join ArkaKasaDn A on AKS.Sifra_Oe=A.Sifra_oe and AKS.Datum_Evid=A.Datum_Evid and AKS.BrKAsa=A.BrKasa and AKS.BrSmena=A.BrSmena and AKS.Broj_Dok=A.Broj_Dok
Left Outer Join NacPLak NP on AKS.Sifra_Nac=NP.Sifra_Nac
Where A.Tip_Kasa = 'S' And AKS.Sifra_Oe = @Sifra_Oe
And AKS.Datum_Evid> = @DatumOd And AKS.Datum_Evid <= @DatumDo And AKS.BrKasa = @BrKasa
And AKS.BrSmena = @BrSmena And AKS.Broj_Dok = @Broj_Dok
Group by AKS.Sifra_Nac, NP.ImeNac
order by AKS.Sifra_Nac, NP.ImeNac
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_pecetik_izmceni]'))
drop procedure [dbo].[rk_pecetik_izmceni]
Go
CREATE PROCEDURE rk_PecEtik_IzmCeni
@Datum_Od Smalldatetime,
@Datum_Do Smalldatetime,
@Sifra_Art_Od varchar(20) = Null,
@Sifra_Art_Do varchar(20) = Null,
@KolkuPromeni int = Null Output
AS
Set @Datum_Do = @Datum_Do + 1 -- Bidejki ima VREME vo Koga
Declare @SSQL as varchar(8000)
Create Table #PoslPromCena
(
Sifra_Art varchar(20),
Koga smalldatetime
)
Set @SSQL = ' Select Sifra_Art, Max(Koga)
From ArkaIzmCeni
Where Koga >= ''' + Cast(@Datum_Od as varchar(30)) + ''' And Koga < ''' + Cast(@Datum_Do as varchar(20)) + ''' '
If @Sifra_Art_Od Is Not Null
Set @SSQL = @SSQL + ' And Sifra_Art >= ''' + @Sifra_Art_Od + ''' '
If @Sifra_Art_Do Is Not Null
Set @SSQL = @SSQL + ' And Sifra_Art <= ''' + @Sifra_Art_Do + ''' '
Set @SSQL = @SSQL + ' Group By Sifra_Art '
Insert Into #PoslPromCena Exec(@SSQL)
Set @SSQL = ' Select A.*, K.ImeArt, K.EdMera, K.Nom
From ArkaIzmCeni A
Left Outer Join ArkaKat K On A.Sifra_Art = K.Sifra_Art
Inner Join #PoslPromCena P On P.Sifra_Art = A.Sifra_Art And P.Koga=A.Koga
Where A.Koga >= ''' + Cast(@Datum_Od as varchar(30)) + ''' And A.Koga < ''' + Cast(@Datum_Do as varchar(20)) + ''' '
If @Sifra_Art_Od Is Not Null
Set @SSQL = @SSQL + ' And A.Sifra_Art >= ''' + @Sifra_Art_Od + ''' '
If @Sifra_Art_Do Is Not Null
Set @SSQL = @SSQL + ' And A.Sifra_Art <= ''' + @Sifra_Art_Do + ''' '
Exec(@SSQL)
Create Table #Prom
(
KolkuPromeni Int
)
Set @SSQL = ' Select Count(Distinct Sifra_Art) From ArkaIzmCeni Where Koga >= ''' + Cast(@Datum_Od as varchar(30)) + ''' And Koga < ''' + Cast(@Datum_Do as varchar(20)) + ''' '
If @Sifra_Art_Od Is Not Null
Set @SSQL = @SSQL + ' And Sifra_Art >= ''' + @Sifra_Art_Od + ''' '
If @Sifra_Art_Do Is Not Null
Set @SSQL = @SSQL + ' And Sifra_Art <= ''' + @Sifra_Art_Do + ''' '
Insert Into #Prom Exec(@SSQL)
Set @KolkuPromeni = (Select KolkuPromeni From #Prom)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_plu_obrazec]'))
SELECT @Sifra_OE_Sur0 = Sifra_OE_Sur FROM GotovSurovOrg WHERE Sifra_OE_Got = @Sifra_Oe AND Reden=0
SELECT @Sif_GrOrg = G.Sif_GrOrg FROM GrOrg G Inner Join SGrOrg S On G.Sif_GrOrg=S.Sif_GrOrg And S.Sifra_OE= @Sifra_Oe WHERE G.GotovPro='D'
IF @Sifra_OE_Sur0 IS NULL SET @Sifra_OE_Sur0 = @Sifra_Oe
SELECT @DanCenaOESur0 = CeniSoDanok FROM Orged WHERE Sifra_OE = @Sifra_OE_Sur0
INSERT INTO #TmpStavr (Sifra_Nac, Sifra_art, Kolic, POsn, DokCena)
SELECT Pl.Sifra_Nac, S.Sifra_Art, SUM(S.Kolic), S.Proc_Osn, Round(S.Cena *(1-S.Popust/100), 2) FROM KSPromet S
INNER JOIN KPromet P ON P.Sifra_OE=S.Sifra_OE AND P.Grp_Kasa=S.Grp_Kasa AND
P.BrKasa=S.BrKasa AND P.Broj_Ska=S.Broj_Ska AND P.Datum_evid>=@Datum_Od AND P.Datum_evid<=@Datum_Do
INNER JOIN KPlkProm Pl ON Pl.Sifra_OE=S.Sifra_OE AND Pl.Grp_Kasa=S.Grp_Kasa AND Pl.BrKasa=S.BrKasa AND Pl.Broj_Ska=S.Broj_Ska AND Pl.Rbr=1
WHERE S.Sifra_OE = @Sifra_OE GROUP BY Pl.Sifra_Nac, S.Sifra_Art, S.Proc_Osn, S.Cena, S.Popust
IF @Sifra_Gr IS NOT NULL
DELETE FROM #TmpStavr WHERE Sifra_Art NOT IN (SELECT Sifra_Art FROM KatArt WHERE Sifra_Podg IN
(SELECT Sifra_Podg FROM Podgrupi WHERE Sifra_Gr=@Sifra_Gr))
-- DELETE FROM #TmpStavr WHERE Sifra_Art IN (SELECT Sifra_Art FROM KatArt WHERE SMatUsl<>'M')
CREATE TABLE #TmpArt
(Sifra_Art varchar(20),
DaliSurov char(1),
Rasknizen char(1))
INSERT INTO #TmpArt (Sifra_Art) SELECT DISTINCT Sifra_Art FROM #TmpStavr
UPDATE #TmpArt SET DaliSurov=A.DaliSurov FROM KatArt A WHERE #TmpArt.Sifra_Art=A.Sifra_Art
UPDATE #TmpArt SET DaliSurov='' WHERE DaliSurov IS NULL
UPDATE #TmpArt SET Rasknizen='N'
INSERT INTO #TmpZaRaskn (Sifra_OE, Sifra_Art, Sifra_Sur, Kolic)
SELECT O.Sifra_OE_Sur, T.Sifra_Art, S.Sifra_Sur, (Case When (S.Za_Kolku<=0 Or S.Za_Kolku Is Null) Then S.Kolicina Else (S.Kolicina / S.Za_Kolku) End)
FROM #TmpArt T
INNER JOIN GSostav S ON T.Sifra_art = S.Sifra_Art AND S.Sif_GrOrg = @Sif_GrOrg
INNER JOIN GotovSurovOrg O ON S.Reden = O.Reden AND O.Sifra_OE_Got = @Sifra_Oe
INNER JOIN Katart K On K.Sifra_Art = T.Sifra_Art
WHERE (K.Drugo1 <> 11 Or K.Drugo1 Is Null)
UPDATE #TmpArt SET Rasknizen='D' FROM GSostav S, GotovSurovOrg O
WHERE #TmpArt.Sifra_art = S.Sifra_Art AND S.Sif_GrOrg=@Sif_GrOrg AND S.Reden=O.Reden AND O.Sifra_OE_Got=@Sifra_Oe
And #TmpArt.Sifra_Art In (Select Sifra_Art From Katart Where (Drugo1<>11 Or Drugo1 Is Null))
INSERT INTO #TmpZaRaskn (Sifra_OE, Sifra_Art, Sifra_Sur, Kolic)
SELECT @Sifra_OE_Sur0, T.Sifra_Art, S.Sifra_Sur, (Case When (S.Za_Kolku <=0 Or S.Za_Kolku Is Null) Then (S.Ima_Kolic) Else (S.Ima_Kolic / S.Za_Kolku) End)
FROM #TmpArt T
INNER JOIN Sostav S ON T.Sifra_art = S.Sifra_Art
WHERE T.Sifra_Art NOT IN (SELECT G.Sifra_Art FROM GSostav G INNER JOIN Katart K On K.Sifra_Art = G.Sifra_Art WHERE G.Sif_GrOrg = @Sif_GrOrg And (K.Drugo1 <> 11 Or K.Drugo1 Is Null))
UPDATE #TmpArt SET Rasknizen='D' FROM Sostav S WHERE #TmpArt.Sifra_art = S.Sifra_Art
AND #TmpArt.Sifra_Art NOT IN (SELECT G.Sifra_Art FROM GSostav G INNER JOIN Katart K On K.Sifra_Art = G.Sifra_Art WHERE G.Sif_GrOrg = @Sif_GrOrg And (K.Drugo1 <> 11 Or K.Drugo1 Is Null))
INSERT INTO #TmpZaRaskn (Sifra_OE, Sifra_Art, Sifra_Sur, Kolic)
SELECT @Sifra_OE_Sur0, Sifra_Art, Sifra_Art, 1 FROM #TmpArt WHERE DaliSurov = 'T' AND Rasknizen <> 'D'
UPDATE #TmpArt SET Rasknizen='D' WHERE DaliSurov = 'T' AND Rasknizen <> 'D'
-----dod. 14.12.2005
Declare @BrZap1 int
Declare @BrZap2 int
Declare @Vrtenja int
SET @Vrtenja = 1
CREATE TABLE #TmpZaRaskn1
(Sifra_OE smallint,
Sifra_Art varchar(20),
Sifra_Sur varchar(20),
Kolic decimal(18,6),
NabCena decimal(18,6),
Sifra_Sur1 varchar(20),
Kolic1 decimal(18,6) )
WHILE @Vrtenja < @BrVrtenja
Begin
DELETE FROM #TmpZaRaskn1
SELECT @BrZap1 = COUNT(*) FROM #TmpZaRaskn
INSERT INTO #TmpZaRaskn1 (Sifra_OE, Sifra_Art, Sifra_Sur, Kolic, Sifra_Sur1, Kolic1)
K.Sifra_Kup, K.Sifra_TipKartKor, K.Poc_Popust, K.ImeKor2, K.MaticenBr2, Null as RegBrLK2, K.ImeKor3, K.MaticenBr3, Null as RegBrLK3,
Null as cParam11, Null as cParam12, Null as dParam14, Null as dParam15, Null as Datum_Param, K.IzmenetNa
From Kartkor K
Left Outer Join KartProm KP On KP.Sifra_Kor=K.Sifra_Kor '
-- GK 27.02.2009 ne se prevzemaa site salda
-- If @KolkuDena Is Not Null
-- Set @SSQL = @SSQL + ' And ((K.IzmenetNa >= ''' + Cast((DateAdd(Day, -1 * @KolkuDena, GetDate())) as Varchar(30)) + '''
-- Or K.DodadenNa >= ''' + Cast((DateAdd(Day, -1 * @KolkuDena, GetDate())) as Varchar(30)) + ''')
-- Or (K.Sifra_Kor In (Select Sifra_Kor From KartProm Where Datum_Ska >= ''' + Cast((DateAdd(Day, -1 * @KolkuDena, GetDate())) as Varchar(30)) + '''))) '
Set @SSQL = @SSQL + ' Group By K.Sifra_Kor, K.ImeKor, K.SMesto, K.Adresa, K.Posta, K.Telefon, K.LK, K.RegBrLK, K.Aktiven, K.Novi_Limi,
Or @SMesto<>@NSMesto Or (@SMesto Is Null And @NSMesto Is Not Null) Or (@SMesto Is Not Null And @NSMesto Is Null)
Or @Adresa<>@NAdresa Or (@Adresa Is Null And @NAdresa Is Not Null) Or (@Adresa Is Not Null And @NAdresa Is Null)
Or @Posta<>@NPosta Or (@Posta Is Null And @NPosta Is Not Null) Or (@Posta Is Not Null And @NPosta Is Null)
Or @Telefon<>@NTelefon Or (@Telefon Is Null And @NTelefon Is Not Null) Or (@Telefon Is Not Null And @NTelefon Is Null)
Or @LK<>@NLK Or (@LK Is Null And @NLK Is Not Null) Or (@LK Is Not Null And @NLK Is Null)
Or @RegBrLK<>@NRegBrLK Or (@RegBrLK Is Null And @NRegBrLK Is Not Null) Or (@RegBrLK Is Not Null And @NRegBrLK Is Null)
Or @Aktiven<>@NAktiven Or (@Aktiven Is Null And @NAktiven Is Not Null) Or (@Aktiven Is Not Null And @NAktiven Is Null)
Or @Novi_Limi<>@NNovi_Limi Or (@Novi_Limi Is Null And @NNovi_Limi Is Not Null) Or (@Novi_Limi Is Not Null And @NNovi_Limi Is Null)
Or @Novi_Promet<>@NNovi_Promet Or (@Novi_Promet Is Null And @NNovi_Promet Is Not Null) Or (@Novi_Promet Is Not Null And @NNovi_Promet Is Null)
Or @Sifra_Kup<>@NSifra_Kup Or (@Sifra_Kup Is Null And @NSifra_Kup Is Not Null) Or (@Sifra_Kup Is Not Null And @NSifra_Kup Is Null)
Or @Sifra_TipKartKor<>@NSifra_TipKartKor Or (@Sifra_TipKartKor Is Null And @NSifra_TipKartKor Is Not Null) Or (@Sifra_TipKartKor Is Not Null And @NSifra_TipKartKor Is Null)
Or @Poc_Popust<>@NPoc_Popust Or (@Poc_Popust Is Null And @NPoc_Popust Is Not Null) Or (@Poc_Popust Is Not Null And @NPoc_Popust Is Null)
Or @ImeKor2<>@NImeKor2 Or (@ImeKor2 Is Null And @NImeKor2 Is Not Null) Or (@ImeKor2 Is Not Null And @NImeKor2 Is Null)
Or @MaticenBr2<>@NMaticenBr2 Or (@MaticenBr2 Is Null And @NMaticenBr2 Is Not Null) Or (@MaticenBr2 Is Not Null And @NMaticenBr2 Is Null)
Or @RegBrLK2<>@NRegBrLK2 Or (@RegBrLK2 Is Null And @NRegBrLK2 Is Not Null) Or (@RegBrLK2 Is Not Null And @NRegBrLK2 Is Null)
Or @ImeKor3<>@NImeKor3 Or (@ImeKor3 Is Null And @NImeKor3 Is Not Null) Or (@ImeKor3 Is Not Null And @NImeKor3 Is Null)
Or @MaticenBr3<>@NMaticenBr3 Or (@MaticenBr3 Is Null And @NMaticenBr3 Is Not Null) Or (@MaticenBr3 Is Not Null And @NMaticenBr3 Is Null)
Or @RegBrLK3<>@NRegBrLK3 Or (@RegBrLK3 Is Null And @NRegBrLK3 Is Not Null) Or (@RegBrLK3 Is Not Null And @NRegBrLK3 Is Null)
Or @cParam11<>@NcParam11 Or (@cParam11 Is Null And @NcParam11 Is Not Null) Or (@cParam11 Is Not Null And @NcParam11 Is Null)
Or @cParam12<>@NcParam12 Or (@cParam12 Is Null And @NcParam12 Is Not Null) Or (@cParam12 Is Not Null And @NcParam12 Is Null)
Or @dParam14<>@NdParam14 Or (@dParam14 Is Null And @NdParam14 Is Not Null) Or (@dParam14 Is Not Null And @NdParam14 Is Null)
Or @dParam15<>@NdParam15 Or (@dParam15 Is Null And @NdParam15 Is Not Null) Or (@dParam15 Is Not Null And @NdParam15 Is Null)
Or @Datum_Param<>@NDatum_Param Or (@Datum_Param Is Null And @NDatum_Param Is Not Null) Or (@Datum_Param Is Not Null And @NDatum_Param Is Null)
--Or @IzmenetNa<>@NIzmenetNa Or (@IzmenetNa Is Null And @NIzmenetNa Is Not Null) Or (@IzmenetNa Is Not Null And @NIzmenetNa Is Null)
Update ArkaKartKorProm
Set ImeKor=@NImeKor, SMesto=@NSMesto, Adresa=@NAdresa, Posta=@NPosta, Telefon=@NTelefon, LK=@NLK, RegBrLK=@NRegBrLK,
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_podigniarkakat]'))
drop procedure [dbo].[rk_podigniarkakat]
Go
CREATE PROCEDURE rk_PodigniArkaKat
@Sifra_Art Varchar (20)
AS
Select * from ArkaKat where Sifra_Art=@Sifra_Art
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_podigniarkakatatr]'))
drop procedure [dbo].[rk_podigniarkakatatr]
Go
CREATE PROCEDURE rk_PodigniArkaKatAtr
@Sifra_Art varchar(20) = Null,
@Tip_Atr varchaR(20) = Null
AS
if @Sifra_Art is null
Select *
From ArkaKatAtr
else
Select *
From ArkaKatAtr
where Sifra_Art = @Sifra_Art and Tip_Atr = @Tip_Atr
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_podigniarkakatatrsrv]'))
drop procedure [dbo].[rk_podigniarkakatatrsrv]
Go
CREATE PROCEDURE rk_PodigniArkaKatAtrSrv
AS
If dbo.fix_VoCentralaSum() = 'D'
select * from dbo.fix_list_atr()
else
Select * From ArkaKatAtr
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_podigniarkakatlist]'))
drop procedure [dbo].[rk_podigniarkakatlist]
Go
CREATE PROCEDURE rk_PodigniArkaKatList
@Sifra_Art varchar(20) = Null,
@Kluc_Sodrz varchaR(20) = Null
AS
if @Sifra_Art is null
Select *
From ArkaKatList
else
Select *
From ArkaKatList
where Sifra_Art = @Sifra_Art and Kluc_Sodrz = @Kluc_Sodrz
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_podigniarkakatprom]'))
drop procedure [dbo].[rk_podigniarkakatprom]
Go
CREATE PROCEDURE rk_PodigniArkaKatProm
@BrKasa smallint,
@Sifra_Oe smallint,
@NomDolzina as smallint=5
AS
--Redosledot na Select komandite mora da e zapazen zato sto vo kodot se zema po broj na Tabela
Declare @Datum as smalldatetime
Declare @DaliSitePrevz as Char(1)
Select @Datum= PoslPrevz, @DaliSitePrevz = DaliSitePrevz from StatusKasi Where BrKasa=@BrKasa
if @Datum is Null OR @DaliSitePrevz='D'
begin
--0
Select Sifra_Art,ImeArt,EdMera,(case when Len(Nom)>@NomDolzina then Nom else '' end) Nom,ProcOsn,BrVoPak,CenaOsn,CenaAkc,Datum_Od_Akc,Datum_Do_Akc,IzmenetNa,MKProiz,AkcijaDali,Aktiven,Podel3,cParam1,cParam2,dParam3,Podel4,PLUCode,Sifra_Oe
from ArkaKatProm Where Sifra_Oe=@Sifra_Oe
--1
Select * from ABarKod Where Len(Nom)>@NomDolzina
end
else
begin
--0
Select Sifra_Art,ImeArt,EdMera,(case when Len(Nom)>@NomDolzina then Nom else '' end) Nom,ProcOsn,BrVoPak,CenaOsn,CenaAkc,Datum_Od_Akc,Datum_Do_Akc,IzmenetNa,MKProiz,AkcijaDali,Aktiven,Podel3,cParam1,cParam2,dParam3,Podel4,PLUCode,Sifra_Oe
from ArkaKatProm where IzmenetNa>=dateadd(hour,-1,@Datum) And Sifra_Oe=@Sifra_Oe
--1
Select B.* from ABarKod B
Inner Join ArkaKatProm A On A.Sifra_Art = B.Sifra_Art
Where A.IzmenetNa>=dateadd(hour,-1,@Datum) And Sifra_Oe=@Sifra_Oe And Len(B.Nom)>@NomDolzina
--Select * from ABarKod where Sifra_Art in (Select Sifra_Art from ArkaKatProm where IzmenetNa>=dateadd(hour,-1,@Datum))
end
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_podigniarkalog]'))
drop procedure [dbo].[rk_podigniarkalog]
Go
CREATE PROCEDURE rk_PodigniArkaLog
@Sifra_Oe smallint,
@Grp_Kasa smallint,
@BrKasa smallint,
@Broj_ska int,
@TokenStamp bigint
AS
Select * From ArkaLog
Where Sifra_Oe=@Sifra_Oe and Grp_Kasa=@Grp_Kasa and BrKasa=@BrKasa and
Broj_ska=@Broj_Ska and TokenStamp=@TokenStamp
Return @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_podigniarkasoa]'))
drop procedure [dbo].[rk_podigniarkasoa]
Go
CREATE PROCEDURE rk_PodigniArkaSoa
@Sifra_Oe smallint,
@Sifra_Art varchar(20)
as
Select * from ArkaSoa where Sifra_Oe = @Sifra_Oe and Sifra_Art=@Sifra_Art
Return @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_podigniarkasoac]'))
drop procedure [dbo].[rk_podigniarkasoac]
Go
CREATE PROCEDURE rk_PodigniArkaSoaC
@Sifra_Oe smallint
AS
Declare @Datum as smalldatetime
Set @Datum=dbo.fn_VratiDatum(getdate())
Create Table #Promet
(
Sifra_Oe smallint,
Sifra_Art varchar(20),
Promet decimal(18,6)
)
Insert Into #Promet
Select S.Sifra_Oe, S.Sifra_Art, Sum(Case when S.VlIzl = 'I' Then S.Kolic Else -S.Kolic End) -- racunam promet zatoa odam so If Izlez +, a za vlez -
From Stavr S
Inner Join Dokr D On D.DokrID=S.DokrID
Where S.Sifra_Oe = @Sifra_Oe And S.Datum_Dok = @Datum And (D.Prifaten Is Null Or D.Prifaten <> 'D')-- S.Sifra_Dok In (100,101)
Group By S.Sifra_Oe, S.Sifra_Art
Select S.Sifra_Oe, S.Sifra_Art, (S.Vlez-S.Izlez+(Case When P.Promet <> 0 Then P.Promet Else 0 End)) Sostojba
From Soart S
Left Outer Join #Promet P On P.Sifra_Oe=S.Sifra_Oe And P.Sifra_Art=S.Sifra_Art
Where S.Sifra_Oe=@Sifra_Oe
And (S.Vlez-S.Izlez+(Case When P.Promet <> 0 Then P.Promet Else 0 End)) <> 0
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_podigniarkasoas]'))
drop procedure [dbo].[rk_podigniarkasoas]
Go
CREATE PROCEDURE rk_PodigniArkaSoaS
@Sifra_Oe smallint,
@Kasa smallint
AS
Declare @Datum as smalldatetime
Set @Datum=dbo.fn_VratiDatum(getdate())
Create Table #Promet
(
Sifra_Oe smallint,
Sifra_Art varchar(20),
Promet decimal(18,6),
PrometEkstra decimal(18,6)
)
-- da go najdeme prometot od site kasi za denot osven prometot od kasata ssto pussta baranje za prometot
Insert Into #Promet
Select S.Sifra_Oe, S.Sifra_Art, Sum(S.Kolic), 0
From Promet P
Inner Join SPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Where P.BrKasa <> @Kasa And P.Datum_Evid = @Datum And P.Sifra_Oe = @Sifra_Oe
Group By S.Sifra_Oe, S.Sifra_Art
-- artilte koi imaat promet a gi nema vo ArkaSoa
Update #Promet
Set PrometEkstra=Promet
Where Sifra_Art Not In (Select Sifra_Art From ArkaSoa Where Sifra_Oe=@Sifra_Oe)
Select S.Sifra_Oe, S.Sifra_Art, (S.Sostojba-(Case When P.Promet <> 0 Then P.Promet Else 0 End)) Sostojba
From ArkaSoa S
Left Outer Join #Promet P On P.Sifra_Oe=S.Sifra_Oe And P.Sifra_Art=S.Sifra_Art
Where S.Sifra_Oe = @Sifra_Oe And (S.Sostojba-(Case When P.Promet <> 0 Then P.Promet Else 0 End)) <> 0
Union
Select P.Sifra_Oe, P.Sifra_Art, -1*EkstraPromet
From #Promet P
Where P.Sifra_Oe = @Sifra_Oe And EkstraPromet <> 0
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_podigniarkpopis]'))
drop procedure [dbo].[rk_podigniarkpopis]
Go
create PROCEDURE rk_PodigniArkPopis
@Sifra_Oe smallint,
@Datum_Popis smalldatetime,
@Sifra_Art VARCHAR(20)
AS
SELECT * FROM ArkPopis WHERE
Sifra_Oe = @Sifra_Oe AND
Datum_Popis = @Datum_Popis AND
Sifra_Art = @Sifra_Art
RETURN @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_podigniarkpopisred]'))
Set @SSQL = @SSQL + ' dbo.fix_Kade_Pec_Treb(K.Sifra_Podg, S.Spec_Opis) KadePec, '
Set @SSQL = @SSQL + ' T.Sifra_Kup, Kup.ImeKup
From KPromet P
Inner Join KSPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Inner Join Katart K On K.Sifra_Art=S.Sifra_Art
Left Outer Join KartKor KOR On KOR.Sifra_Kor=P.Sifra_Kor
Left Outer Join Operatori O On O.Sifra_Oper=P.Sifra_Oper
Left Outer Join #Tab1 T On T.Sifra_Oe=P.Sifra_Oe And T.Grp_Kasa=P.Grp_Kasa And T.BrKasa=P.BrKasa And T.Broj_Ska=P.Broj_Ska
Left Outer Join Komint Kup On Kup.Sifra_Kup=T.Sifra_Kup
Inner Join Orged OE On OE.Sifra_Oe=P.Sifra_Oe
Where S.Sifra_Oe= ' + cast(@Sifra_Oe as varchar(6)) + ' And S.Grp_Kasa= ' + cast(@Grp_Kasa as varchar(6)) + ' And S.BrKasa= ' + cast(@BrKasa as varchar(6)) +
' And S.Broj_Ska= ' + cast(@Broj_Ska as varchar(10)) + ' '
If @Lokacija Is Not Null And @Ska_Treb <> 'S'
Set @SSQL = @SSQL + ' And dbo.fix_Kade_Pec_Treb(K.Sifra_Podg, S.Spec_Opis) = ' + cast(@Lokacija as varchar(5)) + ' '
If @Ska_Treb = 'S'
Set @SSQL = @SSQL + ' And S.Cena > 0.01 '
Set @SSQL = @SSQL + ' Order By S.Sifra_Oe, S.Grp_Kasa, S.BrKasa, S.Broj_Ska, '
If @Ska_Treb <> 'S'
Set @SSQL = @SSQL + ' dbo.fix_Kade_Pec_Treb(K.Sifra_Podg, S.Spec_Opis) , '
Set @SSQL = @SSQL + ' S.Rbr '
-- (Case When @Ska_Treb = ''S'' Then 0 Else dbo.fix_Kade_Pec_Treb(K.Sifra_Podg, S.Spec_Opis) End), S.Rbr '
print @SSQL
Exec(@SSQL)
-- And S.Sifra_Art Not In (Select Sifra_Art From Katart Where dbo.fix_Kade_Pec_Treb(Sifra_Podg, Null) = 2)
-- And S.Spec_Opis Is Not Null And S.Spec_Opis <> ' '
--select * from #tab1
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_podigniodlpromet]'))
Datum_Evid = @Datum_Evid and BrSmena = @BrSmena and Sifra_Oper = @Sifra_Oper
Order By Brmasa, Sifra_Oper
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_prefrlanjepoenivonaredenmesec]'))
drop procedure [dbo].[rk_prefrlanjepoenivonaredenmesec]
Go
CREATE PROCEDURE rk_PrefrlanjePoeniVoNaredenMesec
@Mesec smallint,
@Godina smallint
AS
Declare @Min_Promet_Za_Voucher decimal(18,4)
set @Min_Promet_Za_Voucher = 1500
Update KartKor_Klub_KumulC
Set Poeni_Prethodni_Meseci = Poeni_Prethodni_Meseci + Poeni_Tekoven_Mesec -- Ne mi e vaka sigurno, Poeni_Tekoven_Mesec = 0 qwe
Where Poeni_Tekoven_Mesec >= @Min_Promet_Za_Voucher
-- Dodadeno novo pravilo: ako PODIGNAL VOUCHER, togas i pomal promet od 1500 denari mu se prefdla vo nareden mesec
Update KartKor_Klub_KumulC
Set Poeni_Prethodni_Meseci = Poeni_Prethodni_Meseci + Poeni_Tekoven_Mesec -- Ne mi e vaka sigurno, Poeni_Tekoven_Mesec = 0 qwe
Where Poeni_Tekoven_Mesec < @Min_Promet_Za_Voucher and Poeni_Tekoven_Mesec > 0 and
month(Datum_Posl_IZdavanje_Voucher) = @Mesec and
year(Datum_Posl_IZdavanje_Voucher) = @Godina
----
Update KartKor_Klub_KumulC
Set Poeni_Tekoven_Mesec = 0
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_pregl_arkakatlist]'))
drop procedure [dbo].[rk_pregl_arkakatlist]
Go
CREATE Procedure rk_Pregl_ArkaKatList
@Kluc_Sodrz varchar(20)= null,
@Sto as char(1)= null,
@KadeRabotam as char(1)= null
AS
Declare @SSQL as varchar(3000)
If @Sto='Z'
Begin
Set @SSQL = ' Select distinct Kluc_Sodrz, count(Sifra_Art) BrArt
From ArkaKatList'
If @Kluc_Sodrz is not null
Set @SSQL = @SSQL+ ' Where 1=1 And Kluc_Sodrz='''+@Kluc_Sodrz+''' '
Set @SSQL = @SSQL+ ' Group by Kluc_Sodrz '
end
else
Begin
Set @SSQL = ' Select A.*, K.ImeArt
From ArkaKAtList A'
If @KadeRabotam='C'
Set @SSQL = @SSQL+ ' Left Outer Join KatArt K on A.Sifra_Art=K.Sifra_Art'
else
Set @SSQL = @SSQL+ ' Left Outer Join ArkaKat K on A.Sifra_Art=K.Sifra_Art'
Set @SSQL = @SSQL+ ' Where 1=1'
If @Kluc_Sodrz is not null
Set @SSQL = @SSQL+ ' And Kluc_Sodrz='''+@Kluc_Sodrz+''' '
end
print (@ssql)
exec (@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_pregl_b2pop]'))
drop procedure [dbo].[rk_pregl_b2pop]
Go
CREATE PROCEDURE rk_Pregl_B2Pop
@Datum_Od smalldatetime = null,
@Datum_Do smalldatetime = null,
@Sifra_Oper smallint = Null,
@Sifra_Oe smallint = Null,
@BrKasa smallint = Null,
@KlucSodrz varchar(20) = ''
AS
Declare @SSQL as varchar(8000)
Declare @SSQLUsl as varchar(8000)
Set @SSQLUsl = ' '
------------------------------------------------------------------- U S L O V ------------------------------------------------------------------------------------
If @Datum_Od Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid >= ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid <= ''' + cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Oper Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Oper = ' + Cast(@Sifra_Oper as varchar(6)) + ' '
If @Sifra_Oe Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
If @BrKasa Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.BrKasa = ' + Cast(@BrKasa as varchar(10)) + ' '
Set @SSQL = @SSQL + ' ORDER BY P.Sifra_Oe, P.Grp_Kasa, P.BrKasa, P.Broj_Ska '
print @SSQL
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_pregl_b2sistem]'))
drop procedure [dbo].[rk_pregl_b2sistem]
Go
CREATE PROCEDURE rk_Pregl_B2sistem
@Sifra_Oe smallint= null,
@Datum_Od smalldatetime = null,
@Datum_Do smalldatetime = null,
@KlucSodrz varchar(20) = null
AS
Declare @SSQL as varchar(8000)
Declare @SSQLUsl as varchar(8000)
Set @SSQLUsl = ' '
------------------------------------------------------------------- U S L O V ------------------------------------------------------------------------------------
If @Datum_Od Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid >= ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid <= ''' + cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_oe Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Oe = ''' + cast(@Sifra_Oe as varchar(5)) + ''' '
------------------------------------------------------------------- U S L O V ------------------------------------------------------------------------------------
If @Datum_Od Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid >= ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid <= ''' + cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Oper Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Oper = ' + Cast(@Sifra_Oper as varchar(6)) + ' '
If @Sifra_Oe Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
If @BrKasa Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.BrKasa = ' + Cast(@BrKasa as varchar(10)) + ' '
Inner Join SPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Inner Join SPrometAdh SA On S.Sifra_Oe=SA.Sifra_Oe And S.Grp_Kasa=SA.Grp_Kasa And S.BrKasa=SA.BrKasa And S.Broj_Ska=SA.Broj_Ska And S.Rbr=SA.Rbr
Left Outer Join ArkaKat K On K.Sifra_Art=S.Sifra_Art
Left Outer Join Katart Art On Art.Sifra_Art = S.Sifra_Art
Left Outer Join Operatori OP On P.Sifra_Oper=OP.Sifra_Oper '
Set @SSQL = @SSQL + ' Where 1=1 ' + @SSQLUsl
Set @SSQL = @SSQL + ' And SA.KlucSodrz= ''' + @KlucSodrz + ''' '
Set @SSQL = @SSQL + ' Order By P.Sifra_Oe, P.Grp_Kasa, P.BrKasa, P.Broj_Ska, S.Rbr '
print @SSQL
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_pregl_brendnagr]'))
drop procedure [dbo].[rk_pregl_brendnagr]
Go
CREATE PROCEDURE rk_Pregl_BrendNagr
@KlucSodrz varchar(20) = null,
@Oznaka2 varchar(40)= null,
@KrtOzn smallint= null,
@Sifra_Oe smallint= null,
@Datum_Od smalldatetime = null,
@Datum_Do smalldatetime = null
AS
Declare @SSQL as varchar(8000)
Declare @SSQLUsl as varchar(8000)
Set @SSQLUsl = ' '
------------------------------------------------------------------- U S L O V ------------------------------------------------------------------------------------
If @Datum_Od Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid >= ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid <= ''' + cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_oe Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Oe = ''' + cast(@Sifra_Oe as varchar(5)) + ''' '
Left Outer Join DrgPodel DP on SP.KrtOzn=DP.Sifra_Drg
WHERE 1=1 '
Set @SSQL = @SSQL + ' And SP.KlucSodrz= ''' + @KlucSodrz + ''' '
If @Oznaka2 is not null
Set @SSQL = @SSQL + ' And SP.Oznaka2= ''' + @Oznaka2 + ''' '
IF @KrtOzn is not null
Set @SSQL = @SSQL + ' And SP.KrtOzn= ''' + cast(@KrtOzn as varchar(9)) + ''' '
If @Sifra_oe is not null
Set @SSQL = @SSQL + ' And SP.Sifra_Oe= ''' + cast(@Sifra_Oe as varchar(3)) + ''' '
Set @SSQL = @SSQL + ' Group BY SP.Sifra_Oe, SP.Oznaka2, SP.KrtOzn, O.ImeOrg, DP.Ime '
Set @SSQL = @SSQL + ' ORDER BY SP.Sifra_Oe, SP.Oznaka2, SP.KrtOzn '
print @SSQL
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_pregl_cenvre]'))
drop procedure [dbo].[rk_pregl_cenvre]
Go
CREATE PROCEDURE rk_Pregl_CenVre
@Datum_Od smalldatetime = null,
@Datum_Do smalldatetime = null,
@Sifra_Oe smallint = Null,
@KlucSodrz varchar(20) = ''
AS
Declare @SSQL as varchar(8000)
Declare @SSQLUsl as varchar(8000)
Set @SSQLUsl = ' '
------------------------------------------------------------------- U S L O V ------------------------------------------------------------------------------------
If @Datum_Od Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid >= ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid <= ''' + cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Oe Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
Set @SSQL = @SSQL + ' ORDER BY P.Sifra_Oe, P.Grp_Kasa, P.BrKasa, P.Broj_Ska '
print @SSQL
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_pregl_logverzii]'))
drop procedure [dbo].[rk_pregl_logverzii]
Go
CREATE PROCEDURE rk_Pregl_LogVerzii
@Datum_Od smalldatetime = null,
@Datum_Do smalldatetime = null,
@BrKasa smallint = Null,
@KlucSodrz varchar(20) = ''
AS
Declare @SSQL as varchar(8000)
Declare @SSQLUsl as varchar(8000)
Set @SSQLUsl = ' '
------------------------------------------------------------------- U S L O V ------------------------------------------------------------------------------------
If @Datum_Od Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And L.Datum >= ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And L.Datum <= ''' + cast(@Datum_Do as varchar(30)) + ''' '
If @BrKasa Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And L.BrKAsa = ' + Cast(@BrKasa as varchar(6)) + ' '
Set @SSQL = ' SELECT L.* , OP.Ime_Oper FROM LogVerzii L
Left Outer Join Operatori OP On L.Sifra_Oper=OP.Sifra_Oper '
Set @SSQL = @SSQL + ' Where 1=1 ' + @SSQLUsl
Set @SSQL = @SSQL + ' ORDER BY L.Datum'
print @SSQL
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_pregl_lstpopust]'))
drop procedure [dbo].[rk_pregl_lstpopust]
Go
CREATE PROCEDURE rk_Pregl_LstPopust
@Datum_Od smalldatetime = null,
@Datum_Do smalldatetime = null,
@Sifra_Oper smallint = Null,
@Sifra_Oe smallint = Null,
@BrKasa smallint = Null,
@KlucSodrz varchar(20) = null
AS
Declare @SSQL as varchar(8000)
Declare @SSQLUsl as varchar(8000)
Set @SSQLUsl = ' '
------------------------------------------------------------------- U S L O V ------------------------------------------------------------------------------------
If @Datum_Od Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid >= ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid <= ''' + cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Oper Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Oper = ' + Cast(@Sifra_Oper as varchar(6)) + ' '
If @Sifra_Oe Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
If @BrKasa Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.BrKasa = ' + Cast(@BrKasa as varchar(10)) + ' '
Set @SSQL = ' SELECT P.Sifra_Oe, P.Grp_Kasa, P.BrKasa, P.Broj_Ska,
P.Sifra_Oper, OP.Ime_Oper, P.Datum_Evid, P.DatumVreme, SA.OpisADH, SA.KrtOzn, case when min(S.Kolic) > 0 then 1 else - 1 end as Kolic, S.Cena, S.Popust, SA.Vredn, SA.Vredn2, SA.Oznaka2 '
Set @SSQL = @SSQL + ' FROM Promet P
Inner Join SPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Inner Join SPrometAdh SA On S.Sifra_Oe=SA.Sifra_Oe And S.Grp_Kasa=SA.Grp_Kasa And S.BrKasa=SA.BrKasa And S.Broj_Ska=SA.Broj_Ska And S.Rbr=SA.Rbr
Left Outer Join Operatori OP On P.Sifra_Oper=OP.Sifra_Oper '
Set @SSQL = @SSQL + ' Where KrtOzn=1001' + @SSQLUsl
Set @SSQL = @SSQL + ' GROUP BY P.Sifra_Oe, P.Grp_Kasa, P.BrKasa, P.Broj_Ska,
Set @SSQL = @SSQL + ' ORDER BY P.Sifra_Oe, P.Grp_Kasa, P.BrKasa, P.Broj_Ska '
print @SSQL
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_pregl_nagradafors]'))
drop procedure [dbo].[rk_pregl_nagradafors]
Go
CREATE PROCEDURE [dbo].[rk_Pregl_NagradaFors]
@Datum_Od smalldatetime = null,
@Datum_Do smalldatetime = null,
@Sifra_Oper smallint = Null,
@Sifra_Oe smallint = Null,
@BrKasa smallint = Null,
@KlucSodrz varchar(20) = 'NAGRFORS'
AS
Declare @SSQL as varchar(8000)
Declare @SSQLUsl as varchar(8000)
Set @SSQLUsl = ' '
------------------------------------------------------------------- U S L O V ------------------------------------------------------------------------------------
If @Datum_Od Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid >= ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid <= ''' + cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Oper Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Oper = ' + Cast(@Sifra_Oper as varchar(6)) + ' '
If @Sifra_Oe Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
If @BrKasa Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.BrKasa = ' + Cast(@BrKasa as varchar(10)) + ' '
Inner Join KPlkProm K On K.Sifra_Oe=P.Sifra_Oe And K.Grp_Kasa=P.Grp_Kasa And K.BrKasa=P.BrKasa And K.Broj_Ska=P.Broj_Ska
Left Outer Join NacPlak N On N.Sifra_Nac=K.Sifra_Nac
Where 1=1'
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' And P.Sifra_Oe = ' + cast(@Sifra_Oe as varchar(6)) + ' '
If @Datum_Od Is Not Null
Set @SSQL = @SSQL + ' And P.Datum_Evid >= ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQL = @SSQL + ' And P.Datum_Evid <= ''' + cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Kup Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_Kup = ''' + @Sifra_Kup + ''' '
If @Sifra_Nac Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_Nac = ' + cast(@Sifra_Nac as varchar(6)) + ' '
Set @SSQL=@SSQL + ' Group By P.Sifra_Oe, P.Grp_Kasa, P.BrMasa, P.Broj_Ska, P.Datum_Evid, K.Sifra_Nac, N.ImeNac '
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_pregl_sumarprod_one]'))
drop procedure [dbo].[rk_pregl_sumarprod_one]
Go
CREATE PROCEDURE [dbo].[rk_Pregl_SumarProd_ONE]
@Sifra_Oe smallint = Null,
@Datum_Od smalldatetime = null,
@Datum_Do smalldatetime = null,
@BrKasa smallint = Null,
@KlucSodrz varchar(20) = 'ONE_ART',
@POSKod varchar(200) = null
AS
Declare @SSQL as varchar(8000)
Declare @SSQLUsl as varchar(8000)
Set @SSQLUsl = ' '
------------------------------------------------------------------- U S L O V ------------------------------------------------------------------------------------
If @Datum_Od Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid >= ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid <= ''' + cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Oe Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
If @BrKasa Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.BrKasa = ' + Cast(@BrKasa as varchar(10)) + ' '
If @POSKod Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And SA.OpisADH = ''' + Cast(@POSKod as varchar(200)) + ''' '
Set @SSQL = ' SELECT P.Sifra_Oe, O.ImeOrg, P.BrKasa, SA.OpisADH, count(*) as BrTrans, sum(SA.Vredn) as VkSuma'
Set @SSQL = @SSQL + ' FROM Promet P
Inner Join SPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Inner Join SPrometAdh SA On S.Sifra_Oe=SA.Sifra_Oe And S.Grp_Kasa=SA.Grp_Kasa And S.BrKasa=SA.BrKasa And S.Broj_Ska=SA.Broj_Ska And S.Rbr=SA.Rbr
Left Outer Join Orged O on O.Sifra_Oe = P.Sifra_Oe '
Set @SSQL = @SSQL + ' Where 1=1 ' + @SSQLUsl
Set @SSQL = @SSQL + ' And SA.KlucSodrz= ''' + @KlucSodrz + ''' '
Set @SSQL = @SSQL + ' Group By P.Sifra_Oe, O.ImeOrg, P.BrKasa, SA.OpisADH '
Set @SSQL = @SSQL + ' Order By P.Sifra_Oe, P.BrKasa, SA.OpisADH '
print @SSQL
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_preglarkpopis]'))
drop procedure [dbo].[rk_preglarkpopis]
Go
CREATE PROCEDURE rk_PreglArkPopis
@Sifra_Oe SMALLINT = NULL,
@DatumOd SMALLDATETIME = NULL,
@DatumDo SMALLDATETIME = NULL,
@Zbirna CHAR(1) = 'D'
AS
DECLARE @SSQL AS VARCHAR(1000)
If @Zbirna = 'D'
BEGIN
SET @SSQL = 'SELECT A.Sifra_Art, K.ImeArt, A.Rbr, SUM(A.Kolic) As Kolic, A.EAN_UCD FROM ArkPopis A
LEFT OUTER JOIN Katart K ON A.Sifra_Art = K.Sifra_Art '
IF @Sifra_Oe IS NOT NULL
SET @SSQL = @SSQL + ' WHERE A.Sifra_Oe = ' + CAST(@Sifra_Oe AS VARCHAR(10))
ELSE
--SET @SSQL = @SSQL + ' WHERE '
IF @DatumOd IS NOT NULL AND @DatumDo IS NOT NULL
BEGIN
IF @Sifra_Oe IS NOT NULL
SET @SSQL = @SSQL + ' AND '
ELSE
SET @SSQL = @SSQL + ' WHERE '
SET @SSQL = @SSQL + ' A.Datum_Popis>=''' + CAST(@DatumOd AS VARCHAR(100)) + ''' '
SET @SSQL = @SSQL + ' AND A.Datum_Popis>=''' + CAST(@DatumDo AS VARCHAR(100)) + ''' '
END
SET @SSQL = @SSQL + ' GROUP BY A.Sifra_Art, K.ImeArt, A.Rbr, Kolic, A.EAN_UCD ORDER BY A.Sifra_Art, A.Rbr'
END
ELSE
BEGIN
SET @SSQL = 'SELECT A.Sifra_Art, K.ImeArt, A.Rbr, A.Kolic KolicVk, 1 as KolicSer, A.EAN_UCD, S.SerBr FROM ArkPopis A
INNER JOIN ArkPopisSta S ON A.Sifra_Art=S.Sifra_Art
LEFT OUTER JOIN Katart K ON A.Sifra_Art = K.Sifra_Art '
IF @Sifra_Oe IS NOT NULL
SET @SSQL = @SSQL + ' WHERE A.Sifra_Oe = ' + CAST(@Sifra_Oe AS VARCHAR(10))
ELSE
-- SET @SSQL = @SSQL + ' WHERE '
IF @DatumOd IS NOT NULL AND @DatumDo IS NOT NULL
BEGIN
IF @Sifra_Oe IS NOT NULL
SET @SSQL = @SSQL + ' AND '
ELSE
SET @SSQL = @SSQL + ' WHERE '
SET @SSQL = @SSQL + ' A.Datum_Popis>=''' + CAST(@DatumOd AS VARCHAR(100)) + ''' '
SET @SSQL = @SSQL + ' AND A.Datum_Popis>=''' + CAST(@DatumDo AS VARCHAR(100)) + ''' '
END
SET @SSQL = @SSQL + ' GROUP BY A.Sifra_Art, K.ImeArt, A.Rbr, Kolic, A.EAN_UCD, S.SerBr ORDER BY A.Sifra_Art, A.Rbr'
END
EXEC(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_pregled_arkakat]'))
drop procedure [dbo].[rk_pregled_arkakat]
Go
CREATE PROCEDURE rk_Pregled_ArkaKat
@Sifra_Art_Od varchar(20) = Null,
@Sifra_Art_Do varchar(20) = Null
AS
Declare @SSQL as varchar(8000)
Set @SSQL = ' Select * From ArkaKat A where 1=1'
If @Sifra_Art_Od Is Not Null
Set @SSQL = @SSQL + ' and A.Sifra_Art >= ''' + @Sifra_Art_Od + ''' '
If @Sifra_Art_Do Is Not Null
Set @SSQL = @SSQL + ' And A.Sifra_Art <= ''' + @Sifra_Art_Do + ''' '
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_pregled_izmceni]'))
drop procedure [dbo].[rk_pregled_izmceni]
Go
CREATE PROCEDURE rk_Pregled_IzmCeni
@Datum_Od Smalldatetime,
@Datum_Do Smalldatetime,
@Sifra_Art_Od varchar(20) = Null,
@Sifra_Art_Do varchar(20) = Null,
@KolkuPromeni int = Null Output
AS
Set @Datum_Do = @Datum_Do + 1 -- Bidejki ima VREME vo Koga
Declare @SSQL as varchar(8000)
Set @SSQL = ' Select A.*, K.ImeArt, K.EdMera, K.Nom
From ArkaIzmCeni A
Left Outer Join ArkaKat K On A.Sifra_Art = K.Sifra_Art
Where Koga >= ''' + Cast(@Datum_Od as varchar(30)) + ''' And Koga < ''' + Cast(@Datum_Do as varchar(20)) + ''' '
If @Sifra_Art_Od Is Not Null
Set @SSQL = @SSQL + ' And A.Sifra_Art >= ''' + @Sifra_Art_Od + ''' '
If @Sifra_Art_Do Is Not Null
Set @SSQL = @SSQL + ' And A.Sifra_Art <= ''' + @Sifra_Art_Do + ''' '
Exec(@SSQL)
Create Table #Prom
(
KolkuPromeni Int
)
Set @SSQL = ' Select Count(Distinct Sifra_Art) From ArkaIzmCeni Where Koga >= ''' + Cast(@Datum_Od as varchar(30)) + ''' And Koga < ''' + Cast(@Datum_Do as varchar(20)) + ''' '
If @Sifra_Art_Od Is Not Null
Set @SSQL = @SSQL + ' And Sifra_Art >= ''' + @Sifra_Art_Od + ''' '
If @Sifra_Art_Do Is Not Null
Set @SSQL = @SSQL + ' And Sifra_Art <= ''' + @Sifra_Art_Do + ''' '
Insert Into #Prom Exec(@SSQL)
Set @KolkuPromeni = (Select KolkuPromeni From #Prom)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_pregled_katopcii]'))
Sum(Case When S.Proc_Osn >15 Then (S.Kolic * S.Cena / (1+S.Popust/100) / (1+S.Proc_Osn/100) * (S.Proc_Osn/100)*A.Dolzi/Ska.Iznos) Else 0 End) Danok1,
Sum(Case When S.Proc_Osn <=15 Then (S.Kolic * S.Cena / (1+S.Popust/100) / (1+S.Proc_Osn/100) * (S.Proc_Osn/100)*A.Dolzi/Ska.Iznos) Else 0 End) Danok2
FROM ArkaKartKpm A '
If @KorisnikOd = 'K'
Set @SSQL = @SSQL + ' Left Outer Join KartKor K On K.Sifra_Kor = A.Sifra_Kor '
Else
Set @SSQL = @SSQL + ' Left Outer Join ArkaKartKor K ON K.Sifra_Kor = A.Sifra_Kor '
Set @SSQL = @SSQL + ' Left Outer Join #Ska Ska On Ska.Sifra_Oe = A.Sifra_Oe and Ska.Grp_Kasa=A.Grp_Kasa and Ska.BrKasa=A.BrKasa and Ska.Broj_Ska=A.Broj_Ska
Left Outer Join Promet P ON P.Sifra_Oe = A.Sifra_Oe and P.Grp_Kasa=A.Grp_Kasa and P.BrKasa=A.BrKasa and P.Broj_Ska=A.Broj_Ska
Left Outer Join SPromet S ON S.Sifra_Oe = A.Sifra_Oe and S.Grp_Kasa=A.Grp_Kasa and S.BrKasa=A.BrKasa and S.Broj_Ska=A.Broj_Ska
Where 1=1 '
Set @SSQL = @SSQL + @SSQLUsl
Set @SSQL = @SSQL + ' Group By A.Sifra_Oe, A.Grp_Kasa, A.BrKasa, A.Broj_Ska, A.Sifra_Kor,P.Sifra_Oper, K.ImeKor,K.Sifra_TipKartKor, A.Sifra_Nac, A.cDatumSka,
SELECT @Sifra_OE = Sifra_oe FROM Dokr WHERE DokrID = @DokrID
ELSE
SET @Sifra_OE = @Sifra_OEPr
SELECT @Sifra_OE_Sur0 = Sifra_OE_Sur FROM GotovSurovOrg WHERE Sifra_OE_Got = @Sifra_OE AND Reden=0
SELECT @Sif_GrOrg = G.Sif_GrOrg FROM GrOrg G Inner Join SGrOrg S On G.Sif_GrOrg=S.Sif_GrOrg And S.Sifra_OE= @Sifra_OE WHERE G.GotovPro='D'
IF @Sifra_OE_Sur0 IS NULL SET @Sifra_OE_Sur0 = @Sifra_OE
SELECT @DanCenaOESur0 = CeniSoDanok FROM Orged WHERE Sifra_OE = @Sifra_OE_Sur0
IF @DokrID IS NOT NULL
INSERT INTO #TmpStavr (Sifra_art, Kolic, DaliSurov, POsn, DokCena, DanDokCena)
SELECT S.Sifra_Art, S.Kolic, A.DaliSurov, S.POsn, S.DokCena, S.DanDokCena FROM Stavr S
INNER JOIN KatArt A ON S.Sifra_Art = A.Sifra_Art WHERE S.DokrID = @DokrID
ELSE
Begin
IF @KoiNacPlak IS NULL
BEGIN
SET @SSQLPom = 'SELECT S.Sifra_Art, S.Kolic, A.DaliSurov, S.Proc_Osn, S.Cena, ''D'' FROM KSPromet S
INNER JOIN KatArt A ON S.Sifra_Art = A.Sifra_Art
INNER JOIN KPromet P ON P.Sifra_OE=S.Sifra_OE AND P.Grp_Kasa=S.Grp_Kasa AND
P.BrKasa=S.BrKasa AND P.Broj_Ska=S.Broj_Ska AND P.Datum_evid>=''' + cast(@Datum as varchar(35))+''' AND P.Datum_evid<=''' + cast(@DatumDo as varchar(35))+'''
WHERE S.Sifra_OE = '+cast(@Sifra_OE as varchar(5))+' AND A.SMatUsl=''M'' '
If @Drugo1 Is NOT Null
SET @SSQLPom = @SSQLPom + 'AND A.Drugo1 =''' + Cast(@Drugo1 As Varchar(6)) + ''' '
SET @SSQL = 'SELECT S.Sifra_Art, S.Kolic, A.DaliSurov, S.Proc_Osn, S.Cena, ''D'' FROM KSPromet S
INNER JOIN KatArt A ON S.Sifra_Art = A.Sifra_Art
INNER JOIN KPromet P ON P.Sifra_OE=S.Sifra_OE AND P.Grp_Kasa=S.Grp_Kasa AND
P.BrKasa=S.BrKasa AND P.Broj_Ska=S.Broj_Ska AND P.Datum_evid>=''' + cast(@Datum as varchar(35))+''' AND P.Datum_evid<=''' + cast(@DatumDo as varchar(35))+'''
INNER JOIN KPlkProm PL ON PL.Sifra_OE=S.Sifra_OE AND PL.Grp_Kasa=S.Grp_Kasa AND
PL.BrKasa=S.BrKasa AND PL.Broj_Ska=S.Broj_Ska
WHERE S.Sifra_OE = '+cast(@Sifra_OE as varchar(5))+' AND A.SMatUsl=''M'' AND PL.Sifra_Nac IN ('+@KoiNacPlak+') '
If @Drugo1 Is NOT Null
SET @SSQL = @SSQL + 'AND A.Drugo1 =''' + Cast(@Drugo1 As Varchar(6)) + ''' '
--UPDATE #TmpStavr SET Rasknizen='D' WHERE DaliSurov = 'T' OVA E PREFRLENO NA KRAJ
INSERT INTO #TmpZaRaskn (Sifra_OE, Sifra_Art, Kolic, DokCena)
SELECT O.Sifra_OE_Sur, S.Sifra_Sur, (Case When (S.Za_Kolku<=0 Or S.Za_Kolku Is Null) Then (S.Kolicina * T.Kolic) Else (S.Kolicina * T.Kolic / S.Za_Kolku) End), 0 -- * S.Za_Kolku dod G 13.09.05
FROM #TmpStavr T
INNER JOIN GSostav S ON T.Sifra_art = S.Sifra_Art AND S.Sif_GrOrg = @Sif_GrOrg
INNER JOIN GotovSurovOrg O ON S.Reden = O.Reden AND O.Sifra_OE_Got = @Sifra_OE --WHERE T.DaliSurov <> 'T'
UPDATE #TmpStavr SET Rasknizen='D' FROM GSostav S, GotovSurovOrg O
WHERE #TmpStavr.Sifra_art = S.Sifra_Art AND S.Sif_GrOrg=@Sif_GrOrg AND S.Reden=O.Reden AND O.Sifra_OE_Got=@Sifra_OE
-- AND #TmpStavr.DaliSurov <> 'T'
IF @SamoOdGSostav <> 'D'
Begin
INSERT INTO #TmpZaRaskn (Sifra_OE, Sifra_Art, Kolic, DokCena)
SELECT @Sifra_OE_Sur0, S.Sifra_Sur, (Case When (S.Za_Kolku <=0 Or S.Za_Kolku Is Null) Then (S.Ima_Kolic * T.Kolic) Else (S.Ima_Kolic * T.Kolic / S.Za_Kolku) End), 0 -- * S.Za_Kolku dod G 13.09.05
FROM #TmpStavr T
INNER JOIN Sostav S ON T.Sifra_art = S.Sifra_Art
WHERE T.Sifra_Art NOT IN (SELECT Sifra_Art FROM GSostav WHERE Sif_GrOrg = @Sif_GrOrg) -- AND T.DaliSurov <> 'T'
UPDATE #TmpStavr SET Rasknizen='D' FROM Sostav S WHERE #TmpStavr.Sifra_art = S.Sifra_Art
AND #TmpStavr.Sifra_Art NOT IN (SELECT Sifra_Art FROM GSostav WHERE Sif_GrOrg = @Sif_GrOrg) --AND #TmpStavr.DaliSurov <> 'T'
End
INSERT INTO #TmpZaRaskn (Sifra_OE, Sifra_Art, Kolic, DokCena, DanDokCena)
FROM Soart S, Orged O, KatArt A, Tarifi T WHERE #TmpZaRaskn.Sifra_OE = S.Sifra_OE AND #TmpZaRaskn.Sifra_Art = S.Sifra_Art AND
S.Sifra_OE = O.Sifra_OE AND S.Sifra_Art = A.Sifra_Art AND A.Sifra_Tar = T.Sifra_Tar
-- #TmpZaRaskn.DokCena = 0 AND
IF @DokrID IS NOT NULL
SELECT @Sifra_ArtNemaRaskn = Sifra_Art FROM #TmpStavr
--WHERE Rasknizen='N'
ELSE
Begin
SET @Sifra_ArtNemaRaskn = ''
Declare TabNeRaskn Cursor Fast_Forward For
Select DISTINCT Sifra_Art From #TmpStavr
--WHERE Rasknizen='N'
Open TabNeRaskn
Fetch Next From TabNeRaskn Into @SifArt
While @@Fetch_Status = 0
Begin
IF @Sifra_ArtNemaRaskn <>'' SET @Sifra_ArtNemaRaskn = @Sifra_ArtNemaRaskn + ', '
SET @Sifra_ArtNemaRaskn = @Sifra_ArtNemaRaskn + @SifArt
Fetch Next From TabNeRaskn Into @SifArt
End
Close TabNeRaskn
Deallocate TabNeRaskn
End
-----dod. 21.12.2005 za formiranje na vlezen dokument vo nekoj druga org. edinica
CREATE TABLE #TmpZaVlez
(Sifra_OE smallint,
Sifra_Art varchar(20),
Kolic decimal(18,6),
DokCena decimal(18,6),
DanDokCena char(1) )
--PRETPOSTAVKI: 1. ima eden nacin na plakanje na smetkata,
IF @DokrID IS NULL -- 2. artiklite se 1:1, inace cenata na vlezniot ne e korektna
Begin -- 3. za artiklite se vneseni sostavnici
CREATE TABLE #TmpGotArtCeni
(Sifra_Art varchar(20),
Cena decimal(18,6),
DanCena char(1))
CREATE TABLE #TmpOEVlez
(Sifra_OE smallint,
Sif_GrOrg char(6),
Sifra_OE_Sur0 smallint,
DanCena char(1))
INSERT INTO #TmpOEVlez ( Sifra_OE)
SELECT DISTINCT N.Sifra_OE FROM KSPromet S
INNER JOIN KPromet P ON P.Sifra_OE=S.Sifra_OE AND P.Grp_Kasa=S.Grp_Kasa AND
P.BrKasa=S.BrKasa AND P.Broj_Ska=S.Broj_Ska AND P.Datum_Evid>=@Datum AND P.Datum_Evid<=@DatumDo
INNER JOIN KPlkProm Pl ON P.Sifra_OE=Pl.Sifra_OE AND P.Grp_Kasa=Pl.Grp_Kasa AND
P.BrKasa=Pl.BrKasa AND P.Broj_Ska=Pl.Broj_Ska
INNER JOIN NacPlak N ON Pl.Sifra_Nac = N.Sifra_Nac
WHERE S.Sifra_OE = @Sifra_OE AND Pl.Sifra_Nac IN
(Select Sifra_Nac FROM NacPlak WHERE Sifra_OE IS NOT NULL)
UPDATE #TmpOEVlez SET Sifra_OE_Sur0 = G.Sifra_OE_Sur FROM GotovSurovOrg G WHERE G.Sifra_OE_Got = #TmpOEVlez.Sifra_OE AND G.Reden=0
UPDATE #TmpOEVlez SET Sif_GrOrg = G.Sif_GrOrg FROM GrOrg G, SGrOrg S WHERE G.Sif_GrOrg=S.Sif_GrOrg And S.Sifra_OE= #TmpOEVlez.Sifra_OE AND G.GotovPro='D'
UPDATE #TmpOEVlez SET Sifra_OE_Sur0 = Sifra_OE WHERE Sifra_OE_Sur0 IS NULL
UPDATE #TmpOEVlez SET DanCena = O.CeniSoDanok FROM Orged O WHERE O.Sifra_OE = #TmpOEVlez.Sifra_OE_Sur0
Declare @VSifra_OE smallint
Declare @VSif_GrOrg char(6)
Declare @VSifra_OE_Sur0 smallint
Declare @VDanCena char(1)
Declare CVL Cursor Fast_Forward For
Select Sifra_OE, Sif_GrOrg, Sifra_OE_Sur0, DanCena From #TmpOEVlez
Open CVL
Fetch Next From CVL Into @VSifra_OE, @VSif_GrOrg, @VSifra_OE_Sur0, @VDanCena
While @@Fetch_Status = 0
Begin
DELETE FROM #TmpStavr
INSERT INTO #TmpStavr (Sifra_art, Kolic, DaliSurov, POsn, DokCena, DanDokCena)
SELECT S.Sifra_Art, S.Kolic, A.DaliSurov, S.Proc_Osn, S.Cena, 'D' FROM KSPromet S
INNER JOIN KatArt A ON S.Sifra_Art = A.Sifra_Art
INNER JOIN KPromet P ON P.Sifra_OE=S.Sifra_OE AND P.Grp_Kasa=S.Grp_Kasa AND
P.BrKasa=S.BrKasa AND P.Broj_Ska=S.Broj_Ska AND P.Datum_evid>=@Datum AND P.Datum_evid<=@DatumDo
INNER JOIN KPlkProm Pl ON P.Sifra_OE=Pl.Sifra_OE AND P.Grp_Kasa=Pl.Grp_Kasa AND
P.BrKasa=Pl.BrKasa AND P.Broj_Ska=Pl.Broj_Ska
WHERE S.Sifra_OE = @Sifra_OE AND A.SMatUsl='M' AND Pl.Sifra_Nac IN
(Select Sifra_Nac FROM NacPlak WHERE Sifra_OE =@VSifra_OE)
UPDATE #TmpStavr SET DaliSurov='' WHERE DaliSurov IS NULL
UPDATE #TmpStavr SET Rasknizen='N'
DELETE FROM #TmpGotArtCeni
INSERT INTO #TmpGotArtCeni (Sifra_Art, Cena, DanCena)
SELECT S.Sifra_Art, Sum(Case When S.Za_Kolku<=0 Or S.Za_Kolku Is Null Then S.Ima_Kolic Else S.Ima_Kolic/S.Za_Kolku End * dbo.fn_VratiCena (SO.Cena, SO.POsn, SO.DanCena, 'D')), 'D'
FROM Sostav S INNER JOIN SoArt SO ON SO.sifrA_oe = @Sifra_OEPr and S.Sifra_Sur = SO.Sifra_Art GROUP BY S.Sifra_Art
UPDATE #TmpStavr SET DokCena = #TmpGotArtCeni.Cena, DanDokCena=#TmpGotArtCeni.DanCena
FROM #TmpGotArtCeni WHERE #TmpStavr.Sifra_Art= #TmpGotArtCeni.Sifra_Art AND #TmpStavr.DaliSurov <> 'T'
-- Problem voocen Dec 28, 2005 DK
-- T.POSN e od gotoviot proizvod, a ne od surovinata
INSERT INTO #TmpZaVlez (Sifra_OE, Sifra_Art, Kolic, DokCena, DanDokCena)
SELECT O.Sifra_OE_Sur, S.Sifra_Sur, (Case When (S.Za_Kolku<=0 Or S.Za_Kolku Is Null) Then (S.Kolicina * T.Kolic) Else (S.Kolicina * T.Kolic / S.Za_Kolku) End),
where KodParam = @KodParam and PodTipParam = @PodTipParam and Aktiven = 'D' and
@Datum >= VaziOd and (VaziDo is null or @Datum <= VaziDo) and
cPole1 is not null and cPole1 <> 0
if exists (select top 1 Sifra_art from BonSpecFors where BrKasa = @BrKasa)
set @ImaLi = 'D'
else
set @ImaLi = 'N'
Set Nocount Off
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_prevzprometoddrbaza]'))
drop procedure [dbo].[rk_prevzprometoddrbaza]
Go
CREATE PROCEDURE rk_PrevzPrometOdDrBaza
@Sifra_OE smallint,
@Datum_Od smalldatetime,
@Datum_Do smalldatetime,
@ImeBaza varchar(30)
AS
Declare @SSQL varchar(4000)
SET @SSQL='INSERT INTO KPromet SELECT * FROM '+@ImeBaza+'..KPromet WHERE Sifra_OE='+Cast(@Sifra_OE as varchar(4))+'
AND Datum_Evid>='''+cast(@Datum_Od as varchar(30))+''' AND Datum_Evid<='''+cast(@Datum_Do as varchar(30))+''' '
EXEC (@SSQL)
SET @SSQL='INSERT INTO KPlkProm SELECT PL.* FROM '+@ImeBaza+'..KPlkProm PL
INNER JOIN '+@ImeBaza+'..KPromet P ON PL.Sifra_OE=P.Sifra_OE AND PL.Grp_Kasa=P.Grp_Kasa AND PL.BrKasa=P.BrKasa AND PL.Broj_Ska=P.Broj_Ska
WHERE PL.Sifra_OE='+Cast(@Sifra_OE as varchar(4))+' AND P.Datum_Evid>='''+cast(@Datum_Od as varchar(30))+''' AND P.Datum_Evid<='''+cast(@Datum_Do as varchar(30))+''' '
EXEC (@SSQL)
SET @SSQL='INSERT INTO KSPromet SELECT PL.* FROM '+@ImeBaza+'..KSPromet PL
INNER JOIN '+@ImeBaza+'..KPromet P ON PL.Sifra_OE=P.Sifra_OE AND PL.Grp_Kasa=P.Grp_Kasa AND PL.BrKasa=P.BrKasa AND PL.Broj_Ska=P.Broj_Ska
WHERE PL.Sifra_OE='+Cast(@Sifra_OE as varchar(4))+' AND P.Datum_Evid>='''+cast(@Datum_Od as varchar(30))+''' AND P.Datum_Evid<='''+cast(@Datum_Do as varchar(30))+''' '
EXEC (@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_prodazba_vidoviproizvodi]'))
drop procedure [dbo].[rk_prodazba_vidoviproizvodi]
Go
CREATE PROCEDURE rk_Prodazba_VidoviProizvodi
@Sifra_Oe smallint = Null,
@KoiOe char(6) = Null,
@Datum_Od smalldatetime = Null,
@Datum_Do smalldatetime = Null,
@Sifra_Nac smallint = Null,
@Sifra_Oper smallint = Null,
@Sifra_ArtOd varchar(20) = Null,
@Sifra_ArtDo varchar(20) = Null,
@Sifra_Gr char(3) = Null,
@Sifra_Podg char(6) = Null,
@Sifra_Drg smallint = Null,
@Sifra_Drg1 smallint = Null,
@ADrugo1 smallint = Null,
@ADrugo2 smallint = Null,
@ADrugo3 smallint = Null,
@ADrugo4 smallint = Null,
@ADrugo5 smallint = Null,
@Sifra_Kup char(6) = Null,
@KojIzv char(1) = 'N', -- N - Po Nacini na plakanje, D - Po Datum, O - Po Organizacioni edinici
Set @SSQL = 'Select Null as Sifra_Nac, Null as ImeNac, Null as Sifra_Kup, Null as ImeKup, K.Sifra_Drg, D.Ime ImeDrg, P.Datum_Evid, Null as Sifra_Oe, Null as ImeOrg, '
Else If @KojIzv = 'O'
Set @SSQL = 'Select Null as Sifra_Nac, Null as ImeNac, Null as Sifra_Kup, Null as ImeKup, K.Sifra_Drg, D.Ime ImeDrg, Null Datum_Evid, P.Sifra_Oe, O.ImeOrg, '
Else
Set @SSQL = 'Select T.Sifra_Nac, N.ImeNac, T.Sifra_Kup, Kup.ImeKup, K.Sifra_Drg, D.Ime ImeDrg, Null as Datum_Evid, Null as Sifra_Oe, Null as ImeOrg, '
Set @SSQL = @SSQL + ' Sum(S.Kolic*T.Procent) Kolic, Sum(S.Kolic*T.Procent*S.Cena*(1-S.Popust/100)) Vrednost
From KPromet P
Inner Join KSPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Inner Join #Tmp1 T On T.Sifra_Oe=P.Sifra_Oe And T.Grp_Kasa=P.Grp_Kasa And T.BrKasa=P.BrKasa And T.Broj_Ska=P.Broj_Ska
Inner Join Katart K On K.Sifra_Art=S.Sifra_Art
Left Outer Join DrgPodel D On D.Sifra_Drg=K.Sifra_Drg
Inner Join NacPlak N On N.Sifra_Nac=T.Sifra_Nac
Left Outer Join Komint Kup On Kup.Sifra_Kup=T.Sifra_Kup '
If @KojIzv = 'O'
Set @SSQL = @SSQL + ' Inner Join Orged O On O.Sifra_Oe=P.Sifra_Oe '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + ' Inner Join Podgrupi PG On PG.Sifra_Podg=K.Sifra_Podg '
If @Sifra_Drg1 Is Not Null
Set @SSQL = @SSQL + ' Left Outer Join DrgPodel B On B.Sifra_Drg=K.Sifra_Drg '
-- Uslov
Set @SSQLUsl = @SSQLUsl + ' Where 1=1 ' If @Sifra_Nac Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And T.Sifra_Nac= ' + cast(@Sifra_Nac as varchar(6)) + ' '
If @ADrugo5 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo5 = ' + cast(@ADrugo5 as varchar(6)) + ' '
If @ADrugo4 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo4 = ' + cast(@ADrugo4 as varchar(6)) + ' '
If @ADrugo3 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo3 = ' + cast(@ADrugo3 as varchar(6)) + ' '
If @ADrugo2 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo2 = ' + cast(@ADrugo2 as varchar(6)) + ' '
If @ADrugo1 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo1 = ' + cast(@ADrugo1 as varchar(6)) + ' '
If @Sifra_Drg1 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And B.Sifra_Drg1 = ' + cast(@Sifra_Drg1 as varchar(6)) + ' '
If @Sifra_Drg Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Sifra_Drg = ' + cast(@Sifra_Drg as varchar(6)) + ' '
If @Sifra_Gr Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And PG.Sifra_Gr = ''' + @Sifra_Gr + ''' '
If @Sifra_Podg Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Sifra_Podg = ''' + @Sifra_Podg + ''' '
If @Sifra_Oper Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Oper = ' + cast(@Sifra_Oper as varchar(6)) + ' '
If @KoiOE Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_OE In (Select Sifra_OE From SGrOrg Where Sif_GrOrg=''' + Cast(@KoiOE As Varchar(6)) + ''') '
If @Sifra_Oe Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Oe = ' + cast(@Sifra_Oe as varchar(6)) + ' '
If @Sifra_ArtOd Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_Art >= ''' + @Sifra_ArtOd + ''' '
If @Sifra_ArtDo Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_Art <= ''' + @Sifra_ArtDo + ''' '
If @Datum_Od Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid >= ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid <= ''' + cast(@Datum_Do as varchar(30)) + ''' '
-- Group by
If @KojIzv = 'D'
Set @SSQLGroup = @SSQLGroup + ' Group By K.Sifra_Drg, D.Ime, P.Datum_Evid '
Else If @KojIzv = 'O'
Set @SSQLGroup = @SSQLGroup + ' Group By K.Sifra_Drg, D.Ime, P.Sifra_Oe, O.ImeOrg '
Else
Set @SSQLGroup = @SSQLGroup + ' Group By T.Sifra_Nac, N.ImeNac, T.Sifra_Kup, Kup.ImeKup, K.Sifra_Drg, D.Ime '
If @KojIzv = 'D'
Set @SSQLGroup = @SSQLGroup + ' Order By P.Datum_Evid, K.Sifra_Drg '
Else If @KojIzv = 'O'
Set @SSQLGroup = @SSQLGroup + ' Order By P.Sifra_Oe, K.Sifra_Drg '
Else
Set @SSQLGroup = @SSQLGroup + ' Order By T.Sifra_Nac, T.Sifra_Kup, K.Sifra_Drg '
print @SSQL+@SSQLUsl+@SSQLGroup
Exec(@SSQL+@SSQLUsl+@SSQLGroup)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- Kolku razlicni brendovi ima vo rezultatot
Create Table #KolkuDrg
(
Brendovi int
)
Set @SSQL = ' Select Count(Distinct K.Sifra_Drg)
From KPromet P
Inner Join KSPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Inner Join #Tmp1 T On T.Sifra_Oe=P.Sifra_Oe And T.Grp_Kasa=P.Grp_Kasa And T.BrKasa=P.BrKasa And T.Broj_Ska=P.Broj_Ska
Inner Join Katart K On K.Sifra_Art=S.Sifra_Art '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + ' Inner Join Podgrupi PG On PG.Sifra_Podg=K.Sifra_Podg '
If @Sifra_Drg1 Is Not Null
Set @SSQL = @SSQL + ' Left Outer Join DrgPodel B On B.Sifra_Drg=K.Sifra_Drg '
Insert Into #KolkuDrg Exec (@SSQL + @SSQLUsl)
Select @KolkuDrg=Brendovi From #KolkuDrg
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_prodazbabiznissalon]'))
Inner Join SPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Inner Join PlkProm L On L.Sifra_Oe=P.Sifra_Oe And L.Grp_Kasa=P.Grp_Kasa And L.BrKasa=P.BrKasa And L.Broj_Ska=P.Broj_Ska And L.Rbr=1
Left Outer Join ArkaKat A On A.Sifra_Art=S.Sifra_Art
Left Outer Join Katart K On K.Sifra_Art = S.Sifra_Art
Left Outer Join Operatori OP On P.Sifra_Oper=OP.Sifra_Oper
Left Outer Join Komint Kom On P.Sifra_Klient=Kom.Sifra_Kup '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + ' Left Outer Join Podgrupi PG On PG.Sifra_Podg=K.Sifra_Podg '
If @Sifra_Drg1 Is Not Null
Set @SSQL = @SSQL + ' Left Outer Join DrgPodel B On B.Sifra_Drg=K.Sifra_Drg '
If @PrikaziSite = 'N'
Set @SSQL = @SSQL + ' Left Outer Join SPrometAdh SA On S.Sifra_Oe=SA.Sifra_Oe And S.Grp_Kasa=SA.Grp_Kasa And S.BrKasa=SA.BrKasa And S.Broj_Ska=SA.Broj_Ska And S.Rbr=SA.Rbr '
Set @SSQL = @SSQL + ' Where 1=1 '
If @PrikaziSite = 'N'
Set @SSQL = @SSQL + ' And (SA.Oznaka<>''N'' Or SA.Oznaka Is Null) '
If @ADrugo7 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo7 = ' + cast(@ADrugo7 as varchar(6)) + ' '
If @ADrugo6 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo6 = ' + cast(@ADrugo6 as varchar(6)) + ' '
If @ADrugo5 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo5 = ' + cast(@ADrugo5 as varchar(6)) + ' '
If @ADrugo4 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo4 = ' + cast(@ADrugo4 as varchar(6)) + ' '
If @ADrugo3 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo3 = ' + cast(@ADrugo3 as varchar(6)) + ' '
If @ADrugo2 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo2 = ' + cast(@ADrugo2 as varchar(6)) + ' '
If @ADrugo1 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo1 = ' + cast(@ADrugo1 as varchar(6)) + ' '
If @Sifra_Drg1 Is Not Null
Set @SSQL = @SSQL + ' And B.Sifra_Drg1 = ' + cast(@Sifra_Drg1 as varchar(6)) + ' '
If @Sifra_Drg Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_Drg = ' + cast(@Sifra_Drg as varchar(6)) + ' '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + ' And PG.Sifra_Gr = ''' + @Sifra_Gr + ''' '
If @Sifra_Podg Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_Podg = ''' + @Sifra_Podg + ''' '
If @Datum_Od Is Not Null
Set @SSQL = @SSQL + ' And P.Datum_Evid >= ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQL = @SSQL + ' And P.Datum_Evid <= ''' + cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Oper Is Not Null
Set @SSQL = @SSQL + ' And P.Sifra_Oper = ' + Cast(@Sifra_Oper as varchar(6)) + ' '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' And P.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
If @BrKasa Is Not Null
Set @SSQL = @SSQL + ' And P.BrKasa = ' + Cast(@BrKasa as varchar(10)) + ' '
If @Broj_Ska_Od Is Not Null
Set @SSQL = @SSQL + ' And P.Broj_Ska >= ' + Cast(@Broj_Ska_Od as varchar(10)) + ' '
If @Broj_Ska_Do Is Not Null
Set @SSQL = @SSQL + ' And P.Broj_Ska <= ' + Cast(@Broj_Ska_Do as varchar(10)) + ' '
If @BrojBlok Is Not Null
Set @SSQL = @SSQL + ' And P.BrojBlok = ' + Cast(@BrojBlok as varchar(10)) + ' '
If @SamoFakturi = 'D' Set @SSQL = @SSQL + ' And P.Sifra_Klient is not null and P.Sifra_Klient <> '''' '
If @TipSmetka Is Not Null
Set @SSQL = @SSQL + ' And P.TipSmetka = ''' + @TipSmetka + ''' '
If @Sifra_Klient Is Not Null
Set @SSQL = @SSQL + ' And P.Sifra_Klient = ''' + @Sifra_Klient + ''' '
If @Grp_Kasa Is Not Null
Set @SSQL = @SSQL + ' And P.Grp_Kasa = ' + Cast(@Grp_Kasa as varchar(10)) + ' '
If @BrSmena Is Not Null
Set @SSQL = @SSQL + ' And P.BrSmena = ' + Cast(@BrSmena as varchar(10)) + ' '
If @Sifra_ArtOd Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_Art >= ''' + @Sifra_ArtOd + ''' '
If @Sifra_ArtDo Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_Art <= ''' + @Sifra_ArtDo + ''' '
If @Kto Is Not Null and @ArkaKat_KatArt='K'
Set @SSQL = @SSQL + ' And K.Kto = ''' + @Kto + ''' '
If @KoiStavki = 'P'
Set @SSQL = @SSQL + ' And S.Kolic > 0 '
Else If @KoiStavki = 'N'
Set @SSQL = @SSQL + ' And S.Kolic < 0 '
Else If @KoiStavki = '0' -- Nula
Set @SSQL = @SSQL + ' And S.Kolic = 0 '
set @PozNegNula = ' and (1 = 0 '
if @DaliPoz = 'D'
set @PozNegNula = @PozNegNula + ' or S.Kolic > 0'
if @DaliNeg = 'D'
set @PozNegNula = @PozNegNula + ' or S.Kolic < 0'
if @Dali0 = 'D'
set @PozNegNula = @PozNegNula + ' or S.Kolic = 0'
set @PozNegNula = @PozNegNula + ') '
set @SSQL = @SSQL + @PozNegNula
set @PozNulaPopust = ' and (1 = 0 '
if @DaliPozPopust = 'D'
set @PozNulaPopust = @PozNulaPopust + ' or S.Popust > 0'
if @Dali0Popust = 'D'
set @PozNulaPopust = @PozNulaPopust + ' or S.Popust = 0'
set @PozNulaPopust = @PozNulaPopust + ') '
set @SSQL = @SSQL + @PozNulaPopust
Set @SSQL = @SSQL + ' Order By P.Sifra_Oe, P.Grp_Kasa, P.BrKasa, P.Broj_Ska, S.Rbr '
print @SSQL
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_promet_poart_detalen_prodavac]'))
drop procedure [dbo].[rk_promet_poart_detalen_prodavac]
@KoiStavki char(1) = Null, -- P - > 0; N - < 0; 0(nula) = 0
@DaliPoz chaR(1) = 'D',
@DaliNeg char(1) = 'D',
@Dali0 char(1) = 'D',
@ArkaKat_KatArt char(1)='A',
@GrupirajPo char(1)= Null -- K - KrtOzn, A - Artikal
AS
Declare @SSQL as varchar(8000)
Declare @PozNegNula as varchar(200)
If @GrupirajPo = 'K'
Set @SSQL = ' SELECT SA.KrtOzn, OK.Ime_Oper,
Sum(S.Kolic*S.Cena*(1-S.Popust/100)) Vrednost,
Count(S.Sifra_Art) Linii, Count(Distinct cast(P.Sifra_Oe as char(3)) + cast(P.Grp_Kasa as char(3)) + cast(P.BrKasa as char(3)) + cast(P.Broj_Ska as char(3))) Smetki '
Else If @GrupirajPo='A'
Set @SSQL = ' SELECT SA.KrtOzn, OK.Ime_Oper, S.Sifra_Art,
Sum(S.Kolic*S.Cena*(1-S.Popust/100)) Vrednost,
Count(S.Sifra_Art) Linii, Count(Distinct cast(P.Sifra_Oe as char(3)) + cast(P.Grp_Kasa as char(3)) + cast(P.BrKasa as char(3)) + cast(P.Broj_Ska as char(3))) Smetki, '
Else
Set @SSQL = ' SELECT P.Sifra_Oe, P.Grp_Kasa, P.BrKasa, P.Broj_Ska,
Inner Join SPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Inner Join PlkProm L On L.Sifra_Oe=P.Sifra_Oe And L.Grp_Kasa=P.Grp_Kasa And L.BrKasa=P.BrKasa And L.Broj_Ska=P.Broj_Ska And L.Rbr=1
Left Outer Join ArkaKat A On A.Sifra_Art=S.Sifra_Art
Left Outer Join Katart K On K.Sifra_Art = S.Sifra_Art
Left Outer Join Operatori OP On P.Sifra_Oper=OP.Sifra_Oper
Left Outer Join Komint Kom On P.Sifra_Klient=Kom.Sifra_Kup '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + ' Left Outer Join Podgrupi PG On PG.Sifra_Podg=K.Sifra_Podg '
If @Sifra_Drg1 Is Not Null
Set @SSQL = @SSQL + ' Left Outer Join DrgPodel B On B.Sifra_Drg=K.Sifra_Drg '
-- Po konvencija, podatokot za prodavacot e zapisan vo SPROMETADH so RBR=1 and KlucSodrz = 'PRODAVAC'
Set @SSQL = @SSQL + ' Left Outer Join SPrometAdh SA On S.Sifra_Oe=SA.Sifra_Oe And S.Grp_Kasa=SA.Grp_Kasa And S.BrKasa=SA.BrKasa And S.Broj_Ska=SA.Broj_Ska
And SA.Rbr = 1 and SA.KlucSodrz=''PRODAVAC'' '
If @GrupirajPo In ('K','A')
Set @SSQL = @SSQL + ' Left Outer Join Operatori OK On SA.KrtOzn=OK.Sifra_Oper '
Set @SSQL = @SSQL + ' Where 1=1 '
--If @PrikaziSite = 'N'
-- Set @SSQL = @SSQL + ' And (SA.Oznaka<>''N'' Or SA.Oznaka Is Null) '
If @ADrugo7 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo7 = ' + cast(@ADrugo7 as varchar(6)) + ' '
If @ADrugo6 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo6 = ' + cast(@ADrugo6 as varchar(6)) + ' '
If @ADrugo5 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo5 = ' + cast(@ADrugo5 as varchar(6)) + ' '
If @ADrugo4 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo4 = ' + cast(@ADrugo4 as varchar(6)) + ' '
If @ADrugo3 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo3 = ' + cast(@ADrugo3 as varchar(6)) + ' '
If @ADrugo2 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo2 = ' + cast(@ADrugo2 as varchar(6)) + ' '
If @ADrugo1 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo1 = ' + cast(@ADrugo1 as varchar(6)) + ' '
If @Sifra_Drg1 Is Not Null
Set @SSQL = @SSQL + ' And B.Sifra_Drg1 = ' + cast(@Sifra_Drg1 as varchar(6)) + ' '
If @Sifra_Drg Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_Drg = ' + cast(@Sifra_Drg as varchar(6)) + ' '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + ' And PG.Sifra_Gr = ''' + @Sifra_Gr + ''' '
If @Sifra_Podg Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_Podg = ''' + @Sifra_Podg + ''' '
If @Datum_Od Is Not Null
Set @SSQL = @SSQL + ' And P.Datum_Evid >= ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQL = @SSQL + ' And P.Datum_Evid <= ''' + cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Oper Is Not Null
Set @SSQL = @SSQL + ' And P.Sifra_Oper = ' + Cast(@Sifra_Oper as varchar(6)) + ' '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' And P.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
If @BrKasa Is Not Null
Set @SSQL = @SSQL + ' And P.BrKasa = ' + Cast(@BrKasa as varchar(10)) + ' '
If @Broj_Ska_Od Is Not Null
Set @SSQL = @SSQL + ' And P.Broj_Ska >= ' + Cast(@Broj_Ska_Od as varchar(10)) + ' '
If @Broj_Ska_Do Is Not Null
Set @SSQL = @SSQL + ' And P.Broj_Ska <= ' + Cast(@Broj_Ska_Do as varchar(10)) + ' '
If @BrojBlok Is Not Null
Set @SSQL = @SSQL + ' And P.BrojBlok = ' + Cast(@BrojBlok as varchar(10)) + ' '
If @SamoFakturi = 'D' Set @SSQL = @SSQL + ' And P.Sifra_Klient is not null and P.Sifra_Klient <> '''' '
If @TipSmetka Is Not Null
Set @SSQL = @SSQL + ' And P.TipSmetka = ''' + @TipSmetka + ''' '
If @Sifra_Klient Is Not Null
Set @SSQL = @SSQL + ' And P.Sifra_Klient = ''' + @Sifra_Klient + ''' '
If @Grp_Kasa Is Not Null
Set @SSQL = @SSQL + ' And P.Grp_Kasa = ' + Cast(@Grp_Kasa as varchar(10)) + ' '
If @Sifra_ArtOd Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_Art >= ''' + @Sifra_ArtOd + ''' '
If @Sifra_ArtDo Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_Art <= ''' + @Sifra_ArtDo + ''' '
If @KoiStavki = 'P'
Set @SSQL = @SSQL + ' And S.Kolic > 0 '
Else If @KoiStavki = 'N'
Set @SSQL = @SSQL + ' And S.Kolic < 0 '
Else If @KoiStavki = '0' -- Nula
Set @SSQL = @SSQL + ' And S.Kolic = 0 '
set @PozNegNula = ' and (1 = 0 '
if @DaliPoz = 'D'
set @PozNegNula = @PozNegNula + ' or S.Kolic > 0'
if @DaliNeg = 'D'
set @PozNegNula = @PozNegNula + ' or S.Kolic < 0'
if @Dali0 = 'D'
set @PozNegNula = @PozNegNula + ' or S.Kolic = 0'
set @PozNegNula = @PozNegNula + ') '
set @SSQL = @SSQL + @PozNegNula
If @GrupirajPo = 'K'
Set @SSQL = @SSQL + ' Group By SA.KrtOzn, OK.Ime_Oper
Order By SA.KrtOzn '
Else If @GrupirajPo = 'A'
Begin
Set @SSQL = @SSQL + ' Group By SA.KrtOzn, OK.Ime_Oper, S.Sifra_Art, '
IF @ArkaKat_KatArt='K'
Set @SSQL = @SSQL + ' K.ImeArt '
ELSE
Set @SSQL = @SSQL + ' A.ImeArt '
Set @SSQL = @SSQL + ' Order By SA.KrtOzn, S.Sifra_Art '
End
Else
Set @SSQL = @SSQL + ' Order By P.Sifra_Oe, P.Grp_Kasa, P.BrKasa, P.Broj_Ska, S.Rbr '
--print @SSQL
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_promet_podenovi_odpromet]'))
drop procedure [dbo].[rk_promet_podenovi_odpromet]
Go
CREATE PROCEDURE rk_Promet_PoDenovi_OdPromet
@Datum_Od smalldatetime = null,
@Datum_Do smalldatetime = null,
@Sifra_Oper smallint = Null,
@Sifra_Oe smallint = Null,
@BrKasa smallint = Null,
@Broj_Ska_Od int = Null,
@Broj_Ska_Do int = Null,
@BrojBlok smallint = Null,
@TipSmetka char(1) = Null,
@Sifra_Klient varchar(20) = Null,
@SamoFakturi char(1) = 'N',
@Grp_Kasa smallint = Null
AS
Declare @SSQL as varchar(8000)
Set @SSQL = ' SELECT P.Sifra_Oe, P.Datum_Evid,
Sum(S.Kolic*S.Cena*(1-S.Popust/100)) Vrednost,
Count(Distinct Cast(P.Sifra_Oe as char(3))+Cast(P.Grp_Kasa as char(6))+Cast(P.BrKasa as char(6))+Cast(P.Broj_Ska as char(10))) BrojSmetki,
Count(*) BrojStavki, Org.ImeOrg
FROM Promet P
Inner Join SPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Left Outer Join ArkaKat K On K.Sifra_Art=S.Sifra_Art
Left Outer Join OrgEd Org on P.Sifra_Oe=Org.Sifra_Oe
Where 1=1 '
If @Datum_Od Is Not Null
Set @SSQL = @SSQL + ' And P.Datum_Evid >= ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQL = @SSQL + ' And P.Datum_Evid <= ''' + cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Oper Is Not Null
Set @SSQL = @SSQL + ' And P.Sifra_Oper = ' + Cast(@Sifra_Oper as varchar(6)) + ' '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' And P.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
If @BrKasa Is Not Null
Set @SSQL = @SSQL + ' And P.BrKasa = ' + Cast(@BrKasa as varchar(10)) + ' '
If @Broj_Ska_Od Is Not Null
Set @SSQL = @SSQL + ' And P.Broj_Ska >= ' + Cast(@Broj_Ska_Od as varchar(10)) + ' '
If @Broj_Ska_Do Is Not Null
Set @SSQL = @SSQL + ' And P.Broj_Ska <= ' + Cast(@Broj_Ska_Do as varchar(10)) + ' '
If @BrojBlok Is Not Null
Set @SSQL = @SSQL + ' And P.BrojBlok = ' + Cast(@BrojBlok as varchar(10)) + ' '
If @SamoFakturi = 'D'
Set @SSQL = @SSQL + ' And P.Sifra_Klient is not null and P.Sifra_Klient <> '''' '
If @TipSmetka Is Not Null
Set @SSQL = @SSQL + ' And P.TipSmetka = ''' + @TipSmetka + ''' '
If @Sifra_Klient Is Not Null
Set @SSQL = @SSQL + ' And P.Sifra_Klient = ''' + @Sifra_Klient + ''' '
If @Grp_Kasa Is Not Null
Set @SSQL = @SSQL + ' And P.Grp_Kasa = ' + Cast(@Grp_Kasa as varchar(10)) + ' '
Set @SSQL = @SSQL + ' Group By P.Sifra_Oe, P.Datum_Evid, Org.ImeOrg
Order By P.Sifra_Oe, P.Datum_Evid '
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_promet_podenovi_partic_doplata_neg]'))
drop procedure [dbo].[rk_promet_podenovi_partic_doplata_neg]
@PrikaziSite char(1) = 'D', -- da ne se prikazuvaat stavkite za koi nema recept D/N
@KlucSodrz varchar(20) = 'BOIVEL',
@BrSmena smallint = Null
AS
Declare @SSQL as varchar(8000)
Declare @SSQLUsl as varchar(8000)
Set @SSQLUsl = ' '
------------------------------------------------------------------- U S L O V ------------------------------------------------------------------------------------
If @Datum_Od Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid >= ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid <= ''' + cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Oper Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Oper = ' + Cast(@Sifra_Oper as varchar(6)) + ' '
If @Sifra_Oe Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
If @BrKasa Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.BrKasa = ' + Cast(@BrKasa as varchar(10)) + ' '
If @Broj_Ska_Od Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Broj_Ska >= ' + Cast(@Broj_Ska_Od as varchar(10)) + ' '
If @Broj_Ska_Do Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Broj_Ska <= ' + Cast(@Broj_Ska_Do as varchar(10)) + ' '
If @BrojBlok Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.BrojBlok = ' + Cast(@BrojBlok as varchar(10)) + ' '
If @SamoFakturi = 'D'
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Klient is not null and P.Sifra_Klient <> '''' '
If @TipSmetka Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.TipSmetka = ''' + @TipSmetka + ''' '
If @Sifra_Klient Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Klient = ''' + @Sifra_Klient + ''' '
If @Grp_Kasa Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Grp_Kasa = ' + Cast(@Grp_Kasa as varchar(10)) + ' '
If @BrSmena Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.BrSmena = ' + Cast(@BrSmena as varchar(10)) + ' '
Set @SSQL = ' Select P.Sifra_Oe, P.Grp_Kasa, P.BrKasa, P.Broj_Ska, Sum(S.Kolic*S.Cena*(1-S.Popust/100))
FROM Promet P
Inner Join SPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska '
If @PrikaziSite = 'N'
Set @SSQL = @SSQL + ' Left Outer Join SPrometAdh SA On S.Sifra_Oe=SA.Sifra_Oe And S.Grp_Kasa=SA.Grp_Kasa And S.BrKasa=SA.BrKasa And S.Broj_Ska=SA.Broj_Ska And S.Rbr=SA.Rbr '
else if @PrikaziSite = 'B'
Set @SSQL = @SSQL + ' Left Outer Join SPrometAdh SA On S.Sifra_Oe=SA.Sifra_Oe And S.Grp_Kasa=SA.Grp_Kasa And S.BrKasa=SA.BrKasa And S.Broj_Ska=SA.Broj_Ska
And S.Rbr=SA.Rbr And SA.KlucSodrz= ''' + @KlucSodrz + ''' '
Set @SSQL = @SSQL + ' Where 1=1 '
If @PrikaziSite = 'N'
Set @SSQL = @SSQL + ' And (SA.Oznaka<>''N'' Or SA.Oznaka Is Null) '
Set @SSQL = @SSQL + @SSQLUsl + ' Group By P.Sifra_Oe, P.Grp_Kasa, P.BrKasa, P.Broj_Ska '
Inner Join SPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Left Outer Join ArkaKat K On K.Sifra_Art=S.Sifra_Art
Left Outer Join Katart Art On Art.Sifra_Art = S.Sifra_Art
Left Outer Join Operatori OP On P.Sifra_Oper=OP.Sifra_Oper
Left Outer Join Komint Kom On P.Sifra_Klient=Kom.Sifra_Kup '
If @Iznos_Od Is Not Null Or @Iznos_Do Is Not Null
Set @SSQL = @SSQL + ' Inner Join #VkIznosSka V On V.Sifra_Oe=P.Sifra_Oe And V.Grp_Kasa=P.Grp_Kasa And V.BrKasa=P.BrKasa And V.Broj_Ska=P.Broj_Ska '
If @PrikaziSite = 'N'
Set @SSQL = @SSQL + ' Left Outer Join SPrometAdh SA On S.Sifra_Oe=SA.Sifra_Oe And S.Grp_Kasa=SA.Grp_Kasa And S.BrKasa=SA.BrKasa And S.Broj_Ska=SA.Broj_Ska And S.Rbr=SA.Rbr '
else If @PrikaziSite = 'B'
Set @SSQL = @SSQL + ' Left Outer Join SPrometAdh SA On S.Sifra_Oe=SA.Sifra_Oe And S.Grp_Kasa=SA.Grp_Kasa And S.BrKasa=SA.BrKasa And S.Broj_Ska=SA.Broj_Ska
And S.Rbr=SA.Rbr And SA.KlucSodrz= ''' + @KlucSodrz + ''' '
Set @SSQL = @SSQL + ' Where 1=1 ' + @SSQLUsl
If @PrikaziSite = 'N'
Set @SSQL = @SSQL + ' And (SA.Oznaka<>''N'' Or SA.Oznaka Is Null) '
If @Iznos_Od Is Not Null
Set @SSQL = @SSQL + ' And V.VkIznos >= ' + Cast(@Iznos_Od as varchar(20)) + ' '
If @Iznos_Do Is Not Null
Set @SSQL = @SSQL + ' And V.VkIznos <= ' + Cast(@Iznos_Do as varchar(20)) + ' '
If @Stavki = 'D'
Set @SSQL = @SSQL + ' '
Else
Set @SSQL = @SSQL + ' Group By P.Sifra_Oe, P.Grp_Kasa, P.BrKasa, P.Broj_Ska, P.Sifra_Oper, OP.Ime_Oper,
Inner Join SPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Left Outer Join SPrometDet D On S.Sifra_Oe=D.Sifra_Oe And S.Grp_Kasa=D.Grp_Kasa And S.BrKasa=D.BrKasa And S.Broj_Ska=D.Broj_Ska And S.Rbr=D.Rbr
Left Outer Join ArkaKat K On K.Sifra_Art=S.Sifra_Art
Left Outer Join TarModel TM On TM.Sifra_TarModel=D.Sifra_TarModel
Left Outer Join VidDog VD On VD.Sifra_VidDog=D.Sifra_VidDog
Left Outer Join VernTraenje V On V.Sifra_Vernost=D.Sifra_Vernost
Left Outer Join Komint Kom On P.Sifra_Klient=Kom.Sifra_Kup '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + ' left outer Join Podgrupi PG On PG.Sifra_Podg=K.Sifra_Podg '
If @Sifra_Drg1 Is Not Null
Set @SSQL = @SSQL + ' Left Outer Join DrgPodel B On B.Sifra_Drg=K.Sifra_Drg '
Set @SSQL = @SSQL + ' Where 1=1 '
If @ADrugo7 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo7 = ' + cast(@ADrugo7 as varchar(6)) + ' '
If @ADrugo6 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo6 = ' + cast(@ADrugo6 as varchar(6)) + ' '
If @ADrugo5 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo5 = ' + cast(@ADrugo5 as varchar(6)) + ' '
If @ADrugo4 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo4 = ' + cast(@ADrugo4 as varchar(6)) + ' '
If @ADrugo3 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo3 = ' + cast(@ADrugo3 as varchar(6)) + ' '
If @ADrugo2 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo2 = ' + cast(@ADrugo2 as varchar(6)) + ' '
If @ADrugo1 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo1 = ' + cast(@ADrugo1 as varchar(6)) + ' '
If @Sifra_Drg1 Is Not Null
Set @SSQL = @SSQL + ' And B.Sifra_Drg1 = ' + cast(@Sifra_Drg1 as varchar(6)) + ' '
If @Sifra_Drg Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_Drg = ' + cast(@Sifra_Drg as varchar(6)) + ' '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + ' And PG.Sifra_Gr = ''' + @Sifra_Gr + ''' '
If @Sifra_Podg Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_Podg = ''' + @Sifra_Podg + ''' '
If @Datum_Od Is Not Null
Set @SSQL = @SSQL + ' And P.Datum_Evid >= ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQL = @SSQL + ' And P.Datum_Evid <= ''' + cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' And P.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
If @Sifra_ArtOd Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_Art >= ''' + @Sifra_ArtOd + ''' '
If @Sifra_ArtDo Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_Art <= ''' + @Sifra_ArtDo + ''' '
If @Sifra_Oper Is Not Null
Set @SSQL = @SSQL + ' And P.Sifra_Oper = ' + Cast(@Sifra_Oper as varchar(6)) + ' '
Set @SSQL = @SSQL + ' Order By P.Sifra_Oe, P.Grp_Kasa, P.BrKasa, P.Broj_Ska, S.Rbr '
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_promet_vauceri]'))
drop procedure [dbo].[rk_promet_vauceri]
Go
CREATE PROCEDURE [dbo].[rk_Promet_Vauceri]
@Datum_Od smalldatetime = null,
@Datum_Do smalldatetime = null,
@Sifra_Oper smallint = Null,
@Sifra_Oe smallint = Null,
@BrKasa smallint = Null,
@ArkaKat_KatArt char(1) = 'A',
@KlucSodrz varchar(20) = 'VOUCH_PROC_PEC'
AS
Declare @SSQL as varchar(8000)
Declare @SSQLUsl as varchar(8000)
Set @SSQLUsl = ' '
------------------------------------------------------------------- U S L O V ------------------------------------------------------------------------------------
If @Datum_Od Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid >= ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid <= ''' + cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Oper Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Oper = ' + Cast(@Sifra_Oper as varchar(6)) + ' '
If @Sifra_Oe Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
If @BrKasa Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.BrKasa = ' + Cast(@BrKasa as varchar(10)) + ' '
Set @SSQL = @SSQL + ' S.Kolic, S.Cena, S.Popust, S.Proc_Osn, S.Rbr, S.RKolic, S.Spec_Opis, (S.Kolic*S.Cena*(1-S.Popust/100)) Vrednost '
Set @SSQL = @SSQL + ' FROM Promet P
Inner Join SPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Inner Join SPrometAdh SA On S.Sifra_Oe=SA.Sifra_Oe And S.Grp_Kasa=SA.Grp_Kasa And S.BrKasa=SA.BrKasa And S.Broj_Ska=SA.Broj_Ska And S.Rbr=SA.Rbr
Left Outer Join ArkaKat K On K.Sifra_Art=S.Sifra_Art
Left Outer Join Katart Art On Art.Sifra_Art = S.Sifra_Art
Left Outer Join Operatori OP On P.Sifra_Oper=OP.Sifra_Oper '
Set @SSQL = @SSQL + ' Where 1=1 ' + @SSQLUsl
Set @SSQL = @SSQL + ' And SA.KlucSodrz= ''' + @KlucSodrz + ''' '
Set @SSQL = @SSQL + ' Order By P.Sifra_Oe, P.Grp_Kasa, P.BrKasa, P.Broj_Ska, S.Rbr '
print @SSQL
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_promet_vauceri_oe]'))
drop procedure [dbo].[rk_promet_vauceri_oe]
Go
CREATE PROCEDURE [dbo].[rk_Promet_Vauceri_OE]
@Datum_Od smalldatetime = null,
@Datum_Do smalldatetime = null,
@Sifra_Oper smallint = Null,
@Sifra_Oe smallint = Null,
@BrKasa smallint = Null,
@KlucSodrz varchar(20) = 'VOUCH_PROC_PEC'
AS
Declare @SSQL as varchar(8000)
Declare @SSQLUsl as varchar(8000)
Set @SSQLUsl = ' '
------------------------------------------------------------------- U S L O V ------------------------------------------------------------------------------------
If @Datum_Od Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid >= ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid <= ''' + cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Oper Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Oper = ' + Cast(@Sifra_Oper as varchar(6)) + ' '
If @Sifra_Oe Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
If @BrKasa Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.BrKasa = ' + Cast(@BrKasa as varchar(10)) + ' '
Set @SSQL = ' SELECT P.Sifra_Oe,Sum(SA.Vredn) Vredn, Sum(SA.Vredn2) Vredn2,
Sum(S.Kolic) Kolic, Sum(S.Kolic*S.Cena*(1-S.Popust/100)) Vrednost
FROM Promet P
Inner Join SPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Inner Join SPrometAdh SA On S.Sifra_Oe=SA.Sifra_Oe And S.Grp_Kasa=SA.Grp_Kasa And S.BrKasa=SA.BrKasa And S.Broj_Ska=SA.Broj_Ska And S.Rbr=SA.Rbr
Left Outer Join ArkaKat K On K.Sifra_Art=S.Sifra_Art
Left Outer Join Katart Art On Art.Sifra_Art = S.Sifra_Art
Left Outer Join Operatori OP On P.Sifra_Oper=OP.Sifra_Oper
Where 1=1 ' + @SSQLUsl + '
And SA.KlucSodrz= ''' + @KlucSodrz + '''
Group By P.Sifra_Oe
Order By P.Sifra_Oe '
print @SSQL
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_promet_vauceri_smetka]'))
drop procedure [dbo].[rk_promet_vauceri_smetka]
Go
CREATE PROCEDURE [dbo].[rk_Promet_Vauceri_Smetka]
@Datum_Od smalldatetime = null,
@Datum_Do smalldatetime = null,
@Sifra_Oper smallint = Null,
@Sifra_Oe smallint = Null,
@BrKasa smallint = Null,
@KlucSodrz varchar(20) = 'VOUCH_PROC_PEC'
AS
Declare @SSQL as varchar(8000)
Declare @SSQLUsl as varchar(8000)
Set @SSQLUsl = ' '
------------------------------------------------------------------- U S L O V ------------------------------------------------------------------------------------
If @Datum_Od Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid >= ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid <= ''' + cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Oper Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Oper = ' + Cast(@Sifra_Oper as varchar(6)) + ' '
If @Sifra_Oe Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
If @BrKasa Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.BrKasa = ' + Cast(@BrKasa as varchar(10)) + ' '
Set @SSQL = ' Select S.Sifra_Oe, P.Sifra_Oper, S.Broj_Ska, P.Datum_Evid, Null as Sifra_Art, Null as ImeArt, Null as EdMera, Null as Kolic, Null as Cena, Null as Popust,
Null as Proc_Osn, Round(Sum(S.Kolic*T.Procent*S.Cena*(1-S.Popust/100)), 4) Vrednost, P.Grp_Kasa, P.BrKasa, Null as DatumVreme, Null as VkIznos '
Inner Join KSPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Inner Join #Tmp1 T On T.Sifra_Oe=P.Sifra_Oe And T.Grp_Kasa=P.Grp_Kasa And T.BrKasa=P.BrKasa And T.Broj_Ska=P.Broj_Ska And T.Sifra_Nac= ' + cast(@Sifra_Nac as varchar(10)) + '
Inner Join Katart K On K.Sifra_Art=S.Sifra_Art '
End
Else
Begin
Set @SSQL = 'Select S.Sifra_Art, K.ImeArt, K.EdMera, K.Sifra_Tar, Sum(S.Kolic) Kolic, Avg(S.Cena*(1-S.Popust/100)) ProsCena, S.Proc_Osn, Sum(S.Kolic*S.Cena*(1-S.Popust/100)) Vrednost, Null as Sifra_Nac
From KPromet P
Inner Join KSPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Inner Join Katart K On K.Sifra_Art=S.Sifra_Art '
End
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + ' Inner Join Podgrupi PG On PG.Sifra_Podg=K.Sifra_Podg '
If @Sifra_Drg1 Is Not Null
Set @SSQL = @SSQL + ' Left Outer Join DrgPodel B On B.Sifra_Drg=K.Sifra_Drg '
Set @SSQL = @SSQL + ' Where 1=1 '
If @ADrugo5 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo5 = ' + cast(@ADrugo5 as varchar(6)) + ' '
If @ADrugo4 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo4 = ' + cast(@ADrugo4 as varchar(6)) + ' '
If @ADrugo3 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo3 = ' + cast(@ADrugo3 as varchar(6)) + ' '
If @ADrugo2 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo2 = ' + cast(@ADrugo2 as varchar(6)) + ' '
If @ADrugo1 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo1 = ' + cast(@ADrugo1 as varchar(6)) + ' '
If @Sifra_Drg1 Is Not Null
Set @SSQL = @SSQL + ' And B.Sifra_Drg1 = ' + cast(@Sifra_Drg1 as varchar(6)) + ' '
If @Sifra_Drg Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_Drg = ' + cast(@Sifra_Drg as varchar(6)) + ' '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + ' And PG.Sifra_Gr = ''' + @Sifra_Gr + ''' '
If @Sifra_Podg Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_Podg = ''' + @Sifra_Podg + ''' '
If @Sifra_Oper Is Not Null
Set @SSQL = @SSQL + ' And P.Sifra_Oper = ' + cast(@Sifra_Oper as varchar(6)) + ' '
If @Sifra_ArtOd Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_Art >= ''' + @Sifra_ArtOd + ''' '
If @Sifra_ArtDo Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_Art <= ''' + @Sifra_ArtDo + ''' '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' And P.Sifra_Oe = ' + cast(@Sifra_Oe as varchar(6)) + ' '
If @Datum_Od Is Not Null
Set @SSQL = @SSQL + ' And P.Datum_Evid >= ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQL = @SSQL + ' And P.Datum_Evid <= ''' + cast(@Datum_Do as varchar(30)) + ''' '
Set @SSQL = @SSQL + ' Group By S.Sifra_Art, K.ImeArt, K.EdMera, S.Proc_Osn, K.Sifra_Tar '
If @Sifra_Nac Is Not Null
Set @SSQL = @SSQL + ', T.Sifra_Nac '
Set @SSQL = @SSQL + ' Order By S.Sifra_Art '
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_prometarttar1]'))
Set @SSQL = @SSQL + ' Sum(S.Kolic*S.Cena*(1-S.Popust/100)) Promet, Sum(S.Kolic) Kolic,
Count(Distinct Cast(P.Sifra_Oe as char(3))+Cast(P.Grp_Kasa as char(6))+Cast(P.BrKasa as char(6))+Cast(P.Broj_Ska as char(10))) BrojSmetki,
Count(*) BrojStavki
From Promet P
Inner Join SPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Left Outer Join Operatori OP On P.Sifra_Oper=OP.Sifra_Oper
Left Outer Join Komint Kom On P.Sifra_Klient=Kom.Sifra_Kup '
If @Sifra_Gr Is Not Null Or @Sifra_Podg Is Not Null Or @Sifra_Drg Is Not Null Or @Sifra_Drg1 Is Not Null Or @ADrugo1 Is Not Null Or @ADrugo2 Is Not Null Or @ADrugo3 Is Not Null
Or @ADrugo4 Is Not Null Or @ADrugo5 Is Not Null Or @ADrugo6 Is Not Null Or @ADrugo7 Is Not Null Or @ImeArtDel Is Not Null Or @Kto Is Not Null Or @PoArtikli = 'D'
Begin
If @SifrarnikArtOd = 'A'
Set @SSQL = @SSQL + ' Inner Join ArkaKat K On K.Sifra_Art=S.Sifra_Art '
Else
Set @SSQL = @SSQL + ' Inner Join Katart K On K.Sifra_Art=S.Sifra_Art '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + ' Inner Join Podgrupi PG On PG.Sifra_Podg=K.Sifra_Podg '
If @Sifra_Drg1 Is Not Null
Set @SSQL = @SSQL + ' Left Outer Join DrgPodel B On B.Sifra_Drg=K.Sifra_Drg '
Set @SSQL = @SSQL + ' dbo.fix_Kade_Pec_Treb(K.Sifra_Podg, S.Spec_Opis) KadePec, '
Set @SSQL = @SSQL + ' T.Sifra_Kup, Kup.ImeKup
From KPromet P
Inner Join KSPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Inner Join Katart K On K.Sifra_Art=S.Sifra_Art
Left Outer Join Operatori O On O.Sifra_Oper=P.Sifra_Oper
Left Outer Join #Tab1 T On T.Sifra_Oe=P.Sifra_Oe And T.Grp_Kasa=P.Grp_Kasa And T.BrKasa=P.BrKasa And T.Broj_Ska=P.Broj_Ska
Left Outer Join Komint Kup On Kup.Sifra_Kup=T.Sifra_Kup
Inner Join Orged OE On OE.Sifra_Oe=P.Sifra_Oe
Where S.Sifra_Oe= ' + cast(@Sifra_Oe as varchar(6)) + ' And S.Grp_Kasa= ' + cast(@Grp_Kasa as varchar(6)) + ' And S.BrKasa= ' + cast(@BrKasa as varchar(6)) +
' And S.Broj_Ska= ' + cast(@Broj_Ska as varchar(10)) + ' And (S.Pec_Smetka=0 or S.Pec_Smetka is Null) '
If @Lokacija Is Not Null And @Ska_Treb <> 'S'
Set @SSQL = @SSQL + ' And dbo.fix_Kade_Pec_Treb(K.Sifra_Podg, S.Spec_Opis) = ' + cast(@Lokacija as varchar(5)) + ' '
Set @SSQL = @SSQL + ' Order By S.Sifra_Oe, S.Grp_Kasa, S.BrKasa, S.Broj_Ska, '
If @Ska_Treb <> 'S'
Set @SSQL = @SSQL + ' dbo.fix_Kade_Pec_Treb(K.Sifra_Podg, S.Spec_Opis) , '
Set @SSQL = @SSQL + ' S.Rbr '
-- (Case When @Ska_Treb = ''S'' Then 0 Else dbo.fix_Kade_Pec_Treb(K.Sifra_Podg, S.Spec_Opis) End), S.Rbr '
print @SSQL
Exec(@SSQL)
-- And S.Sifra_Art Not In (Select Sifra_Art From Katart Where dbo.fix_Kade_Pec_Treb(Sifra_Podg, Null) = 2)
-- And S.Spec_Opis Is Not Null And S.Spec_Opis <> ' '
--select * from #tab1
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_sostsega]'))
drop procedure [dbo].[rk_sostsega]
Go
CREATE PROCEDURE rk_SostSega
@Sifra_Oe smallint,
@Sifra_Art varchar(20),
@Sostojba decimal (18, 6) = 0 OUTPUT,
@Cena decimal (18, 6) = 0 OUTPUT,
@ProcOsn decimal (9, 4) = 0 OUTPUT
AS
Declare @Za_Datum smalldatetime
Declare @SostSoa decimal(18, 6)
Declare @PrometKolic decimal (18, 6)
Declare @StavrKolic decimal (18, 6)
SET @Za_Datum = dbo.fn_VratiDatum (GetDate())
select @SostSoa = (vlez - izlez),
@Cena = Cena
from soart
where Sifra_Oe = @Sifra_Oe and Sifra_Art = @Sifra_Art
if @SostSoa is null
set @SostSoa = 0
if @Cena is null
set @Cena = 0
set @PrometKolic = (select sum(Kolic)
from Spromet S
inner join Promet P
on P.Sifra_Oe = S.Sifra_Oe and P.Grp_Kasa = S.Grp_Kasa and
P.BrKasa = S.BrKasa and P.Broj_Ska = S.Broj_Ska
where S.Sifra_Oe = @Sifra_Oe and Sifra_Art = @Sifra_Art and
P.Datum_Evid = @Za_Datum)
if @PrometKolic is null
set @PrometKolic = 0
set @StavrKolic = (select sum(Kolic)
from Stavr
where Sifra_Oe = @Sifra_Oe and Sifra_Art = @Sifra_Art And
Datum_Dok = @Za_Datum and SIfra_Dok in (100, 101))
if @StavrKolic is null
set @StavrKolic = 0
-- print @SostSoa
-- print @PrometKolic
-- print @StavrKolic
--Zabeleska za Goran:
set @Sostojba = @SOstSoa + @StavrKolic - @PrometKolic
set @ProcOsn = (select ProcOsn from ArkaKat where SifrA_Art = @SIfra_Art)
--print @Za_Datum
--print @SostSoa
--print @StavrKolic
--print @PrometKolic
--print @Sostojba
--print @Cena
RETURN @@Error
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_sostsega_apt]'))
drop procedure [dbo].[rk_sostsega_apt]
Go
CREATE PROCEDURE [dbo].[rk_SostSega_Apt]
@Sifra_Oe smallint,
@Sifra_Art varchar(20),
@Sostojba decimal (18, 6) = 0 OUTPUT,
@Cena decimal (18, 6) = 0 OUTPUT,
@ProcOsn decimal (9, 4) = 0 OUTPUT,
@SpeCena decimal (18, 4) = 0 OUTPUT,
@Alt_Ime char(40) = Null OUTPUT,
@Koef decimal (7, 4) = 0 OUTPUT,
@PCena5 decimal (18, 4) = 0 OUTPUT,
@PCena6 decimal (18, 4) = 0 OUTPUT,
@VoPDA char(1) = null OUTPUT
AS
Declare @SSQL as varchar(8000)
Declare @Za_Datum smalldatetime
SET @Za_Datum = dbo.fn_VratiDatum (GetDate())
--------------------------------- S O S T O J B A ----------------------------------------
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_sostsega_arkasoa]'))
drop procedure [dbo].[rk_sostsega_arkasoa]
Go
create PROCEDURE [dbo].[rk_SostSega_ArkaSoa]
@Sifra_Oe smallint,
@Sifra_Art varchar(20),
@Sostojba decimal (18, 6) = 0 OUTPUT
AS
Declare @Za_Datum smalldatetime
SET @Za_Datum = dbo.fn_VratiDatum (GetDate())
Declare @SostArkaSoa as decimal(18, 6)
Select @SostArkaSoa =
( Select S.Sostojba
From ArkaSoa S
where S.Sifra_Oe = @Sifra_Oe and S.Sifra_Art = @Sifra_Art )
if @SostArkaSoa is null
set @SostArkaSoa = 0
Declare @DenesenPromet as decimal(18, 6)
Select @DenesenPromet =
( Select Sum(S.Kolic)
From Spromet S
Inner Join Promet P
On P.Sifra_Oe = S.Sifra_Oe and P.Grp_Kasa = S.Grp_Kasa
and P.BrKasa = S.BrKasa and P.Broj_Ska = S.Broj_Ska
Where S.Sifra_Oe = @Sifra_Oe And S.Sifra_Art = @Sifra_Art
and P.Datum_Evid = @Za_Datum )
if @DenesenPromet is null
set @DenesenPromet = 0
set @Sostojba = @SostArkaSoa - @DenesenPromet
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_sostsega_site]'))
drop procedure [dbo].[rk_sostsega_site]
Go
CREATE PROCEDURE rk_SostSega_Site
@Sifra_Oe smallint,
@Sifra_Art_Od varchar(20) = Null,
@Sifra_Art_Do varchar(20) = Null,
@ImeArtDel varchar(20) = Null,
@Kto Char(6) = Null,
@Sifra_Gr VarChar(300) = Null,
@Sifra_Podg VarChar(300) = Null,
@Lokacija Varchar(10) = Null,
@Sifra_Brand Smallint = Null,
@Sifra_ZBrand Smallint = Null,
@Drugo1 Smallint = Null,
@Drugo2 Smallint = Null,
@Drugo3 Smallint = Null,
@Drugo4 Smallint = Null,
@Drugo5 Smallint = Null,
@Drugo6 Smallint = Null,
@Drugo7 Smallint = Null
AS
Declare @SSQL as varchar(8000)
Declare @SSQLArt as varchar(8000)
Declare @Za_Datum smalldatetime
Set @SSQLArt = ' '
SET @Za_Datum = dbo.fn_VratiDatum (GetDate())
--------------------------------- S O S T O J B A ----------------------------------------
Create Table #Sost
(
Sifra_Oe smallint,
Sifra_Art varchar(20),
Sostojba decimal(18,6),
Cena decimal(18,6)
)
Set @SSQL = 'Select S.Sifra_Oe, S.Sifra_Art, (S.Vlez-S.Izlez), S.Cena
From Soart S
Inner Join Katart K On K.Sifra_Art = S.Sifra_Art '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + 'Inner Join Podgrupi PG On K.Sifra_Podg=PG.Sifra_Podg '
If @Sifra_ZBrand Is Not Null
Set @SSQL = @SSQL + 'Inner Join DrgPodel B On K.Sifra_Drg=B.Sifra_Drg '
Set @SSQL = @SSQL + ' Where S.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
If @Sifra_Art_Od Is Not Null
Set @SSQLArt = @SSQLArt + ' And S.Sifra_Art >= ''' + @Sifra_Art_Od + ''' '
If @Sifra_Art_Do Is Not Null
Set @SSQLArt = @SSQLArt + ' And S.Sifra_Art <= ''' + @Sifra_Art_Do + ''' '
If @Sifra_Brand Is Not Null
Set @SSQLArt = @SSQLArt + 'And K.Sifra_Drg=' + Cast(@Sifra_Brand As Varchar(6)) + ' '
If @Sifra_ZBrand Is Not Null
Set @SSQLArt = @SSQLArt + 'And B.Sifra_Drg1=' + Cast(@Sifra_ZBrand As Varchar(6)) + ' '
If @Sifra_Podg Is Not Null
Set @SSQLArt = @SSQLArt + 'And K.Sifra_Podg In (' + @Sifra_Podg + ') '
If @Sifra_Gr Is Not Null
Set @SSQLArt = @SSQLArt + 'And PG.Sifra_Gr In (' + @Sifra_Gr + ') '
If @Lokacija Is Not NULL
Set @SSQLArt = @SSQLArt + ' And K.Lokacija=''' + @Lokacija + ''' '
If @Kto Is Not NULL
Set @SSQLArt = @SSQLArt + ' And K.Kto=''' + @Kto + ''' '
If @Drugo1 Is Not NULL
Set @SSQLArt = @SSQLArt + ' And K.Drugo1=' + Cast(@Drugo1 As Varchar(6)) + ' '
If @Drugo2 Is Not NULL
Set @SSQLArt = @SSQLArt + ' And K.Drugo2=' + Cast(@Drugo2 As Varchar(6)) + ' '
If @Drugo3 Is Not NULL
Set @SSQLArt = @SSQLArt + ' And K.Drugo3=' + Cast(@Drugo3 As Varchar(6)) + ' '
If @Drugo4 Is Not NULL
Set @SSQLArt = @SSQLArt + ' And K.Drugo4=' + Cast(@Drugo4 As Varchar(6)) + ' '
If @Drugo5 Is Not NULL
Set @SSQLArt = @SSQLArt + ' And K.Drugo5=' + Cast(@Drugo5 As Varchar(6)) + ' '
If @Drugo6 Is Not NULL
Set @SSQLArt = @SSQLArt + ' And K.Drugo6=' + Cast(@Drugo6 As Varchar(6)) + ' '
If @Drugo7 Is Not NULL
Set @SSQLArt = @SSQLArt + ' And K.Drugo7=' + Cast(@Drugo7 As Varchar(6)) + ' '
If @ImeArtDel IS NOT NULL
If IsNumeric(@ImeArtDel)=1
Set @SSQLArt = @SSQLArt + ' And K.Sifra_Art Like ''' + @ImeArtDel + '%'' '
Else
Set @SSQLArt = @SSQLArt + ' And K.ImeArt Like ''' + @ImeArtDel + '%'' '
Insert Into #Sost Exec(@SSQL+@SSQLArt)
--------------------------------- P R O M E T ----------------------------------------
Create Table #Prom
(
Sifra_Oe smallint,
Sifra_Art varchar(20),
Promet decimal(18,6)
)
Set @SSQL = 'Select S.Sifra_Oe, S.Sifra_Art, Sum(S.Kolic)
From Spromet S
Inner Join Promet P On P.Sifra_Oe = S.Sifra_Oe and P.Grp_Kasa = S.Grp_Kasa and P.BrKasa = S.BrKasa and P.Broj_Ska = S.Broj_Ska
Inner Join Katart K On K.Sifra_Art = S.Sifra_Art '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + 'Inner Join Podgrupi PG On K.Sifra_Podg=PG.Sifra_Podg '
If @Sifra_ZBrand Is Not Null
Set @SSQL = @SSQL + 'Inner Join DrgPodel B On K.Sifra_Drg=B.Sifra_Drg '
Set @SSQL = @SSQL + ' Where S.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' And P.Datum_Evid = ''' + Cast(@Za_Datum as varchar(30)) + ''' '
Insert Into #Prom Exec(@SSQL + @SSQLArt + ' Group By S.Sifra_Oe, S.Sifra_Art ')
-------------------------------- R A S K N I Z A N P R O M E T ---------------------------------------
Create Table #Raskn
(
Sifra_Oe smallint,
Sifra_Art varchar(20),
Raskniz decimal(18,6)
)
Set @SSQL = 'Select S.Sifra_Oe, S.Sifra_Art, Sum(S.Kolic)
From Stavr S
Inner Join Katart K On K.Sifra_Art = S.Sifra_Art '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + 'Inner Join Podgrupi PG On K.Sifra_Podg=PG.Sifra_Podg '
If @Sifra_ZBrand Is Not Null
Set @SSQL = @SSQL + 'Inner Join DrgPodel B On K.Sifra_Drg=B.Sifra_Drg '
Set @SSQL = @SSQL + ' Where S.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' And S.Datum_Dok = ''' + Cast(@Za_Datum as varchar(30)) + ''' And S.Sifra_Dok In (100,101) '
Insert Into #Raskn Exec(@SSQL + @SSQLArt + ' Group By S.Sifra_Oe, S.Sifra_Art ')
Inner Join SPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Left Outer Join ArkaKat A On A.Sifra_Art=S.Sifra_Art
Left Outer Join Katart K On K.Sifra_Art = S.Sifra_Art '
If @KorisnikOd = 'K'
Set @SSQL = @SSQL + ' Left Outer Join KartKor AKK On AKK.Sifra_Kor = SubString(P.OpisAdr,4,' + Cast(@DolzSifrKartKor as varchar(5)) + ') '
Else
Set @SSQL = @SSQL + ' Left Outer Join ArkaKartKor AKK On AKK.Sifra_Kor = SubString(P.OpisAdr,4,' + Cast(@DolzSifrKartKor as varchar(5)) + ') '
Set @SSQL = @SSQL + ' LEFT OUTER JOIN Komint Kup ON AKK.Sifra_Kup=Kup.Sifra_Kup '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + ' Left Outer Join Podgrupi PG On PG.Sifra_Podg=K.Sifra_Podg '
If @Sifra_Drg1 Is Not Null
Set @SSQL = @SSQL + ' Left Outer Join DrgPodel B On B.Sifra_Drg=K.Sifra_Drg '
If @Nac_Plak Is Not Null
Set @SSQL = @SSQL + ' Inner Join #Smetki SK On SK.Sifra_Oe=P.Sifra_Oe And SK.Grp_Kasa=P.Grp_Kasa And SK.BrKasa=P.BrKasa And SK.Broj_Ska=P.Broj_Ska '
If @DolzSifrKartKor = 8
Set @SSQL = @SSQL + ' Where SubString(P.OpisAdr,4,' + Cast(@DolzSifrKartKor as varchar(5)) + ') <> '''' '
Set @SSQL = @SSQL + @SSQLUsl + ' Group By Kup.Sifra_Kup, Kup.ImeKup '
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_specifikacija_poart]'))
drop procedure [dbo].[rk_specifikacija_poart]
Go
CREATE PROCEDURE rk_Specifikacija_PoArt
@Sifra_Oe smallint = Null,
@Datum_Od smalldatetime = Null,
@Datum_Do smalldatetime = Null,
@Sifra_ArtOd varchar(20) = Null,
@Sifra_ArtDo varchar(20) = Null,
@Sifra_Gr char(3) = Null,
@Sifra_Podg char(6) = Null,
@Sifra_Drg smallint = Null,
@Sifra_Drg1 smallint = Null,
@ADrugo1 smallint = Null,
@ADrugo2 smallint = Null,
@ADrugo3 smallint = Null,
@ADrugo4 smallint = Null,
@ADrugo5 smallint = Null,
@ADrugo6 smallint = Null,
@ADrugo7 smallint = Null,
@Sifra_Oper smallint = Null,
@Grp_Kasa smallint = Null,
@BrKasa smallint = Null,
@ArkaKat_KatArt char(1)='A',
@Sifra_Nac smallint = Null,
@Sifra_Kli char(6) = Null
AS
Declare @SSQL as varchar(8000)
Declare @SSQLUsl as varchar(8000)
Set @SSQLUsl = ' '
------------------------------------------------------------------- U S L O V ----------------------------------------------------------------------------
If @Datum_Od Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid >= ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Datum_Evid <= ''' + cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Oe Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
If @Sifra_Oper Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Oper = ' + Cast(@Sifra_Oper as varchar(6)) + ' '
If @Grp_Kasa Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Grp_Kasa = ' + Cast(@Grp_Kasa as varchar(6)) + ' '
If @BrKasa Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.BrKasa = ' + Cast(@BrKasa as varchar(10)) + ' '
(case when RKolic <> 1 and RKolic <> 0 and RKolic is not null then ''W'' else '' '' end) xProblem, '
IF @ArkaKat_KatArt='K'
Set @SSQL = @SSQL + ' K.ImeArt, K.Edmera '
ELSE
Set @SSQL = @SSQL + ' A.ImeArt, A.Edmera '
Set @SSQL = @SSQL + ' FROM Promet P
Inner Join SPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Left Outer Join ArkaKat A On A.Sifra_Art=S.Sifra_Art
Left Outer Join Katart K On K.Sifra_Art = S.Sifra_Art '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + ' Left Outer Join Podgrupi PG On PG.Sifra_Podg=K.Sifra_Podg '
If @Sifra_Drg1 Is Not Null
Set @SSQL = @SSQL + ' Left Outer Join DrgPodel B On B.Sifra_Drg=K.Sifra_Drg '
If @Sifra_Nac Is Not Null
Set @SSQL = @SSQL + ' Inner Join #Tmp1 T1 On T1.Sifra_Oe=P.Sifra_Oe And T1.Grp_Kasa=P.Grp_Kasa And T1.BrKasa=P.BrKasa And T1.Broj_Ska=P.Broj_Ska And T1.Sifra_Nac= ' + Cast(@Sifra_Nac as varchar(6)) + ' '
Set @SSQL = @SSQL + ' Where 1=1 '
If @ADrugo7 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo7 = ' + cast(@ADrugo7 as varchar(6)) + ' '
If @ADrugo6 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo6 = ' + cast(@ADrugo6 as varchar(6)) + ' '
If @ADrugo5 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo5 = ' + cast(@ADrugo5 as varchar(6)) + ' '
If @ADrugo4 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo4 = ' + cast(@ADrugo4 as varchar(6)) + ' '
If @ADrugo3 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo3 = ' + cast(@ADrugo3 as varchar(6)) + ' '
If @ADrugo2 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo2 = ' + cast(@ADrugo2 as varchar(6)) + ' '
If @ADrugo1 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo1 = ' + cast(@ADrugo1 as varchar(6)) + ' '
If @Sifra_Drg1 Is Not Null
Set @SSQL = @SSQL + ' And B.Sifra_Drg1 = ' + cast(@Sifra_Drg1 as varchar(6)) + ' '
If @Sifra_Drg Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_Drg = ' + cast(@Sifra_Drg as varchar(6)) + ' '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + ' And PG.Sifra_Gr = ''' + @Sifra_Gr + ''' '
If @Sifra_Podg Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_Podg = ''' + @Sifra_Podg + ''' '
If @Sifra_ArtOd Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_Art >= ''' + @Sifra_ArtOd + ''' '
If @Sifra_ArtDo Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_Art <= ''' + @Sifra_ArtDo + ''' '
If @Sifra_Kli Is Not Null
Set @SSQL = @SSQL + ' And P.Sifra_Klient = ''' + @Sifra_Kli + ''' '
Set @SSQL = @SSQL + @SSQLUsl
IF @ArkaKat_KatArt='K'
Set @SSQL = @SSQL + ' Group By S.Sifra_Art, K.ImeArt, K.EdMera, S.RKolic, S.Spec_Opis '
Else
Set @SSQL = @SSQL + ' Group By S.Sifra_Art, A.ImeArt, A.EdMera, S.RKolic, S.Spec_Opis '
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_sporedbanapromet]'))
drop procedure [dbo].[rk_sporedbanapromet]
Go
CREATE Procedure [dbo].[rk_SporedbaNaPromet]
@Sifra_Oe smallint,
@DatumOd smalldatetime= null,
@DatumDo smalldatetime= null,
@BrKasa smallint= null,
@Sifra_Oper smallint = null
As
Declare @SSQL as varchar(5000)
Set @SSQL='Select AKS.Sifra_Nac, NP.ImeNac, Sum(AKS.EvidOdPromet) Baza, Sum(AKS.Dolzi) Primeno
From ArkaKasaDnSta AKS
Inner Join ArkaKasaDn A on AKS.Sifra_Oe=A.Sifra_oe and AKS.Datum_Evid=A.Datum_Evid and AKS.BrKAsa=A.BrKasa and AKS.BrSmena=A.BrSmena and AKS.Broj_Dok=A.Broj_Dok
Left Outer Join NacPLak NP on AKS.Sifra_Nac=NP.Sifra_Nac
Where A.Tip_Kasa =''D'' '
IF @Sifra_Oe is not null
Set @SSQL=@SSQL+ ' And AKS.Sifra_Oe='+cast(@Sifra_Oe as varchar(3))+' '
IF @DatumOD is not null
Set @SSQL=@SSQL+ ' And AKS.Datum_Evid>='''+cast(@DatumOd as varchar(35))+''' '
IF @DatumDO is not null
Set @SSQL=@SSQL+ ' And AKS.Datum_Evid<='''+cast(@DatumDo as varchar(35))+''' '
IF @BrKasa is not null
Set @SSQL=@SSQL+ ' And AKS.BrKasa='+cast(@BrKasa as varchar(6))+ ' '
IF @Sifra_Oper is not null
Set @SSQL=@SSQL+ ' And A.SIfra_Oper_Vnes='+cast(@Sifra_Oper as varchar(6))+ ' '
Set @SSQL=@SSQL+ ' Group by AKS.Sifra_Nac, NP.ImeNac'
print @SSQL
exec (@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_stavi_kade_konsum]'))
drop procedure [dbo].[rk_stavi_kade_konsum]
Go
CREATE PROCEDURE rk_Stavi_Kade_Konsum
@Sifra_Oe smallint,
@Grp_Kasa smallint,
@BrKasa smallint,
@Broj_Ska int,
@Kade_Konsum char (1)
AS
update KPromet
set Kade_Konsum = @Kade_Konsum
Where Sifra_Oe=@Sifra_Oe And Grp_Kasa=@Grp_Kasa And BrKasa=@BrKasa AND Broj_Ska=@Broj_Ska
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_stavi_opisadr_spec]'))
drop procedure [dbo].[rk_stavi_opisadr_spec]
Go
create PROCEDURE rk_Stavi_OpisAdr_Spec
@Sifra_Oe smallint,
@Grp_Kasa smallint,
@BrKasa smallint,
@Broj_Ska int,
@Opis nvarchar(120)
AS
Declare @BeseOpisAdr as nvarchar(200)
SELECT @BeseOpisAdr =
(select OpisAdr from Promet
where Sifra_Oe = @Sifra_Oe
and Grp_kasa = @Grp_kasa
and BrKasa = @BrKasa
and Broj_Ska = @Broj_Ska)
Declare @nOstavi as int
set @nOstavi = 60
if @BeseOpisAdr is null
set @BeseOpisAdr = space(@nOstavi)
else
begin
set @BeseOpisAdr = rtrim(@BeseOpisAdr)
if len(@BeseOpisAdr) < @nOstavi
set @BeseOpisAdr = @BeseOpisAdr + space(@nOstavi - len(@BeseOpisAdr))
else
set @BeseOpisAdr = substring(@BeseOpisAdr, 1, @nOstavi)
end
update Promet
set OpisAdr = @BeseOpisADr + @Opis
where Sifra_Oe = @Sifra_Oe
and Grp_kasa = @Grp_kasa
and BrKasa = @BrKasa
and Broj_Ska = @Broj_Ska
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_stavitek_otvfiok]'))
drop procedure [dbo].[rk_stavitek_otvfiok]
Go
create PROCEDURE rk_StaviTek_OtvFiok
@Sifra_Oe smallint,
@Grp_Kasa smallint,
@BrKasa smallint,
@Sifra_Oper smallint,
@Datum_Evid smalldatetime
AS
Declare @Bese_Grp_Kasa as smallint
Declare @Zapisi as int
set @Zapisi = (select count (*) from rKasTek)
if @Zapisi <= 0
insert into rKasTek (Sifra_Oe, Grp_Kasa, BrKasa, BrojBlok, Sifra_Oper, Datum_Evid,
insert into rKasTek (VremePreth, PocSost, BrojPonistLinii, BrojPonistuv, OtvarFiok)
values (@VremeZatvaranje, 0, 0, 0, 0)
return @@Error
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_stornirajdokument]'))
drop procedure [dbo].[rk_stornirajdokument]
Go
CREATE PROCEDURE [dbo].[rk_StornirajDokument]
@Sifra_OE smallint,
@BrKasa smallint,
@BrSmena smallint,
@Datum_Evid smalldatetime,
@Broj_Dok int,
@NovBrDok int OUTPUT
As
DECLARE @Storniran as char(1)
SELECT @NovBrDok = MAX(Broj_Dok) + 1
FROM ArkaKasaDn
WHERE Sifra_Oe = @Sifra_OE AND BrKasa = @BrKasa AND
BrSmena = @BrSmena AND Datum_Evid = @Datum_Evid
SELECT @Storniran = Storniran
FROM ArkaKasaDn
WHERE Sifra_Oe = @Sifra_OE AND BrKasa = @BrKasa AND
BrSmena = @BrSmena AND Datum_Evid = @Datum_Evid AND
Broj_Dok = @Broj_Dok
IF @Storniran <> 'D' OR @Storniran <> 'T' OR @Storniran IS NULL
UPDATE ArkaKasaDn
SET Storniran = CASE WHEN @Storniran = 'S' THEN 'T'
ELSE 'D' END
WHERE Sifra_Oe = @Sifra_OE AND BrKasa = @BrKasa AND
BrSmena = @BrSmena AND Datum_Evid = @Datum_Evid AND
Broj_Dok = @Broj_Dok
Return @@Error
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_sweep_vo_zrep]'))
drop procedure [dbo].[rk_sweep_vo_zrep]
Go
create PROCEDURE rk_sweep_vo_zrep
AS
Declare @BrojBlok smallint
Select @BrojBlok = max(BrojBlok)
from Promet
if @BrojBlok is null
set @BrojBlok = 1
else
set @BrojBlok = @BrojBlok + 1
update Promet
set BrojBlok = @BrojBlok
where BrojBlok is null or BrojBlok <= 0
update rKasVlezIzlez
set BrojBlok = @BrojBlok
where BrojBlok is null or BrojBlok <= 0
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_sweep_vo_zrep_kafana]'))
drop procedure [dbo].[rk_sweep_vo_zrep_kafana]
Go
create PROCEDURE rk_sweep_vo_zrep_kafana
AS
Declare @BrojBlok smallint
Select @BrojBlok = max(BrojBlok)
from KPromet
if @BrojBlok is null
set @BrojBlok = 1
else
set @BrojBlok = @BrojBlok + 1
update KPromet
set BrojBlok = @BrojBlok
where BrojBlok is null or BrojBlok <= 0
update rKasVlezIzlez
set BrojBlok = @BrojBlok
where BrojBlok is null or BrojBlok <= 0
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_tekzalpooe]'))
drop procedure [dbo].[rk_tekzalpooe]
Go
CREATE PROCEDURE rk_TekZalPoOE
@Sifra_Art varchar(20)
AS
CREATE TABLE #TmpZal
(Sifra_OE smallint,
Kolic decimal(18,4))
INSERT INTO #TmpZal (Sifra_OE, Kolic)
SELECT Sifra_OE, Vlez-Izlez FROM SoArt WHERE Sifra_Art=@Sifra_Art
CREATE TABLE #TmpNeraskn
(Sifra_OE smallint,
Kolic decimal(18,4))
INSERT INTO #TmpNeraskn (Sifra_OE, Kolic) SELECT Sifra_OE, Sum(Kolic-RKolic) FROM KSPromet WHERE Sifra_Art=@Sifra_Art AND Kolic<>RKolic GROUP BY Sifra_OE
UPDATE #TmpZal SET Kolic = #TmpZal.Kolic - N.Kolic FROM #TmpNeraskn N WHERE #TmpZal.Sifra_OE = N.Sifra_OE
SELECT * FROM #TmpZal
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_toplistaart]'))
Inner Join KSPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Inner Join Katart K On K.Sifra_Art=S.Sifra_Art
Left Outer Join #Tab1 T On T.Sifra_Oe=P.Sifra_Oe And T.Grp_Kasa=P.Grp_Kasa And T.BrKasa=P.BrKasa And T.Broj_Ska=P.Broj_Ska
Left Outer Join Komint Kup On Kup.Sifra_Kup=T.Sifra_Kup
Left Outer Join Operatori O On O.Sifra_Oper=P.Sifra_Oper
Inner Join Orged OE On OE.Sifra_Oe=P.Sifra_Oe
Where P.Sifra_Oe= ' + cast(@Sifra_Oe as varchar(6)) + ' And P.Grp_Kasa= ' + cast(@Grp_Kasa as varchar(6)) + ' And P.BrKasa= ' + cast(@BrKasa as varchar(6)) +
' And P.Broj_Ska= ' + cast(@Broj_Ska as varchar(10)) + ' And (S.Pec_Treb is Null or S.Pec_Treb = 0) '
If @Lokacija Is Not Null
Set @SSQL = @SSQL + ' And dbo.fix_Kade_Pec_Treb(K.Sifra_Podg, S.Spec_Opis) = ' + cast(@Lokacija as varchar(5)) + ' '
Set @SSQL = @SSQL + ' Order By dbo.fix_Kade_Pec_Treb(K.Sifra_Podg, S.Spec_Opis), S.Rbr '
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rk_treb_daj_neispec_stavki_draft]'))
drop procedure [dbo].[rk_treb_daj_neispec_stavki_draft]
Inner Join KSPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Inner Join Katart K On K.Sifra_Art=S.Sifra_Art
Left Outer Join #Tab1 T On T.Sifra_Oe=P.Sifra_Oe And T.Grp_Kasa=P.Grp_Kasa And T.BrKasa=P.BrKasa And T.Broj_Ska=P.Broj_Ska
Left Outer Join Komint Kup On Kup.Sifra_Kup=T.Sifra_Kup
Left Outer Join Operatori O On O.Sifra_Oper=P.Sifra_Oper
Inner Join Orged OE On OE.Sifra_Oe=P.Sifra_Oe
Where P.Sifra_Oe= ' + cast(@Sifra_Oe as varchar(6)) + ' And P.Grp_Kasa= ' + cast(@Grp_Kasa as varchar(6)) + ' And P.BrKasa= ' + cast(@BrKasa as varchar(6)) +
' And P.Broj_Ska= ' + cast(@Broj_Ska as varchar(10)) + ' And (S.Pec_Treb is Null or S.Pec_Treb = 0) '
If @Lokacija Is Not Null
Set @SSQL = @SSQL + ' And dbo.fix_Kade_Pec_Treb(K.Sifra_Podg, S.Spec_Opis) = ' + cast(@Lokacija as varchar(5)) + ' '
Set @SSQL = @SSQL + ' Group By S.Sifra_Oe, OE.ImeOrg, S.Grp_Kasa, S.BrKasa, S.Broj_Ska, S.Sifra_Art, K.ImeArt, K.EdMera, S.Cena, S.Popust, S.Proc_Osn,
Inner Join KSPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Inner Join Katart K On K.Sifra_Art=S.Sifra_Art
Left Outer Join #Tab1 T On T.Sifra_Oe=P.Sifra_Oe And T.Grp_Kasa=P.Grp_Kasa And T.BrKasa=P.BrKasa And T.Broj_Ska=P.Broj_Ska
Left Outer Join Komint Kup On Kup.Sifra_Kup=T.Sifra_Kup
Left Outer Join Operatori O On O.Sifra_Oper=P.Sifra_Oper
Inner Join Orged OE On OE.Sifra_Oe=P.Sifra_Oe
Where P.Sifra_Oe= ' + cast(@Sifra_Oe as varchar(6)) + ' And P.Grp_Kasa= ' + cast(@Grp_Kasa as varchar(6)) + ' And P.BrKasa= ' + cast(@BrKasa as varchar(6)) +
' And P.Broj_Ska= ' + cast(@Broj_Ska as varchar(10)) + ' And (S.Pec_Treb is Null or S.Pec_Treb = 0) '
If @Lokacija Is Not Null
Set @SSQL = @SSQL + ' And dbo.fix_Kade_Pec_Treb(K.Sifra_Podg, S.Spec_Opis) = ' + cast(@Lokacija as varchar(5)) + ' '
Set @SSQL = @SSQL + ' Group By S.Sifra_Oe, OE.ImeOrg, S.Grp_Kasa, S.BrKasa, S.Broj_Ska, S.Sifra_Art, K.ImeArt, K.EdMera,
Set @SSQL = @SSQL + ' Inner Join Podgrupi PG On PG.Sifra_Podg=K.Sifra_Podg '
If @Sifra_Drg1 Is Not Null
Set @SSQL = @SSQL + ' Left Outer Join DrgPodel B On B.Sifra_Drg=K.Sifra_Drg '
Set @SSQL = @SSQL + ' Where K.SMatUsl=''M'' '
If @ADrugo5 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo5 = ' + cast(@ADrugo5 as varchar(6)) + ' '
If @ADrugo4 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo4 = ' + cast(@ADrugo4 as varchar(6)) + ' '
If @ADrugo3 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo3 = ' + cast(@ADrugo3 as varchar(6)) + ' '
If @ADrugo2 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo2 = ' + cast(@ADrugo2 as varchar(6)) + ' '
If @ADrugo1 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo1 = ' + cast(@ADrugo1 as varchar(6)) + ' '
If @Sifra_Drg1 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And B.Sifra_Drg1 = ' + cast(@Sifra_Drg1 as varchar(6)) + ' '
If @Sifra_Drg Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Sifra_Drg = ' + cast(@Sifra_Drg as varchar(6)) + ' '
If @Sifra_Gr Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And PG.Sifra_Gr = ''' + @Sifra_Gr + ''' '
If @Sifra_Podg Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Sifra_Podg = ''' + @Sifra_Podg + ''' '
If @Sifra_Oe Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_Oe = ' + cast(@Sifra_Oe as varchar(6)) + ' '
If @Gr_Org Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_Oe In (Select Sifra_Oe From SGrOrg Where Sif_GrOrg = ''' + @Gr_Org + ''') '
If @Sifra_ArtOd Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_Art >= ''' + @Sifra_ArtOd + ''' '
If @Sifra_ArtDo Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_Art <= ''' + @Sifra_ArtDo + ''' '
Set @SSQLUsl = @SSQLUsl + ' Order By S.Sifra_Oe, S.Sifra_Art '
Insert Into #Zal Exec(@SSQL+@SSQLUsl)
If @VkluciNeraskniz = 'D'
Begin
CREATE TABLE #TmpStavr
(
Sifra_Art varchar(20),
Kolic decimal(18,6),
DaliSurov char(1),
POsn decimal(8,2),
DokCena decimal(18,6),
DanDokCena char(1),
Rasknizen char(1)
)
Declare @Sifra_OE_Sur0 smallint
Declare @DanCenaOESur0 char(1)
Declare @Sif_GrOrg char(6)
Declare @SifArt varchar(20)
Declare @Datum smalldatetime
Set @Datum = GetDate()
SELECT @Sifra_OE_Sur0 = Sifra_OE_Sur FROM GotovSurovOrg WHERE Sifra_OE_Got = @Sifra_OE AND Reden=0
SELECT @Sif_GrOrg = G.Sif_GrOrg FROM GrOrg G Inner Join SGrOrg S On G.Sif_GrOrg=S.Sif_GrOrg And S.Sifra_OE= @Sifra_OE WHERE G.GotovPro='D'
IF @Sifra_OE_Sur0 IS NULL SET @Sifra_OE_Sur0 = @Sifra_OE
SELECT @DanCenaOESur0 = CeniSoDanok FROM Orged WHERE Sifra_OE = @Sifra_OE_Sur0
INSERT INTO #TmpStavr (Sifra_art, Kolic, DaliSurov, POsn, DokCena, DanDokCena)
SELECT S.Sifra_Art, SUM(S.Kolic - S.RKolic), A.DaliSurov, S.Proc_Osn, S.Cena, 'D' FROM KSPromet S
INNER JOIN KatArt A ON S.Sifra_Art = A.Sifra_Art
INNER JOIN KPromet P ON P.Sifra_OE=S.Sifra_OE AND P.Grp_Kasa=S.Grp_Kasa AND
P.BrKasa=S.BrKasa AND P.Broj_Ska=S.Broj_Ska AND P.Datum_evid<=@Datum
WHERE S.Sifra_OE = @Sifra_OE AND (S.Rkolic IS NULL OR S.Kolic <> S.RKolic) AND A.SMatUsl='M'
GROUP BY S.Sifra_Art, A.DaliSurov, S.Proc_Osn, S.Cena
UPDATE #TmpStavr SET DaliSurov='' WHERE DaliSurov IS NULL
UPDATE #TmpStavr SET Rasknizen='N'
CREATE TABLE #TmpZaRaskn
(
Sifra_OE smallint,
Sifra_Art varchar(20),
Kolic decimal(18,6),
DokCena decimal(18,6),
DanDokCena char(1)
)
INSERT INTO #TmpZaRaskn (Sifra_OE, Sifra_Art, Kolic, DokCena)
SELECT O.Sifra_OE_Sur, S.Sifra_Sur, (Case When (S.Za_Kolku<=0 Or S.Za_Kolku Is Null) Then (S.Kolicina * T.Kolic) Else (S.Kolicina * T.Kolic / S.Za_Kolku) End), 0 -- * S.Za_Kolku dod G 13.09.05
FROM #TmpStavr T
INNER JOIN GSostav S ON T.Sifra_art = S.Sifra_Art AND S.Sif_GrOrg = @Sif_GrOrg
INNER JOIN GotovSurovOrg O ON S.Reden = O.Reden AND O.Sifra_OE_Got = @Sifra_OE --WHERE T.DaliSurov <> 'T'
UPDATE #TmpStavr SET Rasknizen='D' FROM GSostav S, GotovSurovOrg O
WHERE #TmpStavr.Sifra_art = S.Sifra_Art AND S.Sif_GrOrg=@Sif_GrOrg AND S.Reden=O.Reden AND O.Sifra_OE_Got=@Sifra_OE
INSERT INTO #TmpZaRaskn (Sifra_OE, Sifra_Art, Kolic, DokCena)
SELECT @Sifra_OE_Sur0, S.Sifra_Sur, (Case When (S.Za_Kolku <=0 Or S.Za_Kolku Is Null) Then (S.Ima_Kolic * T.Kolic) Else (S.Ima_Kolic * T.Kolic / S.Za_Kolku) End), 0 -- * S.Za_Kolku dod G 13.09.05
FROM #TmpStavr T
INNER JOIN Sostav S ON T.Sifra_art = S.Sifra_Art
WHERE T.Sifra_Art NOT IN (SELECT Sifra_Art FROM GSostav WHERE Sif_GrOrg = @Sif_GrOrg) -- AND T.DaliSurov <> 'T'
UPDATE #TmpStavr SET Rasknizen='D' FROM Sostav S
WHERE #TmpStavr.Sifra_art = S.Sifra_Art
AND #TmpStavr.Sifra_Art NOT IN (SELECT Sifra_Art FROM GSostav WHERE Sif_GrOrg = @Sif_GrOrg) --AND #TmpStavr.DaliSurov <> 'T'
INSERT INTO #TmpZaRaskn (Sifra_OE, Sifra_Art, Kolic, DokCena, DanDokCena)
(1-Cast(UcesOsn as decimal(9,2))/10000) * (1-Cast(UcesKol as decimal(9,2))/10000)) * Cast(UcesDod as decimal(9,2))/10000) RabatAkc
From Dokr D
Inner Join Stavr S On D.DokrID = S.DokrID
Inner Join Katart K On K.Sifra_Art = S.Sifra_Art
Where S.Sifra_Art_Paket Is Null And S.UcesDod > 0 And S.VlIzl = ''I''
And S.Kolic > 0 '
If @Sifra_Art_Osnoven Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_Art = ''' + @Sifra_Art_Osnoven + ''' '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
If @Sifra_Dok Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Dok = ' + Cast(@Sifra_Dok as varchar(6)) + ' '
If @KoiOe Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_OE IN (Select Sifra_Oe From SGrOrg where sif_GrOrg = ''' + @KoiOe + ''') '
If @Datum_Od Is Not Null
Set @SSQL = @SSQL + ' And D.Datum_Dok >= ''' + Cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQL = @SSQL + ' And D.Datum_Dok <= ''' + Cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Pat Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Pat = ' + Cast(@Sifra_Pat as varchar(6)) + ' '
Set @SSQL = @SSQL + ' Order By D.Datum_Dok, D.Sifra_Oe, D.Sifra_Dok, D.Broj_Dok, S.Sifra_Art '
Exec (@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_akciipromo_tlk_zapisi]'))
drop procedure [dbo].[sp_akciipromo_tlk_zapisi]
Go
CREATE PROCEDURE sp_AkciiPromo_tlk_Zapisi
@Sifra_Oe smallint,
@Datum_Od smalldatetime,
@Datum_Do smalldatetime,
-- @Sifra_Dok smallint = Null,
-- @Sifra_Pat int = Null
-- @Sifra_Art_Osn varchar(20) = Null,
@KojaObr char(1) = 'S' -- S - Site Artikli od akcijata da gi ima vo dokumentot
-- O - Site Artikli od akcijata osven 1 da gi ima vo dokumentot
AS
Declare @KolkuArtVoAkc varchar(20)
Declare @Sifra_Art_Paket varchar(20)
Declare @Varij smallint
Create Table #TmpAkc
(
Sifra_Art_Paket varchar(20),
Varij smallint
)
Insert Into #TmpAkc
Select Distinct Sifra_Art_Paket, Varij
From AkciiPromoStaTemp
Declare AP Cursor Fast_Forward For Select Sifra_Art_Paket, Varij From #TmpAkc
Order By SifrA_ARt_Paket, Varij
Open AP
Fetch Next From AP Into @Sifra_Art_Paket, @Varij
While @@fetch_status=0
Begin
Set @KolkuArtVoAkc = (Select Count(*) from AkciiPromoStaTemp
where Sifra_Art_Paket = @Sifra_Art_Paket And Varij=@Varij) -- Broj na artikli vo akcijata
Create Table #Dok -- Selekcija na dokumentite koi e mozno da imaat akcija vo niv
(
DokrID int,
DokID int,
Sifra_Art_Osnoven varchar(20),
Sifra_Art_Paket varchar(20),
Kolku_Akcii smallint
)
Insert Into #Dok
Select S.DokrID, S.DokID, A.Sifra_Art_Osnoven, A.Sifra_Art_Paket, (S.kolic/A.Kolicina) as Kolku_Akcii
From Stavr S
Inner Join AkciiPromoStaTemp A On A.Sifra_Art_Osnoven=S.Sifra_Art And A.Rabat=cast(S.UcesDod as decimal(18,2))/100 --S.UcesDod/100 bese vaka do 01.02.2008
And S.kolic/A.Kolicina = round(S.kolic/A.Kolicina, 0)
Where A.Sifra_Art_Paket = @Sifra_Art_Paket And A.Varij=@Varij
And S.Sifra_Art_Paket Is Null And S.UcesDod > 0 And S.VlIzl = 'I'
And S.Datum_Dok >= @Datum_Od And S.Datum_Dok <= @Datum_Do And S.Sifra_Oe = @Sifra_Oe
--Select * from #Dok
Create Table #DokSoAkc -- ovde dokumentite koi imaat akcija
(
DokrID int,
Kolku smallint
)
If @KojaObr = 'O'
Begin
Insert Into #DokSoAkc
Select DokrID, Count(*) From #Dok
Group By DokrID
Having Count(*) = @KolkuArtVoAkc - 1
End
Else
Begin
Insert Into #DokSoAkc
Select DokrID, Count(*) From #Dok
Group By DokrID
Having Count(*) = @KolkuArtVoAkc
End
--Select * from #DokSoAkc
Update Stavr
Set Stavr.Sifra_Art_Paket=#Dok.Sifra_Art_Paket,
Stavr.Kolku_Akcii=#Dok.Kolku_Akcii
From #Dok
Where Stavr.DokID=#Dok.DokID
And Stavr.DokrID in (Select DokrID From #DokSoAkc)
And Stavr.Sifra_Art_Paket Is Null
Drop Table #dok
Drop Table #DokSoAkc
Fetch Next From AP Into @Sifra_Art_Paket, @Varij
End
Close AP
Deallocate AP
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_akciipromo_tlk_zapisi_poedinecno]'))
drop procedure [dbo].[sp_akciipromo_tlk_zapisi_poedinecno]
Set Stavr.Sifra_Art_Paket=AkciiPromoStaTemp.Sifra_Art_Paket, Stavr.Kolku_Akcii = 1
From AkciiPromoStaTemp
Where AkciiPromoStaTemp.Sifra_Art_Osnoven=Stavr.Sifra_Art And AkciiPromoStaTemp.Rabat=cast(Stavr.UcesDod as decimal(18,2))/100 -- Stavr.UcesDod/100 bese vaka do 01.02.2008
And Stavr.VlIzl='I' And Stavr.Sifra_Art_Paket Is Null And Stavr.UcesDod > 0
And Stavr.Sifra_Oe = @Sifra_Oe And Stavr.Datum_Dok >= @Datum_Od And Stavr.Datum_Dok <= @Datum_Do
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_akciipromo_zbirenpoart]'))
drop procedure [dbo].[sp_akciipromo_zbirenpoart]
Go
CREATE PROCEDURE sp_AkciiPromo_ZbirenPoArt
@Sifra_Art_Paket varchar(20) = Null,
@Sifra_Art_Osnoven varchar(20) = Null,
@Datum_Od smalldatetime = Null,
@Datum_Do smalldatetime = Null,
@Sifra_Oe smallint = Null,
@KoiOe varchar(6) = Null,
@Sifra_Pat smallint = Null,
@PoPatnici char(1) = 'N'
AS
Declare @SSQL as varchar(8000)
If @PoPatnici = 'D'
Set @SSQL = ' Select D.Sifra_Pat, '
Else
Set @SSQL = ' Select Null as Sifra_Pat, '
Set @SSQL = @SSQL + ' S.Sifra_Art, K.ImeArt, Sum(S.Kolic) Kolic,
if @Sifra_Art_Paket_OdBaza is null -- Go nema, najcest slucaj - normalen artikl
begin
set @SetE = 'N'
set @AktivenE = 'N'
end
else if @Aktivna = 'N'
begin
set @SetE = 'D'
set @AktivenE = 'N'
end
else if @Datum_Dok >= @Datum_Poc and @Datum_Dok <= @Datum_Kr
begin
set @SetE = 'D'
set @AktivenE = 'D'
end
else
begin
set @SetE = 'D'
set @AktivenE = 'N'
end
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_akcpromoset_podigni]'))
drop procedure [dbo].[sp_akcpromoset_podigni]
Go
create PROCEDURE sp_AkcPromoSet_Podigni
@Sifra_Art_Paket varchar(20),
@Datum_Dok smalldatetime
AS
select APS.*
from AkciiPromoSta APS
inner join AkciiPromo AP
on APS.Ozn_Akcija = AP.Ozn_Akcija
where APS.Sifra_ARt_Paket = @Sifra_Art_Paket
order by AP.Datum_Poc desc, APS.Sifra_Art_Osnoven
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_ambalaza_poorged]'))
drop procedure [dbo].[sp_ambalaza_poorged]
Go
CREATE PROCEDURE sp_Ambalaza_PoOrged
@Sifra_OE smallint,
@KoiOE varchar(6),
@Sifra_Art varchar(20),
@Sifra_Kup varchar(8),
@Sifra_Obj smallint = Null,
@Datum_Dok_Od Smalldatetime,
@Datum_Dok_Do Smalldatetime
AS
Declare @SSQL Varchar(4000)
Declare @SSQLUsl Varchar(4000)
Set @SSQL = ' '
Set @SSQLUsl = ' '
CREATE Table #Tab
(
Sifra_art varchar(20),
Sifra_Oe smallint,
TekVlez decimal(18,6),
TekIzlez decimal(18,6),
Vlez decimal(18,6),
Izlez decimal(18,6)
)
--------------------------------------------------------------------------------- U S L O V --------------------------------------------------------------------------------------------
If @Sifra_Art Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And S.[Sifra_Art]=''' + @Sifra_Art + ''' '
If @Sifra_OE Is Not Null
Set @SSQLUsl = @SSQLUsl + 'And S.Sifra_OE=' + Cast(@Sifra_OE As Varchar(10)) + ' '
If @KoiOE Is Not Null
Set @SSQLUsl = @SSQLUsl + 'And S.Sifra_OE In (Select Sifra_OE From SGrOrg Where Sif_GrOrg=''' + Cast(@KoiOE As Varchar(6)) + ''') '
-------------------------------------------------------------------------- TEKOVEN PROMET ------------------------------------------------------------------------------------
SET @SSQL='SELECT S.Sifra_Art, S.Sifra_OE,
Sum(Case S.VlIzl
When ''V'' Then (Case WHEN S.Kolic >= 0 Then S.Kolic Else 0 End)
Else 0
End) ,
Sum(Case S.VlIzl
When ''I'' Then (Case WHEN S.Kolic >= 0 Then S.Kolic Else 0 End)
Else 0
End), 0, 0
FROM Stavr S
INNER JOIN Dokr D ON S.DokrID = D.DokrID
Inner Join Katart A On A.Sifra_Art = S.Sifra_Art
WHERE A.Drugo5 = 2 '
If @Datum_Dok_Od Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Dok>=''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
Insert Into #Tab EXEC(@SSQL+@SSQLUsl)
SET @SSQL='SELECT S.Sifra_Art, S.Sifra_OE,
Sum(Case S.VlIzl
When ''I'' Then (Case WHEN S.Kolic < 0 Then Abs(S.Kolic) Else 0 End)
Else 0
End),
Sum(Case S.VlIzl
When ''V'' Then (Case WHEN S.Kolic < 0 Then Abs(S.Kolic) Else 0 End)
Else 0
End), 0, 0
FROM Stavr S
INNER JOIN Dokr D ON S.DokrID = D.DokrID
Inner Join Katart A On A.Sifra_Art = S.Sifra_Art
WHERE A.Drugo5 = 2 '
If @Datum_Dok_Od Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Dok>=''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
-------------------------------------------------------------------------- VKUPEN PROMET --------------------------------------------------------------------------
SET @SSQL='SELECT S.Sifra_Art, S.Sifra_OE, 0, 0,
Sum(Case S.VlIzl
When ''V'' Then (Case WHEN S.Kolic >= 0 Then S.Kolic Else 0 End)
Else 0
End),
Sum(Case S.VlIzl
When ''I'' Then (Case WHEN S.Kolic >= 0 Then S.Kolic Else 0 End)
Else 0
End)
FROM Stavr S
INNER JOIN Dokr D ON S.DokrID = D.DokrID
Inner Join Katart A On A.Sifra_Art = S.Sifra_Art
WHERE A.Drugo5 = 2 '
Insert Into #Tab EXEC(@SSQL+@SSQLUsl)
SET @SSQL='SELECT S.Sifra_Art, S.Sifra_OE, 0, 0,
Sum(Case S.VlIzl
When ''I'' Then (Case WHEN S.Kolic < 0 Then Abs(S.Kolic) Else 0 End)
Else 0
End),
Sum(Case S.VlIzl
When ''V'' Then (Case WHEN S.Kolic < 0 Then Abs(S.Kolic) Else 0 End)
Set @SSQL = @SSQL + ' And D.Sifra_Dok IN (' + @TipDok + ') '
--------------------------------------------------------- dod 30.08.2006 --------------------------------------------------------------------------------------------------
If @SoUcesOsn = 'D'
Set @SSQL = @SSQL + ' And ((S.UcesOsn > ' + Cast(@UcesOsnNad as varchar(10)) + ' And S.UcesOsn <= ' + Cast(@UcesOsnDo as varchar(10)) + ') '
If @SoUcesKol = 'D'
If @SoUcesOsn <> 'D' Or @SoUcesOsn Is Null
Set @SSQL = @SSQL + ' And ((S.UcesKol > ' + Cast(@UcesKolNad as varchar(10)) + ' And S.UcesKol <= ' + Cast(@UcesKolDo as varchar(10)) + ') '
Else
Set @SSQL = @SSQL + ' Or (S.UcesKol > ' + Cast(@UcesKolNad as varchar(10)) + ' And S.UcesKol <= ' + Cast(@UcesKolDo as varchar(10)) + ') '
If @SoUcesDod = 'D'
If (@SoUcesOsn <> 'D' Or @SoUcesOsn Is Null) And (@SoUcesKol <> 'D' Or @SoUcesKol Is Null)
Set @SSQL = @SSQL + ' And ((S.UcesDod > ' + Cast(@UcesDodNad as varchar(10)) + ' And S.UcesDod <= ' + Cast(@UcesDodDo as varchar(10)) + ') '
Else
Set @SSQL = @SSQL + ' Or (S.UcesDod > ' + Cast(@UcesDodNad as varchar(10)) + ' And S.UcesDod <= ' + Cast(@UcesDodDo as varchar(10)) + ') '
If @SoUcesOsn = 'D' Or @SoUcesKol = 'D' Or @SoUcesDod = 'D'
Set @SSQL = @SSQL + ' And S.VlIzl=''I'' AND TD.Dev <> ''D'' '
ELSE
Set @SSQL = @SSQL + ' And ((S.VlIzl=''I'' AND TD.Dev <> ''D'' AND S.Sifra_OE NOT IN ('+@OrgEdEkolUvoz+')) OR (S.Sifra_OE IN ('+@OrgEdEkolUvoz+') AND S.VlIzl=''V'' AND TD.Dev=''D'' )) '
If @ArtBezKatSpecPak = 'D'
Set @SSQL = @SSQL + ' and KSP.Sifra_Art is null '
IF @Grupiran='D'
Set @SSQL = @SSQL + ' GROUP BY S.Sifra_Art, A.ImeArt, A.Edmera, A.ImaKomerc, A.ImaBroevi, A.SodrziEd, A.Tezina, A.BTezina,
Set @SSQL = @SSQL + ' And D.Sifra_Dok IN (' + @TipDok + ') '
--------------------------------------------------------- dod 30.08.2006 --------------------------------------------------------------------------------------------------
If @SoUcesOsn = 'D'
Set @SSQL = @SSQL + ' And ((S.UcesOsn > ' + Cast(@UcesOsnNad as varchar(10)) + ' And S.UcesOsn <= ' + Cast(@UcesOsnDo as varchar(10)) + ') '
If @SoUcesKol = 'D'
If @SoUcesOsn <> 'D' Or @SoUcesOsn Is Null
Set @SSQL = @SSQL + ' And ((S.UcesKol > ' + Cast(@UcesKolNad as varchar(10)) + ' And S.UcesKol <= ' + Cast(@UcesKolDo as varchar(10)) + ') '
Else
Set @SSQL = @SSQL + ' Or (S.UcesKol > ' + Cast(@UcesKolNad as varchar(10)) + ' And S.UcesKol <= ' + Cast(@UcesKolDo as varchar(10)) + ') '
If @SoUcesDod = 'D'
If (@SoUcesOsn <> 'D' Or @SoUcesOsn Is Null) And (@SoUcesKol <> 'D' Or @SoUcesKol Is Null)
Set @SSQL = @SSQL + ' And ((S.UcesDod > ' + Cast(@UcesDodNad as varchar(10)) + ' And S.UcesDod <= ' + Cast(@UcesDodDo as varchar(10)) + ') '
Else
Set @SSQL = @SSQL + ' Or (S.UcesDod > ' + Cast(@UcesDodNad as varchar(10)) + ' And S.UcesDod <= ' + Cast(@UcesDodDo as varchar(10)) + ') '
If @SoUcesOsn = 'D' Or @SoUcesKol = 'D' Or @SoUcesDod = 'D'
Set @SSQL = @SSQL + ' And S.VlIzl=''I'' AND TD.Dev <> ''D'' '
ELSE
Set @SSQL = @SSQL + ' And ((S.VlIzl=''I'' AND TD.Dev <> ''D'' AND S.Sifra_OE NOT IN ('+@OrgEdEkolUvoz+')) OR (S.Sifra_OE IN ('+@OrgEdEkolUvoz+') AND S.VlIzl=''V'' AND TD.Dev=''D'' )) '
SET @SSQL=@SSQL+'AND D.Ispratnica=''' + @Ispratnica + ''' '
If @TipDok IS NOT NULL
Set @SSQL = @SSQL + ' And D.Sifra_Dok IN (' + @TipDok + ') '
--------------------------------------------------------- dod 30.08.2006 --------------------------------------------------------------------------------------------------
If @SoUcesOsn = 'D'
Set @SSQL = @SSQL + ' And ((S.UcesOsn > ' + Cast(@UcesOsnNad as varchar(10)) + ' And S.UcesOsn <= ' + Cast(@UcesOsnDo as varchar(10)) + ') '
If @SoUcesKol = 'D'
If @SoUcesOsn <> 'D' Or @SoUcesOsn Is Null
Set @SSQL = @SSQL + ' And ((S.UcesKol > ' + Cast(@UcesKolNad as varchar(10)) + ' And S.UcesKol <= ' + Cast(@UcesKolDo as varchar(10)) + ') '
Else
Set @SSQL = @SSQL + ' Or (S.UcesKol > ' + Cast(@UcesKolNad as varchar(10)) + ' And S.UcesKol <= ' + Cast(@UcesKolDo as varchar(10)) + ') '
If @SoUcesDod = 'D'
If (@SoUcesOsn <> 'D' Or @SoUcesOsn Is Null) And (@SoUcesKol <> 'D' Or @SoUcesKol Is Null)
Set @SSQL = @SSQL + ' And ((S.UcesDod > ' + Cast(@UcesDodNad as varchar(10)) + ' And S.UcesDod <= ' + Cast(@UcesDodDo as varchar(10)) + ') '
Else
Set @SSQL = @SSQL + ' Or (S.UcesDod > ' + Cast(@UcesDodNad as varchar(10)) + ' And S.UcesDod <= ' + Cast(@UcesDodDo as varchar(10)) + ') '
If @SoUcesOsn = 'D' Or @SoUcesKol = 'D' Or @SoUcesDod = 'D'
LEFT OUTER JOIN Komint K ON D.Sifra_Kup=K.Sifra_Kup
Inner Join Katart Kata On S.Sifra_Art = KATA.Sifra_Art
INNER JOIN Orged O ON D.Sifra_OE=O.Sifra_OE
LEFT OUTER JOIN Nalozi N ON D.Sifra_Nal=N.Sifra_Nal AND D.Broj_Nal=N.Broj_Nal
LEFT OUTER JOIN Orged OP ON D.Sifra_Prim=OP.Sifra_OE '
If @Sifra_Nal Is Null
SET @SSQL = @SSQL + 'WHERE 1=1 '
Else
SET @SSQL = @SSQL + 'WHERE D.Sifra_Nal=''' + Cast(@Sifra_Nal As Varchar(10)) + ''' '
If @PoTarifi = 'D'
SET @SSQL = @SSQL + ' AND ((TD.ProTar Like ''D_'' AND TD.Sifra_Za <> 3) OR (TD.Sifra_Za = 3 AND ((D.ImaDodatna = ''D'' AND (TD.ProTar Like ''D_'')) OR (D.ImaDodatna = ''P'' AND TD.ProTar Like ''_D''))))'
If @Sifra_Dok Is NOT NULL
SET @SSQL = @SSQL + 'AND S.Sifra_Dok=''' + Cast(@Sifra_Dok As Varchar(10)) + ''' '
If @Sifra_OE Is NOT Null
SET @SSQL = @SSQL + 'AND S.Sifra_OE=' + Cast(@Sifra_OE As Varchar(6)) + ' '
If @KoiOE Is NOT Null
SET @SSQL = @SSQL + 'AND S.Sifra_OE In (' + @KoiOE + ') '
If @Sifra_Prim Is NOT Null
SET @SSQL = @SSQL + 'AND S.Sifra_Prim=' + Cast(@Sifra_Prim As Varchar(6)) + ' '
If @KoiOE_Prim Is Not Null
SET @SSQL = @SSQL + 'And S.Sifra_Prim In (Select Sifra_OE From SGrOrg Where Sif_GrOrg=''' + @KoiOE_Prim + ''') '
If @Broj_Nal_Od Is NOT Null
SET @SSQL = @SSQL + 'AND D.Broj_Nal>=''' + Cast(@Broj_Nal_Od As Varchar(35)) + ''' '
If @Broj_Nal_Do Is NOT Null
SET @SSQL = @SSQL + 'AND D.Broj_Nal<=''' + Cast(@Broj_Nal_Do As Varchar(35)) + ''' '
If @Broj_Dok_Od Is NOT Null
SET @SSQL = @SSQL + 'AND S.Broj_Dok>=''' + Cast(@Broj_Dok_Od As Varchar(35)) + ''' '
If @Broj_Dok_Do Is NOT Null
SET @SSQL = @SSQL + 'AND S.Broj_Dok<=''' + Cast(@Broj_Dok_Do As Varchar(35)) + ''' '
If @PoKojDatum = 'V'
Begin
If @Datum_Dok_Od Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Vnes >= ''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
If @Datum_Dok_Do Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Vnes < ''' + Cast(@Datum_Dok_Do As Varchar(35)) + ''' '
End
Else
Begin
If @Datum_Dok_Od Is NOT Null
SET @SSQL = @SSQL + 'AND S.Datum_Dok>=''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
If @Datum_Dok_Do Is NOT Null
SET @SSQL = @SSQL + 'AND S.Datum_Dok<=''' + Cast(@Datum_Dok_Do As Varchar(35)) + ''' '
End
If @Datum_Nal_Od Is NOT Null
SET @SSQL = @SSQL + 'AND N.Datum_Nal>=''' + Cast(@Datum_Nal_Od As Varchar(35)) + ''' '
If @Datum_Nal_Do Is NOT Null
SET @SSQL = @SSQL + 'AND N.Datum_Nal<=''' + Cast(@Datum_Nal_Do As Varchar(35)) + ''' '
If @Sifra_Kup Is NOT Null
SET @SSQL = @SSQL + 'AND D.Sifra_Kup=''' + Cast(@Sifra_Kup As Varchar(35))+ ''' '
If @Sifra_Obj Is NOT Null
SET @SSQL = @SSQL + 'AND D.Sifra_Obj=' + Cast(@Sifra_Obj As Varchar(6)) + ' '
If @Sifra_Za Is NOT Null
SET @SSQL = @SSQL + 'AND D.Sifra_Za=''' + Cast(@Sifra_Za As Varchar(35))+ ''' '
If @VlIzl Is NOT Null
SET @SSQL = @SSQL + 'AND S.VlIzl=''' + Cast(@VlIzl As Varchar(5))+ ''' '
If @Sifra_Pat IS NOT NULL
SET @SSQL = @SSQL + ' AND D.Sifra_Pat = ' + Cast(@Sifra_Pat as varchar(5)) + ' '
If @Kto IS NOT NULL
SET @SSQL = @SSQL + ' AND D.Kto=''' + @Kto + ''' '
IF @Sifra_Div IS NOT NULL
SET @SSQL = @SSQL + ' AND D.Sifra_Div = ' + Cast(@Sifra_Div as varchar(5)) + ' '
Insert #tStavr Exec(@SSQL)
------ AH - UH --- KURSOR ---- KOLKU LI E DOBRO VAKA ? DK Sept 13, 2006
------ UH - AH --- STVARNO GK 21.11.2007
Declare tStavr Cursor Fast_Forward For Select * From #tStavr
Open tStavr
Fetch Next From tStavr Into @Uces, @POsnPren, @POsn, @PTar, @DanDokCena, @DanMagCena, @Kolic, @DokCena, @MagCena, @NabCena, @Kasa, @Kto_Anal, @TrsCena
Set @SSQL = @SSQL + ', (Case When KO.Sifra_Grad Is Not Null Then KO.Sifra_Grad Else K.Sifra_Grad End), G.ImeGrad '
print @SSQL
EXEC(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_anal_matdok_potarifi]'))
drop procedure [dbo].[sp_anal_matdok_potarifi]
Go
CREATE PROCEDURE sp_Anal_MatDok_PoTarifi
@Sifra_Nal Smallint,
@Sifra_Dok Smallint,
@Sifra_OE Smallint,
@KoiOE Varchar(1000),
@Sifra_Prim Smallint,
@KoiOe_Prim char(10) = Null,
@Broj_Nal_Od Int,
@Broj_Nal_Do Int,
@Broj_Dok_Od Int,
@Broj_Dok_Do Int,
@Datum_Dok_Od Smalldatetime,
@Datum_Dok_Do Smalldatetime,
@Datum_Nal_Od Smalldatetime,
@Datum_Nal_Do Smalldatetime,
@Sifra_Kup Char(6),
@Sifra_Za Char(1),
@VlIzl Char(1),
@PoTarifi Char(1),
@Sifra_Pat smallint = Null,
@Sifra_Obj smallint = Null,
@PoKojDatum char(1) = 'D', -- D - Datum_Dok, V - Datum_Vnes
@Kto char(6) = Null,
@KFSifra_Nal char(1) = 'N',
@PoOrged char(1) = 'N',
@Sifra_Div smallint=NULL
AS
Declare @SSQL Varchar(4000)
If @PoKojDatum = 'V'
If @Datum_Dok_Do Is Not Null
Set @Datum_Dok_Do = @Datum_Dok_Do + 1
Set @SSQL= ' Select S.PTar, S.POsnPren, S.Posn,
Round(Sum(Case When S.Posn > 15 And S.DanDokCena = ''D'' Then S.Kolic * S.DokCena/(1+S.PosnPren/100) * (1-S.Uces/100) * (1-D.Kasa/100) * S.POsnPren/100
When S.Posn > 15 And S.DanDokCena = ''N'' Then S.Kolic * S.DokCena * (1-S.Uces/100) * (1-D.Kasa/100) * S.POsnPren/100 Else 0 End), 4) Danok1,
Round(Sum(Case When S.Posn <= 15 And S.DanDokCena = ''D'' Then S.Kolic * S.DokCena/(1+S.PosnPren/100) * (1-S.Uces/100) * (1-D.Kasa/100) * S.POsnPren/100
When S.Posn <= 15 And S.DanDokCena = ''N'' Then S.Kolic * S.DokCena * (1-S.Uces/100) * (1-D.Kasa/100) * S.POsnPren/100 Else 0 End), 4) Danok2,
Round(Sum(Case When S.Posn > 15 And S.DanMagCena = ''D'' Then S.Kolic * S.MagCena/(1+S.Posn/100) * S.POsn/100
When S.Posn > 15 And S.DanMagCena = ''N'' Then S.Kolic * S.MagCena * S.POsn/100 Else 0 End), 4) PDanok1,
Round(Sum(Case When S.Posn <= 15 And S.DanMagCena = ''D'' Then S.Kolic * S.MagCena/(1+S.Posn/100) * S.POsn/100
When S.Posn <= 15 And S.DanMagCena = ''N'' Then S.Kolic * S.MagCena * S.POsn/100 Else 0 End), 4) PDanok2,
Round(Sum(S.Kolic * (Case When S.DanDokCena = ''D'' Then S.DokCena Else S.DokCena * (1+S.POsnPren/100) End) * (1-S.Uces/100) * (1-D.Kasa/100)), 4) NabIznos,
Round(Sum(S.Kolic * (Case When S.DanMagCena = ''D'' Then S.MagCena/(1+S.POsn/100) Else S.MagCena End)), 4) MagIznos,
Round(Sum(S.Kolic * (Case When S.DanMagCena = ''D'' Then S.MagCena Else S.MagCena * (1+S.POsn/100) End)), 4) MagIznosDan,
Round(Sum(S.Kolic * (Case When S.DanDokCena = ''D'' Then S.DokCena/(1+S.POsnPren/100) Else S.DokCena End) * (1-(1-S.Uces/100) * (1-D.Kasa/100))), 4) Rabat,
Round(Sum(S.Kolic * S.NabCena), 4) NabVr,
Round(Sum(S.Kolic * S.TrsCena), 4) Trosoci, '
If @PoOrged = 'D'
Set @SSQL = @SSQL + ' S.Sifra_Oe '
Else
Set @SSQL = @SSQL + ' Null Sifra_Oe '
Set @SSQL = @SSQL + ' From Stavr S
Inner Join Dokr D On D.DokrID = S.DokrID
INNER JOIN TipDok TD ON D.Sifra_Dok=TD.Sifra_Dok
LEFT OUTER JOIN Komint K ON D.Sifra_Kup=K.Sifra_Kup
INNER JOIN Orged O ON D.Sifra_OE=O.Sifra_OE
LEFT OUTER JOIN Nalozi N ON D.Sifra_Nal=N.Sifra_Nal AND D.Broj_Nal=N.Broj_Nal
LEFT OUTER JOIN Orged OP ON D.Sifra_Prim=OP.Sifra_OE
Where 1=1 '
-- If @Sifra_Nal Is Null
-- SET @SSQL = @SSQL + 'WHERE 1=1 '
-- Else
-- SET @SSQL = @SSQL + 'WHERE D.Sifra_Nal=''' + Cast(@Sifra_Nal As Varchar(10)) + ''' '
If @Sifra_Nal Is NOT Null
If @KFSifra_Nal = 'D'
Set @SSQL = @SSQL + ' AND D.Sifra_Nal <> ' + Cast(@Sifra_Nal As Varchar(10)) + ' '
Else
Set @SSQL = @SSQL + ' AND D.Sifra_Nal=' + Cast(@Sifra_Nal As Varchar(10)) + ' '
If @PoTarifi = 'D'
SET @SSQL = @SSQL + ' AND ((TD.ProTar Like ''D_'' AND TD.Sifra_Za <> 3) OR (TD.Sifra_Za = 3 AND ((D.ImaDodatna = ''D'' AND (TD.ProTar Like ''D_'')) OR (D.ImaDodatna = ''P'' AND TD.ProTar Like ''_D''))))'
If @Sifra_Dok Is NOT NULL
SET @SSQL = @SSQL + 'AND S.Sifra_Dok=''' + Cast(@Sifra_Dok As Varchar(10)) + ''' '
If @Sifra_OE Is NOT Null
SET @SSQL = @SSQL + 'AND S.Sifra_OE=' + Cast(@Sifra_OE As Varchar(6)) + ' ' If @KoiOE Is NOT Null
SET @SSQL = @SSQL + 'AND S.Sifra_OE In (' + @KoiOE + ') '
If @Sifra_Prim Is NOT Null
SET @SSQL = @SSQL + 'AND S.Sifra_Prim=' + Cast(@Sifra_Prim As Varchar(6)) + ' '
If @KoiOE_Prim Is Not Null
SET @SSQL = @SSQL + 'And S.Sifra_Prim In (Select Sifra_OE From SGrOrg Where Sif_GrOrg=''' + @KoiOE_Prim + ''') '
If @Broj_Nal_Od Is NOT Null
SET @SSQL = @SSQL + 'AND D.Broj_Nal>=''' + Cast(@Broj_Nal_Od As Varchar(35)) + ''' '
If @Broj_Nal_Do Is NOT Null
SET @SSQL = @SSQL + 'AND D.Broj_Nal<=''' + Cast(@Broj_Nal_Do As Varchar(35)) + ''' '
If @Broj_Dok_Od Is NOT Null
SET @SSQL = @SSQL + 'AND S.Broj_Dok>=''' + Cast(@Broj_Dok_Od As Varchar(35)) + ''' '
If @Broj_Dok_Do Is NOT Null
SET @SSQL = @SSQL + 'AND S.Broj_Dok<=''' + Cast(@Broj_Dok_Do As Varchar(35)) + ''' '
If @PoKojDatum = 'V'
Begin
If @Datum_Dok_Od Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Vnes >= ''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
If @Datum_Dok_Do Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Vnes < ''' + Cast(@Datum_Dok_Do As Varchar(35)) + ''' '
End
Else
Begin
If @Datum_Dok_Od Is NOT Null
SET @SSQL = @SSQL + 'AND S.Datum_Dok>=''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
If @Datum_Dok_Do Is NOT Null
SET @SSQL = @SSQL + 'AND S.Datum_Dok<=''' + Cast(@Datum_Dok_Do As Varchar(35)) + ''' '
End
If @Datum_Nal_Od Is NOT Null
SET @SSQL = @SSQL + 'AND N.Datum_Nal>=''' + Cast(@Datum_Nal_Od As Varchar(35)) + ''' '
If @Datum_Nal_Do Is NOT Null
SET @SSQL = @SSQL + 'AND N.Datum_Nal<=''' + Cast(@Datum_Nal_Do As Varchar(35)) + ''' '
If @Sifra_Kup Is NOT Null
SET @SSQL = @SSQL + 'AND D.Sifra_Kup=''' + Cast(@Sifra_Kup As Varchar(35))+ ''' '
If @Sifra_Obj Is NOT Null
SET @SSQL = @SSQL + 'AND D.Sifra_Obj=' + Cast(@Sifra_Obj As Varchar(6)) + ' '
If @Sifra_Za Is NOT Null
SET @SSQL = @SSQL + 'AND D.Sifra_Za=''' + Cast(@Sifra_Za As Varchar(35))+ ''' '
If @VlIzl Is NOT Null
SET @SSQL = @SSQL + 'AND S.VlIzl=''' + Cast(@VlIzl As Varchar(5))+ ''' '
If @Sifra_Pat IS NOT NULL
SET @SSQL = @SSQL + ' AND D.Sifra_Pat = ' + Cast(@Sifra_Pat as varchar(5)) + ' '
If @Kto IS NOT NULL
SET @SSQL = @SSQL + ' AND D.Kto=''' + @Kto + ''' '
IF @Sifra_Div IS NOT NULL
SET @SSQL = @SSQL + ' AND D.Sifra_Div = ' + Cast(@Sifra_Div as varchar(5)) + ' '
Set @SSQL = @SSQL + ' Group By S.PTar, S.POsnPren, S.Posn '
If @PoOrged = 'D'
Set @SSQL = @SSQL + ', S.Sifra_Oe '
Exec(@SSQL)
Set Nocount Off
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_anal_matdok_potipdok]'))
drop procedure [dbo].[sp_anal_matdok_potipdok]
Go
CREATE PROCEDURE sp_Anal_MatDok_PoTipDok
@KoiOE Varchar(1000) = Null,
@Datum_Dok_Od Smalldatetime = Null,
@Datum_Dok_Do Smalldatetime = Null,
@Sifra_Art_Od Varchar(20) = Null,
@Sifra_Art_Do Varchar(20) = Null,
@TipDok varchar(200) = Null,
@ZbirnoPoDok char(1) = Null
AS
Declare @SSQL Varchar(8000)
if @ZbirnoPoDok = 'D'
SET @SSQL = 'SELECT D.Sifra_OE, O.ImeOrg, D.Sifra_Dok, TD.ImeDok, D.Broj_Dok, D.Identif_Br,
--------------------------------------------------------- dod 30.08.2006 --------------------------------------------------------------------------------------------------
If @SoUcesOsn = 'D'
Set @SSQL = @SSQL + ' And ((S.UcesOsn > ' + Cast(@UcesOsnNad as varchar(10)) + ' And S.UcesOsn <= ' + Cast(@UcesOsnDo as varchar(10)) + ') '
If @SoUcesKol = 'D'
If @SoUcesOsn <> 'D' Or @SoUcesOsn Is Null
Set @SSQL = @SSQL + ' And ((S.UcesKol > ' + Cast(@UcesKolNad as varchar(10)) + ' And S.UcesKol <= ' + Cast(@UcesKolDo as varchar(10)) + ') '
Else
Set @SSQL = @SSQL + ' Or (S.UcesKol > ' + Cast(@UcesKolNad as varchar(10)) + ' And S.UcesKol <= ' + Cast(@UcesKolDo as varchar(10)) + ') '
If @SoUcesDod = 'D'
If (@SoUcesOsn <> 'D' Or @SoUcesOsn Is Null) And (@SoUcesKol <> 'D' Or @SoUcesKol Is Null)
Set @SSQL = @SSQL + ' And ((S.UcesDod > ' + Cast(@UcesDodNad as varchar(10)) + ' And S.UcesDod <= ' + Cast(@UcesDodDo as varchar(10)) + ') '
Else
Set @SSQL = @SSQL + ' Or (S.UcesDod > ' + Cast(@UcesDodNad as varchar(10)) + ' And S.UcesDod <= ' + Cast(@UcesDodDo as varchar(10)) + ') '
If @SoUcesOsn = 'D' Or @SoUcesKol = 'D' Or @SoUcesDod = 'D'
Where S.VlIzl = ''I'' And (S.ImaDodatna Is NULL OR S.ImaDodatna = '' '' OR S.ImaDodatna = '''') '+@SOE
If @TipDokProd is NOT null
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_Dok IN (' + @TipDokProd + ') '
If @Datum_Od Is Not NULL
Set @SSQLUsl = @SSQLUsl + 'And S.Datum_Dok>=''' + Cast(@Datum_Od As Varchar(30)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQLUsl = @SSQLUsl + 'And S.Datum_Dok<=''' + Cast(@Datum_Do As Varchar(30)) + ''' '
If @Kto Is Not NULL And (@DobavOd <> 'K' Or @DobavOd Is Null)
Begin
If @KF_Kto = 'N'
Set @SSQLUsl = @SSQLUsl + 'And S.Dobav IN (' + @Kto + ') '
Else
Set @SSQLUsl = @SSQLUsl + 'And S.Dobav NOT IN (' + @Kto + ') '
End
Set @SSQLUsl = @SSQLUsl + 'Group By S.Sifra_Art'
print @SSQL+@SSQLUsl
INSERT #TmpProd EXEC(@SSQL+@SSQLUsl)
--------------------------------------------------------------------------- So Paralelna (Prethodna) baza ----------------------------------------------------------------------------------------------
Set @SSQL = @SSQL + 'TOP ' + Cast(@Kolku as varchar(6)) + ' ' --K.Iskluci <> ''D'' And
Set @SSQL = @SSQL + 'A.Sifra_Art, A.ImeArt, SA.Kolicina As Zaliha, SA.Vrednost As Vr_Zaliha,
P.Vr_Krajna, P.Kolicina
From #TmpArt A
Left Outer Join #TmpProd P On A.Sifra_Art=P.Sifra_Art
Left Outer Join #TmpZal SA On A.Sifra_Art=SA.Sifra_Art
WHERE 1=1 AND (SA.Kolicina<>0 OR P.Kolicina<>0)'
IF @So_NulaProd <> 'D'
Set @SSQL = @SSQL + ' AND P.Kolicina <>0 '
Set @SSQL = @SSQL + ' Order By P.Vr_Krajna DESC'
Exec(@SSQL)
End
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_analiza_abc_komint_oe]'))
drop procedure [dbo].[sp_analiza_abc_komint_oe]
Go
CREATE PROCEDURE sp_Analiza_ABC_Komint_Oe
@Datum_Od Smalldatetime,
@Datum_Do Smalldatetime,
@Sifra_OE varchar(300) = NULL,
@KF_OE char(1) = 'N',
@Sifra_Podg varchar(200) = NULL,
@KF_Podg char(1) = 'N',
@Sifra_Gr varchar(200) = NULL,
@KF_Gr char(1) = 'N',
@Kto varchar(200) = NULL,
@KF_Kto char(1) = 'N',
@Sifra_Brand varchar(200) = NULL,
@KF_Brand char(1) = 'N',
@Lokacija varchar(10) = NULL,
@KF_Lokacija char(1) = 'N',
@SoDanok Char(1) = 'D',
@NegZalihaKako0 char(1) = 'D', -- Ne se koristi (treba da se napravi prvo zalihata po artikli za da moze da se koristi; momentalno zalihata ja zema vrednosno po OE ili po Komint)
@TekZaliha char(1) = 'D',
@IskluciKup varchar(200) = '660660, 660663, 021000', --ova ne se koristi
@TipDokProd varchar(200) = '100,101,60',
@Kolku int = NULL,
@So_NulaProd char(1)='D',
@BazaPreth varchar(20) = Null,
@PrikaziSto char(1) = 'D' -- D - Kto (Dobavuvac) O - Org.Ed (Market)
AS
Declare @RazlDen as smallint
If @Datum_Od Is Not Null And @Datum_Do Is Not Null
Set @RazlDen = datediff(Day, @Datum_Od, @Datum_Do)
Else
Set @RazlDen = 1
Create Table #Rez
(
Sifra Varchar(20),
VredZal Decimal(18, 6),
VredProd Decimal(18, 6)
)
CREATE NONCLUSTERED INDEX IX_TmpRez ON #Rez
(Sifra) ON [PRIMARY]
Declare @SSQL Varchar(8000)
Declare @SSQLUsl Varchar(2000)
Declare @SOE Varchar(2000)
Declare @SOsn Varchar(2000)
Declare @SKto Varchar(2000)
SET @SSQLUsl = ''
SET @SOE = ''
SET @SOsn = ''
SET @SKto = ''
If @Sifra_OE Is Not NULL
Begin
If @KF_OE = 'N'
Set @SOE = @SOE + 'AND S.Sifra_OE IN (' + @Sifra_OE + ') '
Else
Set @SOE = @SOE + 'AND S.Sifra_OE NOT IN (' + @Sifra_OE + ') '
End
If @Sifra_Podg Is Not NULL
Begin
If @KF_Podg = 'N'
Set @SOsn = @SOsn + 'And K.Sifra_Podg IN (' + @Sifra_Podg + ') '
Else
Set @SOsn = @SOsn + 'And K.Sifra_Podg NOT IN (' + @Sifra_Podg + ') '
End
If @Sifra_Gr Is Not NULL
Begin
If @KF_Gr = 'N'
Set @SOsn = @SOsn + 'And P.Sifra_Gr IN (' + @Sifra_Gr + ') '
Else
Set @SOsn = @SOsn + 'And P.Sifra_Gr NOT IN (' + @Sifra_Gr + ') '
End
If @Sifra_Brand Is Not NULL
Begin
If @KF_Brand = 'N'
Set @SOsn = @SOsn + 'And K.Sifra_Drg IN (' + @Sifra_Brand + ') '
Else
Set @SOsn = @SOsn + 'And K.Sifra_Drg NOT IN (' + @Sifra_Brand + ') '
/* --------------------------------------------------------------------------- So Paralelna (Prethodna) baza ----------------------------------------------------------------------------------------------
---------------------------------------------------------------- Z A L I H A ------------------------------------------------------------------------
-- Sega ke ja presmetame Zalihata
Set @SSQL = 'Update #Narac Set Zaliha = (Select Sum(Soart.Vlez-Soart.Izlez)
From Soart
Inner Join KatArt ON Soart.Sifra_Art=Katart.Sifra_Art '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + 'Inner Join Podgrupi On Katart.Sifra_Podg=Podgrupi.Sifra_Podg '
Set @SSQL = @SSQL + 'Where #Narac.Sifra_Art = Soart.Sifra_Art and Katart.Iskluci <> ''D'' '
-----------------------------------------------
If @Sifra_OE_Zal Is Not NULL
Set @SSQLOe = @SSQLOe + ' And Soart.Sifra_OE=' + Cast(@Sifra_OE_Zal As Varchar(5)) + ' '
If @KoiOE_Zal Is Not NULL
Set @SSQLOe = @SSQLOe + ' And Soart.Sifra_OE IN (Select Sifra_Oe From SGrOrg Where Sif_GrOrg = ''' + @KoiOE_Zal + ''') '
------------------------------------------------------------------ G R O U P ---------------------------------------------------------------------------
Set @SSQLGroup = @SSQLGroup + 'Group By Soart.Sifra_Art) '
Print @SSQL+@SSQLUsl+@SSQLOe+@SSQLGroup
Insert Into #Narac Exec(@SSQL+@SSQLUsl+@SSQLOe+@SSQLGroup)
---------------------------------------------------------------- P R O D A Z B A ----------------------------------------------------------------
--- Sega ja presmetuvame prodazbata
Set @SSQLOe=' '
Set @SSQLGroup=' '
Set @SSQL = 'Update #Narac Set #Narac.Prodazba= (Select Round(Sum(Stavr.Kolic), 4)
From Stavr
Inner Join KatArt ON Stavr.Sifra_Art=Katart.Sifra_Art
Inner Join Dokr ON Stavr.DokrID=Dokr.DokrID And (Dokr.Sifra_Za = ''1'') '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + 'Inner Join Podgrupi On Katart.Sifra_Podg=Podgrupi.Sifra_Podg '
Set @SSQL = @SSQL + 'Where #Narac.Sifra_Art = Stavr.Sifra_Art and Katart.Iskluci <> ''D'' '
If @Datum_Od Is Not NULL
Set @SSQLDat = @SSQLDat + ' And Stavr.Datum_Dok>=''' + Cast(@Datum_Od As Varchar(25)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQLDat = @SSQLDat + ' And Stavr.Datum_Dok<=''' + Cast(@Datum_Do As Varchar(25)) + ''' '
If @Sifra_OE_Prod Is Not NULL
Set @SSQLOe = @SSQLOe + ' And Stavr.Sifra_OE=' + Cast(@Sifra_OE_Prod As Varchar(5)) + ' '
If @KoiOE_Prod Is Not NULL
Set @SSQLOe = @SSQLOe + ' And Stavr.Sifra_OE IN (Select Sifra_Oe From SGrOrg Where Sif_GrOrg = ''' + @KoiOE_Prod + ''') '
Set @SSQLGroup = @SSQLGroup + 'Group By Stavr.Sifra_Art) '
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_analizanaprodazba]'))
drop procedure [dbo].[sp_analizanaprodazba]
Go
CREATE PROCEDURE sp_AnalizaNaProdazba
@KoiOE varchar(300) = Null,
@Datum_Od smalldatetime = Null,
@Datum_Do smalldatetime = Null,
@Sifra_Art_Od varchar(20)= Null,
@Sifra_Art_Do varchar(20) = Null,
@Podred char(1) = 'S',
@Kto char(6) = Null,
@Sifra_Gr varchar(6) = Null,
@Sifra_Podg char(6) = Null,
@TipDokProd varchar(300) = Null,
@DenoviIspor smallint = 7,
@Plan decimal(18,6) = Null,
@BrojNaDenovi smallint = Null,
@KojIzv char(1) = 'P' -- P - Planing based on sales R - Reversibility ratio based on the sales
-- Mora @DenoviIspor Mora @BrojNaDenovi
-- @Plan
AS
Declare @SSQL Varchar(8000)
Declare @SSQLUsl Varchar(8000)
Declare @SSQLUslArt Varchar(8000)
Set @SSQLUsl = ' '
Set @SSQLUslArt = ' '
Create Table #Rez
(
Sifra_Art varchar(20),
Kolic decimal(18,6),
Nabavna decimal(18,6),
KojaVal char(3),
ProsCena decimal(18,6),
Vrednost decimal(18,6),
ProcOdVkProd decimal(18,6),
PlanH decimal(18,6),
DogCena decimal(18,6),
VredPlan decimal(18,6),
ZalihaTekovna decimal(18,6),
OcekuvProdazba decimal(18,6),
VredZaliha decimal(18,6),
Odnos_Ratio decimal(18,6)
)
---------------------------------------------------------------------------- U S L O V --------------------------------------------------------------------------------------------
If @Datum_Od Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And S.Datum_Dok>=''' + Cast(@Datum_Od As Varchar(25)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And S.Datum_Dok<=''' + Cast(@Datum_Do As Varchar(25)) + ''' '
If @TipDokProd IS NOT NULL
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_Dok IN (' + @TipDokProd + ') '
--------------------------------------------------------- U S L O V P O A R T I L K I ----------------------------------------------------------------------------
--------------------------------------------------------------------- Z A L I H A ----------------------------------------------------------------------
Set @SSQL = 'Update #Rez
Set ZalihaTekovna = (Select Sum(Vlez)-Sum(Izlez) From Soart Where 1=1 '
If @KoiOE Is Not Null
Set @SSQL = @SSQL + ' And Sifra_OE In (' + @KoiOE + ') '
Set @SSQL = @SSQL + ' And #Rez.Sifra_Art=Soart.Sifra_Art) '
LEFT OUTER JOIN KrsLista V ON G.KojaVal = V.SimeVal
LEFT OUTER JOIN Orged O On O.Sifra_Oe=G.Sifra_Oe
Order By G.Datum_Nal, G.Sifra_Nal, G.Broj_Nal, G.Sifra_Oe
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_analkart_vidtrosok]'))
drop procedure [dbo].[sp_analkart_vidtrosok]
Go
CREATE PROCEDURE sp_AnalKart_VidTrosok
@Sifra_Div smallint = Null,
@Kto_Anal_Od Char(10) = Null,
@Kto_Anal_Do Char(10) = Null,
@Datum_Nal_Od Smalldatetime,
@Datum_Nal_Do Smalldatetime,
@Datum_Dok_Od Smalldatetime,
@Datum_Dok_Do Smalldatetime,
@Sifra_OE smallint = Null,
@KoiOe varchar(6) = Null,
@Kto_Sint char(3) = Null,
@Tek_Godina int = Null, --YEAR(GETDATE())
@Sifra_Nal smallint = Null,
@KojaVal char(3) = Null
AS
Declare @SSQL Varchar(8000)
Declare @God smallint
Set @SSQL = ''
If @Datum_Nal_Od Is Not Null
Set @God = YEAR(@Datum_Nal_Od)
ELSE
Set @God = @Tek_Godina
If Not (@Datum_Nal_Od Is Null AND @Datum_Dok_Od Is Null)
Begin
Set @SSQL = @SSQL + 'Select GD.Sifra_Div, Div.ImeDiv, Null AS Kto_Anal, Null ImeAnal, Null As Datum_Nal, Null As Sifra_Nal, Null As Broj_Nal, Null As Datum_Dok,
''Prethoden Promet'' As Opis, G.KojaVal, V.ImeVal, Null Opis2,
Sum(Case When GD.Dolzi <> 0 Then GD.Dolzi Else 0 End) As Preth_Dolzi,
Sum(Case When GD.Pobaruva <> 0 Then GD.Pobaruva Else 0 End) as Preth_Pobaruva,
Sum(Case When G.Kurs > 1 And GD.Dolzi <> 0 Then GD.Dolzi / G.Kurs Else 0 End) as Preth_Dev_Dolzi,
Sum(Case When G.Kurs > 1 And GD.Pobaruva <> 0 Then GD.Pobaruva / G.Kurs Else 0 End) as Preth_Dev_Pobaruva,
0 As Tek_Dolzi,
0 As Tek_Pobaruva,
0 As Tek_Dev_Dolzi,
0 As Tek_Dev_Pobar,
G.Sifra_Oe, O.ImeOrg
From GStav G
INNER JOIN GstAnDiv GD On GD.GstID=G.GstID
LEFT OUTER JOIN KrsLista V ON G.KojaVal=V.SImeVal
LEFT OUTER JOIN Orged O On O.Sifra_Oe=G.Sifra_Oe
LEFT OUTER JOIN Divizii Div On Div.Sifra_Div=GD.Sifra_Div
Where 1=1 '
If @Kto_Sint Is Not Null
Set @SSQL = @SSQL + ' And Substring(G.Kto_Anal, 1, 3)=''' + @Kto_Sint + ''' '
If @Kto_Anal_Od Is Not Null
Set @SSQL = @SSQL + ' And G.Kto_Anal>=''' + @Kto_Anal_Od + ''' '
If @Kto_Anal_Do Is Not Null
Set @SSQL = @SSQL + ' And G.Kto_Anal<=''' + @Kto_Anal_Do + ''' '
If @Sifra_OE Is Not Null
Set @SSQL = @SSQL + ' And G.Sifra_OE = ' + Cast(@Sifra_OE AS varchar(6)) + ' '
If @KoiOE Is Not Null
Set @SSQL = @SSQL + ' And G.Sifra_OE In (Select Sifra_OE From SGrOrg Where Sif_GrOrg=''' + Cast(@KoiOE As Varchar(6)) + ''') '
If @Sifra_Nal Is Not Null
Set @SSQL = @SSQL + ' And G.Sifra_Nal = ' + Cast(@Sifra_Nal AS varchar(6)) + ' '
If @Datum_Nal_Od Is Not Null
Set @SSQL = @SSQL + ' AND G.Datum_Nal<''' + Cast(@Datum_Nal_Od As Varchar(30)) + ''' AND YEAR(G.Datum_Nal)=' + Cast(@God as char(4)) + ' '
If @Datum_Dok_Od Is Not Null
Set @SSQL = @SSQL + 'And G.Datum_Dok<''' + Cast(@Datum_Dok_Od As Varchar(30)) + ''' AND YEAR(G.Datum_Nal)=' + Cast(@God as char(4)) + ' '
If @KojaVal Is Not Null
Set @SSQL = @SSQL + ' And G.KojaVal =''' + @KojaVal + ''' '
If @Sifra_Div Is Not Null
Set @SSQL = @SSQL + ' And GD.Sifra_Div = ' + Cast(@Sifra_Div AS varchar(6)) + ' '
SET @SSQL = @SSQL + ' GROUP BY GD.Sifra_Div, Div.ImeDiv, G.KojaVal, V.ImeVal, G.Sifra_Oe, O.ImeOrg '
And C.Sifra_Art Not In (Select Sifra_Art From GSostav Where Sif_GrOrg=@Gr_Org)
*/
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_art_obezb_art]'))
drop procedure [dbo].[sp_art_obezb_art]
Go
create PROCEDURE [dbo].[sp_Art_Obezb_Art]
@Sifra_Art varchar(20),
@Sifra_Art_Nov varchaR(20) = NULL OUTPUT
As
Declare @Sifra_Art_Najden varchar(20)
if cast(@Sifra_Art as int) >= 100000
begin
select @Sifra_Art_Najden = Sifra_Art
from Katart
Where Sifra_Art = @Sifra_Art
if @Sifra_Art_NAjden is null -- Ova treba da e normalen slucaj
return
end
Declare @Preth varchaR(20)
select @Preth = Max(Sifra_Art)
from Katart
where Sifra_Art > '100000' and sifra_art < '900000'
if @Preth is null --Nejasno
set @Preth = '100000'
set @SIfrA_Art_Nov = cast(cast(@Preth as int) + 1 as varchaR(6))
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_art_toplista]'))
drop procedure [dbo].[sp_art_toplista]
Go
CREATE PROCEDURE [dbo].[sp_Art_TopLista]
@Sifra_OE Smallint = 1,
@KoiOE Varchar(700) = Null,
@Pod1 Smallint = Null,
@Pod2 Smallint = Null,
@Pod3 Smallint = Null,
@Pod4 Smallint = Null,
@Pod5 Smallint = Null,
@Pod6 Smallint = Null,
@Pod7 Smallint = Null,
@KFPod1 char(1) = Null,
@KFPod2 char(1) = Null,
@KFPod3 char(1) = Null,
@KFPod4 char(1) = Null,
@KFPod5 char(1) = Null,
@KFPod6 char(1) = Null,
@KFPod7 char(1) = Null,
@Sifra_Tip Smallint = Null,
@Datum_Od Smalldatetime = Null,
@Datum_Do Smalldatetime = Null,
@Sifra_Art_Od Varchar(20)= Null,
@Sifra_Art_Do Varchar(20) = Null,
@Sifra_Kup_Od Char(6) = Null,
@Sifra_Kup_Do Char(6) = Null,
@Podred Char(1) = 3,
@Kolku Int = Null,
@Kto varChar(100) = Null,
@Sifra_Gr VarChar(300) = Null,
@Sifra_Podg VarChar(300) = Null,
@Lokacija Varchar(10) = Null,
@TipKup Varchar(200) = Null,
@Komint_KObj Char(1) = 'K',
@Sifra_Brand Smallint = Null,
@Sifra_ZBrand Smallint = Null,
@RazbijSostav Char(1) = 'D',
@ZalihaOdOE Varchar(700) = Null,
@Koi_Gradovi Varchar(200) = Null,
@SoPodgrupi char(1) = 'N',
@Sifra_Pat varchar(300) = Null,
@Sifra_Obj smallint = Null,
@TipDokProd varchar(200) = Null,
@Koi_Regioni varchar(200) = Null,
@Sifra_Mest Int = Null,
@PoProdMesta char(1)='N',
@SoPod1 char(1) = 'N',
@SoPod2 char(1) = 'N',
@SoPod3 char(1) = 'N',
@SoPod4 char(1) = 'N',
@SoPod5 char(1) = 'N',
@SoBrand char(1) = 'N',
@KomercKako char(1) = 'I', -- I - Istoriski od AnFinDok, T - Tekovno od Komint
@PocnuvaSo char(1) = 'N', -- Se Odnesuva na podgrupite D, N
@KolkuMesta smallint = 6, -- Se Odnesuva na podgrupite 2, 3, 4, 5, 6
@PoKojDatum char(1) = 'D', -- D - Po Datum na Dokument, V - Po Datum Na Vnes
@Drugo1 smallint = Null,
@Drugo2 smallint = Null,
@Drugo3 smallint = Null,
@Drugo4 smallint = Null,
@Drugo5 smallint = Null,
@Drugo6 smallint = Null,
@Drugo7 smallint = Null,
@Posrednik char(6) = Null,
@Asortiman char(1) = 'N', -- D - da gi prikaze i onie artikli za koi nema prodazba vo periodot
-- Z - da gi prikaze i onie artikli za koi nema prodazba vo periodot, a gi ima na zaliha
@DaliNabavna char(1) = 'N', -- za MakInvest posledna nabavna od katart; cena od soart od orged 001
@Sifra_Nivo char(2) = Null,
@KojaCena char(1) = Null,
@Sifra_Tabela varchar(20) = null, -- Dali da gi vratam definiranite Grupi na Artikli i rednite broevi za podreduvanje na izvestajot (za specijalni izvestai)
@ImeArtDel varchar(20) = Null,
@DajNabavki char(1) = 'N', -- D - Da, N - Ne (Dali da gi prikazze nabavenite kolicini po artikal)
@DevCena char(1) = 'N', -- Prikazi vrednost po devizna cena D - so danok, B - bez Danok N - ne
@PrethBazaOd char(1) = 'N', -- K - Konfig (poleto PrethBaza) ?T? - Nekoja tabela (Fir Paral ili Nekoja Nova za vo idnina)
@ParalenliBazi varchar(200) = Null,
@Sifra_Div smallint = Null,
@GrKup varchar(500) = Null,
@GrArt varchar(500) = Null,
@PrikNeralizNarac char(1) = 'N' -- Da se prikazat i nerealiziranite naracki koi se markirani za isporaka (Orbiko)
AS
If @PoKojDatum = 'V'
If @Datum_Do Is Not Null
Set @Datum_Do = @Datum_Do + 1
Declare @RazlDat As Int
If @Datum_Od Is Not Null And @Datum_Do Is Not Null
Set @RazlDat = Datediff(day, @Datum_Od, @Datum_Do) + 1
Else
Set @RazlDat = 0
Declare @SSQL Varchar(8000)
Declare @SSQLFrom Varchar(8000)
Declare @SSQLUsl Varchar(8000)
Declare @SSQLUslArt Varchar(8000)
Declare @SSQLDok as varchar(8000)
Set @SSQLUsl = ' '
Set @SSQLUslArt = ' '
Set @SSQLFrom = ' '
Set @SSQLDok = ' '
If @GrKup Is Not Null
Begin
Create Table #KupObj
(
Sifra_Kup char(6),
Sifra_Obj smallint
)
CREATE Table #KupObj1
(
Sifra_Kup char(6),
Sifra_Obj smallint
)
Set @SSQL = ' Insert Into #KupObj1 (Sifra_Kup, Sifra_Obj) Select Distinct Sifra_Kup, Sifra_Obj From SGrKupObj Where Sif_GrKup In (' + @GrKup + ') And Sifra_Obj Is Not Null '
Exec(@SSQL)
Set @SSQL = ' Insert Into #KupObj1 (Sifra_Kup, Sifra_Obj)
Select Distinct GK.Sifra_Kup, KO.Sifra_Obj
From SGrKupObj GK
Inner Join Kobjekti KO On GK.Sifra_Kup = KO.Sifra_Kup
Where GK.Sif_GrKup In (' + @GrKup + ') And GK.Sifra_Obj Is Null '
--Where GK.Sif_GrKup In (' + @GrKup + ') And GK.Sifra_Kup+Cast(KO.Sifra_Obj as char(4)) Not In (Select Sifra_Kup+Cast(Sifra_Obj as char(6)) From #KupObj) And GK.Sifra_Obj Is Null '
Exec(@SSQL)
Set @SSQL = ' Insert Into #KupObj1 (Sifra_Kup) Select Distinct Sifra_Kup From SGrKupObj Where Sif_GrKup In (' + @GrKup + ') And Sifra_Obj Is Null '
Exec(@SSQL)
INSERT INTO #KupObj SELECT DISTINCT Sifra_Kup, Sifra_Obj FROM #KupObj1
End
If @GrArt Is Not Null
Begin
Create Table #GrArt
(
Sifra_Art varchar(20)
)
Create NonClustered Index IX_Art On #GrArt (Sifra_Art)
Set @SSQL = 'Insert Into #GrArt Select DISTINCT Sifra_Art From SGrArt Where Sif_GrArt In (' + @GrArt + ') '
Exec(@SSQL)
End
---------------------------------------------------------------------------- U S L O V --------------------------------------------------------------------------------------------
If @Koi_Gradovi Is Not NULL
Begin
Set @SSQLUsl = @SSQLUsl + ' And ((KO.Sifra_Grad Is Not Null And KO.Sifra_Grad In (' + @Koi_Gradovi + '))
OR ( KO.Sifra_Grad Is Null and KUP.Sifra_Grad In ( ' + @Koi_Gradovi + '))) '
End
If @Koi_Regioni Is Not NULL
Begin
Set @SSQLUsl = @SSQLUsl + ' And ((KO.Sifra_Reg Is Not Null And KO.Sifra_Reg In (' + @Koi_Regioni + '))
OR ( KO.Sifra_Reg Is Null and KUP.Sifra_Reg In ( ' + @Koi_Regioni + '))) '
End
If @TipKup Is Not NULL
Begin
Set @SSQLUsl = @SSQLUsl + ' And ((KO.TipKup Is Not Null And KO.TipKup In (' + @TipKup + '))
OR ( KO.TipKup Is Null and KUP.TipKup In ( ' + @TipKup + '))) '
End
If @Sifra_Nivo Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And KUP.Sifra_Nivo = ''' + @Sifra_Nivo + ''' '
If @KojaCena Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And KUP.KojaCena = ''' + @KojaCena + ''' '
If @Sifra_Kup_Od Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And D.Sifra_Kup>=' + Cast(@Sifra_Kup_Od As Varchar(6)) + ' '
If @Sifra_Kup_Do Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And D.Sifra_Kup<=' + Cast(@Sifra_Kup_Do As Varchar(6)) + ' '
If @KomercKako = 'I'
If @Sifra_Pat IS NOT NULL
SET @SSQLUsl = @SSQLUsl + ' AND D.Sifra_Pat In (' + @Sifra_Pat + ') '
If @KomercKako = 'T'
If @Sifra_Pat IS NOT NULL
Set @SSQLUsl = @SSQLUsl + ' And ((KO.Sifra_Pat Is Not Null And KO.Sifra_Pat In (' + @Sifra_Pat + '))
OR ( KO.Sifra_Pat Is Null and KUP.Sifra_Pat In (' + @Sifra_Pat + '))) '
If @Sifra_Obj IS NOT NULL
SET @SSQLUsl = @SSQLUsl + ' AND D.Sifra_Obj = ' + Cast(@Sifra_Obj as varchar(5)) + ' '
If @Pod1 Is Not NULL
If @KFPod1 = 'D'
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo1 Is Not Null And KO.KDrugo1 <> ' + Cast(@Pod1 As Varchar(6)) + ')
Or (KO.KDrugo1 Is Null And Kup.KDrugo1 <> ' + Cast(@Pod1 As Varchar(6)) + ') Or (KO.KDrugo1 Is Null And Kup.KDrugo1 Is Null)) '
Else
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo1 Is Not Null And KO.KDrugo1 = ' + Cast(@Pod1 As Varchar(6)) + ')
Or (KO.KDrugo1 Is Null And Kup.KDrugo1 = ' + Cast(@Pod1 As Varchar(6)) + ')) '
If @Pod2 Is Not NULL
If @KFPod2 = 'D'
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo2 Is Not Null And KO.KDrugo2 <> ' + Cast(@Pod2 As Varchar(6)) + ')
Or (KO.KDrugo2 Is Null And Kup.KDrugo2 <> ' + Cast(@Pod2 As Varchar(6)) + ') Or (KO.KDrugo2 Is Null And Kup.KDrugo2 Is Null)) '
Else
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo2 Is Not Null And KO.KDrugo2 = ' + Cast(@Pod2 As Varchar(6)) + ')
Or (KO.KDrugo2 Is Null And Kup.KDrugo2 = ' + Cast(@Pod2 As Varchar(6)) + ')) '
If @Pod3 Is Not NULL
If @KFPod3 = 'D'
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo3 Is Not Null And KO.KDrugo3 <> ' + Cast(@Pod3 As Varchar(6)) + ')
Or (KO.KDrugo3 Is Null And Kup.KDrugo3 <> ' + Cast(@Pod3 As Varchar(6)) + ') Or (KO.KDrugo3 Is Null And Kup.KDrugo3 Is Null)) '
Else
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo3 Is Not Null And KO.KDrugo3 = ' + Cast(@Pod3 As Varchar(6)) + ')
Or (KO.KDrugo3 Is Null And Kup.KDrugo3 = ' + Cast(@Pod3 As Varchar(6)) + ')) '
If @Pod4 Is Not NULL
If @KFPod4 = 'D'
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo4 Is Not Null And KO.KDrugo4 <> ' + Cast(@Pod4 As Varchar(6)) + ')
Or (KO.KDrugo4 Is Null And Kup.KDrugo4 <> ' + Cast(@Pod4 As Varchar(6)) + ') Or (KO.KDrugo4 Is Null And Kup.KDrugo4 Is Null)) '
Else
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo4 Is Not Null And KO.KDrugo4 = ' + Cast(@Pod4 As Varchar(6)) + ')
Or (KO.KDrugo4 Is Null And Kup.KDrugo4 = ' + Cast(@Pod4 As Varchar(6)) + ')) '
If @Pod5 Is Not NULL
If @KFPod5 = 'D'
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo5 Is Not Null And KO.KDrugo5 <> ' + Cast(@Pod5 As Varchar(6)) + ')
Or (KO.KDrugo5 Is Null And Kup.KDrugo5 <> ' + Cast(@Pod5 As Varchar(6)) + ') Or (KO.KDrugo5 Is Null And Kup.KDrugo5 Is Null)) '
Else
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo5 Is Not Null And KO.KDrugo5 = ' + Cast(@Pod5 As Varchar(6)) + ')
Or (KO.KDrugo5 Is Null And Kup.KDrugo5 = ' + Cast(@Pod5 As Varchar(6)) + ')) '
If @Pod6 Is Not NULL
If @KFPod6 = 'D'
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo6 Is Not Null And KO.KDrugo6 <> ' + Cast(@Pod6 As Varchar(6)) + ')
Or (KO.KDrugo6 Is Null And Kup.KDrugo6 <> ' + Cast(@Pod6 As Varchar(6)) + ') Or (KO.KDrugo6 Is Null And Kup.KDrugo6 Is Null)) '
Else
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo6 Is Not Null And KO.KDrugo6 = ' + Cast(@Pod6 As Varchar(6)) + ')
Or (KO.KDrugo6 Is Null And Kup.KDrugo6 = ' + Cast(@Pod6 As Varchar(6)) + ')) '
If @Pod7 Is Not NULL
If @KFPod7 = 'D'
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo7 Is Not Null And KO.KDrugo7 <> ' + Cast(@Pod7 As Varchar(6)) + ')
Or (KO.KDrugo7 Is Null And Kup.KDrugo7 <> ' + Cast(@Pod7 As Varchar(6)) + ') Or (KO.KDrugo7 Is Null And Kup.KDrugo7 Is Null)) '
Else
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo7 Is Not Null And KO.KDrugo7 = ' + Cast(@Pod7 As Varchar(6)) + ')
Or (KO.KDrugo7 Is Null And Kup.KDrugo7 = ' + Cast(@Pod7 As Varchar(6)) + ')) '
If @Sifra_Tip Is Not Null
SET @SSQLUsl = @SSQLUsl +'AND KUP.Sifra_Tip=' + Cast(@Sifra_Tip As Varchar(6)) + ' '
If @Posrednik Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And PM.Posrednik=' + Cast(@Posrednik As Varchar(6)) + ' '
------------------------------------------------------- U S L O V D O K ---------------------------------------------------------------------------------------------------
If @PoKojDatum = 'V'
Begin
If @Datum_Od Is Not NULL
Set @SSQLDok = @SSQLDok + ' And D.Datum_Vnes>=''' + Cast(@Datum_Od As Varchar(25)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQLDok = @SSQLDok + ' And D.Datum_Vnes<''' + Cast(@Datum_Do As Varchar(25)) + ''' '
End
Else
Begin
If @Datum_Od Is Not NULL
Set @SSQLDok = @SSQLDok + ' And D.Datum_Dok>=''' + Cast(@Datum_Od As Varchar(25)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQLDok = @SSQLDok + ' And D.Datum_Dok<=''' + Cast(@Datum_Do As Varchar(25)) + ''' '
End
If @TipDokProd IS NOT NULL
Set @SSQLDok = @SSQLDok + ' And D.Sifra_Dok IN (' + @TipDokProd + ') '
If @Sifra_Mest Is Not NULL
Set @SSQLDok = @SSQLDok + ' And D.Sifra_Mest =''' + Cast(@Sifra_Mest As Varchar(6)) + ''' '
--------------------------------------------------------- U S L O V P O A R T I L K I ----------------------------------------------------------------------------
------------------------------------------------------------------ T O P L I S T A ------------------------------------------------------------------------------------
-------- Select Query --------
Set @SSQL = 'Select TS.Sifra_Sur As Sifra_Art,
Round(Sum(S.Kolic*TS.Ima_Kolic), 4) As Kolicina,
Round(Sum(S.Kolic*TS.Ima_Kolic*dbo.fix_BrandKolic(K.KolkuDrg)), 4) As UL,
Count(TS.Sifra_Art) As Izlezi,
Round(Sum(dbo.fn_vr_osnov (S.Kolic*TS.Ima_Kolic, S.DokCena*TS.Cena/TS.VkCena, S.DanDokCena, S.POsn)), 4) As Vr_Osnov,
Round(Sum(dbo.fn_vr_sorabat(S.Kolic*TS.Ima_Kolic, S.DokCena*TS.Cena/TS.VkCena, S.DanDokCena, S.POsn, S.Uces, D.Kasa)), 4) As Vr_SoRabat,
Round(Sum(dbo.fn_vr_krajna (S.Kolic*TS.Ima_Kolic, S.DokCena*TS.Cena/TS.VkCena, S.DanDokCena, S.POsn, S.Uces, D.Kasa)), 4) As Vr_Krajna,
Round(Sum(S.Kolic*TS.Ima_Kolic*K.GotCena), 4) As Vr_NPS,
Round(Sum(dbo.fn_VratiRabatBezDDV(S.Kolic*TS.Ima_Kolic, S.DokCena*TS.Cena/TS.VkCena, S.DanDokCena, S.POsn, S.Uces)), 4) As Vr_Rabat,
Round(Sum(dbo.fn_VratiKasaBezDDV(S.Kolic*TS.Ima_Kolic, S.DokCena*TS.Cena/TS.VkCena, S.DanDokCena, S.POsn, S.Uces, D.Kasa)), 4) As Vr_Kasa,
Round(Sum(S.Kolic * S.NabCena), 4) As Vr_NabBezDDV, Round(Sum(S.Kolic * S.NabCena * (1+S.POsn/100)), 4) As Vr_NabSoDDV, '
If @DevCena In ('D', 'B')
Set @SSQL = @SSQL + ' Round(Sum(S.Kolic * dbo.fn_VratiCena(S.DokCena, S.Posn, S.DanDokCena, ''' + (Case When @DevCena = 'B' Then 'N' Else 'D' End) + ''') / D.Kurs), 4) Vr_Devizna, '
Else
Set @SSQL = @SSQL + ' Null as Vr_Devizna, '
If @PoProdMesta = 'D'
Set @SSQL=@SSQL + 'Count (Distinct(Case Substring(Cast(S.Sifra_Dok As Varchar(6)),1,2) When ''70'' Then 0 Else D.Sifra_Mest End)) As Komintenti, '
Else
Begin
If @Komint_KObj = 'K'
Set @SSQL = @SSQL + 'Count (Distinct(Case Substring(Cast(S.Sifra_Dok As Varchar(6)),1,2) When ''70'' Then 0 Else D.Sifra_Kup End)) As Komintenti, '
Else If @Komint_KObj = 'O'
Set @SSQL = @SSQL + 'Count (Distinct(Case Substring(Cast(S.Sifra_Dok As Varchar(6)),1,2) When ''70'' Then 0
Else (Case When D.Sifra_Obj Is Null Then D.Sifra_Kup else (D.Sifra_kup+cast(D.Sifra_Obj as varchar(6))) end) End)) As Komintenti, '
End
Set @SSQL = @SSQL + 'Null As Zaliha, '
If @KolkuMesta Is Not Null
Set @SSQL = @SSQL + ' Substring(K.Sifra_Podg, 1, ' + cast(@KolkuMesta as varchar(1)) + ') as Sifra_Podg '
Else
Set @SSQL = @SSQL + ' K.Sifra_Podg '
------------------------------------------------ F R O M ------------------------------------------------
Set @SSQLFrom = ' From #tSostav TS
Inner Join Stavr S On TS.Sifra_Art=S.Sifra_Art
Inner Join KatArt K ON TS.Sifra_Sur=K.Sifra_Art
Inner Join Dokr D ON S.DokrID=D.DokrID And D.Sifra_Za=1 '
If @Sifra_OE Is Not NULL
Set @SSQLFrom = @SSQLFrom + ' And S.Sifra_OE=' + Cast(@Sifra_OE As Varchar(5)) + ' '
If @KoiOE Is Not NULL
Set @SSQLFrom = @SSQLFrom + ' And S.Sifra_OE IN (' + @KoiOE + ') '
If @Sifra_Gr Is Not Null
Set @SSQLFrom = @SSQLFrom + 'Inner Join Podgrupi PG On K.Sifra_Podg=PG.Sifra_Podg '
If @Sifra_ZBrand Is Not Null
Set @SSQLFrom = @SSQLFrom + 'Inner Join DrgPodel B On K.Sifra_Drg=B.Sifra_Drg '
If (@TipKup Is Not Null) Or (@Pod1 Is Not Null) Or (@Pod2 Is Not Null) Or (@Koi_Gradovi Is Not Null) Or (@Pod3 Is Not Null)
Or (@Pod4 Is Not Null) Or (@Pod5 Is Not Null) Or (@Sifra_Tip Is Not Null) Or (@Koi_Regioni Is Not Null) Or (@Sifra_Pat Is Not Null)
Or (@Sifra_Nivo Is Not Null) Or (@KojaCena Is Not Null) OR @Pod6 IS NOT NULL OR @Pod7 IS NOT NULL
Set @SSQLFrom = @SSQLFrom + 'Inner Join Komint KUP ON D.Sifra_Kup=KUP.Sifra_Kup
Left Outer Join KObjekti KO ON D.Sifra_obj=KO.Sifra_obj and D.Sifra_kup=KO.Sifra_kup '
If @PoProdMesta = 'D' or @Posrednik is not null
Set @SSQLFrom = @SSQLFrom + ' Inner Join ProdMest PM ON D.Sifra_Mest=PM.Sifra_Mest ' --D.Sifra_kup=PM.Sifra_kup and D.Sifra_obj=PM.Sifra_obj and
If @GrKup Is Not Null
Set @SSQLFrom = @SSQLFrom + ' Inner Join #KupObj GK On GK.Sifra_Kup=D.Sifra_Kup
And (Case When D.Sifra_Obj Is Not Null Then D.Sifra_Obj Else 1234 End) = (Case When GK.Sifra_Obj Is Not Null Then GK.Sifra_Obj Else 1234 End) '
If @GrArt Is Not Null
Set @SSQLFrom = @SSQLFrom + ' Inner Join #GrArt GA On GA.Sifra_Art=K.Sifra_Art '
Set @SSQLFrom = @SSQLFrom + 'Where K.Iskluci <> ''D'' '
--Set @SSQL = @SSQL + 'Group By TS.Sifra_Sur, K.Sifra_Podg '
-------------------------------- P R O D A Z B A O D N E R E A L I Z I R A N I N A R A C K I --------------------------------
If @PrikNeralizNarac = 'D'
Begin
Alter Table #TopLista Add KolicNar decimal(18,4), VrednostNar decimal(18,4)
Set @SSQL = 'Select TS.Sifra_Sur As Sifra_Art,
0 As Kolicina, 0 As UL, 0 As Izlezi, 0 As Vr_Osnov, 0 As Vr_SoRabat, 0 As Vr_Krajna, 0 As Vr_NPS, 0 As Vr_Rabat, 0 As Vr_Kasa, 0 As Vr_NabBezDDV, 0 As Vr_NabSoDDV,
Null as Vr_Devizna, 0 As Komintenti, Null As Zaliha, '
If @KolkuMesta Is Not Null
Set @SSQL = @SSQL + ' Substring(K.Sifra_Podg, 1, ' + cast(@KolkuMesta as varchar(1)) + ') as Sifra_Podg '
Else
Set @SSQL = @SSQL + ' K.Sifra_Podg '
Set @SSQL = @SSQL + ', Round(Sum(S.Kolic*TS.Ima_Kolic), 4) As KolicNar,
--------------------------------------------------------------------- Z A L I H A ----------------------------------------------------------------------
Set @SSQL = 'Update #TopLista
Set Zaliha = (Select Sum(Vlez)-Sum(Izlez) From Soart Where 1=1 '
If @ZalihaOdOE Is Not Null
Set @SSQL = @SSQL + ' And Sifra_OE In (' + @ZalihaOdOE + ') '
Set @SSQL = @SSQL + ' And #TopLIsta.Sifra_Art=Soart.Sifra_Art) '
Set @SSQL = @SSQL + ' And ((KO.KDrugo1 Is Not Null And KO.KDrugo1 <> ' + Cast(@Pod1 As Varchar(6)) + ')
Or (KO.KDrugo1 Is Null And Kup.KDrugo1 <> ' + Cast(@Pod1 As Varchar(6)) + ') Or (KO.KDrugo1 Is Null And Kup.KDrugo1 Is Null)) '
Else
Set @SSQL = @SSQL + ' And ((KO.KDrugo1 Is Not Null And KO.KDrugo1 = ' + Cast(@Pod1 As Varchar(6)) + ')
Or (KO.KDrugo1 Is Null And Kup.KDrugo1 = ' + Cast(@Pod1 As Varchar(6)) + ')) '
If @Pod2 Is Not NULL
If @KFPod2 = 'D'
Set @SSQL = @SSQL + ' And ((KO.KDrugo2 Is Not Null And KO.KDrugo2 <> ' + Cast(@Pod2 As Varchar(6)) + ')
Or (KO.KDrugo2 Is Null And Kup.KDrugo2 <> ' + Cast(@Pod2 As Varchar(6)) + ') Or (KO.KDrugo2 Is Null And Kup.KDrugo2 Is Null)) '
Else
Set @SSQL = @SSQL + ' And ((KO.KDrugo2 Is Not Null And KO.KDrugo2 = ' + Cast(@Pod2 As Varchar(6)) + ')
Or (KO.KDrugo2 Is Null And Kup.KDrugo2 = ' + Cast(@Pod2 As Varchar(6)) + ')) '
If @Pod3 Is Not NULL
If @KFPod3 = 'D'
Set @SSQL = @SSQL + ' And ((KO.KDrugo3 Is Not Null And KO.KDrugo3 <> ' + Cast(@Pod3 As Varchar(6)) + ')
Or (KO.KDrugo3 Is Null And Kup.KDrugo3 <> ' + Cast(@Pod3 As Varchar(6)) + ') Or (KO.KDrugo3 Is Null And Kup.KDrugo3 Is Null)) '
Else
Set @SSQL = @SSQL + ' And ((KO.KDrugo3 Is Not Null And KO.KDrugo3 = ' + Cast(@Pod3 As Varchar(6)) + ')
Or (KO.KDrugo3 Is Null And Kup.KDrugo3 = ' + Cast(@Pod3 As Varchar(6)) + ')) '
If @Pod4 Is Not NULL
If @KFPod4 = 'D'
Set @SSQL = @SSQL + ' And ((KO.KDrugo4 Is Not Null And KO.KDrugo4 <> ' + Cast(@Pod4 As Varchar(6)) + ')
Or (KO.KDrugo4 Is Null And Kup.KDrugo4 <> ' + Cast(@Pod4 As Varchar(6)) + ') Or (KO.KDrugo4 Is Null And Kup.KDrugo4 Is Null)) '
Else
Set @SSQL = @SSQL + ' And ((KO.KDrugo4 Is Not Null And KO.KDrugo4 = ' + Cast(@Pod4 As Varchar(6)) + ')
Or (KO.KDrugo4 Is Null And Kup.KDrugo4 = ' + Cast(@Pod4 As Varchar(6)) + ')) '
If @Pod5 Is Not NULL
If @KFPod5 = 'D'
Set @SSQL = @SSQL + ' And ((KO.KDrugo5 Is Not Null And KO.KDrugo5 <> ' + Cast(@Pod5 As Varchar(6)) + ')
Or (KO.KDrugo5 Is Null And Kup.KDrugo5 <> ' + Cast(@Pod5 As Varchar(6)) + ') Or (KO.KDrugo5 Is Null And Kup.KDrugo5 Is Null)) '
Else
Set @SSQL = @SSQL + ' And ((KO.KDrugo5 Is Not Null And KO.KDrugo5 = ' + Cast(@Pod5 As Varchar(6)) + ')
Or (KO.KDrugo5 Is Null And Kup.KDrugo5 = ' + Cast(@Pod5 As Varchar(6)) + ')) '
If @Pod6 Is Not NULL
If @KFPod6 = 'D'
Set @SSQL = @SSQL + ' And ((KO.KDrugo6 Is Not Null And KO.KDrugo6 <> ' + Cast(@Pod6 As Varchar(6)) + ')
Or (KO.KDrugo6 Is Null And Kup.KDrugo6 <> ' + Cast(@Pod6 As Varchar(6)) + ') Or (KO.KDrugo6 Is Null And Kup.KDrugo6 Is Null)) '
Else
Set @SSQL = @SSQL + ' And ((KO.KDrugo6 Is Not Null And KO.KDrugo6 = ' + Cast(@Pod6 As Varchar(6)) + ')
Or (KO.KDrugo6 Is Null And Kup.KDrugo6 = ' + Cast(@Pod6 As Varchar(6)) + ')) '
If @Pod7 Is Not NULL
If @KFPod7 = 'D'
Set @SSQL = @SSQL + ' And ((KO.KDrugo7 Is Not Null And KO.KDrugo7 <> ' + Cast(@Pod7 As Varchar(6)) + ')
Or (KO.KDrugo7 Is Null And Kup.KDrugo7 <> ' + Cast(@Pod7 As Varchar(6)) + ') Or (KO.KDrugo7 Is Null And Kup.KDrugo7 Is Null)) '
Else
Set @SSQL = @SSQL + ' And ((KO.KDrugo7 Is Not Null And KO.KDrugo7 = ' + Cast(@Pod7 As Varchar(6)) + ')
Or (KO.KDrugo7 Is Null And Kup.KDrugo7 = ' + Cast(@Pod7 As Varchar(6)) + ')) '
/*------------------------------------------------------- dodadeno 16.07.2004 filterot da gleda prvo od kobjekti ----------------------------------------------------------------------
If @Pod1 Is Not NULL
Begin
Set @SSQL = @SSQL + ' And ((KO.KDrugo1 Is Not Null And KO.KDrugo1 = ' + Cast(@Pod1 As Varchar(6)) + ')
Or (KO.KDrugo1 Is Null And Kup.KDrugo1 = ' + Cast(@Pod1 As Varchar(6)) + ')) '
End
If @Pod2 Is Not NULL
Begin
Set @SSQL = @SSQL + ' And ((KO.KDrugo2 Is Not Null And KO.KDrugo2 = ' + Cast(@Pod2 As Varchar(6)) + ')
Or (KO.KDrugo2 Is Null And Kup.KDrugo2 = ' + Cast(@Pod2 As Varchar(6)) + ')) '
End
If @Pod3 Is Not NULL
Begin
Set @SSQL = @SSQL + ' And ((KO.KDrugo3 Is Not Null And KO.KDrugo3 = ' + Cast(@Pod3 As Varchar(6)) + ')
Or (KO.KDrugo3 Is Null And Kup.KDrugo3 = ' + Cast(@Pod3 As Varchar(6)) + ')) '
End
If @Pod4 Is Not NULL
Begin
Set @SSQL = @SSQL + ' And ((KO.KDrugo4 Is Not Null And KO.KDrugo4 = ' + Cast(@Pod4 As Varchar(6)) + ')
Or (KO.KDrugo4 Is Null And Kup.KDrugo4 = ' + Cast(@Pod4 As Varchar(6)) + ')) '
End
If @Pod5 Is Not NULL
Begin
Set @SSQL = @SSQL + ' And ((KO.KDrugo5 Is Not Null And KO.KDrugo5 = ' + Cast(@Pod5 As Varchar(6)) + ')
Or (KO.KDrugo5 Is Null And Kup.KDrugo5 = ' + Cast(@Pod5 As Varchar(6)) + ')) '
End
*/
If @Sifra_Tip Is Not Null
SET @SSQL = @SSQL +'AND KUP.Sifra_Tip=' + Cast(@Sifra_Tip As Varchar(6)) + ' '
If @Sifra_Nivo Is Not NULL
Set @SSQL = @SSQL + ' And KUP.Sifra_Nivo = ''' + @Sifra_Nivo + ''' '
If @KojaCena Is Not NULL
Set @SSQL = @SSQL + ' And KUP.KojaCena = ''' + @KojaCena + ''' '
If @Lokacija Is Not NULL
Set @SSQL = @SSQL + ' And K.Lokacija=''' + @Lokacija + ''' '
If @Kto Is Not NULL
Set @SSQL = @SSQL + ' And K.Kto=' + @Kto + ' '
If @PoKojDatum = 'V'
Begin
If @Datum_Od Is Not NULL
Set @SSQL = @SSQL + ' And D.Datum_Vnes>=''' + Cast(@Datum_Od As Varchar(25)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQL = @SSQL + ' And D.Datum_Vnes<''' + Cast(@Datum_Do As Varchar(25)) + ''' '
End
Else
Begin
If @Datum_Od Is Not NULL
Set @SSQL = @SSQL + ' And S.Datum_Dok>=''' + Cast(@Datum_Od As Varchar(25)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQL = @SSQL + ' And S.Datum_Dok<=''' + Cast(@Datum_Do As Varchar(25)) + ''' '
End
If @Sifra_Kup_Od Is Not NULL
Set @SSQL = @SSQL + ' And D.Sifra_Kup>=' + Cast(@Sifra_Kup_Od As Varchar(6)) + ' '
If @Sifra_Kup_Do Is Not NULL
Set @SSQL = @SSQL + ' And D.Sifra_Kup<=' + Cast(@Sifra_Kup_Do As Varchar(6)) + ' '
If @GrKup Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Kup In (Select Distinct Sifra_Kup From SGrKup Where Sif_GrKup In ( ' + @GrKup + ' )) '
If @KomercKako = 'I'
If @Sifra_Pat IS NOT NULL
SET @SSQL = @SSQL + ' AND D.Sifra_Pat In (' + @Sifra_Pat + ') '
If @KomercKako = 'T'
If @Sifra_Pat IS NOT NULL
Set @SSQL = @SSQL + ' And ((KO.Sifra_Pat Is Not Null And KO.Sifra_Pat In (' + @Sifra_Pat + '))
OR ( KO.Sifra_Pat Is Null and KUP.Sifra_Pat In (' + @Sifra_Pat + '))) '
If @Sifra_Obj IS NOT NULL
SET @SSQL = @SSQL + ' AND D.Sifra_Obj = ' + Cast(@Sifra_Obj as varchar(5)) + ' '
If @Sifra_Mest IS NOT NULL
SET @SSQL = @SSQL + ' AND D.Sifra_Mest = ' + Cast(@Sifra_Mest as varchar(6)) + ' '
If @TipKup Is Not NULL
Begin
Set @SSQL = @SSQL + ' And ((KO.TipKup Is Not Null And KO.TipKup In (' + @TipKup + '))
OR ( KO.TipKup Is Null and KUP.TipKup In ( ' + @TipKup + '))) '
End
If @TipDokNab IS NOT NULL
Set @SSQL = @SSQL + ' And S.Sifra_Dok IN (' + @TipDokNab + ') '
If @Koi_Gradovi Is Not NULL
Begin
Set @SSQL = @SSQL + ' And ((KO.Sifra_Grad Is Not Null And KO.Sifra_Grad In (' + @Koi_Gradovi + '))
OR ( KO.Sifra_Grad Is Null and KUP.Sifra_Grad In ( ' + @Koi_Gradovi + '))) '
End
If @Koi_Regioni Is Not NULL
Begin
Set @SSQL = @SSQL + ' And ((KO.Sifra_Reg Is Not Null And KO.Sifra_Reg In (' + @Koi_Regioni + '))
OR ( KO.Sifra_Reg Is Null and KUP.Sifra_Reg In ( ' + @Koi_Regioni + '))) '
End
If @Drugo1 Is Not NULL
Set @SSQL = @SSQL + ' And K.Drugo1=' + Cast(@Drugo1 As Varchar(6)) + ' '
If @Drugo2 Is Not NULL
Set @SSQL = @SSQL + ' And K.Drugo2=' + Cast(@Drugo2 As Varchar(6)) + ' '
If @Drugo3 Is Not NULL
Set @SSQL = @SSQL + ' And K.Drugo3=' + Cast(@Drugo3 As Varchar(6)) + ' '
If @Drugo4 Is Not NULL
Set @SSQL = @SSQL + ' And K.Drugo4=' + Cast(@Drugo4 As Varchar(6)) + ' '
If @Drugo5 Is Not NULL
Set @SSQL = @SSQL + ' And K.Drugo5=' + Cast(@Drugo5 As Varchar(6)) + ' '
If @Drugo6 Is Not NULL
Set @SSQL = @SSQL + ' And K.Drugo6=' + Cast(@Drugo6 As Varchar(6)) + ' '
If @Drugo7 Is Not NULL
Set @SSQL = @SSQL + ' And K.Drugo7=' + Cast(@Drugo7 As Varchar(6)) + ' '
If @Sifra_Div Is Not NULL
Set @SSQL = @SSQL + ' And K.Sifra_Div=' + Cast(@Sifra_Div As Varchar(6)) + ' '
If @ImeArtDel IS NOT NULL
If IsNumeric(@ImeArtDel)=1
Set @SSQL = @SSQL + ' And K.Sifra_Art Like ''' + @ImeArtDel + '%'' '
Else
Set @SSQL = @SSQL + ' And K.ImeArt Like ''' + @ImeArtDel + '%'' '
Set @SSQL = @SSQL + 'Group By TS.Sifra_Sur, K.Nabavna '
Insert #TopLista Exec(@SSQL)
If @ZalihaOdOE Is Not Null
Begin
Set @SSQL = 'Update #TopLista
Set Zaliha = (Select Sum(Vlez)-Sum(Izlez) From Soart
Where Sifra_OE In (' + @ZalihaOdOE + ')
And #TopLIsta.Sifra_Art=Soart.Sifra_Art) '
Exec(@SSQL)
End
Set @SSQL = 'Select'
IF @Kolku IS NOT NULL
Set @SSQL = @SSQL + ' TOP ' + Cast(@Kolku as varchar(15))
Set @SSQL = @SSQL + ' And ((KO.KDrugo1 Is Not Null And KO.KDrugo1 <> ' + Cast(@Pod1 As Varchar(6)) + ')
Or (KO.KDrugo1 Is Null And Kup.KDrugo1 <> ' + Cast(@Pod1 As Varchar(6)) + ') Or (KO.KDrugo1 Is Null And Kup.KDrugo1 Is Null)) '
Else
Set @SSQL = @SSQL + ' And ((KO.KDrugo1 Is Not Null And KO.KDrugo1 = ' + Cast(@Pod1 As Varchar(6)) + ')
Or (KO.KDrugo1 Is Null And Kup.KDrugo1 = ' + Cast(@Pod1 As Varchar(6)) + ')) '
If @Pod2 Is Not NULL
If @KFPod2 = 'D'
Set @SSQL = @SSQL + ' And ((KO.KDrugo2 Is Not Null And KO.KDrugo2 <> ' + Cast(@Pod2 As Varchar(6)) + ')
Or (KO.KDrugo2 Is Null And Kup.KDrugo2 <> ' + Cast(@Pod2 As Varchar(6)) + ') Or (KO.KDrugo2 Is Null And Kup.KDrugo2 Is Null)) '
Else
Set @SSQL = @SSQL + ' And ((KO.KDrugo2 Is Not Null And KO.KDrugo2 = ' + Cast(@Pod2 As Varchar(6)) + ')
Or (KO.KDrugo2 Is Null And Kup.KDrugo2 = ' + Cast(@Pod2 As Varchar(6)) + ')) '
If @Pod3 Is Not NULL
If @KFPod3 = 'D'
Set @SSQL = @SSQL + ' And ((KO.KDrugo3 Is Not Null And KO.KDrugo3 <> ' + Cast(@Pod3 As Varchar(6)) + ')
Or (KO.KDrugo3 Is Null And Kup.KDrugo3 <> ' + Cast(@Pod3 As Varchar(6)) + ') Or (KO.KDrugo3 Is Null And Kup.KDrugo3 Is Null)) '
Else
Set @SSQL = @SSQL + ' And ((KO.KDrugo3 Is Not Null And KO.KDrugo3 = ' + Cast(@Pod3 As Varchar(6)) + ')
Or (KO.KDrugo3 Is Null And Kup.KDrugo3 = ' + Cast(@Pod3 As Varchar(6)) + ')) '
If @Pod4 Is Not NULL
If @KFPod4 = 'D'
Set @SSQL = @SSQL + ' And ((KO.KDrugo4 Is Not Null And KO.KDrugo4 <> ' + Cast(@Pod4 As Varchar(6)) + ')
Or (KO.KDrugo4 Is Null And Kup.KDrugo4 <> ' + Cast(@Pod4 As Varchar(6)) + ') Or (KO.KDrugo4 Is Null And Kup.KDrugo4 Is Null)) '
Else
Set @SSQL = @SSQL + ' And ((KO.KDrugo4 Is Not Null And KO.KDrugo4 = ' + Cast(@Pod4 As Varchar(6)) + ')
Or (KO.KDrugo4 Is Null And Kup.KDrugo4 = ' + Cast(@Pod4 As Varchar(6)) + ')) '
If @Pod5 Is Not NULL
If @KFPod5 = 'D'
Set @SSQL = @SSQL + ' And ((KO.KDrugo5 Is Not Null And KO.KDrugo5 <> ' + Cast(@Pod5 As Varchar(6)) + ')
Or (KO.KDrugo5 Is Null And Kup.KDrugo5 <> ' + Cast(@Pod5 As Varchar(6)) + ') Or (KO.KDrugo5 Is Null And Kup.KDrugo5 Is Null)) '
Else
Set @SSQL = @SSQL + ' And ((KO.KDrugo5 Is Not Null And KO.KDrugo5 = ' + Cast(@Pod5 As Varchar(6)) + ')
Or (KO.KDrugo5 Is Null And Kup.KDrugo5 = ' + Cast(@Pod5 As Varchar(6)) + ')) '
If @Pod6 Is Not NULL
If @KFPod6 = 'D'
Set @SSQL = @SSQL + ' And ((KO.KDrugo6 Is Not Null And KO.KDrugo6 <> ' + Cast(@Pod6 As Varchar(6)) + ')
Or (KO.KDrugo6 Is Null And Kup.KDrugo6 <> ' + Cast(@Pod6 As Varchar(6)) + ') Or (KO.KDrugo6 Is Null And Kup.KDrugo6 Is Null)) '
Else
Set @SSQL = @SSQL + ' And ((KO.KDrugo6 Is Not Null And KO.KDrugo6 = ' + Cast(@Pod6 As Varchar(6)) + ')
Or (KO.KDrugo6 Is Null And Kup.KDrugo6 = ' + Cast(@Pod6 As Varchar(6)) + ')) '
If @Pod7 Is Not NULL
If @KFPod7 = 'D'
Set @SSQL = @SSQL + ' And ((KO.KDrugo7 Is Not Null And KO.KDrugo7 <> ' + Cast(@Pod7 As Varchar(6)) + ')
Or (KO.KDrugo7 Is Null And Kup.KDrugo7 <> ' + Cast(@Pod7 As Varchar(6)) + ') Or (KO.KDrugo7 Is Null And Kup.KDrugo7 Is Null)) '
Else
Set @SSQL = @SSQL + ' And ((KO.KDrugo7 Is Not Null And KO.KDrugo7 = ' + Cast(@Pod7 As Varchar(6)) + ')
Or (KO.KDrugo7 Is Null And Kup.KDrugo7 = ' + Cast(@Pod7 As Varchar(6)) + ')) '
/*
------------------------------------------------------- dodadeno 16.07.2004 filterot da gleda prvo od kobjekti ----------------------------------------------------------------------
If @Pod1 Is Not NULL
Begin
Set @SSQL = @SSQL + ' And ((KO.KDrugo1 Is Not Null And KO.KDrugo1 = ' + Cast(@Pod1 As Varchar(6)) + ')
Or (KO.KDrugo1 Is Null And Kup.KDrugo1 = ' + Cast(@Pod1 As Varchar(6)) + ')) '
End
If @Pod2 Is Not NULL
Begin
Set @SSQL = @SSQL + ' And ((KO.KDrugo2 Is Not Null And KO.KDrugo2 = ' + Cast(@Pod2 As Varchar(6)) + ')
Or (KO.KDrugo2 Is Null And Kup.KDrugo2 = ' + Cast(@Pod2 As Varchar(6)) + ')) '
End
If @Pod3 Is Not NULL
Begin
Set @SSQL = @SSQL + ' And ((KO.KDrugo3 Is Not Null And KO.KDrugo3 = ' + Cast(@Pod3 As Varchar(6)) + ')
Or (KO.KDrugo3 Is Null And Kup.KDrugo3 = ' + Cast(@Pod3 As Varchar(6)) + ')) '
End
If @Pod4 Is Not NULL
Begin
Set @SSQL = @SSQL + ' And ((KO.KDrugo4 Is Not Null And KO.KDrugo4 = ' + Cast(@Pod4 As Varchar(6)) + ')
Or (KO.KDrugo4 Is Null And Kup.KDrugo4 = ' + Cast(@Pod4 As Varchar(6)) + ')) '
End
If @Pod5 Is Not NULL
Begin
Set @SSQL = @SSQL + ' And ((KO.KDrugo5 Is Not Null And KO.KDrugo5 = ' + Cast(@Pod5 As Varchar(6)) + ')
Or (KO.KDrugo5 Is Null And Kup.KDrugo5= ' + Cast(@Pod5 As Varchar(6)) + ')) '
End
*/
If @Sifra_Tip Is Not Null
SET @SSQL = @SSQL +'AND KUP.Sifra_Tip=' + Cast(@Sifra_Tip As Varchar(6)) + ' '
If @Sifra_Nivo Is Not NULL
Set @SSQL = @SSQL + ' And KUP.Sifra_Nivo = ''' + @Sifra_Nivo + ''' '
If @KojaCena Is Not NULL
Set @SSQL = @SSQL + ' And KUP.KojaCena = ''' + @KojaCena + ''' '
If @Lokacija Is Not NULL
Set @SSQL = @SSQL + ' And K.Lokacija=''' + @Lokacija + ''' '
If @Kto Is Not NULL
Set @SSQL = @SSQL + ' And K.Kto=' + @Kto + ' '
If @PoKojDatum = 'V'
Begin
If @Datum_Od Is Not NULL
Set @SSQL = @SSQL + ' And D.Datum_Vnes>=''' + Cast(@Datum_Od As Varchar(25)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQL = @SSQL + ' And D.Datum_Vnes<''' + Cast(@Datum_Do As Varchar(25)) + ''' '
End
Else
Begin
If @Datum_Od Is Not NULL
Set @SSQL = @SSQL + ' And S.Datum_Dok>=''' + Cast(@Datum_Od As Varchar(25)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQL = @SSQL + ' And S.Datum_Dok<=''' + Cast(@Datum_Do As Varchar(25)) + ''' '
End
If @Sifra_Kup_Od Is Not NULL
Set @SSQL = @SSQL + ' And D.Sifra_Kup>=' + Cast(@Sifra_Kup_Od As Varchar(6)) + ' '
If @Sifra_Kup_Do Is Not NULL
Set @SSQL = @SSQL + ' And D.Sifra_Kup<=' + Cast(@Sifra_Kup_Do As Varchar(6)) + ' '
If @GrKup Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Kup In (Select Distinct Sifra_Kup From SGrKup Where Sif_GrKup In ( ' + @GrKup + ' )) '
If @Sifra_Obj IS NOT NULL
SET @SSQL = @SSQL + ' AND D.Sifra_Obj = ' + Cast(@Sifra_Obj as varchar(5)) + ' '
If @KomercKako = 'I'
If @Sifra_Pat IS NOT NULL
SET @SSQL = @SSQL + ' AND D.Sifra_Pat In (' + @Sifra_Pat + ') '
If @KomercKako = 'T'
If @Sifra_Pat IS NOT NULL
Set @SSQL = @SSQL + ' And ((KO.Sifra_Pat Is Not Null And KO.Sifra_Pat In (' + @Sifra_Pat + '))
OR ( KO.Sifra_Pat Is Null and KUP.Sifra_Pat In (' + @Sifra_Pat + '))) '
If @Sifra_Obj IS NOT NULL
SET @SSQL = @SSQL + ' AND D.Sifra_Obj = ' + Cast(@Sifra_Obj as varchar(5)) + ' '
If @Sifra_Mest IS NOT NULL
SET @SSQL = @SSQL + ' AND D.Sifra_Mest = ' + Cast(@Sifra_Mest as varchar(6)) + ' '
If @TipKup Is Not NULL
Begin
Set @SSQL = @SSQL + ' And ((KO.TipKup Is Not Null And KO.TipKup In (' + @TipKup + '))
OR ( KO.TipKup Is Null and KUP.TipKup In ( ' + @TipKup + '))) '
End
If @TipDokNab IS NOT NULL
Set @SSQL = @SSQL + ' And S.Sifra_Dok IN (' + @TipDokNab + ') '
If @Koi_Gradovi Is Not NULL
Begin
Set @SSQL = @SSQL + ' And ((KO.Sifra_Grad Is Not Null And KO.Sifra_Grad In (' + @Koi_Gradovi + '))
OR ( KO.Sifra_Grad Is Null and KUP.Sifra_Grad In ( ' + @Koi_Gradovi + '))) '
End
If @Koi_Regioni Is Not NULL
Begin
Set @SSQL = @SSQL + ' And ((KO.Sifra_Reg Is Not Null And KO.Sifra_Reg In (' + @Koi_Regioni + '))
OR ( KO.Sifra_Reg Is Null and KUP.Sifra_Reg In ( ' + @Koi_Regioni + '))) '
End
If @Drugo1 Is Not NULL
Set @SSQL = @SSQL + ' And K.Drugo1=' + Cast(@Drugo1 As Varchar(6)) + ' '
If @Drugo2 Is Not NULL
Set @SSQL = @SSQL + ' And K.Drugo2=' + Cast(@Drugo2 As Varchar(6)) + ' '
If @Drugo3 Is Not NULL
Set @SSQL = @SSQL + ' And K.Drugo3=' + Cast(@Drugo3 As Varchar(6)) + ' '
If @Drugo4 Is Not NULL
Set @SSQL = @SSQL + ' And K.Drugo4=' + Cast(@Drugo4 As Varchar(6)) + ' '
If @Drugo5 Is Not NULL
Set @SSQL = @SSQL + ' And K.Drugo5=' + Cast(@Drugo5 As Varchar(6)) + ' '
If @Drugo6 Is Not NULL
Set @SSQL = @SSQL + ' And K.Drugo6=' + Cast(@Drugo6 As Varchar(6)) + ' '
If @Drugo7 Is Not NULL
Set @SSQL = @SSQL + ' And K.Drugo7=' + Cast(@Drugo7 As Varchar(6)) + ' '
If @Sifra_Div Is Not NULL
Set @SSQL = @SSQL + ' And K.Sifra_Div=' + Cast(@Sifra_Div As Varchar(6)) + ' '
If @ImeArtDel IS NOT NULL
If IsNumeric(@ImeArtDel)=1
Set @SSQL = @SSQL + ' And K.Sifra_Art Like ''' + @ImeArtDel + '%'' '
Else
Set @SSQL = @SSQL + ' And K.ImeArt Like ''' + @ImeArtDel + '%'' '
Set @SSQL = @SSQL + 'Group By TS.Sifra_Sur, K.Nabavna '
Insert #TopLista Exec(@SSQL)
If @ZalihaOdOE Is Not Null
Begin
Set @SSQL = 'Update #TopLista
Set Zaliha = (Select Sum(Vlez)-Sum(Izlez) From Soart
Set @SSQL = @SSQL + 'Order By MVr_Krajna DESC, DVr_Krajna DESC'
Else If @Podred = '4'
Set @SSQL = @SSQL + 'Order By Vr_NPS DESC'
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_art_toplista_popresmetka]'))
drop procedure [dbo].[sp_art_toplista_popresmetka]
Go
CREATE PROCEDURE sp_Art_TopLista_PoPresmetka
@Sifra_OE Smallint = Null,
@KoiOE Varchar(300) = Null,
@Datum_Od Smalldatetime = Null,
@Datum_Do Smalldatetime = Null,
@Sifra_Art_Od Varchar(20)= Null,
@Sifra_Art_Do Varchar(20) = Null,
@Podred Char(1) = 3,
@Sifra_Gr varChar(6) = Null,
@Sifra_Podg Char(6) = Null,
@ZalihaOdOE Varchar(300) = Null,
@Drugo1 smallint = Null,
@Drugo2 smallint = Null,
@Drugo3 smallint = Null,
@Drugo4 smallint = Null,
@Drugo5 smallint = Null,
@Asortiman char(1) = 'N', -- D - da gi prikaze i onie artikli za koi nema prodazba vo periodot
-- Z - da gi prikaze i onie artikli za koi nema prodazba vo periodot, a gi ima na zaliha
@Sifra_Tabela varchar(20) = null, -- Dali da gi vratam definiranite Grupi na Artikli i rednite broevi za podreduvanje na izvestajot (za specijalni izvestai)
@GotovinaPoPresm char(1) = 'N',
@GrKup varchar(500) = Null,
@GrArt varchar(500) = Null
AS
Declare @SSQL Varchar(8000)
Declare @SSQLUsl Varchar(8000)
Set @SSQLUsl = ' '
CREATE Table #Rez
(
Sifra_Art varchar(20),
Vlez decimal(18,6),
Izlez decimal(18,6),
IzlezGot decimal(18,6),
VratIspr decimal(18,6),
VratNeIspr decimal(18,6),
Zaliha decimal(18,6),
IzlezMag decimal(18,6)
)
------------------------------------------------------------------ U S L O V -------------------------------------------------------------------------------------
If @Sifra_OE Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_OE=' + Cast(@Sifra_OE As Varchar(5)) + ' '
If @KoiOE Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_OE IN (' + @KoiOE + ') '
Set @SSQL = @SSQL + ' Null as Grupa, Null as RbrVoGr '
Set @SSQL = @SSQL + ' From #Rez R
Inner Join Katart K On K.Sifra_Art = R.Sifra_Art
Left Outer Join #Zaliha Z On Z.Sifra_Art = R.Sifra_Art '
If @Sifra_Tabela Is Not Null
Set @SSQL = @SSQL + 'Inner Join KonfIzvArt KIA On KIA.Sifra_Art = K.Sifra_Art And KIA.Sifra_Tabela = ' + @Sifra_Tabela + ' '
Set @SSQL = @SSQL + ' Group By R.Sifra_Art, K.ImeArt, K.ImaKomerc, Z.Zaliha '
If @Sifra_Tabela Is Not Null
Set @SSQL = @SSQL + ', KIA.Grupa, KIA.RbrVoGr '
If @Podred = 'S'
Set @SSQL = @SSQL + ' Order By R.Sifra_Art '
Else If @Podred = 'A'
Set @SSQL = @SSQL + ' Order By K.ImeArt '
print @SSQL
Exec (@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_art_toplista_so_zaliha]'))
drop procedure [dbo].[sp_art_toplista_so_zaliha]
Go
CREATE PROCEDURE sp_Art_TopLista_So_Zaliha
@Sifra_OE Smallint = Null,
@KoiOE Varchar(300) = Null,
@Datum_Od Smalldatetime = Null,
@Datum_Do Smalldatetime = Null,
@Sifra_Art_Od Varchar(20)= Null,
@Sifra_Art_Do Varchar(20) = Null,
@ImeArtDel varchar(20) = Null,
@Sifra_Kup_Od Char(6) = Null,
@Sifra_Kup_Do Char(6) = Null,
@Podred Char(1) = 3,
@Kto Char(6) = Null,
@Sifra_Gr VarChar(300) = Null,
@Sifra_Podg VarChar(300) = Null,
@Lokacija Varchar(10) = Null,
@Sifra_Brand Smallint = Null,
@Sifra_ZBrand Smallint = Null,
@Pod1 Smallint = Null,
@Pod2 Smallint = Null,
@Pod3 Smallint = Null,
@Pod4 Smallint = Null,
@Pod5 Smallint = Null,
@Pod6 Smallint = Null,
@Pod7 Smallint = Null,
@KFPod1 char(1) = Null,
@KFPod2 char(1) = Null,
@KFPod3 char(1) = Null,
@KFPod4 char(1) = Null,
@KFPod5 char(1) = Null,
@KFPod6 char(1) = Null,
@KFPod7 char(1) = Null,
@TipKup Varchar(200) = Null,
@Koi_Gradovi Varchar(200) = Null,
@Koi_Regioni varchar(200) = Null,
@Sifra_Pat varchar(300) = Null,
@Sifra_Obj smallint = Null,
@KomercKako char(1) = 'I', -- I - Istoriski od AnFinDok, T - Tekovno od Komint
@Sifra_Mest Int = Null,
@Drugo1 smallint = Null,
@Drugo2 smallint = Null,
@Drugo3 smallint = Null,
@Drugo4 smallint = Null,
@Drugo5 smallint = Null,
@Drugo6 smallint = Null,
@Drugo7 smallint = Null,
@Sifra_Nivo char(2) = Null,
@Sifra_Tip Smallint = Null,
@TipDokProd varchar(200) = Null,
-- @Asortiman char(1) = 'N', -- D - da gi prikaze i onie artikli za koi nema prodazba vo periodot
-- -- Z - da gi prikaze i onie artikli za koi nema prodazba vo periodot, a gi ima na zaliha
@ZalihaOdOE Varchar(300) = Null,
@Sifra_OeDok smallint = Null, -- da gi dade samo artiklite od nekoj dokument (oe-dok/broj)
@Sifra_DokDok smallint = Null,
@Broj_DokDok int = Null,
@Sifra_OeNar smallint = Null, -- da gi dade samo artiklite od nekoa naracka (oe-dok/broj)
@Sifra_NarNar smallint = Null,
@Broj_NarNar int = Null,
@PoOrgEd char(1) = 'N',
@Sifra_Div smallint = Null,
@GrKup varchar(500) = Null,
@GrArt varchar(500) = Null
AS
Declare @SSQL Varchar(8000)
Declare @SSQLDok Varchar(8000)
Declare @SSQLUsl Varchar(8000)
Declare @SSQLUslArt Varchar(8000)
Set @SSQLUsl = ' '
Set @SSQLUslArt = ' '
Set @SSQLDok = ' '
---------------------------------------------------------------------------- U S L O V --------------------------------------------------------------------------------------------
If @Koi_Gradovi Is Not NULL
Begin
Set @SSQLUsl = @SSQLUsl + ' And ((KO.Sifra_Grad Is Not Null And KO.Sifra_Grad In (' + @Koi_Gradovi + '))
OR ( KO.Sifra_Grad Is Null and KUP.Sifra_Grad In ( ' + @Koi_Gradovi + '))) '
End
If @Koi_Regioni Is Not NULL
Begin
Set @SSQLUsl = @SSQLUsl + ' And ((KO.Sifra_Reg Is Not Null And KO.Sifra_Reg In (' + @Koi_Regioni + '))
OR ( KO.Sifra_Reg Is Null and KUP.Sifra_Reg In ( ' + @Koi_Regioni + '))) '
End
If @TipKup Is Not NULL
Begin
Set @SSQLUsl = @SSQLUsl + ' And ((KO.TipKup Is Not Null And KO.TipKup In (' + @TipKup + '))
OR ( KO.TipKup Is Null and KUP.TipKup In ( ' + @TipKup + '))) '
End
If @Sifra_Nivo Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And KUP.Sifra_Nivo = ''' + @Sifra_Nivo + ''' '
If @Sifra_Kup_Od Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And D.Sifra_Kup>=' + Cast(@Sifra_Kup_Od As Varchar(6)) + ' '
If @Sifra_Kup_Do Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And D.Sifra_Kup<=' + Cast(@Sifra_Kup_Do As Varchar(6)) + ' '
If @KomercKako = 'I'
If @Sifra_Pat IS NOT NULL
SET @SSQLUsl = @SSQLUsl + ' AND D.Sifra_Pat In (' + @Sifra_Pat + ') '
If @KomercKako = 'T'
If @Sifra_Pat IS NOT NULL
Set @SSQLUsl = @SSQLUsl + ' And ((KO.Sifra_Pat Is Not Null And KO.Sifra_Pat In (' + @Sifra_Pat + '))
OR ( KO.Sifra_Pat Is Null and KUP.Sifra_Pat In (' + @Sifra_Pat + '))) '
If @Sifra_Obj IS NOT NULL
SET @SSQLUsl = @SSQLUsl + ' AND D.Sifra_Obj = ' + Cast(@Sifra_Obj as varchar(5)) + ' '
If @Pod1 Is Not NULL
If @KFPod1 = 'D'
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo1 Is Not Null And KO.KDrugo1 <> ' + Cast(@Pod1 As Varchar(6)) + ')
Or (KO.KDrugo1 Is Null And Kup.KDrugo1 <> ' + Cast(@Pod1 As Varchar(6)) + ') Or (KO.KDrugo1 Is Null And Kup.KDrugo1 Is Null)) '
Else
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo1 Is Not Null And KO.KDrugo1 = ' + Cast(@Pod1 As Varchar(6)) + ')
Or (KO.KDrugo1 Is Null And Kup.KDrugo1 = ' + Cast(@Pod1 As Varchar(6)) + ')) '
If @Pod2 Is Not NULL
If @KFPod2 = 'D'
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo2 Is Not Null And KO.KDrugo2 <> ' + Cast(@Pod2 As Varchar(6)) + ')
Or (KO.KDrugo2 Is Null And Kup.KDrugo2 <> ' + Cast(@Pod2 As Varchar(6)) + ') Or (KO.KDrugo2 Is Null And Kup.KDrugo2 Is Null)) '
Else
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo2 Is Not Null And KO.KDrugo2 = ' + Cast(@Pod2 As Varchar(6)) + ')
Or (KO.KDrugo2 Is Null And Kup.KDrugo2 = ' + Cast(@Pod2 As Varchar(6)) + ')) '
If @Pod3 Is Not NULL
If @KFPod3 = 'D'
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo3 Is Not Null And KO.KDrugo3 <> ' + Cast(@Pod3 As Varchar(6)) + ')
Or (KO.KDrugo3 Is Null And Kup.KDrugo3 <> ' + Cast(@Pod3 As Varchar(6)) + ') Or (KO.KDrugo3 Is Null And Kup.KDrugo3 Is Null)) '
Else
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo3 Is Not Null And KO.KDrugo3 = ' + Cast(@Pod3 As Varchar(6)) + ')
Or (KO.KDrugo3 Is Null And Kup.KDrugo3 = ' + Cast(@Pod3 As Varchar(6)) + ')) '
If @Pod4 Is Not NULL
If @KFPod4 = 'D'
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo4 Is Not Null And KO.KDrugo4 <> ' + Cast(@Pod4 As Varchar(6)) + ')
Or (KO.KDrugo4 Is Null And Kup.KDrugo4 <> ' + Cast(@Pod4 As Varchar(6)) + ') Or (KO.KDrugo4 Is Null And Kup.KDrugo4 Is Null)) '
Else
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo4 Is Not Null And KO.KDrugo4 = ' + Cast(@Pod4 As Varchar(6)) + ')
Or (KO.KDrugo4 Is Null And Kup.KDrugo4 = ' + Cast(@Pod4 As Varchar(6)) + ')) '
If @Pod5 Is Not NULL
If @KFPod5 = 'D'
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo5 Is Not Null And KO.KDrugo5 <> ' + Cast(@Pod5 As Varchar(6)) + ')
Or (KO.KDrugo5 Is Null And Kup.KDrugo5 <> ' + Cast(@Pod5 As Varchar(6)) + ') Or (KO.KDrugo5 Is Null And Kup.KDrugo5 Is Null)) '
Else
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo5 Is Not Null And KO.KDrugo5 = ' + Cast(@Pod5 As Varchar(6)) + ')
Or (KO.KDrugo5 Is Null And Kup.KDrugo5 = ' + Cast(@Pod5 As Varchar(6)) + ')) '
If @Pod6 Is Not NULL
If @KFPod6 = 'D'
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo6 Is Not Null And KO.KDrugo6 <> ' + Cast(@Pod6 As Varchar(6)) + ')
Or (KO.KDrugo6 Is Null And Kup.KDrugo6 <> ' + Cast(@Pod6 As Varchar(6)) + ') Or (KO.KDrugo6 Is Null And Kup.KDrugo6 Is Null)) '
Else
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo6 Is Not Null And KO.KDrugo6 = ' + Cast(@Pod6 As Varchar(6)) + ')
Or (KO.KDrugo6 Is Null And Kup.KDrugo6 = ' + Cast(@Pod6 As Varchar(6)) + ')) '
If @Pod7 Is Not NULL
If @KFPod7 = 'D'
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo7 Is Not Null And KO.KDrugo7 <> ' + Cast(@Pod7 As Varchar(6)) + ')
Or (KO.KDrugo7 Is Null And Kup.KDrugo7 <> ' + Cast(@Pod7 As Varchar(6)) + ') Or (KO.KDrugo7 Is Null And Kup.KDrugo7 Is Null)) '
Else
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo7 Is Not Null And KO.KDrugo7 = ' + Cast(@Pod7 As Varchar(6)) + ')
Or (KO.KDrugo7 Is Null And Kup.KDrugo7 = ' + Cast(@Pod7 As Varchar(6)) + ')) '
If @Sifra_Tip Is Not Null
SET @SSQLUsl = @SSQLUsl +'AND KUP.Sifra_Tip=' + Cast(@Sifra_Tip As Varchar(6)) + ' '
If @Datum_Od Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And S.Datum_Dok>=''' + Cast(@Datum_Od As Varchar(25)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And S.Datum_Dok<=''' + Cast(@Datum_Do As Varchar(25)) + ''' '
If @TipDokProd IS NOT NULL
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_Dok IN (' + @TipDokProd + ') '
If @Sifra_Mest Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And D.Sifra_Mest =''' + Cast(@Sifra_Mest As Varchar(6)) + ''' '
--------------------------------------------------------- U S L O V P O A R T I L K I ----------------------------------------------------------------------------
------------------------------------------------------------------ T O P L I S T A ------------------------------------------------------------------------------------
Set @SSQL = 'Select S.Sifra_Oe, S.Sifra_Art,
Round(Sum(S.Kolic), 4) As Kolicina,
Round(Sum(S.Kolic*S.DokCena*(1-S.Uces/100)*(1-D.Kasa/100) * (Case When S.DanDokCena=''N'' Then (1+S.Posn/100) Else 1 End)), 4) As Vr_Krajna,
0 as Zaliha, 0 as KolicNab, 0 as KolicNabVk
From Stavr S
Inner Join KatArt K ON S.Sifra_Art=K.Sifra_Art
Inner Join Dokr D ON S.DokrID=D.DokrID And D.Sifra_Za=1 '
If @Sifra_OE Is Not NULL
Set @SSQL = @SSQL + ' And S.Sifra_OE=' + Cast(@Sifra_OE As Varchar(5)) + ' '
If @KoiOE Is Not NULL
Set @SSQL = @SSQL + ' And S.Sifra_OE IN (' + @KoiOE + ') '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + 'Inner Join Podgrupi PG On K.Sifra_Podg=PG.Sifra_Podg '
If @Sifra_ZBrand Is Not Null
Set @SSQL = @SSQL + 'Inner Join DrgPodel B On K.Sifra_Drg=B.Sifra_Drg '
If (@TipKup Is Not Null) Or (@Pod1 Is Not Null) Or (@Pod2 Is Not Null) Or (@Koi_Gradovi Is Not Null) Or (@Pod3 Is Not Null)
Or (@Pod4 Is Not Null) Or (@Pod5 Is Not Null) Or (@Sifra_Tip Is Not Null) Or (@Koi_Regioni Is Not Null) Or (@Sifra_Pat Is Not Null)
Or (@Sifra_Nivo Is Not Null) Or @Pod6 IS NOT NULL OR @Pod7 IS NOT NULL
Set @SSQL = @SSQL + 'Left Outer Join Komint KUP ON D.Sifra_Kup=KUP.Sifra_Kup
Left Outer Join KObjekti KO ON D.Sifra_obj=KO.Sifra_obj and D.Sifra_kup=KO.Sifra_kup '
Set @SSQL = @SSQL + 'Where K.Iskluci <> ''D'' '
If @Sifra_OeDok Is Not Null Or @Sifra_DokDok Is Not Null Or @Broj_DokDok Is Not Null
Begin
Set @SSQLDok = @SSQLDok + ' And K.Sifra_Art In (Select Sifra_Art From Stavr Where 1=1 '
If @Sifra_OeDok Is Not Null
Set @SSQLDok = @SSQLDok + ' And Sifra_Oe = ' + Cast(@Sifra_OeDok as varchar(6)) + ' '
If @Sifra_DokDok Is Not Null
Set @SSQLDok = @SSQLDok + ' And Sifra_Dok = ' + Cast(@Sifra_DokDok as varchar(6)) + ' '
If @Broj_DokDok Is Not Null
Set @SSQLDok = @SSQLDok + ' And Broj_Dok = ' + Cast(@Broj_DokDok as varchar(6)) + ' '
Set @SSQLDok = @SSQLDok + ' )'
End
If @Sifra_OeNar Is Not Null Or @Sifra_NarNar Is Not Null Or @Broj_NarNAr Is Not Null
Begin
Set @SSQLDok = @SSQLDok + ' And K.Sifra_Art In (Select Sifra_Art From StaNarac Where 1=1 '
If @Sifra_OeNar Is Not Null
Set @SSQLDok = @SSQLDok + ' And Sifra_Oe = ' + Cast(@Sifra_OeNar as varchar(6)) + ' '
If @Sifra_NarNar Is Not Null
Set @SSQLDok = @SSQLDok + ' And Sifra_Nar = ' + Cast(@Sifra_NarNar as varchar(6)) + ' '
If @Broj_NarNar Is Not Null
Set @SSQLDok = @SSQLDok + ' And Broj_Nar = ' + Cast(@Broj_NarNar as varchar(6)) + ' '
Set @SSQL = @SSQL + ' Inner Join Soart S On S.Sifra_Art=K.Sifra_Art '
If @Sifra_OE Is Not NULL
Set @SSQL = @SSQL + ' And S.Sifra_OE=' + Cast(@Sifra_OE As Varchar(5)) + ' '
If @KoiOE Is Not NULL
Set @SSQL = @SSQL + ' And S.Sifra_OE IN (' + @KoiOE + ') '
End
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + 'Inner Join Podgrupi PG On K.Sifra_Podg=PG.Sifra_Podg '
If @Sifra_ZBrand Is Not Null
Set @SSQL = @SSQL + 'Inner Join DrgPodel B On K.Sifra_Drg=B.Sifra_Drg '
Set @SSQL = @SSQL + ' Where K.Sifra_Art Not In (Select Distinct Sifra_Art from #TopLista)
And K.Iskluci <> ''D'' '
If @Asortiman ='Z'
Set @SSQL = @SSQL + ' Group By K.Sifra_Art, K.Sifra_Podg
Having Sum(S.Vlez-S.Izlez) <> 0 '
Insert Into #TopLista Exec(@SSQL + @SSQLUslArt)
End
*/
---------------------------------------------------------------------------- Z A L I H A --------------------------------------------------------------------------------
Set @SSQL = 'Select S.Sifra_Oe, S.Sifra_Art, 0 as Kolicina, 0 as Vr_Krajna,
Sum(Case S.VlIzl When ''V'' Then S.Kolic When ''I'' Then -S.Kolic End) Zaliha, 0 as KolicNab, 0 as KolicNabVk
From Stavr S
Inner Join Katart K On S.Sifra_Art=K.Sifra_Art And K.SMatUsl=''M'' '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + 'Inner Join Podgrupi PG On K.Sifra_Podg=PG.Sifra_Podg '
If @Sifra_ZBrand Is Not Null
Set @SSQL = @SSQL + 'Inner Join DrgPodel B On K.Sifra_Drg=B.Sifra_Drg '
Set @SSQL = @SSQL + ' Where K.Iskluci <> ''D'' '
If @Datum_Do Is Not Null
Set @SSQL = @SSQL + ' And Datum_Dok<=''' + Cast(@Datum_Do As Varchar(30)) + ''' '
If @Sifra_OE Is Not NULL
Set @SSQL = @SSQL + ' And S.Sifra_OE=' + Cast(@Sifra_OE As Varchar(5)) + ' '
If @KoiOE Is Not NULL
Set @SSQL = @SSQL + ' And S.Sifra_OE IN (' + @KoiOE + ') '
-------------------------------------------------------------------- ZALIHA OD DRUGA OE -----------------------------------------------------------------
Create Table #ZalihaMag
(
Sifra_Art varchar(20),
ZalihaMag decimal(18,6)
)
If @ZalihaOdOE Is Not Null
Begin
Set @SSQL = 'Select S.Sifra_Art, Sum(Case S.VlIzl When ''V'' Then S.Kolic When ''I'' Then -S.Kolic End) as ZalihaMag
From Stavr S
Inner Join Katart K On S.Sifra_Art=K.Sifra_Art And K.SMatUsl=''M'' '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + 'Inner Join Podgrupi PG On K.Sifra_Podg=PG.Sifra_Podg '
If @Sifra_ZBrand Is Not Null
Set @SSQL = @SSQL + 'Inner Join DrgPodel B On K.Sifra_Drg=B.Sifra_Drg '
Set @SSQL = @SSQL + ' Where K.Iskluci <> ''D'' And S.Sifra_OE IN (' + @ZalihaOdOE + ') '
If @Datum_Do Is Not Null
Set @SSQL = @SSQL + ' And S.Datum_Dok<=''' + Cast(@Datum_Do As Varchar(30)) + ''' '
FROM Stavr S INNER JOIN DokRabNal DRN ON S.DokrID=DRN.DokrID AND DRN.Tip_RabStav='P'
INNER JOIN RabNal RN ON DRN.RabNalID = RN.RabNalID
INNER JOIN KatArt A ON S.Sifra_Art=A.Sifra_Art
INNER JOIN Tarifi T ON T.Sifra_Tar=A.Sifra_Tar
WHERE RN.Sifra_OERab = @Sifra_OERab AND Broj_RabN=@Broj_RabN
GROUP BY S.Sifra_Art, A.ImeArt, A.EdMera, A.Sifra_Tar, T.ProcOsn
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_artiklizaplu]'))
drop procedure [dbo].[sp_artiklizaplu]
Go
CREATE PROCEDURE sp_ArtikliZaPLU
@Sifra_OE smallint
AS
--SELECT A.Lokacija, A.Sifra_Art, A.ImeArt, S.Cena FROM KatArt A INNER JOIN Soart S ON A.Sifra_Art=S.Sifra_Art AND S.Sifra_OE=@Sifra_OE
--WHERE A.Lokacija IS NOT NULL AND A.Lokacija<>' '
SELECT Substring(A.Alt_Sifra,4,10) Lokacija, A.Sifra_Art, A.ImeArt, S.Cena FROM KatArt A INNER JOIN Soart S ON A.Sifra_Art=S.Sifra_Art AND S.Sifra_OE=@Sifra_OE
WHERE A.Alt_Sifra IS NOT NULL AND A.Alt_Sifra like 'PLU%'
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_artkod]'))
drop procedure [dbo].[sp_artkod]
Go
CREATE PROCEDURE sp_ArtKod
@Nom As Varchar(50)
As
Select K.Sifra_Art, K.ImeArt, K.Cena, K.Sostojba, K.ImaKomerc From Katart K
Where K.Nom=@Nom
Union
Select B.Sifra_Art, K.ImeArt, K.Cena, K.Sostojba, K.ImaKomerc From ABarKod B
Inner Join Katart K On B.Sifra_Art=K.Sifra_Art
Where B.Nom=@Nom
Return @@Error
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_artkod_detali]'))
drop procedure [dbo].[sp_artkod_detali]
Go
CREATE PROCEDURE sp_ArtKod_Detali
@Sifra_Oe smallint,
@Nom varchar(50) = NULL, --ili nom ili sifra_art treba da se prati
@Sifra_Art varchar(20) = NULL,
@Sifra_Dob char(6) = NULL, --Sifra na dobavuvac ako ima
@DanCenaKatDob char(1) = 'N', --default kakva e cenata vo KatArtDob
@DanCenaNabCKatArt char(1) = 'D', --Default kakva e nabcena vo KatArt
Set @SSQL = @SSQL + ' AND (G.Dolzi >= ' + Cast(@Iznos_Od as varchar(30)) + ' Or G.Pobaruva >= ' + Cast(@Iznos_Od as varchar(30)) + ') '
If @Iznos_Do IS NOT NULL
Set @SSQL = @SSQL + ' AND (G.Dolzi <= ' + Cast(@Iznos_Do as varchar(30)) + ' Or G.Pobaruva <= ' + Cast(@Iznos_Do as varchar(30)) + ') '
If @Opis IS NOT NULL
Set @SSQL = @SSQL + ' AND G.Opis = ''' + @Opis + ''' '
If @DelOpis IS NOT NULL
Set @SSQL = @SSQL + ' AND G.Opis like ''%' + @DelOpis + '%'' '
If @Opis2 IS NOT NULL
Set @SSQL = @SSQL + ' AND G.Opis2 = ''' + @Opis2 + ''' '
If @DelOpis2 IS NOT NULL
Set @SSQL = @SSQL + ' AND G.Opis2 like ''%' + @DelOpis2 + '%'' '
If @Broj_Nal IS NOT NULL AND @Broj_Nal > 0
Set @SSQL = @SSQL + ' AND G.Broj_Nal = ''' + cast(@Broj_Nal as varchar(10)) + ''' '
EXEC (@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_bilansuspeh]'))
drop procedure [dbo].[sp_bilansuspeh]
Go
CREATE PROCEDURE sp_BilansUspeh
@Datum_Od smalldatetime,
@Datum_Do smalldatetime,
@Kto_Penz char(10)
AS
create table #BilansUspeh
(
ID [int]IDENTITY (1, 1) NOT NULL,
rbr varchar(5),
Pozicija varchar(200),
OznakaNaAOP char(3),
SmetkiVoAOP varchar(100),
IznosPrethGod decimal(18,2),
IznosTekGodina decimal(18,2)
)
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '1.', 'Prihodi od proda`ba', '201', '750, 751, 752, 753, 758, 759'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP) select '2.','Promena na vrednosta na zalihite na gotovite proizvodi i nedovr{enoto proizvodstvo', 'hhh'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '2.a','Zalihi na gotovite proizvodi i nedovr{enoto proizvodstvo na po~etokot na godinata', '202', '60, 63'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '2.b','Zalihi na gotovite proizvodi i nedovr{enoto proizvodstvo na krajot na godinata', '203', '60, 63 bez smetkite 607 i 838 i bez iznosite kni`eni na kusoci i vi{oci'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '3.','Prihodi po osnov na upotreba na sopstveni proizvodi, stoki i uslugi', '204', '755'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '5.a','Tro{oci za surovini i drugi materijali', '207', '400, 401, 404, 405'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '5.b','Nabavna vrednost na prodadeni stoki i uslugi', '208', '410, 411, 412, 413, 414, 419, 701, 702'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '6.','Tro{oci za vraboteni (210 + 211)', '209', ''
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '6.a','Neto plati i nadomesti ', '210', ''
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '6.b','Tro{oci za danoci, socijalno i penzisko osiguruvawe i sli~no (212 + 213)', '211', ''
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select ' ','1. Pridones za penzisko osigiruvawe', '212', '470d. 471d.'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select ' ','2. Danoci i pridonesi za socijalno osiguruvawe', '213', '470d. 471d.'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '7.','Amortizacija i vrednosno usoglasuvawe(215 + 216)', '214', ''
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '7.a','Amortizacija i vrednosno usoglasuvawe na osnova~ki izdotoci, materijalnite sredstva i nematerijalnite sredstva (dolgoro~ni sredstva', '215', '430, 431, 432, 433, 434 del, 451 del'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '7.b','Vrednosno usoglasuvawe na tekovni sredstva (kratkoro~ni sredstva)', '216', '430, 431, 432, 433, 434 del, 451 del'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '8','Ostanati tro{oci od rabotewe', '217', '440, 441, 442, 443, 444, 447, 449, 450, 451 del, 452, 453, 454, 459 '
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '9.','Prihodi od u~estva na vlo`uvawa (219 + 220)', '218', ''
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '9.a','Prihodi od u`estva na vlo`uvawa vo povrzani subjekti', '219', '760'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '9.b','Prihodi od u~estva na vlo`uvawa vo nepovrzani subjekti', '220', '761'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '10','Prihodi od ostanati vlo`uvawa i zaemi (222 + 223)', '221', ''
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '10.a','Prihodi od ostanati vlo`uvawa i zaemi vo ramkite na postojanite sredstva so povrzani subjekti', '222', '762'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '10.b','Prihodi od ostanati vlo`uvawa i zaemi vo ramkite na postojanite sredstva so nepovrzani subjekti', '223', '763'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '11','Prihodi po osnov na kamati, kursni razliki i sli~ni prihodi (225 + 226)', '224', ''
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '11.a','Prihodi po osnov na kamati, kursni razliki i sli~ni prihodi od rabotewe so povrzani subjekti', '225', '764'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '11.b','Prihodi po osnov na kamati, kursni razliki isli~ni prihodi od rabotewe so nepovrzani subjekti', '226', '765'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '12','Vrednosno usoglasuvawe na finansiskite sredstva i vlo`uvawa', '227', '434 del'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '13','Rashodi po osnov na kamati, kursni razliki i sli~ni prihodi (229 + 230)', '228', '60, 63'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '13.a','Rashodi po osnov na kamati, kursni razliki i sli~ni rashodi od rabotewe so povrzani subjekti', '229', '480, 481, 482, 484'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '13.b','Rashodi po osnov na kamati, kursni razliki i sli~ni rashodi od rabotewe so nepovrzani subjekti', '230', '483, 484 d. 485, 489'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '16.','Danok i pridonesi od dobivkata od redovnoto rabotewe (Del od Dano~niot bilans)', '233', '810, 811'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '17.','Dobivka od redovnoto rabotewe po odano~uvawe (231 - 233)', '234', '820'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '18.','Zaguba od redovnoto rabotewe po odano~uvawe (233 - 231) ili (232 + 233)', '235', '891'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '21.','Dobivka od vonrednite aktivnosti pred odano~uvawe (236 - 237)', '238', '830'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '22.','Zaguba od vonrednite aktivnosti pred odano~uvawe (237 - 236)', '239', '892'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '23.','Danok i pridonesi od dobivkata od vonrednite aktivnosti (Del od dano~niot bilans)', '240', '840, 841'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '24.','Dobivka od vonrednite aktivnosti po odano~uvaweto (238 - 240)', '241', '850'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '25.','Zaguba od vonrednite aktivnosti po odano~uvaweto (240 - 238) ili (239 + 240)', '242', '893'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '26.','Ostanati danoci i pridonesi koi ne se iska`ani vo prethodnite pozicii', '243', '860'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '27.','Dobivka za finansiskata godina (234 + 241 - 243) ili (233 - 242 - 243) ili (239 + 240)', '244', '951'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '28.','Zaguba za finansiskata godina (235 - 241 +243) ili (242 - 234 +243)', '245', '961'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '','Uslugi (246 < ili = 208)', '246', ''
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '','Prose~en broj na vraboteni vrz osnova na ~asovi na rabota vo presmetkovniot period (vo apsoluten iznos)', '247', ''
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '','Broj na meseci na raboteweto', '248', ''
Declare @IznosTekGod as decimal(18,2)
Declare @Iznos as decimal(18,2)
--prihodi od prodazzba
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '750%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '751%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
if @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '752%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
if @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '753%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
if @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '756%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
if @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '758%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
if @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '759%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
if @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 1
--kraj prihodi od prodazzba
--zalihi na gotoviteproizvodi i nedovrshenoto proizvodstvo na pochetokot na godinata
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '60%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '63%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 3
--kraj
--zalihi na gotoviteproizvodi i nedovrshenoto proizvodstvo na krajot na godinata
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi - G.Pobaruva) from Gstav G where G.Kto_Anal like '60%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = sum (G.Dolzi - G.Pobaruva) from Gstav G where G.Kto_Anal like '63%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 4
--kraj
--prihodi po osnov na upotreba na sopstveni proizvodii, stoki i usugi
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '755%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 5
--kraj
--ostanati delovni prihodi
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '770%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '771%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '772%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '773%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '774%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '775%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '776%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '777%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '778%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '779%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 6
--kraj
--troshoci za surovini i drugi materijali
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '400%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '401%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '404%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '405%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 8
--kraj
--nabavna vrednost na prodadeni stoki i uslugi
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '410%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '411%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '412%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '413%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '414%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '419%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '701%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '702%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 9
--kraj
--neto plati i nadomesti
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '271%' AND G.Datum_Nal > = @Datum_Od AND G.Datum_Nal < = @Datum_Do AND G.Sifra_Nal <> 999
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 11
--kraj
--pridones za penzisko osiguruvanje
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal = @Kto_Penz AND G.Datum_Nal >= @Datum_Od AND G.Datum_Nal <= @Datum_Do and G.Sifra_Nal <> 999
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 13
--kraj
--danoci i pridonesi za zdravstveno osiguravanje
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '274%' AND G.Kto_Anal<>@Kto_Penz AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do and G.Sifra_Nal <> 999
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '273%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do and G.Sifra_Nal <> 999
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 14
--kraj
--amortizacija i vrednosno osiguruvawe ne osnovachki izdatoci..
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '430%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '431%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '432%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '433%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '434%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '451%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 16
--kraj
--tekovni sredstva kratkorochni
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '435%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '436%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '437%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '438%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '439%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '420%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '422%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '423%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '429%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 17
--ostanati trosoci
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '440%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '441%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '442%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '443%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '444%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '447%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '449%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '450%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '451%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '452%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '453%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '454%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '459%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 18
--kraj
--prihodi od uchestva na vlozuvanja vo povrzani subjekti
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '760%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 20
--kraj
--prihodi od uchestva na vlozuvanja vo nepovrzani subjekti
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '761%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 21
--kraj
--prihodi od ostanati vlozuvanja i zaemi vo ramkite na postojani sredstva so povrzani subjekti
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva - G.Dolzi) from Gstav G where G.Kto_Anal like '762%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 23
--kraj
--prihodi od ostanati vlozuvanja i zaemi vo ramkite na postojani sredstva so nepovrzani subjekti
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva - G.Dolzi) from Gstav G where G.Kto_Anal like '763%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 24
--kraj
--prihodi po osnov na kamati, kursni razliki, i slicni prihodi od rabotenje so povrzani subjekti
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '764%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 26
--kraj
--prihodi po osnov na kamati, kursni razliki, i slicni prihodi od rabotenje so nepovrzani subjekti
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '765%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 27
--kraj
--prihodi po osnov na kamati, kursni razliki, i slicni prihodi od rabotenje so nepovrzani subjekti
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi - G.Pobaruva) from Gstav G where G.Kto_Anal like '434%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 28
--kraj
--rashodi po osnov na kamati, kursni razliki, i slicni prihodi od rabotenje so povrzani subjekti
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '480%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '481%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '482%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '484%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 30
--kraj
--rashodi po osnov na kamati, kursni razliki, i slicni prihodi od rabotenje so nepovrzani subjekti
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '483%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
--select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '484%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
--IF @Iznos is not null
-- set @IznosTekGod = @IznosTekGod + @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '485%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '489%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 31
--kraj
--dobivka od redovno rabotenje
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '800%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 32
--kraj
--zaguba od redovno rabotenje
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '890%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 33
--kraj
--danok i pridonesi od dobivkata od redovnoto rabotenje
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '810%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '811%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod =@IznosTekGod + @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 34
--kraj
--dobivka od redovnoto rabotenje po odanochuvanje
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '820%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 35
--kraj
--zaguba od redovnoto rabotenje po odanochuvanje
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '891%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 36
--kraj
--vonredni prihodi
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '780%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '781%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '782%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod =@IznosTekGod + @Iznos
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '789%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 37
--kraj
--vonredni rashodi
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '720%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '721%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '722%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 38
--kraj
--Dobivka od vonrednite aktivnosti pred odanochuvanje
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '830%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 39
--kraj
--Zaguba od vonrednite aktivnosti pred odanochuvanje
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '892%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 40
--kraj
--Danok i pridonesi od dobivkata od vonrednite aktivnosti pred odanochuvanje
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '840%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '841%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 41
--kraj
--Dobivka od vonrednite aktivnosti po odanochuvanje
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '850%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 42
--kraj
--Zaguba od vonrednite aktivnosti po odanochuvanje
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '893%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 43
--kraj
--Ostanati danoci i pridonesi koi ne se iskazzani vo prethodnite pozicii
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '860%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 44
--kraj
--Dobivka za finansiskata godina
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '871%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 45
--kraj
--Zaguba za finansiskata godina
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '895%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 46
--kraj
--zbir polinja
--Materijalni trosoci
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 8
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 9
IF @Iznos is not null
set @IznosTekGod =@IznostekGod + @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 7
--kraj
--Trosoci za danoci, socijalno i penzisko osiguruvanje
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 13
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 14
IF @Iznos is not null
set @IznosTekGod =@IznostekGod + @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 12
--kraj
--Trosoci za vraboteni
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 11
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 12
IF @Iznos is not null
set @IznosTekGod =@IznostekGod + @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 10
--kraj
--Amortizacija i vrednosno usoglasuvanje
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 16
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 17
IF @Iznos is not null
set @IznosTekGod =@IznostekGod + @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 15
--kraj
--prihodi od ucestva na vlozzuvanja
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 20
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 21
IF @Iznos is not null
set @IznosTekGod =@IznostekGod + @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 19
--kraj
--prihodi od ostanati vlozzuvanja i zaemi
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 23
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 24
IF @Iznos is not null
set @IznosTekGod =@IznostekGod + @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 22
--kraj
--prihodi po osnov na kamati, kursni razliki i slichni prihodi
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 26
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 27
IF @Iznos is not null
set @IznosTekGod =@IznostekGod + @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 25
--kraj
--rashodi po osnov na kamati, kursni razliki i slichni prihodi
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 30
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 31
IF @Iznos is not null
set @IznosTekGod =@IznostekGod + @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 29
--kraj
update #BilansUspeh set IznosTekGodina = 0 where IznosTekGodina is null
select * from #Bilansuspeh
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_bilansuspeh_mal]'))
drop procedure [dbo].[sp_bilansuspeh_mal]
Go
CREATE PROCEDURE sp_BilansUspeh_mal
@Datum_Od smalldatetime,
@Datum_Do smalldatetime,
@Kto_Penz char(10)
AS
create table #BilansUspeh
(
ID [int]IDENTITY (1, 1) NOT NULL,
rbr varchar(5),
Pozicija varchar(200),
OznakaNaAOP char(3),
IznosPrethGod decimal(18,2),
IznosTekGodina decimal(18,2)
)
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP) select '1.', 'Prihodi od osnovnata dejnost', '260'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP) select '2.','Rashodi od osnovnata dejnost', '261'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP) select ' ','Tro{oci za danoci, socijalno i penzisko osiguruvawe na dolgoro~nite sredstva', '268'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP) select '2.v','Amortizacija i vrednosno usoglasuvawe na osnova~ki izdatoci, materijalni sredstva i na nematerijalni sredstva (dolgoro~ni sr.)', '269'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP) select '3.','Prihodi od drugi aktivnosti', '270'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP) select '4.','Rashodi od drugi aktivnosti', '271'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP) select '5.','Vonredni prihodi', '272'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP) select '6.','Vonredni rashodi', '273'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP) select '7.','Dobivka pred odano~uvaweto (260+270+272) - (261+271+273)', '274'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP) select '9.','Danok i pridonesi od dobivkata ', '276'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP) select '10.','Dobivka za finansiskata godina (274 - 276)', '277'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP) select '11.','Zaguba za finansiskata godina (276 - 274) ili (275 + 276)', '278'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP) select ' ','Pridones za penzisko osiguruvawe', '279'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP) select ' ','Prose~en broj na vraboteni vrz osnova na ~asovi na rabota vo presmetkovniot period (vo apsoluten iznos)', '280'
insert into #BilansUspeh(rbr, Pozicija, OznakaNaAOP) select ' ','Broj na meseci na rabotewe', '281'
Declare @IznosTekGod as decimal(18,2)
Declare @Iznos as decimal(18,2)
--260 prihodi od prodazzba
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '75%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '77%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
if @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 1
--kraj
--263 Trosoci za surovini i drugi materijali
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '40%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '42%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '44%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '45%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '60%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '63%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 4
--kraj
--264 Nabavna vrednost na prodadeni stoki
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi - G.Pobaruva) from Gstav G where G.Kto_Anal like '701%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = sum (G.Dolzi - G.Pobaruva) from Gstav G where G.Kto_Anal like '702%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 5
--kraj
--265 Uslugi
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '41%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 6
--kraj
--267 Neto plati nadomestoci
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '271%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 8
--kraj
--268 troshoci za danoci, socijalno i penzisko osiguruvawe
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '273%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '274%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 9
--kraj
--269 amortizacija i vrednosno usoglasuvawe na osnovachki izdatoci
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '43%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 10
--kraj
--270 Prihodi od drugi aktivnosti
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '76%' AND G.Datum_Nal > = @Datum_Od AND G.Datum_Nal < = @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 11
--kraj
--271 Rashodi od drugi aktivnosti
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '48%' AND G.Datum_Nal >= @Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 12
--kraj
--272 Vonredni prihodi
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '78%' AND G.Kto_Anal<>@Kto_Penz AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do and G.Sifra_Nal <> 999
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 13
--kraj
--273 Vonredni rashodi
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '72%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 14
--kraj
--274 Dobivka pred odano~uvawe
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '800%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 15
--275 Zaguba pred odano~uvawe
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '890%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 16
--kraj
--276 Danok i pridonesi od dobivkata
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '276%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '810%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '811%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 17
--kraj
--277 Dobivka za finansiskata godina
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '820%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 18
--kraj
--278 Zaguba za finansiskata godina
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva - G.Dolzi) from Gstav G where G.Kto_Anal like '895%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 19
--kraj
--279 Pridones za penzisko osiguruvawe
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva - G.Dolzi) from Gstav G where G.Kto_Anal like '274%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 20
--kraj
select rbr,Pozicija,OznakaNaAOP,IznosPrethGod,IznosTekGodina from #Bilansuspeh
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_bilansuspehsr]'))
drop procedure [dbo].[sp_bilansuspehsr]
Go
CREATE PROCEDURE sp_BilansUspehSR
@Datum_Od smalldatetime,
@Datum_Do smalldatetime
AS
create table #BilansUspeh
(
ID [int]IDENTITY (1, 1) NOT NULL,
rbr varchar(5),
Pozicija nvarchar(200),
OznakaNaAOP char(3),
GrupaSmetki nvarchar(100),
IznosPrethGod decimal(18,2),
IznosTekGodina decimal(18,2)
)
insert into #BilansUspeh(Pozicija, OznakaNaAOP, GrupaSmetki) select N'A.ПРИХОДИ И РАСХОДИ ИЗ РЕДОВНОГ ПОСЛОВАЊА I. ПОСЛОВНИ ПРИХОДИ (202+203+204-205+206)', '201', ''
insert into #BilansUspeh(Pozicija, OznakaNaAOP, GrupaSmetki) select N' 1.Основна зарада по акцији', '233', ''
insert into #BilansUspeh(Pozicija, OznakaNaAOP, GrupaSmetki) select N' 2.Умањена (разводњена) зарада по акција', '234', ''
Declare @IznosTekGod as decimal(18,2)
Declare @Iznos as decimal(18,2)
--prihodi od prodazzba
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '60%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '61%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
if @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 2
--kraj prihodi od prodazzba
--prihodi od aktiviranja ucinaka i robe
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '62%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 3
--kraj
--povechanje vrednossti zaliha ucinaka
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '630%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 4
--kraj
--Smanenje vrednosti zaliha ucinaka
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '631%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 5
--kraj
--ostali poslovni prihodi
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '64%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '65%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod+@Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 6
--kraj
--nabavna vrednost prodate robe
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '50%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 8
--kraj
--troshkovi materijala
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '51%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 9
--kraj
--troskovi zarada, naknada zarada i ostali lichni rashodi
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '52%' AND G.Datum_Nal > = @Datum_Od AND G.Datum_Nal < = @Datum_Do AND G.Sifra_Nal <> 999
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 10
--kraj
--troskovi, amortizacija i rezervisanja
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '54%' AND G.Datum_Nal >= @Datum_Od AND G.Datum_Nal <= @Datum_Do and G.Sifra_Nal <> 999
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 11
--kraj
--Ostali poslovni rashodi
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '53%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do and G.Sifra_Nal <> 999
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '55%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do and G.Sifra_Nal <> 999
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 12
--kraj
--FINANSIJSKI PRIHODI
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '66%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 15
--kraj
--FINANSIJSKI RASHODI
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '56%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 16
--OSTALI PRIHODI
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '67%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '68%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 17
--kraj
--OSTALI RASHODI
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '57%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '58%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 18
--kraj
--NETO DOBITAK POSLOVANJA KOJE SE OBUSTAVLJA
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '59%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '60%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '61%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '62%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '63%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '64%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '65%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '66%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '67%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '68%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '69%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 21
--kraj
--NETO GUBITAK POSLOVANJA KOJE SE OBUSTAVLJA
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '69%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '68%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '67%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '66%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '65%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '64%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '63%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '62%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '61%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '60%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
select @Iznos = sum (G.Dolzi) from Gstav G where G.Kto_Anal like '59%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @IznosTekGod + @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 22
--kraj
--PORESKI RASHOD PERIODA
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva - G.Dolzi) from Gstav G where G.Kto_Anal like '721%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 26
--kraj
--ODLOZZENI PORESKI RASHODI PERIODA
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '722%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 27
--kraj
--ODLOZZENI PORESKI PRIHODI PERIODA
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Pobaruva) from Gstav G where G.Kto_Anal like '722%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 28
--kraj
--ISPLACHENA LICHNA PRIMANJA POSLODAVCU
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = sum (G.Dolzi - G.Pobaruva) from Gstav G where G.Kto_Anal like '723%' AND G.Datum_Nal >=@Datum_Od AND G.Datum_Nal <= @Datum_Do
IF @Iznos is not null
set @IznosTekGod = @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 29
--kraj
--zbir polinja
--Poslovni Prihodi 202 + 203 + 204 - 205 + 206
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 2 --202
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 3 --203
IF @Iznos is not null
set @IznosTekGod =@IznostekGod + @Iznos
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 4 --204
IF @Iznos is not null
set @IznosTekGod =@IznostekGod + @Iznos
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 5 --205
IF @Iznos is not null
set @IznosTekGod =@IznostekGod - @Iznos
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 6 --206
IF @Iznos is not null
set @IznosTekGod =@IznostekGod + @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 1
--kraj
--Poslovni Rashodi 208 + 209 + 210 + 211 + 212
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 8 --208
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 9 --209
IF @Iznos is not null
set @IznosTekGod =@IznostekGod + @Iznos
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 10 --210
IF @Iznos is not null
set @IznosTekGod =@IznostekGod + @Iznos
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 11 --211
IF @Iznos is not null
set @IznosTekGod =@IznostekGod + @Iznos
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 12 --212
IF @Iznos is not null
set @IznosTekGod =@IznostekGod + @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 7
--kraj
--13 Poslovni dobitak 201 - 207
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 1 --201
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 7 --207
IF @Iznos is not null
set @IznosTekGod =@IznostekGod - @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 13
--kraj
--14 Poslovni gubitak 207 - 201
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 7 --207
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 1 --201
IF @Iznos is not null
set @IznosTekGod =@IznostekGod - @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 14
--kraj
--19 Dobitak iz redovnog poslovanja pre oporezivanja (213 - 214 + 215 - 216 + 217 - 218)
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 13 --213
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 14 --214
IF @Iznos is not null
set @IznosTekGod =@IznostekGod - @Iznos
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 15 --215
IF @Iznos is not null
set @IznosTekGod =@IznostekGod + @Iznos
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 16 --216
IF @Iznos is not null
set @IznosTekGod =@IznostekGod - @Iznos
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 17 --217
IF @Iznos is not null
set @IznosTekGod =@IznostekGod + @Iznos
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 18 --218
IF @Iznos is not null
set @IznosTekGod =@IznostekGod - @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 19
--kraj
--20 Gubitak iz redovnog poslovanja pre oporezivanja (214 - 213 - 215 + 216 - 217 + 218)
Set @IznosTekGod = 0
set @Iznos = 0
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 14 --214
IF @Iznos is not null
set @IznosTekGod = @Iznos
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 13 --213
IF @Iznos is not null
set @IznosTekGod =@IznostekGod - @Iznos
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 15 --215
IF @Iznos is not null
set @IznosTekGod =@IznostekGod - @Iznos
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 16 --216
IF @Iznos is not null
set @IznosTekGod =@IznostekGod + @Iznos
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 17 --217
IF @Iznos is not null
set @IznosTekGod =@IznostekGod - @Iznos
select @Iznos = IznosTekGodina from #BilansUspeh where #BilansUspeh.id = 18 --218
IF @Iznos is not null
set @IznosTekGod =@IznostekGod + @Iznos
update #BilansUspeh set IznosTekGodina = round(@IznosTekGod, 0) where #BilansUspeh.id = 20
insert into #BilSost(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select 'I.5','Avansi za nematerijalni sredstva', '008', '015, 016, 017'
insert into #BilSost(rbr, Pozicija, OznakaNaAOP) select 'II','MATERIJALNI SREDSTVA', '009'
insert into #BilSost(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select 'II.1','Zemji{te i zgradi', '010', '020, 021, 024, 028d, 029d'
insert into #BilSost(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select 'II.2','Postrojki i oprema', '011', '022, 028d, 029d'
insert into #BilSost(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select 'II.3','Alat, pogonski i kancelariski inventar, mebel i transportni sredstva', '012', '023, 028d, 029d'
insert into #BilSost(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select 'II.4','Avansi za materijalni sredstva i materijalni sredstva vo podgotovka', '013', '025, 026, 028d'
insert into #BilSost(rbr, Pozicija, OznakaNaAOP) select 'III','FINANSISKI SREDSTVA DOLGORO^NI', '014'
insert into #BilSost(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select 'III.1','Vlo`uvawa (vo akcii i udeli) vo povrzani subjekti', '015', '040, 049d'
insert into #BilSost(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select 'III.2','Zaemi na povrzani subjekti', '016', '041, 049d'
insert into #BilSost(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select 'III.3','U~estvo vo vlo`uvawa(participacija)', '017', '043, 049d'
insert into #BilSost(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select 'III.4','Zaemi so koi subjektot e povrzan vrz osnova na u~estvo vo vlo`uvaweto', '018', '042, 049d'
insert into #BilSost(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select 'III.5','Vlo`uvawa vo dolgoro~ni hartii od vrednost', '019', '044, 049d'
insert into #BilSost(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '5.','Plateni tro{oci za idnite periodi i nedostasana naplata na prihodi (AVR)', '033', '19'
insert into #BilSost(rbr, Pozicija, OznakaNaAOP) select 'III.','FINANSISKI VLO@UVAWA (KRATKORO^NI)', '034'
insert into #BilSost(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '1.','Vlo`uvawa vo akcii i udeli vo povrzani subjekti', '035', '150, 159d'
insert into #BilSost(rbr, Pozicija, OznakaNaAOP, SmetkiVoAOP) select '7.','Obvrski sprema subjekti so koi subjektot e povrzan po osnov na u~estvo vo vlo`uvawata', '069', '282, 246, 249d'
insert into #BilansSost(Pozicija, OznakaNaAOP, GrupaSmetki) select N'А.КАПИТАЛ (102+103+104+105+106+107+108-109-110)', '101', N'ПАСИВА'
insert into #BilansSost(Pozicija, OznakaNaAOP, GrupaSmetki) select N' I. ОСНОВНИ КАПИТАЛ', '102', '30'
insert into #BilansSost(Pozicija, OznakaNaAOP, GrupaSmetki) select N' II. НЕУПЛАЂЕНИ УПИСАНИ КАПИТАЛ', '103', '31'
insert into #BilansSost(Pozicija, OznakaNaAOP, GrupaSmetki) select N' III. РЕЗЕРВЕ', '104', '32'
insert into #BilansSost(Pozicija, OznakaNaAOP, GrupaSmetki) select N' IV. РЕВАЛОРИЗАЦИОНЕ РЕЗЕРВЕ', '105', N'330 и 331'
insert into #BilansSost(Pozicija, OznakaNaAOP, GrupaSmetki) select N' V. НЕРЕАЛИЗОВАНИ ДОБИЦИ ПО ОСНОВУ ХАРТИЈА ОД ВРЕДНОСТИ', '106', '332'
insert into #BilansSost(Pozicija, OznakaNaAOP, GrupaSmetki) select N' VI. НЕРЕАЛИЗОВАНИ ГУБИЦИ ПО ОСНОВУ ХАРТИЈА ОД ВРЕДНОСТИ', '107', '333'
insert into #BilansSost(Pozicija, OznakaNaAOP, GrupaSmetki) select N' VII. НЕРАСПОРЕЂЕНИ ДОБИТАК', '108', '34'
insert into #BilansSost(Pozicija, OznakaNaAOP, GrupaSmetki) select N' VIII.ГУБИТАК', '109', '35'
insert into #BilansSost(Pozicija, OznakaNaAOP, GrupaSmetki) select N' IX.ОТКУПЉЕЊЕ СОПСТВЕНЕ АКЦИЈЕ', '110', N'037 и 237'
insert into #BilansSost(Pozicija, OznakaNaAOP, GrupaSmetki) select N' I. ДУГОРОЧНА РЕЗЕРВИСАЊА', '112', '40'
insert into #BilansSost(Pozicija, OznakaNaAOP, GrupaSmetki) select N' II. ДУГОРОЧНА ОБАВЕЗЕ(114 + 115)', '113', '41'
insert into #BilansSost(Pozicija, OznakaNaAOP, GrupaSmetki) select N' 1.Дугорочни кредити', '114', '414, 415'
insert into #BilansSost(Pozicija, OznakaNaAOP, GrupaSmetki) select N' 2.Остале дугорочне обавезе', '115', N'41 без 414 и 415'
insert into #BilansSost(Pozicija, OznakaNaAOP, GrupaSmetki) select N' III.КРАТКОРОЧНЕ ОБАВЕЗЕ(117+118+119+120+121+122)', '116', ''
insert into #BilansSost(Pozicija, OznakaNaAOP, GrupaSmetki) select N' 1.Краткорочне финансијске обавезе', '117', N'42,осим 427'
K.KasaGrupa, N.Datum_Nal, K.Sifra_Oe, Null as PrethSost, K.TipBlag, K.Sifra_Nac, PL.ImeNac
From KasStav K
Inner Join Nalozi N On K.Sifra_Nal = N.Sifra_Nal and K.Broj_Nal=N.Broj_Nal
Left outer Join Komint KUP On K.Sifra_Kup=KUP.Sifra_Kup
Left Outer Join KrsLista KL On KL.SImeVal = K.KojaVal
LEFT OUTER JOIN NacPlak PL ON K.Sifra_Nac=PL.Sifra_Nac
Where K.Sifra_Nal=' + Cast(@Sifra_Nal as varchar(6)) + ' and N.Datum_Nal= ''' + Cast(@Datum_Nal as varchar(30)) + ''' '
If @Broj_Nalog Is Not Null
Set @SSQL = @SSQL + ' AND K.Broj_Nal = ' + Cast(@Broj_Nalog as varchar(10)) + ' '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
If @Kto_Anal Is Not Null
Set @SSQL = @SSQL + ' And K.Kto_Anal = ''' + @Kto_Anal + ''' '
IF @TipBlag IS NOT NULL
SET @SSQL=@SSQL+' AND TipBlag='''+@TipBlag+''' '
Set @SSQL=@SSQL + '
Union
Select Null as KStaID, Null as Broj_dok, Null as Sifra_Nal, Null as Broj_Nal, Null as Dod_Datum, Null as P_I, Null as Kto_Anal, Null as Kto_Osnovica, Null as Dolzi, Null as Pobaruva,
Null as Lice, Null as SMesto, Null as Opis, Null as Opis2, Null as Sifra_Kup, Null as ImeKup, Null as KojaVal, Null as ImeVal, Null as Kurs,
Null as Dev_Dolzi, Null as Dev_Pobar, Null as Sifra_Oper, Null as USG, Null as Datum_Vnes, Null as KasaGrupa, Null as Datum_Nal,
Set @SSQL = @SSQL + ' And P.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
IF @Podred='I'
Set @SSQL = @SSQL + ' Order By K.KStaID'
Else
Set @SSQL = @SSQL + ' Order By K.Sifra_Oe, K.KStaID'
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_blagajnicki_izv_sum]'))
drop procedure [dbo].[sp_blagajnicki_izv_sum]
Go
CREATE PROCEDURE sp_Blagajnicki_Izv_Sum
@Sifra_Nal smallint,
@Datum_Nal smalldatetime,
@Sifra_Oe smallint = Null,
@Kto_Anal char(10) = Null,
@TipBlag char(3)=NULL --dod.16.11.07
-- @Br_Nal_Prik int = NULL,
-- @Preth_Sost decimal(18,6) Output,
-- @Broj_Nalog int Output
AS
Declare @SSQL as varchar(4000)
Create Table #Blag
(
KojaVal char(3),
PrethSost decimal(18,6),
TekDolzi decimal(18,6),
TekPobar decimal(18,6)
)
Set @SSQL = ' Select K.KojaVal, Sum(K.Dev_Dolzi - K.Dev_Pobar)
From KasStav K
Inner Join Nalozi N On K.Sifra_Nal = N.Sifra_Nal and K.Broj_Nal=N.Broj_Nal
Where K.Sifra_Nal= ' + Cast(@Sifra_Nal as varchar(6)) + ' and N.Datum_Nal < ''' + cast(@Datum_Nal as varchar(30)) + ''' '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
If @Kto_Anal Is Not Null
Set @SSQL = @SSQL + ' And K.Kto_Anal = ''' + @Kto_Anal + ''' '
IF @TipBlag IS NOT NULL
SET @SSQL=@SSQL+' AND TipBlag='''+@TipBlag+''' '
Set @SSQL=@SSQL + ' Group By K.KojaVal '
Insert Into #Blag (KojaVal, PrethSost) Exec(@SSQL)
Set @SSQL = ' Select K.KojaVal, Sum(K.Dev_Dolzi), Sum(K.Dev_Pobar)
From KasStav K
Inner Join Nalozi N On K.Sifra_Nal = N.Sifra_Nal and K.Broj_Nal=N.Broj_Nal
Where K.Sifra_Nal= ' + Cast(@Sifra_Nal as varchar(6)) + ' and N.Datum_Nal = ''' + cast(@Datum_Nal as varchar(30)) + ''' ' -- AND K.Broj_Nal = @Broj_Nalog
-- Where K.Sifra_Nal=@Sifra_Nal and N.Datum_Nal=@Datum_Nal -- AND K.Broj_Nal = @Broj_Nalog
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
If @Kto_Anal Is Not Null
Set @SSQL = @SSQL + ' And K.Kto_Anal = ''' + @Kto_Anal + ''' '
IF @TipBlag IS NOT NULL
SET @SSQL=@SSQL+' AND TipBlag='''+@TipBlag+''' '
Set @SSQL=@SSQL + ' Group By K.KojaVal '
Insert Into #Blag (KojaVal, TekDolzi, TekPobar) Exec(@SSQL)
Inner Join Nalozi N On K.Sifra_Nal = N.Sifra_Nal and K.Broj_Nal=N.Broj_Nal
left outer Join Komint KUP On K.Sifra_Kup=KUP.Sifra_Kup
Where 1=1 '
If @Sifra_Nal Is Not Null
Set @SSQL = @SSQL + ' and K.Sifra_Nal= ' + cast(@Sifra_Nal as varchar(6)) + ' '
If @Datum_Nal Is Not Null
Set @SSQL = @SSQL + ' and N.Datum_Nal= ''' + cast(@Datum_Nal as varchar(30)) + ''' '
If @Broj_Nalog Is Not Null
Set @SSQL = @SSQL + ' AND K.Broj_Nal = ' + cast(@Broj_Nalog as varchar(10)) + ' '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' AND K.Sifra_Oe = ' + cast(@Sifra_Oe as varchar(10)) + ' '
If @Koi_OE Is Not NULL
Set @SSQL = @SSQL + ' and K.Sifra_OE IN (Select G.Sifra_Oe from SGrOrg G where G.sif_GrOrg = ''' + @Koi_Oe + ''') '
If @Kto_Anal Is Not Null
Set @SSQL = @SSQL + ' AND K.Kto_Anal = ''' + @Kto_Anal + ''' '
Set @SSQL = @SSQL + ' Order by KStaID '
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_blagizvdatvnes]'))
drop procedure [dbo].[sp_blagizvdatvnes]
Go
CREATE PROCEDURE sp_BlagIzvDatVnes
@Sifra_Dok varchar(200),
@Sifra_OE Smallint,
@Datum_Vnes_Od smallDatetime,
@Datum_Vnes_Do smallDatetime
AS
Declare @SSQL Varchar(4000)
SET @SSQL = 'SELECT A.*, K.ImeKup, K.SMesto FROM AnFinDok A
LEFT OUTER JOIN Komint K ON A.Sifra_Kup=K.Sifra_Kup
WHERE 1=1 '
If @Sifra_Dok Is NOT Null
SET @SSQL = @SSQL + ' AND Sifra_Dok IN (' + Cast(@Sifra_Dok As Varchar(200)) + ') '
If @Sifra_OE Is NOT Null
SET @SSQL = @SSQL + 'AND Sifra_OE=' + Cast(@Sifra_OE As Varchar(6)) + ' '
If @Datum_Vnes_Od Is NOT Null
set @SSQL = @SSQL + 'AND cast(cast(datepart(yyyy, A.Datum_Vnes) as char(4)) +''-''+
cast(datepart(mm, A.Datum_Vnes) as char(2)) +''-''+
cast(datepart(dd, A.Datum_Vnes) as char(2)) as smalldatetime)
>= '''+cast(@Datum_Vnes_Od as varchar(35))+''' '
If @Datum_Vnes_Do Is NOT Null
set @SSQL = @SSQL + ' AND cast(cast(datepart(yyyy, A.Datum_Vnes) as char(4)) +''-''+
cast(datepart(mm, A.Datum_Vnes) as char(2)) +''-''+
cast(datepart(dd, A.Datum_Vnes) as char(2)) as smalldatetime)
<= '''+cast(@Datum_Vnes_Do as varchar(35))+''' '
print(@SSQL)
EXEC(@SSQL)
RETURN @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_blagsumkpzagrupa]'))
drop procedure [dbo].[sp_blagsumkpzagrupa]
Go
CREATE PROCEDURE sp_BlagSumKPZaGrupa
@Sifra_Nal smallint,
@Broj_Nal int,
@KasaGrupa varchar(10),
@Sifra_Nac smallint,
@Iznos decimal(18,2)=0 OUTPUT
AS
IF @Sifra_Nac IS NULL
SELECT @Iznos = SUM(Dolzi) FROM KasStav WHERE P_I='P' AND Sifra_Nal=@Sifra_Nal AND Broj_Nal=@Broj_Nal AND UPPER(KasaGrupa)=UPPER(@KasaGrupa)
ELSE
SELECT @Iznos = SUM(Dolzi) FROM KasStav WHERE P_I='P' AND Sifra_Nal=@Sifra_Nal AND Broj_Nal=@Broj_Nal AND UPPER(KasaGrupa)=UPPER(@KasaGrupa) AND Sifra_Nac=@Sifra_Nac
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_blokiraj_1_komint]'))
drop procedure [dbo].[sp_blokiraj_1_komint]
Go
CREATE PROCEDURE sp_Blokiraj_1_Komint
@Sifra_Kup char(6),
@MozeIsporaka char(1)
AS
Update Komint
Set MozeIsporaka=@MozeIsporaka
Where Sifra_Kup=@Sifra_Kup
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_blokiraj_komint]'))
drop procedure [dbo].[sp_blokiraj_komint]
Go
CREATE PROCEDURE sp_Blokiraj_Komint
@Sifra_Kup_Od char(6),
@Sifra_Kup_Do char(6)
AS
Declare @SSQL as varchar(8000)
Set @SSQL = ' Update Komint
Set MozeIsporaka = dbo.fix_Moze_Isporaka(Sifra_Kup, MozeIsporaka,Limit_Dolzi,Garancija, GetDate(), KDrugo5)
Where MozeIsporaka Not In (''N'', ''F'') '
If @Sifra_Kup_Od Is Not Null
Set @SSQL = @SSQL + ' And Sifra_Kup >= ' + @Sifra_Kup_Od + ' '
If @Sifra_Kup_Do Is Not Null
Set @SSQL = @SSQL + ' And Sifra_Kup <= ' + @Sifra_Kup_Do + ' '
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_brand_prodpomes]'))
drop procedure [dbo].[sp_brand_prodpomes]
Go
CREATE PROCEDURE sp_Brand_ProdPoMes
@Sifra_OE Smallint,
@KoiOE Varchar(200) = Null,
@Pod1 Smallint = Null,
@Pod2 Smallint = Null,
@Pod3 Smallint = Null,
@Pod4 Smallint = Null,
@Pod5 Smallint = Null,
@Sifra_Tip Smallint = Null,
@Datum_Od Smalldatetime = Null,
@Datum_Do Smalldatetime = Null,
@Sifra_Kup_Od Char(6) = Null,
@Sifra_Kup_Do Char(6) = Null,
@Koi_Gradovi Varchar(200) = Null,
@Sifra_Pat smallint = Null,
@TipDokProd varchar(200) = Null,
@Koi_Regioni Varchar(200) = Null,
@PoKojDatum char(1) = 'D', -- D - Po Datum na Dokument, V - Po Datum Na Vnes
----------------------------------------------------------------- Prethodna Godina --------------------------------------------------------------------------------------------------------
Declare @Godina as smallint
Declare @DatOd as smalldatetime
Declare @DatDo as smalldatetime
Set @Godina =Year(@Datum_Od)-1
Set @DatOd = Cast(Cast(@Godina as Varchar(4)) + '-01-01' as smalldatetime)
Set @DatDo = Cast(Cast(@Godina as Varchar(4)) + '-12-31' as smalldatetime)
Set @SSQLDat = ' '
Set @SSQLGroup = ' '
If @Podelba = 'B'
Set @SSQL = 'Select B.Sifra_Drg1, '
Else If @Podelba = 'G'
Set @SSQL = 'Select P.Sifra_Gr, '
Else If @Podelba = 'P'
Set @SSQL = 'Select K.Sifra_Podg, '
Else If @Podelba = '1'
Set @SSQL = 'Select K.Drugo1, '
Else If @Podelba = '2'
Set @SSQL = 'Select K.Drugo2, '
Else If @Podelba = '3'
Set @SSQL = 'Select K.Drugo3, '
Else If @Podelba = '4'
Set @SSQL = 'Select K.Drugo4, '
Else If @Podelba = '5'
Set @SSQL = 'Select K.Drugo5, '
-- Set @SSQL = @SSQL + 'TS.Sifra_Sur as Sifra_Art, 0 As Mesec, Year(S.Datum_Dok) As Godina, '
If @Podelba = 'B'
Set @SSQL = @SSQL + ' K.Sifra_Drg,
0 As Mesec, Year(S.Datum_Dok) As Godina, '
Else
Set @SSQL = @SSQL + ' TS.Sifra_Sur as Sifra_Art,
0 As Mesec, Year(S.Datum_Dok) As Godina, '
If @Podelba = 'B'
Set @SSQLGroup = @SSQLGroup + 'Group By K.Sifra_Drg, B.Sifra_Drg1, '
Else If @Podelba = 'G'
Set @SSQLGroup = @SSQLGroup + 'Group By P.Sifra_Gr, TS.Sifra_Sur, '
Else If @Podelba = 'P'
Set @SSQLGroup = @SSQLGroup + 'Group By K.Sifra_Podg, TS.Sifra_Sur, '
Else If @Podelba = '1'
Set @SSQLGroup = @SSQLGroup + 'Group By K.Drugo1, TS.Sifra_Sur, '
Else If @Podelba = '2'
Set @SSQLGroup = @SSQLGroup + 'Group By K.Drugo2, TS.Sifra_Sur, '
Else If @Podelba = '3'
Set @SSQLGroup = @SSQLGroup + 'Group By K.Drugo3, TS.Sifra_Sur, '
Else If @Podelba = '4'
Set @SSQLGroup = @SSQLGroup + 'Group By K.Drugo4, TS.Sifra_Sur, '
Else If @Podelba = '5'
Set @SSQLGroup = @SSQLGroup + 'Group By K.Drugo5, TS.Sifra_Sur, '
Set @SSQLGroup = @SSQLGroup + ' Year(S.Datum_Dok) '
If @PoKojDatum = 'V'
Begin
If @DatOd Is Not NULL
Set @SSQLDat = @SSQLDat + ' And D.Datum_Vnes>=''' + Cast(@DatOd As Varchar(25)) + ''' '
If @DatDo Is Not NULL
Set @SSQLDat = @SSQLDat + ' And D.Datum_Vnes<''' + Cast(@DatDo As Varchar(25)) + ''' '
End
Else
Begin
If @DatOd Is NOT Null
Begin
SET @SSQLDat = @SSQLDat + 'AND S.Datum_Dok >= ''' +Cast(@DatOd as varchar(35)) +''' '
End
If @DatDo Is NOT Null
Begin
SET @SSQLDat = @SSQLDat + 'AND S.Datum_Dok <= ''' +Cast(@DatDo as varchar(35)) +''' '
End
End
print @SSQL+@SSQL1+@SSQLUsl+@SSQLDat+@SSQLGroup
Insert Into #Rezult Exec(@SSQL+@SSQL1+@SSQLUsl+@SSQLDat+@SSQLGroup)
-------- Go zapisuvame procentot na nivo na podelbata vo sekoj red zaradi cross tabot--------------------------------------------------------------------
Update #Rezult Set Sifra = 756 Where Sifra Is Null
Update #Rezult
Set #Rezult.ProcPoBr=#Tab.ProcPoBr
From #Tab
Where #Rezult.Sifra=#Tab.Sifra-- And #Tab.Vkupno > 0
Set @SSQL = 'Select Top ' + Cast(@Kolku As Varchar(6)) + ' '
Else
Set @SSQL = 'Select '
If @PoZbirenBrand Is Not Null
Set @SSQL = @SSQL + 'B.Sifra_Drg1 Sifra_Drg, BB.Ime_Drg1 Ime, '
Else
Set @SSQL = @SSQL + 'B.Sifra_Drg, B.Ime, '
Set @SSQL = @SSQL + ' Round(Sum(S.Kolic*TS.Ima_Kolic * (Case When K.KolkuDrg Is Null Or K.KolkuDrg = 0.0 Then 1 Else K.KolkuDrg End)), 4) As UL,
Count(K.Sifra_Drg) As Izlezi,
Count(Distinct S.DokrID) As Fakturi,
Round(Sum(S.Kolic*TS.Ima_Kolic * S.DokCena*TS.Cena/TS.VkCena / (Case When S.DanDokCena = ''D'' Then (1+S.Posn/100) Else 1 End)), 4) as Vr_Osnov,
Round(Sum(S.Kolic*TS.Ima_Kolic * S.DokCena*TS.Cena/TS.VkCena * (1-S.Uces/100) * (1-D.Kasa/100) / (Case When S.DanDokCena = ''D'' Then (1+S.Posn/100) Else 1 End)), 4) as Vr_SoRabat,
Round(Sum(S.Kolic*TS.Ima_Kolic * S.DokCena*TS.Cena/TS.VkCena * (1-S.Uces/100) * (1-D.Kasa/100) * (Case When S.DanDokCena = ''N'' Then (1+S.Posn/100) Else 1 End)), 4) as Vr_Krajna,
Round(Sum(S.Kolic*TS.Ima_Kolic*K.GotCena), 4) As Vr_NPS,
Round(Sum(S.Kolic * S.NabCena), 4) As Vr_NabBezDDV, Round(Sum(S.Kolic * S.NabCena * (1+S.POsn/100)), 4) As Vr_NabSoDDV, '
If @Komint_KObj = 'K'
Set @SSQL = @SSQL +
'Komintenti = Count (Distinct(Case Substring(Cast(S.Sifra_Dok As Varchar(5)),1,2)
When ''70'' Then 0
Else D.Sifra_Kup
End)) '
Else If @Komint_KObj = 'O'
Set @SSQL = @SSQL +
'Komintenti = Count (Distinct(Case Substring(Cast(S.Sifra_Dok As Varchar(5)),1,2)
When ''70'' Then 0
Else D.Sifra_Obj
End)) '
Set @SSQL = @SSQL + 'From #tSostav TS
Inner Join Stavr S On TS.Sifra_Art=S.Sifra_Art
Inner Join KatArt K On TS.Sifra_Sur=K.Sifra_Art
Left Outer Join DrgPodel B On K.Sifra_Drg=B.Sifra_Drg
Inner Join Dokr D On S.DokrID=D.DokrID And D.Sifra_Za=1 '
If @PoZbirenBrand Is Not Null
Set @SSQL = @SSQL + 'Left Outer Join DrgPodel1 BB On B.Sifra_Drg1=BB.Sifra_Drg1 '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + 'Inner Join PodGrupi P ON K.Sifra_Podg=P.Sifra_Podg '
If (@TipKup Is Not Null) Or (@Pod1 Is Not Null) Or (@Pod2 Is Not Null) Or (@Koi_Gradovi Is Not Null) Or (@Pod3 Is Not Null) Or (@Pod4 Is Not Null)
Or (@Pod5 Is Not Null) Or (@Sifra_Tip Is Not Null) Or (@Koi_Regioni Is Not Null) Or (@Sifra_Pat Is Not Null) Or (@Sifra_Nivo Is Not Null) Or (@KojaCena Is Not Null)
Or (@Sifra_Pat Is Not Null)
Set @SSQL = @SSQL + 'Inner Join Komint KUP ON D.Sifra_Kup=KUP.Sifra_Kup
Left Outer Join KObjekti KO ON D.Sifra_obj=KO.Sifra_obj and D.Sifra_kup=KO.Sifra_kup '
-- Set @SSQL = @SSQL + 'Where 1=1 '
Set @SSQL = @SSQL + 'Where K.Iskluci <> ''D'' '
IF @Sifra_Art_Od IS NOT NULL
Set @SSQL = @SSQL + ' And S.Sifra_Art >= ''' + @Sifra_Art_Od + ''' '
IF @Sifra_Art_Do IS NOT NULL
Set @SSQL = @SSQL + ' And S.Sifra_Art <= ''' + @Sifra_Art_Do + ''' '
If @Koi_Gradovi Is Not NULL
Begin
Set @SSQL = @SSQL + ' And ((KO.Sifra_Grad Is Not Null And KO.Sifra_Grad In (' + @Koi_Gradovi + '))
OR ( KO.Sifra_Grad Is Null and KUP.Sifra_Grad In ( ' + @Koi_Gradovi + '))) '
End
If @Koi_Regioni Is Not NULL
Begin
Set @SSQL = @SSQL + ' And ((KO.Sifra_Reg Is Not Null And KO.Sifra_Reg In (' + @Koi_Regioni + '))
OR ( KO.Sifra_Reg Is Null and KUP.Sifra_Reg In ( ' + @Koi_Regioni + '))) '
End
If @KomercKako = 'I'
If @Sifra_Pat IS NOT NULL
SET @SSQL = @SSQL + ' AND D.Sifra_Pat In (' + @Sifra_Pat + ') '
If @KomercKako = 'T'
If @Sifra_Pat IS NOT NULL
Set @SSQL = @SSQL + ' And ((KO.Sifra_Pat Is Not Null And KO.Sifra_Pat In (' + @Sifra_Pat + '))
OR ( KO.Sifra_Pat Is Null and KUP.Sifra_Pat In (' + @Sifra_Pat + '))) '
IF @Koi_Brandovi IS NOT NULL
Set @SSQL = @SSQL + ' And K.Sifra_Drg IN (' + @Koi_Brandovi + ') '
If @TipKup Is Not NULL
Set @SSQL = @SSQL + ' And KUP.TipKup In (' + @TipKup + ') '
If @Sifra_Nivo Is Not NULL
Set @SSQL = @SSQL + ' And KUP.Sifra_Nivo = ''' + @Sifra_Nivo + ''' '
If @KojaCena Is Not NULL
Set @SSQL = @SSQL + ' And KUP.KojaCena = ''' + @KojaCena + ''' '
If @Sifra_Kup_Od Is Not NULL
Set @SSQL = @SSQL + ' And D.Sifra_Kup>=' + Cast(@Sifra_Kup_Od As Varchar(6)) + ' '
If @GrKup Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Kup In (Select Distinct Sifra_Kup From SGrKup Where Sif_GrKup In ( ' + @GrKup + ' )) '
If @Sifra_Kup_Do Is Not NULL
Set @SSQL = @SSQL + ' And D.Sifra_Kup<=' + Cast(@Sifra_Kup_Do As Varchar(6)) + ' '
If @Lokacija Is Not NULL
Set @SSQL = @SSQL + ' And K.Lokacija=''' + @Lokacija + ''' '
If @Kto Is Not NULL
Set @SSQL = @SSQL + ' And K.Kto=' + @Kto + ' '
If @Sifra_Brand Is Not Null
Set @SSQL = @SSQL + 'And K.Sifra_Drg=' + Cast(@Sifra_Brand As Varchar(6)) + ' '
-- Set @SSQL = 'Select Top ' + Cast(@Kolku As Varchar(6)) + ' '
-- Else
If @GrKup Is Not Null
Begin
CREATE Table #KupObj
(
Sifra_Kup char(6),
Sifra_Obj smallint
)
CREATE Table #KupObj1
(
Sifra_Kup char(6),
Sifra_Obj smallint
)
Set @SSQL = ' Insert Into #KupObj1 (Sifra_Kup, Sifra_Obj) Select Distinct Sifra_Kup, Sifra_Obj From SGrKupObj Where Sif_GrKup In (' + @GrKup + ') And Sifra_Obj Is Not Null '
Exec(@SSQL)
Set @SSQL = ' Insert Into #KupObj1 (Sifra_Kup, Sifra_Obj)
Select Distinct GK.Sifra_Kup, KO.Sifra_Obj
From SGrKupObj GK
Inner Join Kobjekti KO On GK.Sifra_Kup = KO.Sifra_Kup
Where GK.Sif_GrKup In (' + @GrKup + ') And GK.Sifra_Obj Is Null '
--Where GK.Sif_GrKup In (' + @GrKup + ') And GK.Sifra_Kup+Cast(KO.Sifra_Obj as char(4)) Not In (Select Sifra_Kup+Cast(Sifra_Obj as char(6)) From #KupObj) And GK.Sifra_Obj Is Null '
Exec(@SSQL)
Set @SSQL = ' Insert Into #KupObj1 (Sifra_Kup) Select Distinct Sifra_Kup From SGrKupObj Where Sif_GrKup In (' + @GrKup + ') And Sifra_Obj Is Null '
Exec(@SSQL)
INSERT INTO #KupObj SELECT DISTINCT Sifra_Kup, Sifra_Obj FROM #KupObj1
End
If @GrArt Is Not Null
Begin
Create Table #GrArt
(
Sifra_Art varchar(20)
)
Create NonClustered Index IX_Art On #GrArt (Sifra_Art)
Set @SSQL = 'Insert Into #GrArt Select DISTINCT Sifra_Art From SGrArt Where Sif_GrArt In (' + @GrArt + ') '
Exec(@SSQL)
End
Set @SSQL = 'Select '
If @PoZbirenBrand = 'Z'
Set @SSQL = @SSQL + 'B.Sifra_Drg1 As Sifra_Brand, BB.Ime_Drg1 As ImeBrand, '
Else If @PoZbirenBrand = 'P'
Set @SSQL = @SSQL + 'K.Sifra_Podg As Sifra_Brand, P.Ime_Podg As ImeBrand, '
Else If @PoZbirenBrand = 'G'
Set @SSQL = @SSQL + 'G.Sifra_Gr As Sifra_Brand, G.Ime_Gr As ImeBrand, '
Else If @PoZbirenBrand = 'A'
Set @SSQL = @SSQL + 'K.Sifra_Art As Sifra_Brand, K.ImeArt As ImeBrand, '
Else If @PoZbirenBrand = 'M'
Set @SSQL = @SSQL + '(Case When KO.Sifra_Grad Is Not Null Then KO.Sifra_Grad Else Kup.Sifra_Grad End) As Sifra_Brand, M.ImeGrad As ImeBrand, '
Else If @PoZbirenBrand = 'K'
Set @SSQL = @SSQL + 'D.Sifra_Kup As Sifra_Brand, Kup.ImeKup As ImeBrand, '
Else If @PoZbirenBrand = '4'
Set @SSQL = @SSQL + 'K.Drugo4 As Sifra_Brand, D4.Ime_4 As ImeBrand, '
Else If @PoZbirenBrand = 'H'
Set @SSQL = @SSQL + 'K.Sifra_KHier As Sifra_Brand, H.Ime_KHier As ImeBrand, '
Else
Set @SSQL = @SSQL + 'K.Sifra_Drg As Sifra_Brand, B.Ime As ImeBrand, '
If @PrikArt = 'D'
Set @SSQL = @SSQL + 'S.Sifra_Art, '
Else
Set @SSQL = @SSQL + 'Null Sifra_Art, '
If @PoPat_GrPat = 'D' -- (Case When KO.KDrugo3 Is Not Null Then KO.KDrugo3 Else Kup.KDrugo3 End) Sif_GrPat, K3.Ime_3K Ime_GrPat, ' -- SGP.Sif_GrPat, GP.Ime_GrPat, '
Set @SSQL = @SSQL + ' D.Sifra_Pat,
(Case When D.Sifra_Obj Is Not Null Then KO.KDrugo4 Else Kup.KDrugo4 End) Sif_GrPat, K4.Ime_4K Ime_GrPat, ' -- SGP.Sif_GrPat, GP.Ime_GrPat, '
Set @SSQL = @SSQL + ' ((Case When Month(S.Datum_Dok) <10 then ''0'' Else '''' End) + Cast(Month(S.Datum_Dok) as varchar(2))) As Mesec, Year(S.Datum_Dok) As Godina, '
If @PoDenNed = 'W'
Set @SSQL = @SSQL + 'DatePart(wk, S.Datum_Dok) Nedela, Null as Den, '
Else If @PoDenNed = 'D'
Set @SSQL = @SSQL + 'Null Nedela, S.Datum_Dok as Den, '
Else
Set @SSQL = @SSQL + 'Null Nedela, Null as Den, '
If @SoBKolic_Tez='T'
Set @SSQL = @SSQL + 'Round(Sum(S.Kolic* K.Tezina/1000), 4) UL, '
Else If @SoBKolic_Tez='K'
Set @SSQL = @SSQL + 'Round(Sum(S.Kolic), 4) UL, '
Else
Set @SSQL = @SSQL + 'Round(Sum(S.Kolic*TS.Ima_Kolic * (Case When K.KolkuDrg Is Null Or K.KolkuDrg = 0.0 Then 1 Else K.KolkuDrg End)), 4) As UL, '
/* Set @SSQL = @SSQL + 'Round(Sum(S.Kolic*TS.Ima_Kolic*dbo.fix_BrandKolic(K.KolkuDrg)), 4) UL, '
Set @SSQL = @SSQL + 'Round(Sum(dbo.fn_vr_osnov (S.Kolic*TS.Ima_Kolic, S.DokCena*TS.Cena/TS.VkCena, S.DanDokCena, S.POsn)), 4) as Vr_Osnov,
Round(Sum(dbo.fn_vr_sorabat(S.Kolic*TS.Ima_Kolic, S.DokCena*TS.Cena/TS.VkCena, S.DanDokCena, S.POsn, S.Uces, D.Kasa)), 4) as Vr_SoRabat,
Round(Sum(dbo.fn_vr_krajna (S.Kolic*TS.Ima_Kolic, S.DokCena*TS.Cena/TS.VkCena, S.DanDokCena, S.POsn, S.Uces, D.Kasa)), 4) as Vr_Krajna,
Round(Sum(S.Kolic*TS.Ima_Kolic*K.GotCena), 4) As Vr_NPS, '*/
Set @SSQL = @SSQL + '
Round(Sum(S.Kolic*TS.Ima_Kolic * S.DokCena*TS.Cena/TS.VkCena / (Case When S.DanDokCena = ''D'' Then (1+S.Posn/100) Else 1 End)), 4) as Vr_Osnov,
Round(Sum(S.Kolic*TS.Ima_Kolic * S.DokCena*TS.Cena/TS.VkCena * (1-S.Uces/100) * (1-D.Kasa/100) / (Case When S.DanDokCena = ''D'' Then (1+S.Posn/100) Else 1 End)), 4) as Vr_SoRabat,
Round(Sum(S.Kolic*TS.Ima_Kolic * S.DokCena*TS.Cena/TS.VkCena * (1-S.Uces/100) * (1-D.Kasa/100) * (Case When S.DanDokCena = ''N'' Then (1+S.Posn/100) Else 1 End)), 4) as Vr_Krajna,
Round(Sum(S.Kolic*TS.Ima_Kolic*K.GotCena), 4) As Vr_NPS,
Round(Sum(S.Kolic*K.Tezina/1000), 4) As KolicKG, '
If @Komint_KObj = 'K'
Set @SSQL = @SSQL + 'Count(Distinct D.Sifra_Kup) As Komintenti, '
Else If @Komint_KObj = 'O'
Set @SSQL = @SSQL + 'Count(Distinct(D.Sifra_Kup + ''&&&'' + Cast(D.Sifra_Obj as varchar(6)))) As Komintenti, '
Set @SSQL = @SSQL + 'KUP.KDrugo2 Pod2, KD2.Ime_2K Ime_Pod2 '
--Set @SSQL = @SSQL + 'null VkVrednost '
----------------- FROM ----------------------
Set @SSQLFrom = @SSQLFrom + 'From #tSostav TS
Inner Join Stavr S On TS.Sifra_Art=S.Sifra_Art
Inner Join KatArt K ON TS.Sifra_Sur=K.Sifra_Art
Inner Join Dokr D ON S.DokrID=D.DokrID And D.Sifra_Za=1
Left Outer Join Komint KUP ON D.Sifra_Kup=KUP.Sifra_Kup
Left Outer Join KDrugo2 KD2 On KUP.KDrugo2=KD2.Sifra_2K
Left Outer Join KObjekti KO On KO.Sifra_Kup=D.Sifra_Kup AND KO.SIFRA_OBJ=D.SIFRA_OBJ '
-- Left Outer Join KObjekti KO On KO.Sifra_Kup=D.Sifra_Kup '
If @GrKup Is Not Null
Set @SSQLFrom = @SSQLFrom + ' Inner Join #KupObj GK On GK.Sifra_Kup=D.Sifra_Kup
And (Case When D.Sifra_Obj Is Not Null Then D.Sifra_Obj Else 1234 End) = (Case When GK.Sifra_Obj Is Not Null Then GK.Sifra_Obj Else 1234 End) '
If @GrArt Is Not Null
Set @SSQLFrom = @SSQLFrom + ' Inner Join #GrArt GA On GA.Sifra_Art=K.Sifra_Art '
If @Sifra_Gr Is Not Null OR @PoZbirenBrand = 'P' OR @PoZbirenBrand = 'G'
Set @SSQLFrom = @SSQLFrom + 'Inner Join PodGrupi P ON K.Sifra_Podg=P.Sifra_Podg '
If @PoZbirenBrand = 'Z'
Set @SSQLFrom = @SSQLFrom + 'Left Outer Join DrgPodel B ON K.Sifra_Drg=B.Sifra_Drg
Left Outer Join DrgPodel1 BB On B.Sifra_Drg1=BB.Sifra_Drg1 '
Else If @PoZbirenBrand = 'G'
Set @SSQLFrom = @SSQLFrom + 'Left Outer Join Grupi G On P.Sifra_Gr=G.Sifra_Gr '
Else If @PoZbirenBrand = 'M'
Set @SSQLFrom = @SSQLFrom + 'Left Outer Join Grad M On M.Sifra_Grad=(Case When KO.Sifra_Grad Is Not Null Then KO.Sifra_Grad Else Kup.Sifra_Grad End) '
Else If @PoZbirenBrand = '4'
Set @SSQLFrom = @SSQLFrom + 'Left Outer Join Drugo4 D4 On D4.Sifra_4=K.Drugo4 '
Else If @PoZbirenBrand = 'H'
Set @SSQLFrom = @SSQLFrom + 'Left Outer Join KatHier H On H.Sifra_KHier=K.Sifra_KHier '
Else if @PoZbirenBrand = 'P' or @PoZbirenBrand = 'A'
Set @SSQLFrom = @SSQLFrom -- kolku da ima nekoja komanda
Else
Set @SSQLFrom = @SSQLFrom + 'Left Outer Join DrgPodel B ON K.Sifra_Drg=B.Sifra_Drg '
If @PoPat_GrPat = 'D' --(Case When KO.Sifra_Pat Is Not Null Then KO.Sifra_Pat Else Kup.Sifra_Pat End)
Set @SSQLFrom = @SSQLFrom + ' Left Outer Join Patnici Pat On Pat.Sifra_Pat = D.Sifra_Pat
Left Outer Join KDrugo4 K4 On K4.Sifra_4K = (Case When D.Sifra_Obj Is Not Null Then KO.KDrugo4 Else Kup.KDrugo4 End) ' --(Case When KO.KDrugo4 Is Not Null Then KO.KDrugo4 Else Kup.KDrugo4 End)
-- Left Outer Join SGrPat SGP On SGP.Sifra_Pat=Pat.Sifra_Pat
--Left Outer Join GrPat GP On GP.Sif_GrPat=SGP.Sif_GrPat '
----------------- USLOV -------------------
Set @SSQLUsl = @SSQLUsl + 'Where K.Iskluci <> ''D'' '
If @Lokacija Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Lokacija=''' + @Lokacija + ''' '
If @Kto Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Kto=' + @Kto + ' '
If @Sifra_Podg Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Sifra_Podg=''' + @Sifra_Podg + ''' '
If @Sifra_Gr Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Gr=' + @Sifra_Gr + ' '
If @Sifra_Art_Od Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_Art>=''' + @Sifra_Art_Od + ''' '
If @Sifra_Art_Do Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_Art<=''' + @Sifra_Art_Do + ''' '
If @KomercKako = 'I'
Begin
If @Sifra_Pat IS NOT NULL
SET @SSQLUsl = @SSQLUsl + ' AND D.Sifra_Pat = ' + Cast(@Sifra_Pat as varchar(5)) + ' '
If @GrPat Is Not Null
SET @SSQLUsl = @SSQLUsl + ' AND D.Sifra_Pat In (Select Sifra_Pat From SGrPat Where Sif_GrPat = ''' + @GrPat + ''') '
End
If @KomercKako = 'T'
Begin
If @Sifra_Pat IS NOT NULL
SET @SSQLUsl = @SSQLUsl + ' AND Kup.Sifra_Pat = ' + Cast(@Sifra_Pat as varchar(5)) + ' '
If @GrPat Is Not Null
SET @SSQLUsl = @SSQLUsl + ' AND Kup.Sifra_Pat In (Select Sifra_Pat From SGrPat Where Sif_GrPat = ''' + @GrPat + ''') '
End
If @PoKojDatum = 'V'
Begin
If @Datum_Od Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And D.Datum_Vnes>=''' + Cast(@Datum_Od As Varchar(25)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And D.Datum_Vnes<''' + Cast(@Datum_Do As Varchar(25)) + ''' '
End
Else
Begin
If @Datum_Od Is NOT Null
Begin
SET @SSQLUsl = @SSQLUsl + 'AND S.Datum_Dok >= ''' +Cast(@Datum_OD as varchar(35)) +''' '
End
If @Datum_Do Is NOT Null
Begin
SET @SSQLUsl = @SSQLUsl + 'AND S.Datum_Dok <= ''' +Cast(@Datum_Do as varchar(35)) +''' '
End
End
If @Pod1 Is Not NULL
If @KFPod1 = 'D'
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo1 Is Not Null And KO.KDrugo1 <> ' + Cast(@Pod1 As Varchar(6)) + ')
Or (KO.KDrugo1 Is Null And Kup.KDrugo1 <> ' + Cast(@Pod1 As Varchar(6)) + ') Or (KO.KDrugo1 Is Null And Kup.KDrugo1 Is Null)) '
Else
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo1 Is Not Null And KO.KDrugo1 = ' + Cast(@Pod1 As Varchar(6)) + ')
Or (KO.KDrugo1 Is Null And Kup.KDrugo1 = ' + Cast(@Pod1 As Varchar(6)) + ')) '
If @Pod2 Is Not NULL
If @KFPod2 = 'D'
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo2 Is Not Null And KO.KDrugo2 <> ' + Cast(@Pod2 As Varchar(6)) + ')
Or (KO.KDrugo2 Is Null And Kup.KDrugo2 <> ' + Cast(@Pod2 As Varchar(6)) + ') Or (KO.KDrugo2 Is Null And Kup.KDrugo2 Is Null)) '
Else
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo2 Is Not Null And KO.KDrugo2 = ' + Cast(@Pod2 As Varchar(6)) + ')
Or (KO.KDrugo2 Is Null And Kup.KDrugo2 = ' + Cast(@Pod2 As Varchar(6)) + ')) '
If @Pod3 Is Not NULL
If @KFPod3 = 'D'
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo3 Is Not Null And KO.KDrugo3 <> ' + Cast(@Pod3 As Varchar(6)) + ')
Or (KO.KDrugo3 Is Null And Kup.KDrugo3 <> ' + Cast(@Pod3 As Varchar(6)) + ') Or (KO.KDrugo3 Is Null And Kup.KDrugo3 Is Null)) '
Else
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo3 Is Not Null And KO.KDrugo3 = ' + Cast(@Pod3 As Varchar(6)) + ')
Or (KO.KDrugo3 Is Null And Kup.KDrugo3 = ' + Cast(@Pod3 As Varchar(6)) + ')) '
If @Pod4 Is Not NULL
If @KFPod4 = 'D'
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo4 Is Not Null And KO.KDrugo4 <> ' + Cast(@Pod4 As Varchar(6)) + ')
Or (KO.KDrugo4 Is Null And Kup.KDrugo4 <> ' + Cast(@Pod4 As Varchar(6)) + ') Or (KO.KDrugo4 Is Null And Kup.KDrugo4 Is Null)) '
Else
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo4 Is Not Null And KO.KDrugo4 = ' + Cast(@Pod4 As Varchar(6)) + ')
Or (KO.KDrugo4 Is Null And Kup.KDrugo4 = ' + Cast(@Pod4 As Varchar(6)) + ')) '
If @Pod5 Is Not NULL
If @KFPod5 = 'D'
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo5 Is Not Null And KO.KDrugo5 <> ' + Cast(@Pod5 As Varchar(6)) + ')
Or (KO.KDrugo5 Is Null And Kup.KDrugo5 <> ' + Cast(@Pod5 As Varchar(6)) + ') Or (KO.KDrugo5 Is Null And Kup.KDrugo5 Is Null)) '
Else
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo5 Is Not Null And KO.KDrugo5 = ' + Cast(@Pod5 As Varchar(6)) + ')
Or (KO.KDrugo5 Is Null And Kup.KDrugo5 = ' + Cast(@Pod5 As Varchar(6)) + ')) '
If @Pod6 Is Not NULL
If @KFPod6 = 'D'
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo6 Is Not Null And KO.KDrugo6 <> ' + Cast(@Pod6 As Varchar(6)) + ')
Or (KO.KDrugo6 Is Null And Kup.KDrugo6 <> ' + Cast(@Pod6 As Varchar(6)) + ') Or (KO.KDrugo6 Is Null And Kup.KDrugo6 Is Null)) '
Else
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo6 Is Not Null And KO.KDrugo6 = ' + Cast(@Pod6 As Varchar(6)) + ')
Or (KO.KDrugo6 Is Null And Kup.KDrugo6 = ' + Cast(@Pod6 As Varchar(6)) + ')) '
If @Pod7 Is Not NULL
If @KFPod7 = 'D'
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo7 Is Not Null And KO.KDrugo7 <> ' + Cast(@Pod7 As Varchar(6)) + ')
Or (KO.KDrugo7 Is Null And Kup.KDrugo7 <> ' + Cast(@Pod7 As Varchar(6)) + ') Or (KO.KDrugo7 Is Null And Kup.KDrugo7 Is Null)) '
Else
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo7 Is Not Null And KO.KDrugo7 = ' + Cast(@Pod7 As Varchar(6)) + ')
Or (KO.KDrugo7 Is Null And Kup.KDrugo7 = ' + Cast(@Pod7 As Varchar(6)) + ')) '
If @Sifra_Tip Is Not Null
SET @SSQLUsl = @SSQLUsl +' AND KUP.Sifra_Tip=' + Cast(@Sifra_Tip As Varchar(6)) + ' '
If @Sifra_Kup_Od Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And D.Sifra_Kup>=' + Cast(@Sifra_Kup_Od As Varchar(6)) + ' '
If @Sifra_Kup_Do Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And D.Sifra_Kup<=' + Cast(@Sifra_Kup_Do As Varchar(6)) + ' '
If @Sifra_Brand_Od Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Sifra_Drg>=''' + Cast(@Sifra_Brand_Od As Varchar(5)) + ''' '
If @Sifra_Brand_Do Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Sifra_Drg<=''' + Cast(@Sifra_Brand_Do As Varchar(5)) + ''' '
If @Sifra_obj Is Not NULL
Set @SSQLUsl = @SSQLUsl + 'And D.Sifra_obj=''' + Cast(@Sifra_obj As Varchar(5)) + ''' '
If @Sifra_Grad Is Not NULL
Begin
Set @SSQLUsl = @SSQLUsl + ' And ((KO.Sifra_Grad Is Not Null And KO.Sifra_Grad In (' + @Sifra_Grad + '))
OR ( KO.Sifra_Grad Is Null and KUP.Sifra_Grad In ( ' + @Sifra_Grad + '))) '
End
If @Koi_Regioni Is Not NULL
Begin
Set @SSQLUsl = @SSQLUsl + ' And ((KO.Sifra_Reg Is Not Null And KO.Sifra_Reg In (' + @Koi_Regioni + '))
OR ( KO.Sifra_Reg Is Null and KUP.Sifra_Reg In ( ' + @Koi_Regioni + '))) '
End
If @TipKup Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And KUP.TipKup=''' + @TipKup + ''' '
If @Sifra_OE Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_OE=' + Cast(@Sifra_OE As Varchar(5)) + ' '
If @KoiOE Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_OE IN (' + @KoiOE + ') '
If @TipDokProd Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_Dok IN (' + @TipDokProd + ') '
If @Drugo1 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo1=' + Cast(@Drugo1 As Varchar(6)) + ' '
If @Drugo2 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo2=' + Cast(@Drugo2 As Varchar(6)) + ' '
If @Drugo3 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo3=' + Cast(@Drugo3 As Varchar(6)) + ' '
If @Drugo4 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo4=' + Cast(@Drugo4 As Varchar(6)) + ' '
If @Drugo5 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo5=' + Cast(@Drugo5 As Varchar(6)) + ' '
If @Drugo6 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo6=' + Cast(@Drugo6 As Varchar(6)) + ' '
If @Drugo7 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo7=' + Cast(@Drugo7 As Varchar(6)) + ' '
------------- GROUP BY -----------
If @PoZbirenBrand = 'Z'
Set @SSQLGroup = @SSQLGroup + 'Group By B.Sifra_Drg1, BB.Ime_Drg1, '
Else If @PoZbirenBrand = 'P'
Set @SSQLGroup = @SSQLGroup + 'Group By K.Sifra_Podg, P.Ime_Podg, '
Else If @PoZbirenBrand = 'G'
Set @SSQLGroup = @SSQLGroup + 'Group By G.Sifra_Gr, G.Ime_Gr, '
Else If @PoZbirenBrand = 'A'
Set @SSQLGroup = @SSQLGroup + 'Group By K.Sifra_Art, K.ImeArt, '
Else If @PoZbirenBrand = 'M'
Set @SSQLGroup = @SSQLGroup + 'Group By (Case When KO.Sifra_Grad Is Not Null Then KO.Sifra_Grad Else Kup.Sifra_Grad End), M.ImeGrad, '
Else If @PoZbirenBrand = 'K'
Set @SSQLGroup = @SSQLGroup + 'Group By D.Sifra_Kup, Kup.ImeKup, '
Else If @PoZbirenBrand = '4'
Set @SSQLGroup = @SSQLGroup + 'Group By K.Drugo4, D4.Ime_4, '
Else If @PoZbirenBrand = 'H'
Set @SSQLGroup = @SSQLGroup + 'Group By K.Sifra_KHier, H.Ime_KHier, '
Else
Set @SSQLGroup = @SSQLGroup + 'Group By K.Sifra_Drg, B.Ime, '
Set @SSQLGroup = @SSQLGroup + ' ((Case When Month(S.Datum_Dok) <10 then ''0'' Else '''' End) + Cast(Month(S.Datum_Dok) as varchar(2))), Year(S.Datum_Dok), KUP.KDrugo2, KD2.Ime_2K '
If @PrikArt = 'D'
Set @SSQLGroup = @SSQLGroup + ' , S.Sifra_Art, K.ImeArt '
If @PoPat_GrPat = 'D'
Set @SSQLGroup = @SSQLGroup + ', D.Sifra_Pat, Pat.ImePat,
(Case When D.Sifra_Obj Is Not Null Then KO.KDrugo4 Else Kup.KDrugo4 End), K4.Ime_4K ' --SGP.Sif_GrPat, GP.Ime_GrPat '
If @PoDenNed = 'W'
Set @SSQLGroup = @SSQLGroup + ', DatePart(wk, S.Datum_Dok) '
Else If @PoDenNed = 'D'
Set @SSQLGroup = @SSQLGroup + ', S.Datum_Dok '
Create Table #TopLista
(
Sifra_Brand varchar(20),
ImeBrand varchar(50),
Sifra_Art varchar(20),
--K.ImeArt, '
Sifra_Pat int,
--Pat.ImePat,
Sif_GrPat varchar(20),
Ime_GrPat varchar(40),
Mesec varchar(2),
Godina varchar(4),
Nedela varchar(2),
Den datetime,
UL decimal(18,4),
Vr_Osnov decimal(18,4),
Vr_SoRabat decimal(18,4),
Vr_Krajna decimal(18,4),
Vr_NPS decimal(18,4),
KolicKG decimal(18,4),
Komintenti int,
Pod2 int,
Ime_Pod2 varchar(40)
)
Insert into #TopLista Exec(@SSQL+@SSQLFrom+@SSQLUSL+@SSQLGroup)
----------------------------------------------- P R E T H O D N I B A Z I ----------------------------------------------------------
If @PrethBazaOd = 'K' Or @ParalenliBazi Is Not Null
Begin
Declare @ImeBaza as varchar(30)
Create Table #Bazi
(
ImeBaza varchar(30)
)
If @PrethBazaOd = 'K'
Begin
Set @SSQLFrom = ' Insert Into #Bazi Select PrethBaza From Konfig '
Exec (@SSQLFrom)
End
If @ParalenliBazi Is Not Null
Begin
Declare @Poz_Delim Smallint
Declare @Poz_Start Smallint
Declare @BazaIme varchar(50)
If @ParalenliBazi Is Null
Set @ParalenliBazi = ''
Set @Poz_Start = 0
While 1=1
Begin
Set @Poz_Delim = Charindex(',', @ParalenliBazi, @Poz_Start)
If @Poz_Delim = 0
Break
Set @BazaIme = SubString(@ParalenliBazi, @Poz_Start, @Poz_Delim-@Poz_Start)
Set @Poz_Start = @Poz_Delim + 1
Insert Into #Bazi Select @BazaIme
End
End
If Exists (Select ImeBaza From #Bazi)
Begin
Declare CursorBazi Cursor Fast_Forward For Select ImeBaza From #Bazi
Open CursorBazi
Fetch Next From CursorBazi Into @ImeBaza
While @@Fetch_Status = 0
Begin
Set @SSQLFrom = ' From #tSostav TS
Inner Join ' + @ImeBaza + '..Stavr S On TS.Sifra_Art=S.Sifra_Art
Inner Join KatArt K ON TS.Sifra_Sur=K.Sifra_Art
Inner Join ' + @ImeBaza + '..Dokr D ON S.DokrID=D.DokrID And D.Sifra_Za=1
Left Outer Join ' + @ImeBaza + '..Komint KUP ON D.Sifra_Kup=KUP.Sifra_Kup
Left Outer Join ' + @ImeBaza + '..KDrugo2 KD2 On KUP.KDrugo2=KD2.Sifra_2K
Left Outer Join ' + @ImeBaza + '..KObjekti KO On KO.Sifra_Kup=D.Sifra_Kup AND KO.SIFRA_OBJ=D.SIFRA_OBJ '
If @GrKup Is Not Null
Set @SSQLFrom = @SSQLFrom + ' Inner Join #KupObj GK On GK.Sifra_Kup=D.Sifra_Kup
And (Case When D.Sifra_Obj Is Not Null Then D.Sifra_Obj Else 1234 End) = (Case When GK.Sifra_Obj Is Not Null Then GK.Sifra_Obj Else 1234 End) '
If @GrArt Is Not Null
Set @SSQLFrom = @SSQLFrom + ' Inner Join #GrArt GA On GA.Sifra_Art=K.Sifra_Art '
If @Sifra_Gr Is Not Null OR @PoZbirenBrand = 'P' OR @PoZbirenBrand = 'G'
Set @SSQLFrom = @SSQLFrom + 'Inner Join PodGrupi P ON K.Sifra_Podg=P.Sifra_Podg '
If @PoZbirenBrand = 'Z'
Set @SSQLFrom = @SSQLFrom + 'Left Outer Join DrgPodel B ON K.Sifra_Drg=B.Sifra_Drg
Left Outer Join DrgPodel1 BB On B.Sifra_Drg1=BB.Sifra_Drg1 '
Else If @PoZbirenBrand = 'G'
Set @SSQLFrom = @SSQLFrom + 'Left Outer Join Grupi G On P.Sifra_Gr=G.Sifra_Gr '
Else If @PoZbirenBrand = 'M'
Set @SSQLFrom = @SSQLFrom + 'Left Outer Join ' + @ImeBaza + '..Grad M On M.Sifra_Grad=(Case When KO.Sifra_Grad Is Not Null Then KO.Sifra_Grad Else Kup.Sifra_Grad End) '
Else If @PoZbirenBrand = '4'
Set @SSQLFrom = @SSQLFrom + 'Left Outer Join Drugo4 D4 On D4.Sifra_4=K.Drugo4 '
Else If @PoZbirenBrand = 'H'
Set @SSQLFrom = @SSQLFrom + 'Left Outer Join KatHier H On H.Sifra_KHier=K.Sifra_KHier '
Else if @PoZbirenBrand = 'P' or @PoZbirenBrand = 'A'
Set @SSQLFrom = @SSQLFrom -- kolku da ima nekoja komanda
Else
Set @SSQLFrom = @SSQLFrom + 'Left Outer Join DrgPodel B ON K.Sifra_Drg=B.Sifra_Drg '
If @PoPat_GrPat = 'D'
Set @SSQLFrom = @SSQLFrom + ' Left Outer Join ' + @ImeBaza + '..Patnici Pat On Pat.Sifra_Pat = D.Sifra_Pat
Left Outer Join ' + @ImeBaza + '..KDrugo4 K4 On K4.Sifra_4K = (Case When D.Sifra_Obj Is Not Null Then KO.KDrugo4 Else Kup.KDrugo4 End) '
Insert Into #TopLista Exec(@SSQL + @SSQLFrom + @SSQLUsl + @SSQLGroup)
Fetch Next From CursorBazi Into @ImeBaza
End
Close CursorBazi
Deallocate CursorBazi
End
Create Table #TopLista1
(
Sifra_Brand varchar(20),
ImeBrand varchar(50),
Sifra_Art varchar(20),
--K.ImeArt, '
Sifra_Pat int,
--Pat.ImePat,
Sif_GrPat varchar(20),
Ime_GrPat varchar(40),
Mesec varchar(2),
Godina varchar(4),
Nedela varchar(2),
Den datetime,
UL decimal(18,4),
Vr_Osnov decimal(18,4),
Vr_SoRabat decimal(18,4),
Vr_Krajna decimal(18,4),
Vr_NPS decimal(18,4),
KolicKG decimal(18,4),
Komintenti int,
Pod2 int,
Ime_Pod2 varchar(40)
)
Insert Into #TopLista1
Select Sifra_Brand, ImeBrand, Sifra_Art, Sifra_Pat, Sif_GrPat, Ime_GrPat, Mesec, Godina, Nedela, Den, Sum(UL), Sum(Vr_Osnov), Sum(Vr_SoRabat), Sum(Vr_Krajna), Sum(Vr_NPS),
Sum(KolicKG), Sum(Komintenti), Pod2, Ime_Pod2
From #TopLista
Group By Sifra_Brand, ImeBrand, Sifra_Art, Sifra_Pat, Sif_GrPat, Ime_GrPat, Mesec, Godina, Nedela, Den, Pod2, Ime_Pod2
Set @SSQL = ' Select Kup.Sifra_Kup, KO.Sifra_Obj, (Case When KO.KDrugo1 Is Not Null Then KO.KDrugo1 Else Kup.KDrugo1 End) as SifraR, K1.Ime_1K as ImeR, '
If @PoRedovi = 'D2'
Set @SSQL = ' Select Kup.Sifra_Kup, KO.Sifra_Obj, (Case When KO.KDrugo2 Is Not Null Then KO.KDrugo2 Else Kup.KDrugo2 End) as SifraR, K2.Ime_2K as ImeR, '
If @PoRedovi = 'D3'
Set @SSQL = ' Select Kup.Sifra_Kup, KO.Sifra_Obj, (Case When KO.KDrugo3 Is Not Null Then KO.KDrugo3 Else Kup.KDrugo3 End) as SifraR, K3.Ime_3K as ImeR, '
If @PoRedovi = 'D4'
Set @SSQL = ' Select Kup.Sifra_Kup, KO.Sifra_Obj, (Case When KO.KDrugo4 Is Not Null Then KO.KDrugo4 Else Kup.KDrugo4 End) as SifraR, K4.Ime_4K as ImeR, '
If @PoRedovi = 'D5'
Set @SSQL = ' Select Kup.Sifra_Kup, KO.Sifra_Obj, (Case When KO.KDrugo5 Is Not Null Then KO.KDrugo5 Else Kup.KDrugo5 End) as SifraR, K5.Ime_5K as ImeR, '
If @PoRedovi = 'D6'
Set @SSQL = ' Select Kup.Sifra_Kup, KO.Sifra_Obj, (Case When KO.KDrugo6 Is Not Null Then KO.KDrugo6 Else Kup.KDrugo6 End) as SifraR, K6.Ime_6K as ImeR, '
If @PoRedovi = 'D7'
Set @SSQL = ' Select Kup.Sifra_Kup, KO.Sifra_Obj, (Case When KO.KDrugo7 Is Not Null Then KO.KDrugo7 Else Kup.KDrugo7 End) as SifraR, K7.Ime_7K as ImeR, '
If @PoRedovi = 'GR'
Set @SSQL = ' Select Kup.Sifra_Kup, KO.Sifra_Obj, (Case When KO.Sifra_Grad Is Not Null Then KO.Sifra_Grad Else Kup.Sifra_Grad End) as SifraR, GR.ImeGrad as ImeR, '
If @PoRedovi = 'RE'
Set @SSQL = ' Select Kup.Sifra_Kup, KO.Sifra_Obj, (Case When KO.Sifra_Reg Is Not Null Then KO.Sifra_Reg Else Kup.Sifra_Reg End) as SifraR, RE.ImeRegion as ImeR, '
If @PoRedovi = 'TK'
Set @SSQL = ' Select Kup.Sifra_Kup, KO.Sifra_Obj, (Case When KO.TipKup Is Not Null Then KO.TipKup Else Kup.TipKup End) as SifraR, TK.ImeTipKup as ImeR, '
If @PoRedovi = 'NI'
Set @SSQL = ' Select Kup.Sifra_Kup, KO.Sifra_Obj, (Case When KO.Sifra_Nivo Is Not Null Then KO.Sifra_Nivo Else Kup.Sifra_Nivo End) as SifraR, NI.ImeNivo as ImeR, '
-- If @PoRedovi = 'ST'
-- Set @SSQL = ' Select Kup.Sifra_Kup, KO.Sifra_Obj, (Case When KO.Sifra_Tip Is Not Null Then KO.Sifra_Tip Else Kup.Sifra_Tip End) as SifraR, ST.ImeTip as ImeR, '
If @PoRedovi = 'ST'
Set @SSQL = ' Select Kup.Sifra_Kup, KO.Sifra_Obj, Kup.Sifra_Tip as SifraR, ST.ImeTip as ImeR, '
If @PoRedovi = 'PT'
Set @SSQL = ' Select Kup.Sifra_Kup, KO.Sifra_Obj, (Case When KO.Sifra_Pat Is Not Null Then KO.Sifra_Pat Else Kup.Sifra_Pat End) as SifraR, PT.ImePat as ImeR, '
If @PoRedovi = 'VP'
Set @SSQL = ' Select Kup.Sifra_Kup, KO.Sifra_Obj, (Case When KO.Sifra_Vpj Is Not Null Then KO.Sifra_Vpj Else Kup.Sifra_Vpj End) as SifraR, VPJ.Ime_Vpj as ImeR, '
------------------------------------------------------------------------------ U S L O V ------------------------------------------------------------------------------------------------------------
Set @SSQL = @SSQL + 'Where 1=1 '
Set @SSQL = @SSQL + ' And ((KO.Aktiven Is Not Null And KO.Aktiven <> ''N'' )
Or (KO.Aktiven Is Null and (KUP.Aktiven <> ''N'' or KUP.Aktiven Is Null))) '
-- Set @SSQL = @SSQL + ' Where (KUP.Aktiven <> ''N'' or Kup.aktiven is null or Kup.Aktiven = '' '') and (KO.Aktiven <> ''N'' or KO.Aktiven is null Or KO.Aktiven='' '') '
-- And (KO.Sifra_Obj <> 0 Or KO.Sifra_Obj Is Null) '
If @Pod1 Is Not NULL
If @KFPod1 = 'D'
Set @SSQL = @SSQL + ' And ((KO.KDrugo1 Is Not Null And KO.KDrugo1 <> ' + Cast(@Pod1 As Varchar(6)) + ')
Or (KO.KDrugo1 Is Null And Kup.KDrugo1 <> ' + Cast(@Pod1 As Varchar(6)) + ') Or (KO.KDrugo1 Is Null And Kup.KDrugo1 Is Null)) '
Else
Set @SSQL = @SSQL + ' And ((KO.KDrugo1 Is Not Null And KO.KDrugo1 = ' + Cast(@Pod1 As Varchar(6)) + ')
Or (KO.KDrugo1 Is Null And Kup.KDrugo1 = ' + Cast(@Pod1 As Varchar(6)) + ')) '
If @Pod2 Is Not NULL
If @KFPod2 = 'D'
Set @SSQL = @SSQL + ' And ((KO.KDrugo2 Is Not Null And KO.KDrugo2 <> ' + Cast(@Pod2 As Varchar(6)) + ')
Or (KO.KDrugo2 Is Null And Kup.KDrugo2 <> ' + Cast(@Pod2 As Varchar(6)) + ') Or (KO.KDrugo2 Is Null And Kup.KDrugo2 Is Null)) '
Else
Set @SSQL = @SSQL + ' And ((KO.KDrugo2 Is Not Null And KO.KDrugo2 = ' + Cast(@Pod2 As Varchar(6)) + ')
Or (KO.KDrugo2 Is Null And Kup.KDrugo2 = ' + Cast(@Pod2 As Varchar(6)) + ')) '
If @Pod3 Is Not NULL
If @KFPod3 = 'D'
Set @SSQL = @SSQL + ' And ((KO.KDrugo3 Is Not Null And KO.KDrugo3 <> ' + Cast(@Pod3 As Varchar(6)) + ')
Or (KO.KDrugo3 Is Null And Kup.KDrugo3 <> ' + Cast(@Pod3 As Varchar(6)) + ') Or (KO.KDrugo3 Is Null And Kup.KDrugo3 Is Null)) '
Else
Set @SSQL = @SSQL + ' And ((KO.KDrugo3 Is Not Null And KO.KDrugo3 = ' + Cast(@Pod3 As Varchar(6)) + ')
Or (KO.KDrugo3 Is Null And Kup.KDrugo3 = ' + Cast(@Pod3 As Varchar(6)) + ')) '
If @Pod4 Is Not NULL
If @KFPod4 = 'D'
Set @SSQL = @SSQL + ' And ((KO.KDrugo4 Is Not Null And KO.KDrugo4 <> ' + Cast(@Pod4 As Varchar(6)) + ')
Or (KO.KDrugo4 Is Null And Kup.KDrugo4 <> ' + Cast(@Pod4 As Varchar(6)) + ') Or (KO.KDrugo4 Is Null And Kup.KDrugo4 Is Null)) '
Else
Set @SSQL = @SSQL + ' And ((KO.KDrugo4 Is Not Null And KO.KDrugo4 = ' + Cast(@Pod4 As Varchar(6)) + ')
Or (KO.KDrugo4 Is Null And Kup.KDrugo4 = ' + Cast(@Pod4 As Varchar(6)) + ')) '
If @Pod5 Is Not NULL
If @KFPod5 = 'D'
Set @SSQL = @SSQL + ' And ((KO.KDrugo5 Is Not Null And KO.KDrugo5 <> ' + Cast(@Pod5 As Varchar(6)) + ')
Or (KO.KDrugo5 Is Null And Kup.KDrugo5 <> ' + Cast(@Pod5 As Varchar(6)) + ') Or (KO.KDrugo5 Is Null And Kup.KDrugo5 Is Null)) '
Else
Set @SSQL = @SSQL + ' And ((KO.KDrugo5 Is Not Null And KO.KDrugo5 = ' + Cast(@Pod5 As Varchar(6)) + ')
Or (KO.KDrugo5 Is Null And Kup.KDrugo5 = ' + Cast(@Pod5 As Varchar(6)) + ')) '
If @Pod6 Is Not NULL
If @KFPod6 = 'D'
Set @SSQL = @SSQL + ' And ((KO.KDrugo6 Is Not Null And KO.KDrugo6 <> ' + Cast(@Pod6 As Varchar(6)) + ')
Or (KO.KDrugo6 Is Null And Kup.KDrugo6 <> ' + Cast(@Pod6 As Varchar(6)) + ') Or (KO.KDrugo6 Is Null And Kup.KDrugo6 Is Null)) '
Else
Set @SSQL = @SSQL + ' And ((KO.KDrugo6 Is Not Null And KO.KDrugo6 = ' + Cast(@Pod6 As Varchar(6)) + ')
Or (KO.KDrugo6 Is Null And Kup.KDrugo6 = ' + Cast(@Pod6 As Varchar(6)) + ')) '
If @Pod7 Is Not NULL
If @KFPod7 = 'D'
Set @SSQL = @SSQL + ' And ((KO.KDrugo7 Is Not Null And KO.KDrugo7 <> ' + Cast(@Pod7 As Varchar(6)) + ')
Or (KO.KDrugo7 Is Null And Kup.KDrugo7 <> ' + Cast(@Pod7 As Varchar(6)) + ') Or (KO.KDrugo7 Is Null And Kup.KDrugo7 Is Null)) '
Else
Set @SSQL = @SSQL + ' And ((KO.KDrugo7 Is Not Null And KO.KDrugo7 = ' + Cast(@Pod7 As Varchar(6)) + ')
Or (KO.KDrugo7 Is Null And Kup.KDrugo7 = ' + Cast(@Pod7 As Varchar(6)) + ')) '
If @Sifra_Tip Is Not NULL
Set @SSQL = @SSQL + ' And Kup.Sifra_Tip = ' + Cast(@Sifra_Tip As Varchar(6)) + ' '
If @Sifra_VPJ Is Not NULL
Begin
Set @SSQL = @SSQL + ' And ((KO.Sifra_VPJ Is Not Null And KO.Sifra_VPJ = ' + Cast(@Sifra_VPJ As Varchar(6)) + ')
Or (KO.Sifra_VPJ Is Null And Kup.Sifra_VPJ = ' + Cast(@Sifra_VPJ As Varchar(6)) + ')) '
End
If @Sifra_Kup_Od Is Not NULL
Set @SSQL = @SSQL + ' And KUP.Sifra_Kup>=' + Cast(@Sifra_Kup_Od As Varchar(6)) + ' '
If @Sifra_Kup_Do Is Not NULL
Set @SSQL = @SSQL + ' And KUP.Sifra_Kup<=' + Cast(@Sifra_Kup_Do As Varchar(6)) + ' '
If @TipKup Is Not NULL
Set @SSQL = @SSQL + ' And KUP.TipKup In (' + @TipKup + ') '
If @Sifra_Nivo Is Not NULL
Set @SSQL = @SSQL + ' And KUP.Sifra_Nivo=''' + @Sifra_Nivo + ''' '
If @Sifra_Pat Is Not NULL
Begin
Set @SSQL = @SSQL + ' And ((KO.Sifra_Pat Is Not Null And KO.Sifra_Pat = ' + Cast(@Sifra_Pat As Varchar(6)) + ')
Or (KO.Sifra_Pat Is Null And Kup.Sifra_Pat = ' + Cast(@Sifra_Pat As Varchar(6)) + ')) '
End
If @KoiPat Is Not NULL
Begin
Set @SSQL = @SSQL + ' And ((KO.Sifra_Pat Is Not Null And KO.Sifra_Pat IN (' + @KoiPat + '))
Or (KO.Sifra_Pat Is Null And Kup.Sifra_Pat IN (' + @KoiPat + '))) '
End
If @Koi_Gradovi Is Not NULL
Begin
Set @SSQL = @SSQL + ' And ((KO.Sifra_Grad Is Not Null And KO.Sifra_Grad In (' + @Koi_Gradovi + '))
OR ( KO.Sifra_Grad Is Null and KUP.Sifra_Grad In ( ' + @Koi_Gradovi + '))) '
End
If @Koi_Regioni Is Not NULL
Begin
Set @SSQL = @SSQL + ' And ((KO.Sifra_Reg Is Not Null And KO.Sifra_Reg In (' + @Koi_Regioni + '))
OR ( KO.Sifra_Reg Is Null and KUP.Sifra_Reg In ( ' + @Koi_Regioni + '))) '
And (Kup.Aktiven<>''N'' Or Kup.Aktiven Is Null) And Kup.Sifra_Kup Not In (Select distinct Sifra_Kup From #Tab) ')
Insert Into #Tab(Sifra_kup, Sifra_Obj, SifraR, ImeR, SifraK, ImeK, Brojnost, Sifra_Reg, Sifra_Grad, Sifra_Pat) Exec(@SSQL+' And Kup.Sifra_Kup Not In (Select distinct Sifra_Kup From #Tab) And Kup.Aktiven <> ''N'' ')
(Case When BB.Sifra_Div is not null Then dbo.fn_LevoNuli(Cast(BB.Sifra_Div as smallint),2) Else '00' End)+
(Case When BB.Sifra_TrosM is not null Then dbo.fn_LevoNuli(Cast(BB.Sifra_TrosM as smallint),2) Else '00' End) AS KtoDivTrosM,
Null as Ime4Tros --T4.Ime4Tros, BB.Sifra_TrosV, TV.ImeTrosV,
From #BrutoBilans BB
Inner Join Anal A On BB.Kto_Anal=A.Kto_Anal
LEFT OUTER Join Sint S On A.Kto_Sint=S.Kto_Sint
LEFT OUTER Join Orged O On O.Sifra_Oe = BB.Sifra_Oe
LEFT OUTER join TrosokMesto TM ON BB.Sifra_TrosM=TM.Sifra_TrosM
LEFT OUTER join TrosokVid TV ON BB.Sifra_TrosV=TV.Sifra_TrosV
LEFT OUTER join Trosok4Tip T4 ON BB.Sifra_4Tros=T4.Sifra_4Tros
Group By BB.Kto_Anal, A.ImeAnal, SUBSTRING(BB.Kto_anal,1,3), SUBSTRING(BB.Kto_anal,1,2), S.ImeSint, BB.Sifra_Oe, O.ImeOrg, O.Map_Org, BB.Sifra_Div,BB.Sifra_TrosM, TM.ImeTrosM --, BB.Sifra_TrosV, TV.ImeTrosV, T4.Ime4Tros
Order By BB.Kto_Anal
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_brutobilans_povekebazi]'))
drop procedure [dbo].[sp_brutobilans_povekebazi]
Go
CREATE PROCEDURE sp_BrutoBilans_PovekeBazi
@Datum_Od Smalldatetime,
@Datum_Do Smalldatetime,
@KoiKlasi Varchar(30),
@Sifra_OE smallint = NULL,
@Koi_Oe varchar(10) = null,
@Grupa char(2) = Null,
@KtoSint char(3) = Null,
@Sifra_Div smallint = Null,
@BezDivizija char(1) = 'N',
@ParalenliBazi varchar(200) = Null,
@PocnuvaSo varchar(10) = Null,
@Kurs decimal(18,4) = 1
AS
Declare @SSQL Varchar(8000)
Declare @SSQLUsl Varchar(8000)
Set @SSQLUsl = ' '
Create Table #BrutoBilans
( Kto_Anal Char(10),
Poc_Dolzi Decimal(18,4),
Poc_Pobaruva Decimal(18,4),
Tek_Dolzi Decimal(18,4),
Tek_Pobaruva Decimal(18,4),
Vk_Dolzi Decimal(18,4),
Vk_Pobaruva Decimal(18,4),
Sifra_Oe int
)
-- Pocetni sostojbi
Declare @God as smallint
Set @God=year(@Datum_Od)
Create Table #Bazi
(
ImeBaza varchar(50)
)
Insert Into #Bazi Select db_Name()
If @ParalenliBazi Is Not Null
Begin
Declare @Poz_Delim Smallint
Declare @Poz_Start Smallint
Declare @BazaIme varchar(50)
If @ParalenliBazi Is Null
Set @ParalenliBazi = ''
Set @Poz_Start = 0
While 1=1
Begin
Set @Poz_Delim = Charindex(',', @ParalenliBazi, @Poz_Start)
If @Poz_Delim = 0
Break
Set @BazaIme = SubString(@ParalenliBazi, @Poz_Start, @Poz_Delim-@Poz_Start)
Set @Poz_Start = @Poz_Delim + 1
Insert Into #Bazi Select @BazaIme
End
End
-------------------------------------------------------------------------------- U S L O V ---------------------------------------------------------------------------------------------------------------
If @KoiKlasi Is Not Null
Set @SSQLUsl = @SSQLUsl + 'And SubString(Kto_Anal, 1, 1) In (' + @KoiKlasi + ') '
set @SSQL = @SSQL + ' and C.TipKup >= ''' + @Sifra_Kup + ''' '
if @Sifra_Kup_Do is not null
set @SSQL = @SSQL + ' and C.TipKup <= ''' + @Sifra_Kup_Do + ''' '
Exec (@SSQL)
if @KojaPodel = '1'
update #CenKom
set Ime_Elem = D.Ime_1
from Drugo1 D
where D.Sifra_1 = #CenKom.Sifra_Elem
else if @KojaPodel = '2'
update #CenKom
set Ime_Elem = D.Ime_2
from Drugo2 D
where D.Sifra_2 = #CenKom.Sifra_Elem
else if @KojaPodel = '7'
update #CenKom
set Ime_Elem = D.Ime_7
from Drugo7 D
where D.Sifra_7 = #CenKom.Sifra_Elem
-- Vrati go rezutltatot
select C.*, Kom.ImeKup
from #CenKom C
inner join Komint Kom
on C.Sifra_Kup = Kom.Sifra_Kup
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_cenaodsoart]'))
drop procedure [dbo].[sp_cenaodsoart]
Go
CREATE PROCEDURE sp_CenaOdSoArt
@Sifra_OE smallint,
@Sifra_art varchar(20),
@Cena decimal(18,2) OUTPUT,
@DanCena char(1) OUTPUT
AS
SELECT @Cena = Cena, @DanCena = DanCena FROM SoArt WHERE Sifra_OE=@Sifra_OE AND Sifra_Art = @Sifra_Art
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_ceniodcengrorg]'))
drop procedure [dbo].[sp_ceniodcengrorg]
Go
CREATE PROCEDURE sp_CeniOdCenGrOrg
@Sifra_OE smallint
AS
Declare @Sif_GrOrg char(6)
SELECT @Sif_GrOrg = G.Sif_GrOrg FROM SGrOrg S INNER JOIN GrOrg G ON S.Sif_GrOrg=G.Sif_GrOrg
WHERE G.Edinstvena ='D' AND S.Sifra_Oe=@Sifra_OE
SELECT Sif_GrOrg, Sifra_Art,Cena FROM CenGrOrg WHERE Sif_GrOrg=@Sif_GrOrg
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_cenizakatkasa]'))
drop procedure [dbo].[sp_cenizakatkasa]
Go
CREATE PROCEDURE sp_CeniZaKatKasa
@Sifra_OE smallint,
@Datum_Od smalldatetime =NULL
AS
IF @Datum_Od IS NULL SET @Datum_Od = GetDate()
Declare @SSQL varchar(3000)
CREATE TABLE #TmpCen
(Sifra_Art varchar (20),
MalCena decimal(18, 4) ,
DanMalCena char(1),
Kolic decimal(18,4) )
INSERT INTO #TmpCen (Sifra_Art, MalCena,DanMalCena, Kolic) SELECT Sifra_Art, Cena, DanCena, Vlez-Izlez FROM SoArt WHERE Sifra_OE=@Sifra_OE
CREATE TABLE #TmpNeraskn
(Sifra_Art varchar(20),
Kolic decimal(18,4))
INSERT INTO #TmpNeraskn (Sifra_Art, Kolic) SELECT Sifra_Art, Sum(Kolic-RKolic) FROM KSPromet WHERE Sifra_OE=@Sifra_OE AND Kolic<>RKolic GROUP BY Sifra_Art
UPDATE #TmpCen SET Kolic = #TmpCen.Kolic - N.Kolic FROM #TmpNeraskn N WHERE #TmpCen.Sifra_Art = N.Sifra_Art
SELECT * FROM #TmpCen
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_cenovnici_istorija]'))
drop procedure [dbo].[sp_cenovnici_istorija]
Go
CREATE PROCEDURE sp_Cenovnici_Istorija
@VlIzl char(1)='I',
@Tip_Sif_Kup char(1)=' ',
@Sif_Kup_Gen varchar(11)='',
@Tip_Sif_Art char(1)='A',
@Datum_Od smalldatetime,
@Datum_Do smalldatetime,
@Sifra_Podg char(6)=Null,
@Sifra_Gr varchar(6)=Null,
@Sifra_Drg smallint=Null,
@Sifra_Art_Od varchar(20)=Null,
@Sifra_Art_Do varchar(20)=Null,
@Podr char(1)='S', --Sifra,Ime
@ADrugo1 smallint = Null,
@ADrugo2 smallint = Null,
@ADrugo3 smallint = Null,
@ADrugo4 smallint = Null,
@ADrugo5 smallint = Null,
@KFADrugo1 char(1) = 'N',
@KFADrugo2 char(1) = 'N',
@KFADrugo3 char(1) = 'N',
@KFADrugo4 char(1) = 'N',
@KFADrugo5 char(1) = 'N'
AS
Declare @SSQL varchar(3000)
CREATE TABLE #TmpArt
(Sif_Art_Gen varchar (20),
ImeArt varchar(40))
CREATE TABLE #TmpUsl
(VlIzl char(1),
Tip_Sif_Kup char(1),
Sif_Kup_Gen varchar (11),
Tip_Sif_Art char(1),
Sif_Art_Gen varchar (20),
Datum_Od smalldatetime,
Rok_Dosp smallint,
Datum_Do smalldatetime,
Uces decimal(6,2),
Dod_Uces decimal(6,2),
Cena decimal(18,4),
MalCena decimal(18,4),
DanCena char(1),
DanMalCena char(1),
ImeKup varchar(40),
ImeArt varchar(40),
Sifra_Podg char(6),
Ime_Podg varchar(40),
Sifra_Gr char(3),
Ime_Gr varchar(40) )
IF @Tip_Sif_Art= 'A'
Begin
SET @SSQL = 'SELECT A.Sifra_Art, A.ImeArt FROM KatArt A '
IF @Sifra_Gr IS NOT NULL
SET @SSQL = @SSQL + 'INNER JOIN Podgrupi P ON A.Sifra_Podg=P.Sifra_Podg '
SET @SSQL = @SSQL +' WHERE 1=1 '
IF @Sifra_Podg IS NOT NULL
SET @SSQL = @SSQL + ' AND A.Sifra_Podg = ''' + @Sifra_Podg + ''' '
IF @Sifra_Gr IS NOT NULL
SET @SSQL = @SSQL + ' AND P.Sifra_Gr = ''' + @Sifra_Gr + ''' '
IF @Sifra_Drg IS NOT NULL
SET @SSQL = @SSQL + ' AND A.Sifra_Drg = ' + Cast(@Sifra_Drg as varchar(5)) + ' '
If @Sifra_Art_Od IS NOT NULL
SET @SSQL = @SSQL + ' AND A.Sifra_Art>=''' + @Sifra_Art_Od + ''' '
If @Sifra_Art_Do IS NOT NULL
SET @SSQL = @SSQL + ' AND A.Sifra_Art<=''' + @Sifra_Art_Do + ''' '
IF @ADrugo1 IS NOT NULL
IF @KFADrugo1 = 'D'
SET @SSQL = @SSQL + ' AND (A.Drugo1 <> ' + Cast(@ADrugo1 as varchar(5)) + ' Or A.Drugo1 Is Null) '
Else
SET @SSQL = @SSQL + ' AND A.Drugo1 = ' + Cast(@ADrugo1 as varchar(5)) + ' '
IF @ADrugo2 IS NOT NULL
IF @KFADrugo2 = 'D'
SET @SSQL = @SSQL + ' AND (A.Drugo2 <> ' + Cast(@ADrugo2 as varchar(5)) + ' Or A.Drugo2 Is Null) '
Else
SET @SSQL = @SSQL + ' AND A.Drugo2 = ' + Cast(@ADrugo2 as varchar(5)) + ' '
IF @ADrugo3 IS NOT NULL
IF @KFADrugo3 = 'D'
SET @SSQL = @SSQL + ' AND (A.Drugo3 <> ' + Cast(@ADrugo3 as varchar(5)) + ' Or A.Drugo3 Is Null) '
Else
SET @SSQL = @SSQL + ' AND A.Drugo3 = ' + Cast(@ADrugo3 as varchar(5)) + ' '
IF @ADrugo4 IS NOT NULL
IF @KFADrugo4 = 'D'
SET @SSQL = @SSQL + ' AND (A.Drugo4 <> ' + Cast(@ADrugo4 as varchar(5)) + ' Or A.Drugo4 Is Null) '
Else
SET @SSQL = @SSQL + ' AND A.Drugo4 = ' + Cast(@ADrugo4 as varchar(5)) + ' '
IF @ADrugo5 IS NOT NULL
IF @KFADrugo5 = 'D'
SET @SSQL = @SSQL + ' AND (A.Drugo5 <> ' + Cast(@ADrugo5 as varchar(5)) + ' Or A.Drugo5 Is Null) '
Else
SET @SSQL = @SSQL + ' AND A.Drugo5 = ' + Cast(@ADrugo5 as varchar(5)) + ' '
End
ELSE IF @Tip_Sif_Art= 'P'
SET @SSQL = 'SELECT P.Sifra_Podg, P.Ime_Podg FROM Podgrupi P '
ELSE IF @Tip_Sif_Art= 'G'
SET @SSQL = 'SELECT G.Sifra_Gr, G.Ime_Gr FROM Grupi G '
ELSE IF @Tip_Sif_Art= 'B'
SET @SSQL = 'SELECT D.Sifra_Drg, D.Ime FROM DrgPodel D '
ELSE IF @Tip_Sif_Art= '1'
SET @SSQL = 'SELECT D.Sifra_1, D.Ime_1 FROM Drugo1 D '
ELSE IF @Tip_Sif_Art= '2'
SET @SSQL = 'SELECT D.Sifra_2, D.Ime_2 FROM Drugo2 D '
ELSE IF @Tip_Sif_Art= '3'
SET @SSQL = 'SELECT D.Sifra_3, D.Ime_3 FROM Drugo3 D '
ELSE IF @Tip_Sif_Art= '4'
SET @SSQL = 'SELECT D.Sifra_4, D.Ime_4 FROM Drugo4 D '
ELSE IF @Tip_Sif_Art= '5'
SET @SSQL = 'SELECT D.Sifra_5, D.Ime_5 FROM Drugo5 D '
ELSE
SET @SSQL = ' SELECT TOP 1 '''', '''' FROM KatArt '
INSERT INTO #TmpArt (Sif_Art_Gen, ImeArt) EXEC (@SSQL)
FROM dbo.fix_dajcenazadatum(@VlIzl, @Tip_Sif_Kup, @Sif_Kup_Gen, @fTipSifArt, @fSifArtGen, @Datum_Od)
Fetch Next From TabCc Into @fSifArtGen, @fTipSifArt
End
Close TabCc
Deallocate TabCc
Set Nocount Off
IF @Tip_Sif_Kup= 'K'
UPDATE #TmpCen SET ImeKup= K.ImeKup FROM Komint K WHERE #TmpCen.Sif_Kup_Gen=K.Sifra_Kup
/*ELSE IF @Tip_Sif_Kup= '1'
UPDATE #TmpCen SET ImeKup= K.Ime_1K FROM KDrugo1 K WHERE #TmpCen.Sif_Kup_Gen=K.Sifra_1K
ELSE IF @Tip_Sif_Kup= '2'
UPDATE #TmpCen SET ImeKup= K.Ime_2K FROM KDrugo2 K WHERE #TmpCen.Sif_Kup_Gen=K.Sifra_2K
ELSE IF @Tip_Sif_Kup= '3'
UPDATE #TmpCen SET ImeKup= K.Ime_3K FROM KDrugo3 K WHERE #TmpCen.Sif_Kup_Gen=K.Sifra_3K
ELSE IF @Tip_Sif_Kup= '4'
UPDATE #TmpCen SET ImeKup= K.Ime_4K FROM KDrugo4 K WHERE #TmpCen.Sif_Kup_Gen=K.Sifra_4K
ELSE IF @Tip_Sif_Kup= '5'
UPDATE #TmpCen SET ImeKup= K.Ime_5K FROM KDrugo5 K WHERE #TmpCen.Sif_Kup_Gen=K.Sifra_5K
*/
IF @Tip_Sif_Art= 'A' OR @Tip_Sif_Art= 'K'
Begin
UPDATE #TmpCen SET Sifra_Podg = P.Sifra_Podg, Ime_Podg = P.Ime_Podg, Sifra_Gr=P.Sifra_Gr
FROM KatArt A, Podgrupi P WHERE #TmpCen.Sif_Art_Gen=A.Sifra_Art AND A.Sifra_Podg=P.Sifra_Podg AND #TmpCen.Tip_Sif_Art='A'
UPDATE #TmpCen SET Ime_Gr = G.Ime_Gr FROM Grupi G WHERE #TmpCen.Sifra_Gr=G.Sifra_Gr
End
UPDATE #TmpCen SET ImeArt = A.ImeArt FROM #TmpArt A WHERE #TmpCen.Sif_Art_Gen = A.Sifra_Art AND #TmpCen.Tip_Sif_Art = A.Tip_Sif_Art
if @Podr='S'
SELECT * FROM #TmpCen WHERE Datum_Od IS NOT NULL ORDER BY Sif_Art_Gen
Else
SELECT * FROM #TmpCen WHERE Datum_Od IS NOT NULL ORDER BY ImeArt
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_cenovniksost_nadatum]'))
drop procedure [dbo].[sp_cenovniksost_nadatum]
Go
CREATE PROCEDURE sp_CenovnikSost_NaDatum
@Sifra_OE smallint,
@Datum_Od smalldatetime =NULL
AS
IF @Datum_Od IS NULL SET @Datum_Od = GetDate()
Declare @SSQL varchar(3000)
Declare @SamoDatum smalldatetime
SET @SamoDatum = dbo.fn_VratiDatum (@Datum_Od)
CREATE TABLE #TmpArt (Sifra_Art varchar(20))
CREATE TABLE #TmpCen
(Sifra_Art varchar (20),
Rok_Dosp decimal(6,2),
Uces decimal(6,2),
Dod_Uces decimal(6,2),
Cena decimal(18, 4) ,
MalCena decimal(18, 4),
DanCena char(1),
DanMalCena char(1),
Kolic decimal(18,4) )
INSERT INTO #TmpArt (Sifra_Art) SELECT Sifra_Art FROM SoArt WHERE Sifra_OE=@Sifra_OE
/*CREATE TABLE #TmpPoslDat
(Sif_Art_Gen varchar(20),
Datum smalldatetime)
SET @SSQL= 'SELECT Sif_Art_Gen, Max(Datum_Od) FROM Usl_Komerc_Per WHERE Datum_Do IS NOT NULL AND Datum_Od<=''' +
cast(@Datum_Od as varchar(30))+''' AND Datum_Do >=''' + cast(@Datum_Od as varchar(30)) +
''' AND VlIzl=''I'' AND Tip_Sif_Kup='' '' AND Sif_Kup_Gen='''' AND Tip_Sif_Art=''A'' AND Sif_Art_Gen IN (SELECT Sif_Art_Gen FROM #TmpCen) GROUP BY Sif_Art_Gen '
INSERT INTO #TmpPoslDat (Sif_Art_Gen, Datum) EXEC(@SSQL)
SET @SSQL= 'SELECT Sif_Art_Gen, Max(Datum_Od) FROM Usl_Komerc_Per WHERE Datum_Do IS NULL AND Datum_Od<=''' +
cast(@Datum_Od as varchar(30))+''' AND VlIzl=''I'' AND Tip_Sif_Kup='' '' AND Sif_Kup_Gen='''' AND Tip_Sif_Art=''A''
AND Sif_Art_Gen IN (SELECT Sif_Art_Gen FROM #TmpCen) AND Sif_Art_Gen NOT IN (SELECT Sif_Art_Gen FROM #TmpPoslDat) GROUP BY Sif_Art_Gen'
INSERT INTO #TmpPoslDat (Sif_Art_Gen, Datum) EXEC(@SSQL)
UPDATE #TmpCen SET Cena=U.Cena, MalCena=U.MalCena, DanCena=U.DanCena, DanMalCena=U.DanMalCena
FROM #TmpPoslDat P, Usl_Komerc_Per U WHERE #TmpCen.Sifra_Art=P.Sif_Art_Gen AND P.Sif_Art_Gen=U.Sif_Art_Gen AND P.Datum=U.Datum_Od
*/
Declare @fSifArtGen as varchar(20)
Declare @MalCena as decimal(18,4)
Declare @DanMalCena as char(1)
Set Nocount On
Declare TabCc Cursor Fast_Forward For Select Sifra_Art From #TmpArt
Fetch Next From TabCS Into @fSifArtGen, @MalCena, @DanMalCena
End
Close TabCS
Deallocate TabCS
UPDATE #TmpCen SET Kolic = S.Vlez - S.Izlez FROM SoArt S WHERE #TmpCen.Sifra_Art = S.Sifra_Art AND S.Sifra_OE=@Sifra_OE
CREATE TABLE #TmpNeraskn
(Sifra_Art varchar(20),
Kolic decimal(18,4))
INSERT INTO #TmpNeraskn (Sifra_Art, Kolic) SELECT Sifra_Art, Sum(Kolic-RKolic) FROM KSPromet WHERE Sifra_OE=@Sifra_OE AND Kolic<>RKolic GROUP BY Sifra_Art
UPDATE #TmpCen SET Kolic = #TmpCen.Kolic - N.Kolic FROM #TmpNeraskn N WHERE #TmpCen.Sifra_Art = N.Sifra_Art
Set Nocount Off
SELECT * FROM #TmpCen
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_cenovniktekovenprethoden]'))
drop procedure [dbo].[sp_cenovniktekovenprethoden]
Go
CREATE PROCEDURE sp_CenovnikTekovenPrethoden
@Datum smalldatetime =NULL,
@Sif_GrOrg char(6)='SITE'
AS
IF @Datum IS NULL SET @Datum = GetDate()
Declare @SSQL varchar(3000)
CREATE TABLE #TmpArt (Sifra_Art varchar(20))
CREATE TABLE #TmpCen
(Sifra_Art varchar (20),
Rok_Dosp decimal(6,2),
Uces decimal(6,2),
Dod_Uces decimal(6,2),
Cena decimal(18, 2) ,
MalCena decimal(18, 2),
DanCena char(1),
DanMalCena char(1),
Kolic decimal(18,4) )
CREATE TABLE #TmpCenSt
(Sifra_Art varchar (20),
PrethMalCena decimal(18,2) )
CREATE TABLE #TmpZal
(Sifra_Art varchar (20),
Zaliha decimal(18,4),
OnStock Bit)
INSERT INTO #TmpArt (Sifra_Art) SELECT DISTINCT Sifra_Art FROM SoArt
Declare @fSifArtGen as varchar(20)
Set Nocount On
Declare TabCc Cursor Fast_Forward For Select Sifra_Art From KatArt WHERE Drugo2 IS NOT NULL AND Drugo2<>99
FROM #TmpRez GROUP BY Sifra_Art, KontrSer, Sifra_Boja, Sifra_Velic, Cena, DanCena, POsn, Sifra_Tar
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_citaj_tekzaliha]'))
drop procedure [dbo].[sp_citaj_tekzaliha]
Go
CREATE PROCEDURE sp_Citaj_TekZaliha
@Sifra_OE smallint,
@Celosen char(1),
@DanCenaOE char(1),
@NabCena char(1) = 'N' --P-tek.pros.nab.cena, N-cena od soart, K-Nab.c.-katart(dod 16.06.05)
AS
--If Exists (select * from dbo.sysobjects where id = object_id(N'[TmpZal]') and OBJECTPROPERTY(id, N'IsTable') = 1)
-- Drop Table TmpZal
Create Table ##TmpZal
( Sifra_Art varchar(20),
KontrSer varchar(25),
Sifra_Boja smallint,
Sifra_Velic smallint,
KnigSost Decimal(18,6),
Cena Decimal(18, 6),
DanCena char(1),
POsn Numeric(6,2),
Sifra_Tar char(3),
Vlez Numeric(18,6)
)
Declare @SSQL Varchar(1000)
Set @SSQL = 'INSERT INTO ##TmpZal (Sifra_Art, KnigSost, Cena, DanCena, POsn, Sifra_Tar)
SELECT S.Sifra_Art, S.Vlez - S.Izlez AS KnigSost, '
If @NabCena = 'P'
Set @SSQL = @SSQL + ' S.NNabCena AS Cena, ''N'' '
Else If @NabCena = 'K'
Set @SSQL = @SSQL + ' A.Nabavna AS Cena, ''D'' '
Else
Set @SSQL = @SSQL + 'dbo.fn_VratiSkalCena(S.Cena,T.ProcOsn,'''+@DanCenaOE+''',S.DanCena) AS Cena, '''+ @DanCenaOE + ''' '
Set @SSQL = @SSQL + ' AS DanCena,T.ProcOsn AS Posn, T.Sifra_Tar AS Sifra_Tar
FROM Soart S
INNER JOIN KatArt A ON S.Sifra_Art = A.Sifra_Art
INNER JOIN Tarifi T ON A.Sifra_Tar = T.Sifra_Tar
WHERE S.Sifra_OE=' + Cast(@Sifra_OE As Varchar(8)) + ' AND A.SMatUsl =''M'' '
If @Celosen <> 'D'
Set @SSQL = @SSQL + ' AND S.Sifra_Art IN (SELECT Sifra_Art from ##TmpLPop) '
SET @SSQL = @SSQL + ' AND (A.RokKontrDali IS NULL OR A.RokKontrDali <> ''D'') '
Exec (@SSQL)
print @ssql
--Za Kontrolni broevi, rokovi, serii
Set @SSQL = 'INSERT INTO ##TmpZal (Sifra_Art, KontrSer, KnigSost, Cena, DanCena, POsn, Sifra_Tar)
SELECT SN.Sifra_Art, SN.KontrSer, SN.Vlez - SN.Izlez AS KnigSost, '
If @NabCena = 'P'
Set @SSQL = @SSQL + ' S.NNabCena AS Cena, ''N'' '
Else If @NabCena = 'K'
Set @SSQL = @SSQL + ' A.Nabavna AS Cena, ''D'' '
Else
Set @SSQL = @SSQL + 'dbo.fn_VratiSkalCena(S.Cena,T.ProcOsn,'''+@DanCenaOE+''',S.DanCena) AS Cena, '''+ @DanCenaOE + ''' '
Set @SSQL = @SSQL + ' AS DanCena,T.ProcOsn AS Posn, T.Sifra_Tar AS Sifra_Tar
FROM SoKontrSer SN
INNER JOIN Soart S ON S.Sifra_OE = SN.Sifra_OE AND S.Sifra_Art = SN.Sifra_Art
INNER JOIN KatArt A ON S.Sifra_Art = A.Sifra_Art
INNER JOIN Tarifi T ON A.Sifra_Tar = T.Sifra_Tar
WHERE SN.Sifra_OE=' + Cast(@Sifra_OE As Varchar(8)) + ' AND A.SMatUsl =''M'' '
If @Celosen <> 'D'
Set @SSQL = @SSQL + ' AND SN.Sifra_Art IN (SELECT Sifra_Art from ##TmpLPop) '
SET @SSQL = @SSQL + ' AND A.RokKontrDali = ''D'' '
Exec (@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_citaj_tekzaliha_sel]'))
drop procedure [dbo].[sp_citaj_tekzaliha_sel]
Go
CREATE PROCEDURE sp_Citaj_TekZaliha_Sel
@Sifra_OE smallint,
@Datum smalldatetime = Null
AS
IF @Datum IS NULL
SELECT S.Sifra_Art, S.Vlez, S.Izlez, S.Cena, A.ImeArt FROM Soart S INNER JOIN KatArt A ON S.Sifra_Art=A.Sifra_Art
WHERE S.Sifra_OE=@Sifra_OE ORDER BY S.Sifra_Art
ELSE
SELECT Sifra_Art, SUM(Case VlIzl When 'V' Then Kolic Else 0 End) Vlez, SUM(Case VlIzl When 'I' Then Kolic Else 0 End) Izlez
FROM Stavr WHERE Sifra_OE=@Sifra_OE AND Datum_Dok<=@Datum GROUP BY Sifra_Art ORDER BY Sifra_Art
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_citaj_zalihaboivel]'))
drop procedure [dbo].[sp_citaj_zalihaboivel]
Go
CREATE PROCEDURE sp_Citaj_ZalihaBoiVel
@Sifra_OE smallint,
@Celosen char(1),
@DanCenaOE char(1),
@Datum smalldatetime = NULL,
@CenaNaDat char(1) = 'N' --N-Tekovna,D-na Datum,P-tek.Pros.nab.cena, K-nab.c. od katart (dod.16.06.05), C-pros.nab.c na dat
AS
If @CenaNaDat = 'P' OR @CenaNaDat = 'C'
SET @DanCenaOE = 'N'
Create Table ##TmpZal
( Sifra_Art varchar(20),
KontrSer varchar(40),
Sifra_Boja smallint,
Sifra_Velic smallint,
KnigSost Decimal(18,6),
Cena Decimal(18, 6),
DanCena char(1),
POsn Numeric(6,2),
Sifra_Tar char(3),
Vlez Numeric(18,6))
CREATE TABLE #TmpArt
(Sifra_Art varchar(20))
IF @Celosen<>'D'
INSERT INTO #TmpArt SELECT DISTINCT Sifra_Art FROM ##TmpLPop
Declare @SSQL Varchar(1000)
IF @Datum IS NULL
Begin
SET @SSQL = 'SELECT S.Sifra_Art, S.LotBr, S.Sostojba FROM SoMag S '
If @Celosen <> 'D'
SET @SSQL = @SSQL+' INNER JOIN ##TmpLPop L ON S.Sifra_Art=L.Sifra_Art '
SET @SSQL = @SSQL+' WHERE S.Sifra_OE=' + Cast(@Sifra_OE As Varchar(8))
INSERT INTO ##TmpZal (Sifra_Art, KontrSer, KnigSost) EXEC (@SSQL)
End
Else
Begin
CREATE TABLE #TmpMStav
(DokrID int,
Sifra_Art varchar(20),
Lokacija varchar(50),
LotBr varchar(30),
Kolic decimal(18,6))
SET @SSQL = 'SELECT MS.DokrID, MS.Sifra_Art, MS.Lokacija, MS.LotBr, SUM(CASE MS.VlIzl WHEN ''V'' Then MS.Kolic ELSE MS.Kolic * -1 End)
FROM MagStavr MS INNER JOIN Dokr D ON MS.DokrID=D.DokrID '
If @Celosen <> 'D'
SET @SSQL = @SSQL+' INNER JOIN #TmpArt L ON MS.Sifra_Art=L.Sifra_Art '
SET @SSQL = @SSQL+' WHERE D.Sifra_OE=' + Cast(@Sifra_OE As Varchar(8))+' AND D.Datum_Dok<='''+cast(@Datum as varchar(35))+''' GROUP BY MS.DokrID, MS.Sifra_Art, MS.Lokacija, MS.LotBr '
INSERT INTO #TmpMStav EXEC (@SSQL)
UPDATE #TmpMStav SET LotBr='' WHERE LotBr IS NULL
SET @SSQL = 'SELECT S.Sifra_Art, MS.LotBr, SUM( CASE WHEN MS.LotBr IS NULL THEN (CASE S.VlIzl WHEN ''V'' Then S.Kolic ELSE S.Kolic * -1 End)
ELSE MS.Kolic END) FROM Stavr S
LEFT OUTER JOIN #TmpMStav MS ON S.Rbr=MS.Lokacija AND S.Sifra_Art=MS.Sifra_Art AND S.DokrID=MS.DokrID '
If @Celosen <> 'D'
SET @SSQL = @SSQL+' INNER JOIN #TmpArt L ON S.Sifra_Art=L.Sifra_Art '
SET @SSQL = @SSQL+' WHERE S.Sifra_OE=' + Cast(@Sifra_OE As Varchar(8))+' AND S.Datum_Dok<='''+cast(@Datum as varchar(35))+'''
GROUP BY S.Sifra_Art, MS.LotBr '
INSERT INTO ##TmpZal (Sifra_Art, KontrSer, KnigSost) EXEC (@SSQL)
--i sega uste ispadna deka ima artikli koi gi ima i vo stavr i vo magstavr, no kolicinata ne e ista zatoa sto vnesle nekoja stavka bez boja i velicina
CREATE TABLE #TmpZbMStav
(DokrID int,
Sifra_Art varchar(20),
Kolic decimal(18,6))
CREATE TABLE #TmpZbStav
(DokrID int,
Sifra_Art varchar(20),
Kolic decimal(18,6))
INSERT INTO #TmpZbMStav SELECT DokrID, Sifra_Art, SUM(Kolic) FROM #TmpMStav GROUP BY DokrID, Sifra_Art
INSERT INTO #TmpZbStav SELECT S.DokrID, S.Sifra_Art, SUM(CASE S.VlIzl WHEN 'V' Then S.Kolic Else S.Kolic * -1 End) FROM Stavr S
INNER JOIN #TmpZbMStav M ON S.DokrID=M.DokrID AND S.Sifra_Art=M.Sifra_Art GROUP BY S.DokrID, S.Sifra_Art
CREATE TABLE #TmpRez
(Sifra_Art varchar(20),
Kolic decimal(18,6))
INSERT INTO #TmpRez (Sifra_Art, Kolic) SELECT S.Sifra_Art, SUM(S.Kolic-M.Kolic)
FROM #TmpZbStav S INNER JOIN #TmpZbMStav M ON S.DokrID=M.DokrID AND S.Sifra_Art=M.Sifra_Art GROUP BY S.DokrID, S.Sifra_Art
HAVING SUM(S.Kolic-M.Kolic)<>0
UPDATE ##TmpZal SET KnigSost=KnigSost+R.Kolic FROM #TmpRez R WHERE ##TmpZal.Sifra_Art=R.Sifra_Art AND ##TmpZal.KontrSer IS NULL
INSERT INTO ##TmpZal (Sifra_Art, KnigSost) SELECT R.Sifra_Art, R.Kolic FROM #TmpRez R WHERE R.Sifra_Art NOT IN (SELECT Sifra_Art FROM ##TmpZal WHERE KontrSer IS NULL)
End
UPDATE ##TmpZal SET KontrSer='' WHERE KontrSer IS NULL
UPDATE ##TmpZal SET Sifra_Velic = Substring(KontrSer, PatIndex('%:%', KontrSer)+1, 5) WHERE KontrSer<>'' AND Substring(KontrSer, PatIndex('%:%', KontrSer)+1, 5)<>''
UPDATE ##TmpZal SET Sifra_Boja = Substring(KontrSer, PatIndex('% %', KontrSer)+1, PatIndex('%:%', KontrSer)-PatIndex('% %', KontrSer)-1) WHERE KontrSer<>'' AND Substring(KontrSer, PatIndex('% %', KontrSer)+1, PatIndex('%:%', KontrSer)-PatIndex('% %', KontrSer)-1)<>''
UPDATE ##TmpZal SET KontrSer=NULL
--CENI
CREATE TABLE #TmpCeni
( Sifra_Art varchar(20),
Cena Decimal(18,4))
If @Celosen='D'
INSERT INTO #TmpCeni (Sifra_art, Cena) SELECT A.Sifra_Art,0 FROM KatArt A INNER JOIN Soart S ON A.Sifra_Art=S.Sifra_Art WHERE S.Sifra_OE=@Sifra_OE
Else
INSERT INTO #TmpCeni (Sifra_art, Cena) SELECT Sifra_Art,0 FROM ##TmpLPop
IF @CenaNaDat = 'C'
Begin
Create Table #ProsCeni
( Sifra_Art varchar(20),
Sostojba decimal(18,4),
Vrednost decimal(18,4),
ProsCena decimal(18,4) )
Set @SSQL = ' Select Sifra_Art, Sum(Case VlIzl When ''V'' Then Kolic When ''I'' Then (-1*Kolic) End),
Sum(Case VlIzl When ''V'' Then (Kolic*NabCena) When ''I'' Then (-1*Kolic*NabCena) End), 0
From Stavr
Where Datum_Dok <= ''' + Cast(@Datum as varchar(30)) + ''' AND Sifra_Oe = ' + cast(@Sifra_OE as varchar(5))
If @Celosen<>'D' SET @SSQL = @SSQL + ' AND Sifra_Art IN (Select Sifra_Art FROM ##TmpLPop) '
SET @SSQL = @SSQL + ' Group By Sifra_Art '
Insert Into #ProsCeni Exec(@SSQL)
Create Table #FinRazl
( Sifra_Art varchar(20),
IznosRazl decimal(18,4) )
Set @SSQL = ' Select Sifra_Art, Sum((Case VlIzl When ''V'' Then Iznos_Razl When ''I'' Then (-1*Iznos_Razl) End))
From RazlFin
Where Datum_Dok <= ''' + Cast(@Datum as varchar(30)) + ''' AND Sifra_Oe = ' + cast(@Sifra_OE as varchar(5))
If @Celosen<>'D' SET @SSQL = @SSQL + ' AND Sifra_Art IN (Select Sifra_Art FROM ##TmpLPop) '
SET @SSQL = @SSQL + ' Group By Sifra_Art '
Insert Into #FinRazl Exec(@SSQL)
Update #ProsCeni Set #ProsCeni.Vrednost=#ProsCeni.Vrednost+#FinRazl.IznosRazl
From #FinRazl Where #ProsCeni.Sifra_Art=#FinRazl.Sifra_Art
Update #ProsCeni Set ProsCena=Vrednost/Sostojba Where Sostojba Is Not Null And Sostojba <> 0
Update #ProsCeni Set ProsCena = 0 Where ProsCena < 0
Update #ProsCeni Set ProsCena = S.NNabCena FROM Soart S Where #ProsCeni.ProsCena = 0 AND #ProsCeni.Sifra_Art=S.Sifra_Art AND S.Sifra_OE=@Sifra_OE ---
End
If @CenaNaDat = 'D'
Begin
UPDATE #TmpCeni SET Cena =dbo.fn_CenaDatum (@Sifra_OE,Sifra_Art,@Datum,@DanCenaOE)
UPDATE #TmpCeni SET Cena = dbo.fn_VratiSkalCena(S.Cena,S.POsn, @DanCenaOE, S.DanCena) FROM Soart S
WHERE S.Sifra_OE = @Sifra_OE AND #TmpCeni.Sifra_Art = S.Sifra_Art AND (#TmpCeni.Cena = 0 or #TmpCeni.Cena IS NULL)
End
Else If @CenaNaDat = 'P'
UPDATE #TmpCeni SET Cena =S.NNabCena FROM SoArt S WHERE S.Sifra_OE=@Sifra_OE AND S.Sifra_Art=#TmpCeni.Sifra_Art
Else If @CenaNaDat = 'C'
UPDATE #TmpCeni SET Cena =C.ProsCena FROM #ProsCeni C WHERE #TmpCeni.Sifra_Art = C.Sifra_Art
Else If @CenaNaDat = 'K'
Begin
If @DanCenaOE = 'D'
UPDATE #TmpCeni SET Cena =A.Nabavna FROM KatArt A WHERE #TmpCeni.Sifra_Art = A.Sifra_Art
Else
UPDATE #TmpCeni SET Cena =dbo.fn_VratiSkalCena(A.Nabavna,T.ProcOsn, @DanCenaOE , 'D')
FROM KatArt A, Tarifi T WHERE #TmpCeni.Sifra_Art = A.Sifra_Art AND A.Sifra_Tar=T.Sifra_Tar
End
Else
UPDATE #TmpCeni SET Cena = dbo.fn_VratiSkalCena(S.Cena,S.POsn, @DanCenaOE,S.DanCena) FROM Soart S
WHERE S.Sifra_OE = @Sifra_OE AND #TmpCeni.Sifra_Art = S.Sifra_Art
DELETE FROM ##TmpZal WHERE Sifra_Art IN (SELECT Sifra_Art FROM KatArt WHERE SMatUsl='U')
UPDATE ##TmpZal SET Cena=T.Cena, DanCena=@DanCenaOE FROM #TmpCeni T WHERE ##TmpZal.Sifra_Art=T.Sifra_Art
UPDATE ##TmpZal SET POsn=T.ProcOsn, Sifra_Tar=A.Sifra_Tar FROM KatArt A,Tarifi T WHERE ##TmpZal.Sifra_Art=A.Sifra_Art AND A.Sifra_Tar=T.Sifra_Tar
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_citaj_zalihanadat]'))
drop procedure [dbo].[sp_citaj_zalihanadat]
Go
CREATE PROCEDURE sp_Citaj_ZalihaNaDat
@Sifra_OE smallint,
@Celosen char(1),
@DanCenaOE char(1),
@Datum smalldatetime,
@CenaNaDat char(1) = 'N' --N-Tekovna,D-na Datum,P-tek.Pros.nab.cena, K-nab.c. od katart (dod.16.06.05), C-pros.nab.c na dat(09.02.06)
AS
Set Nocount On
Declare @SSQL varchar(4000)
If @CenaNaDat = 'P' OR @CenaNaDat = 'C'
SET @DanCenaOE = 'N'
Declare @DaliRokKontr char(1)
SELECT @DaliRokKontr = DaliRokKontr FROM OrgEd WHERE Sifra_OE = @Sifra_OE
IF @DaliRokKontr IS NULL SET @DaliRokKontr ='N'
IF @DaliRokKontr= 'D'
SET @SSQL = 'SELECT Sifra_Art, KontrSer, '
ELSE
SET @SSQL = 'SELECT Sifra_Art, Null KontrSer, '
Set @SSQL = @SSQL + ' SUM(CASE WHEN VlIzl = ''V'' THEN Kolic ELSE (Kolic * -1) END)
FROM Stavr
WHERE Sifra_OE=' + Cast(@Sifra_OE As Varchar(10)) +
' AND Datum_Dok<=''' + Cast(@Datum As Varchar(35)) + ''' '
If @Celosen <> 'D'
Set @SSQL = @SSQL + ' AND Sifra_Art IN (SELECT Sifra_Art from ##TmpLPop) '
IF @DaliRokKontr= 'D'
SET @SSQL = @SSQL + ' GROUP BY Sifra_Art, KontrSer'
ELSE
SET @SSQL = @SSQL + ' GROUP BY Sifra_Art'
CREATE TABLE #KolicNaDat
( Sifra_Art varchar(20),
KontrSer varchar(25),
Kolic Numeric(18,6)
)
INSERT INTO #KolicNaDat EXEC (@SSQL)
--If Exists (select * from dbo.sysobjects where id = object_id(N'[TmpZal]') and OBJECTPROPERTY(id, N'IsTable') = 1)
-- Drop Table TmpZal
Create Table ##TmpZal
( Sifra_Art varchar(20),
KontrSer varchar(25),
Sifra_Boja smallint,
Sifra_Velic smallint,
KnigSost Decimal(18,6),
Cena Decimal(18, 6),
DanCena char(1),
POsn Numeric(6,2),
Sifra_Tar char(3),
Vlez Numeric(18,6)
)
CREATE TABLE #TmpCeni
( Sifra_Art varchar(20),
Cena Decimal(18,4)
)
If @CenaNaDat = 'D'
Begin
If @Celosen='D' --promeneto 05.04.05
INSERT INTO #TmpCeni (Sifra_art, Cena)
SELECT Sifra_Art,dbo.fn_CenaDatum (@Sifra_OE,Sifra_Art,@Datum,@DanCenaOE) FROM KatArt
Else
INSERT INTO #TmpCeni (Sifra_Art, Cena)
SELECT Sifra_Art,dbo.fn_CenaDatum (@Sifra_OE,Sifra_Art,@Datum,@DanCenaOE) FROM ##TmpLPop
UPDATE #TmpCeni
SET Cena = dbo.fn_VratiSkalCena(S.Cena,S.POsn, @DanCenaOE, S.DanCena)
FROM Soart S
WHERE S.Sifra_OE = @Sifra_OE AND #TmpCeni.Sifra_Art = S.Sifra_Art AND (#TmpCeni.Cena = 0 or #TmpCeni.Cena IS NULL)
End
IF @CenaNaDat = 'C' --dodadeno 09.02.06
Begin
Create Table #ProsCeni
( Sifra_Art varchar(20),
Sostojba decimal(18,4),
Vrednost decimal(18,4),
ProsCena decimal(18,4) )
Set @SSQL = ' Select Sifra_Art, Sum(Case VlIzl When ''V'' Then Kolic When ''I'' Then (-1*Kolic) End),
Sum(Case VlIzl When ''V'' Then (Kolic*NabCena) When ''I'' Then (-1*Kolic*NabCena) End), 0
From Stavr
Where Datum_Dok <= ''' + Cast(@Datum as varchar(30)) + ''' AND Sifra_Oe = ' + cast(@Sifra_OE as varchar(5))
If @Celosen<>'D' SET @SSQL = @SSQL + ' AND Sifra_Art IN (Select Sifra_Art FROM ##TmpLPop) '
SET @SSQL = @SSQL + ' Group By Sifra_Art '
Insert Into #ProsCeni Exec(@SSQL)
Create Table #FinRazl
( Sifra_Art varchar(20),
IznosRazl decimal(18,4) )
Set @SSQL = ' Select Sifra_Art, Sum((Case VlIzl When ''V'' Then Iznos_Razl When ''I'' Then (-1*Iznos_Razl) End))
From RazlFin
Where Datum_Dok <= ''' + Cast(@Datum as varchar(30)) + ''' AND Sifra_Oe = ' + cast(@Sifra_OE as varchar(5))
If @Celosen<>'D' SET @SSQL = @SSQL + ' AND Sifra_Art IN (Select Sifra_Art FROM ##TmpLPop) '
SET @SSQL = @SSQL + ' Group By Sifra_Art '
Insert Into #FinRazl Exec(@SSQL)
Update #ProsCeni Set #ProsCeni.Vrednost=#ProsCeni.Vrednost+#FinRazl.IznosRazl
From #FinRazl Where #ProsCeni.Sifra_Art=#FinRazl.Sifra_Art
Update #ProsCeni Set ProsCena=Vrednost/Sostojba Where Sostojba Is Not Null And Sostojba <> 0
Update #ProsCeni Set ProsCena = 0 Where ProsCena < 0
Update #ProsCeni Set ProsCena = S.NNabCena FROM Soart S Where #ProsCeni.ProsCena = 0 AND #ProsCeni.Sifra_Art=S.Sifra_Art AND S.Sifra_OE=@Sifra_OE ---
End
INSERT INTO ##TmpZal (Sifra_Art, KontrSer, KnigSost) SELECT Sifra_Art, KontrSer, Kolic AS KnigSost FROM #KolicNaDat
INSERT INTO ##TmpZal (Sifra_Art, KnigSost) SELECT Sifra_Art, 0 FROM SoArt WHERE Sifra_OE = @Sifra_OE
AND Sifra_Art NOT IN (SELECT DISTINCT Sifra_Art FROM #KolicNaDat)
CREATE TABLE #TmpSoa
( Sifra_Art varchar(20),
Cena decimal(18,6),
DanCena char(1),
POsn decimal(6,2),
Sifra_Tar char(3)
)
SET @SSQL = 'SELECT S.Sifra_Art, '
If @CenaNaDat = 'D'
Set @SSQL = @SSQL + ' C.Cena, '
Else If @CenaNaDat = 'P'
Set @SSQL = @SSQL + ' S.NNabCena, '
Else If @CenaNaDat = 'C'
Set @SSQL = @SSQL + ' C.ProsCena, '
Else If @CenaNaDat = 'K'
Begin
If @DanCenaOE = 'D'
Set @SSQL = @SSQL + ' A.Nabavna AS Cena, '
Else
Set @SSQL = @SSQL + ' dbo.fn_VratiSkalCena(A.Nabavna,T.ProcOsn,'''+@DanCenaOE+''', ''D'') AS Cena, '
End
Else
Set @SSQL = @SSQL + ' dbo.fn_VratiSkalCena(S.Cena,T.ProcOsn,'''+@DanCenaOE+''',S.DanCena) AS Cena, '
Set @SSQL = @SSQL + '''' + @DanCenaOE + ''' AS DanCena,T.ProcOsn AS Posn, T.Sifra_Tar AS Sifra_Tar
FROM Soart S
INNER JOIN KatArt A ON S.Sifra_Art = A.Sifra_Art
INNER JOIN Tarifi T ON A.Sifra_Tar = T.Sifra_Tar '
If @CenaNaDat = 'D'
Set @SSQL = @SSQL +'LEFT OUTER JOIN #TmpCeni C ON S.Sifra_Art = C.Sifra_Art '
ELSE IF @CenaNaDat = 'C'
Set @SSQL = @SSQL +'LEFT OUTER JOIN #ProsCeni C ON S.Sifra_Art = C.Sifra_Art '
Set @SSQL = @SSQL +' WHERE S.Sifra_OE=' + Cast(@Sifra_OE As Varchar(8)) + ' AND A.SMatUsl =''M'' '
If @Celosen <> 'D'
Set @SSQL = @SSQL + ' AND S.Sifra_Art IN (SELECT Sifra_Art from ##TmpLPop) '
INSERT INTO #TmpSoa (Sifra_Art, Cena, DanCena, POsn, Sifra_Tar) EXEC (@SSQL)
DELETE FROM ##TmpZal WHERE Sifra_Art IN (SELECT Sifra_Art FROM KatArt WHERE SMatUsl='U') --dod. 03.02.06 !!!!!!
UPDATE ##TmpZal SET Cena = S.Cena, DanCena = S.DanCena, POsn = S.POsn, Sifra_Tar = S.Sifra_Tar
FROM #TmpSoa S WHERE ##TmpZal.Sifra_Art = S.Sifra_Art
--Exec (@SSQL) --sto bara ova ovde???
Set Nocount Off
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_citaj_zalihanadatsamokolic]'))
drop procedure [dbo].[sp_citaj_zalihanadatsamokolic]
Go
CREATE PROCEDURE sp_Citaj_ZalihaNaDatSamoKolic
@KoiOE varchar(200) = NULL,
@Datum smalldatetime,
@KojaFirma char(2)
AS
--- Ne cepkaj dolzina na polinja - napraveno specijalno za Podravka
CREATE TABLE #TmpZal
( Pret char(6),
Sifra_Art char(18),
Sifra_OE char(4),
Datum char(8),
Kolic decimal(17,3),
Blok_kolic decimal(17,3),
EdM char(3),
Pogon char(4),
Konto char(4),
Vrednost decimal(13,2)
)
Declare @SSQL varchar(4000)
SET @SSQL = 'INSERT INTO #TmpZal (Sifra_Art, EdM, Kolic)
SELECT K.Alt_Sifra, Substring(K.EdMera,1,3),
SUM(CASE WHEN S.VlIzl = ''V'' THEN S.Kolic ELSE S.Kolic * -1 END) as Kolic
FROM Stavr S
INNER JOIN KatArt K ON S.Sifra_Art=K.Sifra_Art
WHERE S.Datum_Dok<=''' + Cast(@Datum As Varchar(35)) + ''' '
If @KoiOE IS NOT NULL
Set @SSQL = @SSQL + ' AND S.Sifra_OE IN (' +@KoiOE + ') '
Set @SSQL = @SSQL + ' GROUP BY K.Alt_Sifra, K.EdMera '
EXEC (@SSQL)
Declare @SDat char(8)
SET @SDat = Cast(YEAR(@Datum) As varchar(8))
IF MONTH(@Datum) < 10
SET @SDat = rtrim(@SDat) + '0'+Cast(MONTH(@Datum) As char(1))
ELSE
SET @SDat = rtrim(@SDat) + Cast(MONTH(@Datum) As char(2))
IF DAY(@Datum) < 10
SET @SDat = rtrim(@SDat) + '0'+Cast(DAY(@Datum) As char(1))
ELSE
SET @SDat = rtrim(@SDat) + Cast(DAY(@Datum) As char(2))
UPDATE #TmpZal SET Pret=@KojaFirma, Sifra_OE=' ', Pogon='5700', Konto='6611', Datum = @SDat, Blok_Kolic=0
CREATE TABLE #TmpZalV
(Sifra_Oe smallint,
Sifra_Art varchar(20),
Alt_Sifra varchar(20),
Kolic decimal(18,6),
Cena decimal(18,6))
SET @SSQL = 'INSERT INTO #TmpZalV (Sifra_OE, Sifra_Art, Alt_Sifra, Kolic)
SELECT S.Sifra_OE, S.Sifra_Art, K.Alt_Sifra,
SUM(CASE WHEN S.VlIzl = ''V'' THEN S.Kolic ELSE S.Kolic * -1 END) as Kolic
FROM Stavr S
INNER JOIN KatArt K ON S.Sifra_Art=K.Sifra_Art
WHERE S.Datum_Dok<=''' + Cast(@Datum As Varchar(35)) + ''' '
If @KoiOE IS NOT NULL
Set @SSQL = @SSQL + ' AND S.Sifra_OE IN (' +@KoiOE + ') '
Set @SSQL = @SSQL + ' GROUP BY S.Sifra_OE, S.Sifra_Art, K.Alt_Sifra '
EXEC (@SSQL)
-- UPDATE #TmpZalV SET Cena = dbo.fn_CenaDatum (Sifra_OE, Sifra_Art, @Datum, 'N')
UPDATE #TmpZalV SET Cena = dbo.fn_CenaDatum_DokCena (Sifra_OE, Sifra_Art, @Datum, 'N')
CREATE TABLE #TmpZalVSum
(Alt_Sifra varchar(20),
Vrednost decimal(18,6))
INSERT INTO #TmpZalVSum SELECT Alt_Sifra, SUM(Kolic*Cena) FROM #TmpZalV GROUP BY Alt_Sifra
UPDATE #TmpZal SET Vrednost = V.Vrednost FROM #TmpZalVSum V WHERE #TmpZal.Sifra_Art=V.Alt_Sifra
UPDATE #TmpZal SET Vrednost = 0 WHERE Vrednost IS NULL
SELECT * FROM #TmpZal WHERE Kolic <> 0
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_constraints_brisi]'))
drop procedure [dbo].[sp_constraints_brisi]
Go
CREATE PROCEDURE sp_Constraints_Brisi
AS
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'CK_AnFinDok_DatNal1' AND type = 'C')
ALTER TABLE AnFinDok DROP CONSTRAINT CK_AnFinDok_DatNal1
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'CK_AnFinDok_DatNal2' AND type = 'C')
ALTER TABLE AnFinDok DROP CONSTRAINT CK_AnFinDok_DatNal2
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'CK_Nalozi_DatNal1' AND type = 'C')
ALTER TABLE Nalozi DROP CONSTRAINT CK_Nalozi_DatNal1
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'CK_Nalozi_DatNal2' AND type = 'C')
ALTER TABLE Nalozi DROP CONSTRAINT CK_Nalozi_DatNal2
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'CK_GStav_DatNal1' AND type = 'C')
ALTER TABLE GStav DROP CONSTRAINT CK_GStav_DatNal1
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'CK_GStav_DatNal2' AND type = 'C')
ALTER TABLE GStav DROP CONSTRAINT CK_GStav_DatNal2
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'CK_Dokr_DatDok1' AND type = 'C') ALTER TABLE Dokr DROP CONSTRAINT CK_Dokr_DatDok1
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'CK_Dokr_DatDok2' AND type = 'C')
ALTER TABLE Dokr DROP CONSTRAINT CK_Dokr_DatDok2
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'CK_Naracki_DatNar1' AND type = 'C')
ALTER TABLE Naracki DROP CONSTRAINT CK_Naracki_DatNar1
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'CK_Naracki_DatNar2' AND type = 'C')
ALTER TABLE Naracki DROP CONSTRAINT CK_Naracki_DatNar2
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'CK_Popis_Datum1' AND type = 'C')
ALTER TABLE Popis DROP CONSTRAINT CK_Popis_Datum1
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'CK_Popis_Datum2' AND type = 'C')
ALTER TABLE Popis DROP CONSTRAINT CK_Popis_Datum2
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'CK_KasStav_Datum1' AND type = 'C')
ALTER TABLE KasStav DROP CONSTRAINT CK_KasStav_Datum1
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'CK_KasStav_Datum2' AND type = 'C')
ALTER TABLE KasStav DROP CONSTRAINT CK_KasStav_Datum2
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'CK_RabNal_Datum1' AND type = 'C')
ALTER TABLE RabNal DROP CONSTRAINT CK_RabNal_Datum1
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'CK_RabNal_Datum2' AND type = 'C')
ALTER TABLE RabNal DROP CONSTRAINT CK_RabNal_Datum2
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'CK_RazlCeni_DatDok1' AND type = 'C')
ALTER TABLE RazlCeni DROP CONSTRAINT CK_RazlCeni_DatDok1
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'CK_RazlCeni_DatDok2' AND type = 'C')
ALTER TABLE RazlCeni DROP CONSTRAINT CK_RazlCeni_DatDok2
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'CK_RazlFin_DatDok1' AND type = 'C')
ALTER TABLE RazlFin DROP CONSTRAINT CK_RazlFin_DatDok1
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'CK_RazlFin_DatDok2' AND type = 'C')
ALTER TABLE RazlFin DROP CONSTRAINT CK_RazlFin_DatDok2
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'CK_RazlProd_DatDok1' AND type = 'C')
ALTER TABLE RazlProd DROP CONSTRAINT CK_RazlProd_DatDok1
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'CK_RazlProd_DatDok2' AND type = 'C')
ALTER TABLE RazlProd DROP CONSTRAINT CK_RazlProd_DatDok2
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_cosmo_dadenipopustipoart]'))
drop procedure [dbo].[sp_cosmo_dadenipopustipoart]
FROM CenPoPodgr WHERE TipKup = @TipKup AND Sifra_Podelba = @Sifra_PodelArt
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajakciipromo]'))
drop procedure [dbo].[sp_dajakciipromo]
Go
CREATE PROCEDURE sp_DajAkciiPromo
@Sifra_Pat smallint = NULL
AS
IF @Sifra_Pat IS NULL
SELECT SA.*, A.Datum_Poc, A.Datum_Kr, A.Sifra_Podelba FROM AkciiPromoSta SA
INNER JOIN AkciiPromo A ON SA.Ozn_Akcija=A.Ozn_Akcija
WHERE A.Aktivna='D' AND A.Datum_Poc<=dbo.fn_VratiDatum(GetDate()) AND (A.Datum_Kr IS NULL OR A.Datum_Kr>=dbo.fn_VratiDatum(GetDate()))
ELSE
Begin
CREATE TABLE #TmpGrPat (Sif_GrPat char(6))
INSERT INTO #TmpGrPat SELECT Distinct Sif_GrPat FROM SGrPat WHERE Sifra_Pat=@Sifra_Pat
SELECT SA.*, A.Datum_Poc, A.Datum_Kr, A.Sifra_Podelba FROM AkciiPromoSta SA
INNER JOIN AkciiPromo A ON SA.Ozn_Akcija=A.Ozn_Akcija
WHERE A.Aktivna='D' AND A.Datum_Poc<=dbo.fn_VratiDatum(GetDate()) AND (A.Datum_Kr IS NULL OR A.Datum_Kr>=dbo.fn_VratiDatum(GetDate()))
AND A.Sif_GrPat IN (SELECT Sif_GrPat FROM #TmpGrPat)
End
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajakcrabatzapodelkup]'))
drop procedure [dbo].[sp_dajakcrabatzapodelkup]
Go
CREATE PROCEDURE sp_DajAkcRabatZaPodelKup
@Sifra_Art varchar(20),
@Sifra_Podelba varchar(20) = NULL,
@Sifra_Kup char(6),
@Datum smalldatetime
AS
Declare @Najde as char(1), @SpePopust as decimal(6,2)
SET @Najde = 'N'
IF @Sifra_Kup IS NOT NULL
Begin
SELECT @SpePopust=SpePopust From Cenovnik
Where Sifra_Kup = @Sifra_Kup and Sifra_art = @Sifra_Art AND PocDatum<=@Datum AND (KrajDatum IS NULL OR KrajDatum>=@Datum)
IF @@ROWCOUNT>=1 AND @SpePopust>0
Begin
SET @Najde = 'D'
SELECT '' AS Ozn_Akcija, Sifra_Art AS Sifra_Art_Osnoven, '' AS Sifra_Art_Paket, 0 AS Kolicina,
SpeCena AS Cena, SpePopust AS Rabat From Cenovnik
Where Sifra_Kup = @Sifra_Kup and Sifra_art = @Sifra_Art AND PocDatum<=@Datum AND (KrajDatum IS NULL OR KrajDatum>=@Datum)
End
End
IF @Najde = 'N'
Begin
IF @Sifra_Podelba IS NULL
SELECT SA.* FROM AkciiPromoSta SA
INNER JOIN AkciiPromo A ON SA.Ozn_Akcija=A.Ozn_Akcija
WHERE A.Aktivna='D' AND A.Datum_Poc<=@Datum AND (A.Datum_Kr IS NULL OR A.Datum_Kr>=@Datum) AND SA.Sifra_Art_Osnoven=@Sifra_Art AND A.Sifra_Podelba IS NULL
ELSE
Begin
SELECT SA.* FROM AkciiPromoSta SA
INNER JOIN AkciiPromo A ON SA.Ozn_Akcija=A.Ozn_Akcija
WHERE A.Aktivna='D' AND A.Datum_Poc<=@Datum AND (A.Datum_Kr IS NULL OR A.Datum_Kr>=@Datum)
AND SA.Sifra_Art_Osnoven=@Sifra_Art AND A.Sifra_Podelba = @Sifra_Podelba
IF @@ROWCOUNT<1
SELECT SA.* FROM AkciiPromoSta SA
INNER JOIN AkciiPromo A ON SA.Ozn_Akcija=A.Ozn_Akcija
WHERE A.Aktivna='D' AND A.Datum_Poc<=@Datum AND (A.Datum_Kr IS NULL OR A.Datum_Kr>=@Datum) AND SA.Sifra_Art_Osnoven=@Sifra_Art AND A.Sifra_Podelba IS NULL
End
End
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajarticeni]'))
drop procedure [dbo].[sp_dajarticeni]
Go
CREATE PROCEDURE sp_DajArtICeni
@Sifra_OECeni smallint = NULL,
@Sif_GrOrgCeni char(6)= NULL,
@Kto char(6) = Null,
@Sifra_Gr varchar(6) = Null,
@Sifra_Podg char(6) = Null,
@Sifra_OEDok smallint = NULL,
@Sifra_Dok smallint = NULL,
@Broj_Dok int = NULL
AS
Declare @OE_ZaCeni smallint
IF @Sifra_OECeni IS NOT NULL
SET @OE_ZaCeni = @Sifra_OECeni
ELSE
Begin
SELECT TOP 1 @OE_ZaCeni = Sifra_OE FROM SGrOrg WHERE Sif_GrOrg=@Sif_GrOrgCeni ORDER BY Sifra_OE
End
Declare @SSQL varchar(8000)
Set @SSQL='SELECT K.Sifra_Art, K.ImeArt, K.Edmera, '
IF @Sifra_OEDok IS NOT NULL AND @Sifra_DOk IS NOT NULL AND @Broj_Dok IS NOT NULL
Set @SSQL=@SSQL+'ST.MagCena Cena, ST.DanMagCena DanCena '
ELSE
Set @SSQL=@SSQL+'S.Cena, S.DanCena '
IF @Sifra_OEDok IS NOT NULL AND @Sifra_DOk IS NOT NULL AND @Broj_Dok IS NOT NULL
Set @SSQL=@SSQL+' FROM Stavr ST INNER JOIN KatArt K ON ST.Sifra_Art=K.Sifra_Art
LEFT OUTER JOIN Podgrupi PG ON K.Sifra_Podg=PG.Sifra_Podg
WHERE Sifra_OE='+Cast(@Sifra_OEDok As varchar(4))+' AND Sifra_Dok='+cast(@Sifra_Dok as varchar(4))+' AND Broj_Dok='+Cast(@Broj_Dok as varchar(10))
ELSE
Set @SSQL=@SSQL+' FROM KatArt K LEFT OUTER JOIN Soart S ON K.Sifra_Art=S.Sifra_Art
LEFT OUTER JOIN Podgrupi PG ON K.Sifra_Podg=PG.Sifra_Podg
WHERE S.Sifra_OE='+Cast(@OE_ZaCeni As varchar(4))
--IF @Sifra_OEDok IS NOT NULL AND @Sifra_DOk IS NOT NULL AND @Broj_Dok IS NOT NULL
-- Set @SSQL=@SSQL+' AND K.Sifra_Art IN (SELECT Sifra_Art FROM Stavr WHERE Sifra_OE='+
-- Cast(@Sifra_OEDok As varchar(4))+' AND Sifra_Dok='+cast(@Sifra_Dok as varchar(4))+' AND Broj_Dok='+Cast(@Broj_Dok as varchar(10))+ ')'
If @Kto Is Not Null
Set @SSQL=@SSQL+' AND K.Kto='''+@Kto+''' '
If @Sifra_Gr Is Not Null
Set @SSQL=@SSQL+' AND PG.Sifra_Gr='''+@Sifra_Gr+''' '
If @Sifra_Podg Is Not Null
Set @SSQL=@SSQL+' AND K.Sifra_Podg='''+@Sifra_Podg+''' '
Set @SSQL=@SSQL+' ORDER BY K.Sifra_Art'
EXEC(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajartikli]'))
drop procedure [dbo].[sp_dajartikli]
Go
CREATE procedure sp_DajArtikli
As
Select K.Sifra_Art, K.ImeArt Naziv, K.Sifra_Podg, P.Ime_Podg Naziv_Podg, K.EdMera JedMera FROM Katart K
INNER JOIN Podgrupi P on K.Sifra_Podg=P.Sifra_Podg ORDER BY K.Sifra_Art
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajartiklizaprenos]'))
drop procedure [dbo].[sp_dajartiklizaprenos]
Go
CREATE PROCEDURE sp_DajArtikliZaPrenos
@ObjIzvor char(1),
@ObjZaPrenos char(1)
AS
CREATE TABLE #TmpArt (Sifra_art varchar(20))
Declare @PocChr varchar(20)
Declare @KrChr varchar(20)
Declare KonfMat1 Cursor Fast_Forward For
Select Poc_char, Kr_char From KonfNasObjMatic
WHERE Tabela='KatArt'
AND PatIndex('%'+@ObjZaPrenos + '%', PrenosVoObj)<>0 --AND Izvor=@ObjIzvor -ova za 3 obj.nema da e OK
Open KonfMat1
Fetch Next From KonfMat1 Into @PocChr, @KrChr
While @@Fetch_Status = 0
Begin
INSERT INTO #TmpArt SELECT Sifra_Art FROM KatArt
Where Sifra_Art >= @PocChr AND Sifra_Art <= @KrChr AND
(Prenesen IS NULL OR PatIndex('%' + @ObjZaPrenos + '%', Prenesen)=0)
WHERE DodadenNa >= @Datum or IzmenetNa >= @Datum OR Sifra_Art IN
(SELECT DISTINCT S.Sifra_Art FROM Stavr S INNER JOIN Dokr D ON S.DokrID=D.DokrID
WHERE D.Datum_Dok>=@Datum AND D.Sifra_Za=1 AND D.Sifra_Kup=@Sifra_Kup)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajartodproizv]'))
drop procedure [dbo].[sp_dajartodproizv]
Go
CREATE PROCEDURE sp_DajArtOdProizv
@Sif_GrOrg char(6)
AS
SELECT Sifra_Art, ImeArt FROM KatArt
WHERE SMatUsl='M' and Sifra_Art IN (SELECT DISTINCT Sifra_Art FROM Soart WHERE Sifra_OE IN
(SELECT Sifra_OE FROM SGrOrg WHERE Sif_GrOrg=@Sif_GrOrg AND Sifra_OE IN
(SELECT Sifra_OE FROM OrgEd WHERE TipMag='G')))
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajartzavlezrand]'))
drop procedure [dbo].[sp_dajartzavlezrand]
Go
CREATE PROCEDURE sp_DajArtZaVlezRand
@Sif_GrOrgI char(6),
@Datum smalldatetime,
@TipDok_Izl varchar(100),
@Sifra_Kup char(6), --dobavuvac
@KoiDokrID varchar(500),
@PrimBr decimal(18,6)=0 OUTPUT,
@PrimTez decimal(18,6)=0 OUTPUT
AS
CREATE TABLE #TmpA
(Sifra_Art varchar(20),
IspBr decimal(18,6),
IspTez decimal(18,6),
ProcRand decimal(6,2))
Declare @SSQL varchar(3000)
/*SET @SSQL='SELECT Sifra_Art, SUM(Alt_Kolic), SUM(Kolic), 0 FROM Stavr WHERE Sifra_OE IN
(SELECT Sifra_OE FROM SGrOrg WHERE Sif_GrOrg='''+@Sif_GrOrgI+''') AND Sifra_Dok IN ('+@TipDok_Izl +
') AND Dobav='+@Sifra_Kup+' AND Datum_Dok='''+cast(@Datum as varchar(35))+'''
AND Sifra_Art IN (SELECT Sifra_Art FROM KatArt WHERE DaliSurov=''G'') GROUP BY Sifra_Art'
INSERT INTO #TmpA EXEC(@SSQL)
INSERT INTO #TmpA (Sifra_Art)
SELECT DISTINCT S.Sifra_Art FROM Stavr S INNER JOIN Dokr D ON S.DokrID=D.DokrID
WHERE S.Sifra_OE IN (SELECT Sifra_OE FROM SGrOrg WHERE Sif_GrOrg=@Sif_GrOrgI)
AND S.Datum_Dok=@Datum AND S.VlIzl='V' AND D.Sifra_KuP=@Sifra_Kup AND
Sifra_Art IN (SELECT Sifra_Art FROM KatArt WHERE DaliSurov='G') AND S.Sifra_Art NOT IN (SELECT Sifra_Art FROM #TmpA)
UPDATE #TmpA SET ProcRand=S.Proc_Rand FROM Stavr S INNER JOIN Dokr D ON S.DokrID=D.DokrID
WHERE #TmpA.Sifra_Art=S.Sifra_Art AND D.Sifra_Kup=@Sifra_Kup AND
S.Sifra_OE IN (SELECT Sifra_OE FROM SGrOrg WHERE Sif_GrOrg=@Sif_GrOrgI) AND S.Datum_Dok=@Datum AND S.VlIzl='V' */
SET @SSQL='SELECT S.Sifra_Art, Sum(S.Alt_Kolic), SUM(S.Kolic), AVG(S.Proc_Rand)
FROM Stavr S INNER JOIN Dokr D ON S.DokrID=D.DokrID
WHERE S.Sifra_OE IN (SELECT Sifra_OE FROM SGrOrg WHERE Sif_GrOrg='''+@Sif_GrOrgI+''')
AND S.Datum_Dok='''+cast(@Datum as varchar(35))+''' AND D.Sifra_Kup='+@Sifra_Kup+' AND S.VlIzl=''V''
GROUP BY S.Sifra_Art'
INSERT INTO #TmpA (Sifra_art, IspBr, IspTez, ProcRand) EXEC (@SSQL)
UPDATE #TmpA SET ProcRand = 0 WHERE ProcRand IS NULl
UPDATE #TmpA SET ProcRand = ProcRand / 100
UPDATE #TmpA SET ProcRand=S.Ima_Kolic FROM Sostav S WHERE #TmpA.Sifra_Art=S.Sifra_Art AND S.VodeckiArtikal='D' AND ProcRand=0
CREATE TABLE #Tmp1
(PrimBr decimal(18,6),
PrimTez decimal(18,6))
SET @SSQL='SELECT SUM(Alt_Kolic), SUM(Kolic) FROM Stavr S WHERE S.DokrID IN ('+ @KoiDokrID +')'
INSERT INTO #Tmp1 EXEC (@SSQL)
SELECT @PrimBr=PrimBr, @PrimTez=PrimTez FROM #Tmp1
SELECT S.*, A.ImeArt, A.Sifra_Tar, T.ProcOsn FROM #TmpA S
INNER JOIN KatArt A ON S.Sifra_Art=A.Sifra_Art INNER JOIN Tarifi T ON A.Sifra_Tar=T.Sifra_Tar ORDER BY S.Sifra_Art
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajartzawebnarac]'))
drop procedure [dbo].[sp_dajartzawebnarac]
Go
CREATE PROCEDURE sp_DajArtZaWEBNarac
@ZemiArtSamoOdAsortLst smallint=NULL,
@KatAsortPoSto varchar(5)=NULL,
@SamoVoPDA char(1)=NULL,
@KlkDena smallint=null,
@KojaCena char(1)='1',
@Sifra_OE smallint=NULL
AS
Declare @SSQL varchar(3000)
SET @SSQL = 'Select K.Sifra_Art, K.ImeArt, K.EdMera, K.Alt_Ime, K.Alt_EdMera,T.ProcOsn as POsn, '
IF @KojaCena='1' OR @KojaCena=' '
SET @SSQL = @SSQL + 'K.DogCena as Katal_Cena, '
ELSE IF @KojaCena='S'
SET @SSQL = @SSQL + 'CASE S.DanCena WHEN ''D'' THEN S.Cena ELSE round(S.Cena * (1+S.Posn/100),1) END As Katal_Cena, '
IF @KatAsortPoSto IS NOT NULL AND @KatAsortPoSto='HA'
SET @SSQL = @SSQL + ' K.Sifra_KHier Sifra_Podg, '
ELSE IF @KatAsortPoSto IS NOT NULL AND @KatAsortPoSto='DP'
SET @SSQL = @SSQL + ' K.Kto Sifra_Podg, '
ELSE
SET @SSQL = @SSQL + ' K.Sifra_Podg, '
SET @SSQL = @SSQL + ' K.ImaKomerc, K.Kto, K.Nom, K.Tezina, K.BTezina, 0 as Min_Narac_Kup,0 as Max_Narac_Kup, K.DeklArt
From Katart K
Left Outer Join Tarifi T On T.Sifra_Tar=K.Sifra_Tar '
IF @KojaCena='S'
SET @SSQL = @SSQL + ' LEFT OUTER JOIN Soart S ON K.Sifra_Art=S.Sifra_Art AND S.Sifra_OE='+cast(@Sifra_OE as varchar(5))
CREATE TABLE #TmpKL
(Sifra varchar(10))
IF @ZemiArtSamoOdAsortLst IS NOT NULL
Begin
Declare @BrZap integer
IF @KatAsortPoSto = 'GP'
Begin
SELECT @BrZap= COUNT(DISTINCT Sifra2) FROM KatAsortLista WHERE Broj_ALista=@ZemiArtSamoOdAsortLst
IF @BrZap IS NULL OR @BrZap=0
INSERT INTO #TmpKL SELECT Sifra_Podg FROM Podgrupi
ELSE
INSERT INTO #TmpKL SELECT DISTINCT Sifra2 FROM KatAsortLista WHERE Broj_ALista=@ZemiArtSamoOdAsortLst
SET @SSQL = @SSQL + ' INNER JOIN KatAsortLista L ON L.Sifra2=K.Sifra_Podg
WHERE L.Broj_ALista = ' + cast(@ZemiArtSamoOdAsortLst as varchar(5)) + ' '
-- ' AND K.Sifra_Podg IN (SELECT Sifra FROM #TmpKL) '
End
ELSE IF @KatAsortPoSto = 'HA'
Begin
SET @SSQL = @SSQL + ' INNER JOIN KatAsortLista L ON L.Sifra1=K.Sifra_KHier
WHERE L.Broj_ALista = ' + cast(@ZemiArtSamoOdAsortLst as varchar(5))
End
ELSE IF @KatAsortPoSto = 'DP'
Begin
SET @SSQL = @SSQL + ' INNER JOIN KatAsortLista L ON L.Sifra1=K.Kto
WHERE L.Broj_ALista = ' + cast(@ZemiArtSamoOdAsortLst as varchar(5))
End
End
ELSE
SET @SSQL = @SSQL + ' WHERE 1=1 '
IF @SamoVoPDA IS NOT NULL
SET @SSQL = @SSQL + ' AND K.VoPDA='''+@SamoVoPDA +''''
IF @KlkDena IS NOT NULL
SET @SSQL = @SSQL + ' AND (K.DodadenNa>=DateAdd(day, '+cast(@KlkDena * -1 as varchar(10))+', GetDate()) OR K.IzmenetNa>=DateAdd(day, '+cast(@KlkDena * -1 as varchar(10))+', GetDate()) )'
EXEC (@SSQL)
SET QUOTED_IDENTIFIER OFF
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajazurdok]'))
drop procedure [dbo].[sp_dajazurdok]
Go
CREATE PROCEDURE sp_DajAzurDok
@Sifra_OE Smallint,
@Datum_Od Smalldatetime,
@Datum_Do Smalldatetime,
@Sifra_Dok smallint,
@BrDokOd int,
@BrDokDo int,
@Broj_Nal int
AS
Declare @SSQL Varchar(4000)
Set @SSQL = 'SELECT D.*, T.Sif_GrDok FROM DOKR D INNER JOIN TipDok T ON D.Sifra_Dok=T.Sifra_Dok
WHERE D.BROJ_NAL IS NOT NULL AND D.SIFRA_DOK = ' + cast(@Sifra_Dok as varchar(5)) + '
AND VlIzl=''I'' AND D.SIFRA_OE '
If @Sifra_OE IS NULL
Set @SSQL = @SSQL + 'IN (SELECT Sifra_OE FROM ORGED WHERE OrgDaliFin = ''D'')'
Else
Set @SSQL = @SSQL + '= ' + Cast (@Sifra_OE as varchar(5))
If @Broj_Nal IS NOT NULL
Set @SSQL = @SSQL + ' AND D.Broj_Nal = ' + Cast(@Broj_nal as varchar(10))
If @BrDokOd IS NOT NULL
Set @SSQL = @SSQL + ' AND D.BROJ_DOK >= ' + Cast(@BrDokOd as varchar(10))
If @BrDokDo IS NOT NULL
Set @SSQL = @SSQL + ' AND D.BROJ_DOK <= ' + Cast(@BrDokDo as varchar(10))
If @Datum_Od Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Dok>=''' + Cast(@Datum_Od As Varchar(35)) + ''' '
If @Datum_Do Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Dok<=''' + Cast(@Datum_Do As Varchar(35)) + ''' '
SET @SSQL = @SSQL + ' ORDER BY D.Sifra_Nal, D.Broj_Nal, D.DokrID ' --ova ostavi go zaradi prenosnicite
EXEC(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajbarkodoviodkatpodsifra]'))
drop procedure [dbo].[sp_dajbarkodoviodkatpodsifra]
Go
CREATE PROCEDURE sp_DajBarKodoviOdKatPodSifra
AS
--SELECT Sifra_Art, Sifra_PodSif_Art Nom, rtrim(Sifra_Art)+' '+ cast(sifra_boja as varchar(4))+':'+cast(Sifra_Velic as varchar(4)) as Ozn
--FROM KatPodSifra OVA TRGNATO ZATOA STO BESE ZA MAKPRIMAT NAPRAVENO ZA EDNOKRATNA UPOTREBA I SEGA NON-STOP PREVZEMAAT MNOGU BARKODOVI NEPOTREBNO, PO POTREBA DA SE VRATI
SELECT '' Sifra_Art, '' Nom, ' :' Ozn
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajbarkodovizaprenos]'))
drop procedure [dbo].[sp_dajbarkodovizaprenos]
Go
CREATE PROCEDURE sp_DajBarKodoviZaPrenos
@ObjIzvor char(1),
@ObjZaPrenos char(1)
AS
CREATE TABLE #TmpArt (Sifra_art varchar(20))
Declare @PocChr varchar(20)
Declare @KrChr varchar(20)
Declare KonfMat1 Cursor Fast_Forward For
Select Poc_char, Kr_char From KonfNasObjMatic
WHERE Izvor=@ObjIzvor AND Tabela='KatArt'
AND PatIndex('%'+@ObjZaPrenos + '%', PrenosVoObj)<>0
Open KonfMat1
Fetch Next From KonfMat1 Into @PocChr, @KrChr
While @@Fetch_Status = 0
Begin
INSERT INTO #TmpArt SELECT Sifra_Art FROM KatArt
Where Sifra_Art >= @PocChr AND Sifra_Art <= @KrChr AND
(Prenesen IS NULL OR PatIndex('%S%', Prenesen)=0)
Fetch Next From KonfMat1 Into @PocChr, @KrChr
End
Close KonfMat1
Deallocate KonfMat1
SELECT Sifra_Art, Nom, Drugo2 FROM ABarKod
WHERE Sifra_Art IN (Select Sifra_Art FROM #TmpArt)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajbarkodovizaprenoszakup]'))
drop procedure [dbo].[sp_dajbarkodovizaprenoszakup]
Go
CREATE PROCEDURE sp_DajBarKodoviZaPrenosZaKup
@Sifra_Kup char(6),
@KlkDena smallint
AS
Declare @Datum as smalldatetime
SET @Datum = DateAdd(day, @KlkDena * -1, dbo.fn_VratiDatum(GetDate()))
SELECT Sifra_Art, Nom FROM ABarKod WHERE Sifra_Art IN
(SELECT Sifra_Art FROM KatArt
WHERE DodadenNa >= @Datum or IzmenetNa >= @Datum or Sifra_Art IN
(SELECT DISTINCT S.Sifra_Art FROM Stavr S INNER JOIN Dokr D ON S.DokrID=D.DokrID
WHERE D.Datum_Dok>=@Datum AND D.Sifra_Za=1 AND D.Sifra_Kup=@Sifra_Kup))
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajblokiranafaktura]'))
drop procedure [dbo].[sp_dajblokiranafaktura]
Go
CREATE PROCEDURE sp_DajBlokiranaFaktura
@Sifra_OE smallint,
@KoiTipDok varchar(100),
@Datum_Dok smalldatetime,
@Sifra_Kup char(6)
AS
Declare @SSQL as varchar(800)
SET @SSQL = 'SELECT Sifra_OE, Sifra_Dok, Broj_dok, Datum_Dok, Sifra_Obj, Sifra_Pat FROM Dokr
WHERE Sifra_OE = ' +Cast(@Sifra_OE as varchar(6)) + 'AND Sifra_Dok IN (' +
@KoiTipDok + ') AND Datum_Dok <= ''' + Cast(@Datum_Dok as varchar(35)) + ''' AND Blokiran = ''T'' '
IF @Sifra_kup IS NOT NULL
SET @SSQL = @SSQL + ' AND Sifra_Kup = ' + @Sifra_Kup
EXEC(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajbrsneprenfindok]'))
drop procedure [dbo].[sp_dajbrsneprenfindok]
Go
CREATE PROCEDURE sp_DajBrsNePrenFinDok
@KoiOE varchar(200)=NULL,
@KoiDok varchar(100)=NULL,
@KojObj char(1)
AS
Declare @SSQL varchar(5000)
SET @SSQL = 'SELECT Sifra_OE OE, Sifra_Dok Dok, Broj_Dok BrDok
FROM BrsFinDok WHERE (Prenesen IS NULL OR RTrim(Prenesen)='''' OR
PatIndex(''%'+@KojObj + '%'', Prenesen)=0) '
IF @KoiOE IS NOT NULL
SET @SSQL = @SSQL + ' AND Sifra_OE IN (' + @KoiOE + ') '
IF @KoiDok IS NOT NULL
SET @SSQL = @SSQL + ' AND Sifra_Dok IN (' + @KoiDok + ') '
EXEC (@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajcena_jole]'))
drop procedure [dbo].[sp_dajcena_jole]
Go
CREATE PROCEDURE sp_dajcena_jole
@Sifra_OE Smallint = Null,
@TipDokPrimarni varchar(300)='2,132',
@TipDokSekundarni varchar(300)='990',
@GrupaOrg varchar(20) = Null,
@Sifra_Art Varchar(20)
AS
Declare @Koef decimal (18, 4)
select @Koef = (select Koef
from Katart
where Sifra_Art = @Sifra_Art)
IF @Koef <= 0
begin
select 0 KgrKomRealno,
0 KgrMet,
K.ProcAlk, K.KolkuDrg,
CenKat.CenaParam, CenKat.CenaParam2,
0 GolCena,
0 MalCena,
K.Koef as KgrMetKatart,
K.GotCena,
K.DogCena DogCenaFix
From Katart K
Inner Join Tarifi Tar On Tar.Sifra_Tar = K.Sifra_Tar
Left Outer Join Drugo1 CenKat On K.Drugo1 = CenKat.Sifra_1
where K.sifrA_art = @SIfrA_Art
RETURN
end
CREATE TABLE #TempPosl
( [Kolic] decimal(18, 6) NULL ,
[Alt_Kolic] decimal(18, 6) NULL ,
[KgrKom] decimal(18, 6) NULL ,
)
if @TipDokPrimarni is not null and @TipDokPrimarni <> ''
begin
CREATE TABLE #SiteDokPrimarni
( Sifra_Dok smallint
)
insert into #SiteDokPrimarni
select cast(Pole as int) from dbo.fn_split(@TipDokPrimarni, ',')
end
if @TipDokSekundarni is not null and @TipDokSekundarni <> ''
begin
CREATE TABLE #SiteDokSekundarni
( Sifra_Dok smallint
)
insert into #SiteDokSekundarni
select cast(Pole as int) from dbo.fn_split(@TipDokSekundarni, ',')
end
CREATE TABLE #SiteOrg
( Sifra_Oe smallint
)
if @GrupaOrg is not null and @GrupaOrg <> ''
insert into #SiteOrg (Sifra_OE)
Select G.Sifra_Oe
from SGrOrg G
where G.sif_GrOrg = @GrupaOrg
else if @Sifra_Oe is not null and @Sifra_Oe <> 0
insert into #SiteOrg
values (@Sifra_Oe)
else
insert into #SiteOrg
select Sifra_Oe
from OrgEd
Declare @KolkuNajde as int
Declare @KandKgrPosl as decimal(18, 6)
set @KandKgrPosl = null
set @KolkuNajde = Null
-- Prvo vidi od primarnite priemi
if @TipDokPrimarni is not null and @TipDokPrimarni <> ''
begin
delete from #TempPosl
insert into #TempPosl
(kolic, alt_kolic, KgrKom)
Select Top 3 kolic, alt_kolic, Alt_Kolic / Kolic
From Stavr S
Inner Join #SiteDokPrimarni TD on S.Sifra_Dok = TD.Sifra_Dok
Inner Join #SiteOrg ORG on S.Sifra_Oe = ORG.Sifra_Oe
Where Sifra_Art=@Sifra_Art And VlIzl='V' And Kolic > 0
FROM CenImp WHERE Sifra_Art = @Sifra_Art AND Sif_GrOrg IN (SELECT DISTINCT Sif_GrOrg FROM SGrOrg WHERE Sifra_OE=@Sifra_OE)
UPDATE #TmpCen SET TekCena = Cena2, TekSlobSubv=SlobSubvenc2 WHERE PocDatum2 IS NOT NULL AND KrajDatum2 IS NOT NULL AND @Datum>=PocDatum2 AND @Datum<=KrajDatum2
UPDATE #TmpCen SET TekCena = Cena2, TekSlobSubv=SlobSubvenc2 WHERE PocDatum2 IS NOT NULL AND @Datum>=PocDatum2
UPDATE #TmpCen SET TekCena = Cena, TekSlobSubv=SlobSubvenc WHERE PocDatum IS NOT NULL AND @Datum>=PocDatum
DELETE FROM #TmpCen WHERE TekCena IS NULL
UPDATE #TmpCen SET OK='N'
Declare @KlkZapisi as integer
Declare @OdiPonataka as char(1)
SET @OdiPonataka = 'D'
UPDATE #TmpCen SET OK='D' WHERE Sifra_Vernost=@Sifra_Vernost AND Sifra_VidDog=@Sifra_VidDog AND Sif_GrOrg IS NOT NULL
SELECT @KlkZapisi=COUNT(*) FROM #TmpCen WHERE OK='D'
IF @KlkZapisi>0 SET @OdiPonataka = 'N'
IF @OdiPonataka = 'D'
Begin
UPDATE #TmpCen SET OK='D' WHERE Sifra_Vernost=0 AND Sifra_VidDog=@Sifra_VidDog AND Sif_GrOrg IS NOT NULL
SELECT @KlkZapisi=COUNT(*) FROM #TmpCen WHERE OK='D'
IF @KlkZapisi=0 SET @OdiPonataka = 'N'
End
IF @OdiPonataka = 'D' AND @Sifra_VidDog IN ('BIZNIS','RESIDENT')
Begin
UPDATE #TmpCen SET OK='D' WHERE Sifra_Vernost=@Sifra_Vernost AND Sifra_VidDog='POSTPAID' AND Sif_GrOrg IS NOT NULL
SELECT @KlkZapisi=COUNT(*) FROM #TmpCen WHERE OK='D'
IF @KlkZapisi=0 SET @OdiPonataka = 'N'
IF @OdiPonataka = 'D'
Begin
UPDATE #TmpCen SET OK='D' WHERE Sifra_Vernost=0 AND Sifra_VidDog='POSTPAID' AND Sif_GrOrg IS NOT NULL
SELECT @KlkZapisi=COUNT(*) FROM #TmpCen WHERE OK='D'
IF @KlkZapisi=0 SET @OdiPonataka = 'N'
End
End
IF @OdiPonataka = 'D' --bez org.ed.
Begin
UPDATE #TmpCen SET OK='D' WHERE Sifra_Vernost=@Sifra_Vernost AND Sifra_VidDog=@Sifra_VidDog AND Sif_GrOrg IS NULL
SELECT @KlkZapisi=COUNT(*) FROM #TmpCen WHERE OK='D'
IF @KlkZapisi>0 SET @OdiPonataka = 'N'
IF @OdiPonataka = 'D'
Begin
UPDATE #TmpCen SET OK='D' WHERE Sifra_Vernost=0 AND Sifra_VidDog=@Sifra_VidDog AND Sif_GrOrg IS NULL
SELECT @KlkZapisi=COUNT(*) FROM #TmpCen WHERE OK='D'
IF @KlkZapisi=0 SET @OdiPonataka = 'N'
End
IF @OdiPonataka = 'D' AND @Sifra_VidDog IN ('BIZNIS','RESIDENT')
Begin
UPDATE #TmpCen SET OK='D' WHERE Sifra_Vernost=@Sifra_Vernost AND Sifra_VidDog='POSTPAID' AND Sif_GrOrg IS NULL
SELECT @KlkZapisi=COUNT(*) FROM #TmpCen WHERE OK='D'
IF @KlkZapisi=0 SET @OdiPonataka = 'N'
IF @OdiPonataka = 'D'
Begin
UPDATE #TmpCen SET OK='D' WHERE Sifra_Vernost=0 AND Sifra_VidDog='POSTPAID' AND Sif_GrOrg IS NULL
SELECT @KlkZapisi=COUNT(*) FROM #TmpCen WHERE OK='D'
IF @KlkZapisi=0 SET @OdiPonataka = 'N'
End
End
End --bez org.ed.
IF @OdiPonataka = 'D' --prepaid
Begin
UPDATE #TmpCen SET OK='D' WHERE Sifra_Vernost=@Sifra_Vernost AND Sifra_VidDog='SLOBODEN' AND Sif_GrOrg IS NOT NULL
SELECT @KlkZapisi=COUNT(*) FROM #TmpCen WHERE OK='D'
IF @KlkZapisi>0 SET @OdiPonataka = 'N'
IF @OdiPonataka = 'D'
Begin
UPDATE #TmpCen SET OK='D' WHERE Sifra_Vernost=0 AND Sifra_VidDog='SLOBODEN' AND Sif_GrOrg IS NOT NULL
SELECT @KlkZapisi=COUNT(*) FROM #TmpCen WHERE OK='D'
IF @KlkZapisi=0 SET @OdiPonataka = 'N'
End
IF @OdiPonataka = 'D' --bez org.ed.
Begin
UPDATE #TmpCen SET OK='D' WHERE Sifra_Vernost=@Sifra_Vernost AND Sifra_VidDog=@Sifra_VidDog AND Sif_GrOrg IS NULL
SELECT @KlkZapisi=COUNT(*) FROM #TmpCen WHERE OK='D'
IF @KlkZapisi>0 SET @OdiPonataka = 'N'
IF @OdiPonataka = 'D'
Begin
UPDATE #TmpCen SET OK='D' WHERE Sifra_Vernost=0 AND Sifra_VidDog=@Sifra_VidDog AND Sif_GrOrg IS NULL
SELECT @KlkZapisi=COUNT(*) FROM #TmpCen WHERE OK='D'
IF @KlkZapisi=0 SET @OdiPonataka = 'N'
End
End --bez org.ed.
End --prepaid
SELECT Sifra_VidDog, Sifra_Vernost, TekCena, Subvencija, TekSlobSubv FROM #TmpCen WHERE OK='D'
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajdatisporakaporuti1nar]'))
drop procedure [dbo].[sp_dajdatisporakaporuti1nar]
Declare @Sifra_Pat smallint, @Sifra_Kup char(6), @Sifra_Obj as smallint
SET @DatIspOd = dbo.fn_VratiDatum(GetDate())
SET @DatIspDo = dbo.fn_VratiDatum(DateAdd(day, 20, GetDate()))
SET @DatZaklZaUtre = DateAdd(hour, 15, @DatIspOd) -- 15h denes - da se parameterizira
SELECT @Sifra_Pat=Sifra_Pat, @Sifra_Kup=Sifra_Kup, @Sifra_Obj=Sifra_Obj FROM Naracki WHERE Sifra_OE=@Sifra_OE AND Sifra_Nar=@Sifra_Nar AND Broj_Nar=@Broj_Nar
--IF @Sifra_Pat IS NULL OR @Sifra_Kup IS NULL RETURN
CREATE TABLE #TmpRuta
(DenOdNedela char(1),
Sifra_Kup char(6),
Sifra_Obj smallint,
Datum smalldatetime )
CREATE TABLE #TmpPR
(Sifra_Kup char(6),
Sifra_Obj smallint,
Datum smalldatetime)
Declare @Datum smalldatetime
Declare @Praznik as char(1)
SET @Datum=@DatIspOd
WHILE @Datum<=@DatIspDo
BEGIN
-- Specijalni ruti za fiksiran apsoluten datum
IF @Sifra_Obj IS NULL
INSERT INTO #TmpRuta (Datum, Sifra_Kup, Sifra_Obj)
SELECT Datum, Sifra_Kup, Sifra_Obj
FROM RutiZaDatum WHERE Datum=@Datum AND Sifra_Kup=@Sifra_Kup
ELSE
INSERT INTO #TmpRuta (Datum, Sifra_Kup, Sifra_Obj)
SELECT Datum, Sifra_Kup, Sifra_Obj
FROM RutiZaDatum WHERE Datum=@Datum AND Sifra_Kup=@Sifra_Kup AND Sifra_Obj=@Sifra_Obj
-- Pazi na PRAZNICITE
SELECT @Praznik=Sto FROM RabKalendar WHERE Datum=@Datum AND Sto='P'
IF @Praznik IS NULL
BEGIN
DELETE FROM #TmpPR
IF @Sifra_Obj IS NULL
Begin
INSERT INTO #TmpPR (Sifra_Kup, Datum)
SELECT Sifra_Kup, MAX(Datum_Od)
FROM RutiPlan
WHERE Sifra_Kup =@Sifra_Kup AND Datum_Od<=@Datum AND DenOdNedela=dbo.fn_DenOdNedela(@Datum)
GROUP BY Sifra_Kup
INSERT INTO #TmpRuta(Datum, Sifra_Kup, Sifra_Obj)
SELECT @Datum, R.Sifra_Kup, R.Sifra_Obj
FROM RutiPlan R
INNER JOIN #TmpPR T ON R.Sifra_Kup=T.Sifra_Kup AND R.Datum_Od=T.Datum
WHERE R.Sifra_Kup NOT IN (SELECT Sifra_Kup FROM RutiZaDatum WHERE Datum=@Datum)
AND dbo.fn_DenOdNedela(@Datum)=R.DenOdNedela AND R.Sifra_Kup =@Sifra_Kup
End
ELSE
Begin
INSERT INTO #TmpPR
SELECT Sifra_Kup, Sifra_Obj, MAX(Datum_Od)
FROM RutiPlan
WHERE Sifra_Kup =@Sifra_Kup AND Sifra_Obj=@Sifra_Obj AND Datum_Od<=@Datum AND DenOdNedela=dbo.fn_DenOdNedela(@Datum)
GROUP BY Sifra_Kup, Sifra_Obj
INSERT INTO #TmpRuta(Datum, Sifra_Kup, Sifra_Obj)
SELECT @Datum, R.Sifra_Kup, R.Sifra_Obj
FROM RutiPlan R
INNER JOIN #TmpPR T ON R.Sifra_Kup=T.Sifra_Kup AND R.Datum_Od=T.Datum
WHERE R.Sifra_Kup+cast(R.Sifra_Obj as char(4)) NOT IN (SELECT Sifra_Kup+cast(R.Sifra_Obj as char(4)) FROM RutiZaDatum WHERE Datum=@Datum)
AND dbo.fn_DenOdNedela(@Datum)=R.DenOdNedela AND R.Sifra_Kup =@Sifra_Kup AND R.Sifra_Obj=@Sifra_Obj
End
END
SET @Datum = DateAdd(day, 1, @Datum)
END
Declare @Rbr as smallint
SET @Rbr=1
WHILE @Rbr<=20
Begin
--naracki stignati do 15 casot da se isporacaat utre
IF @Rbr=1
Begin
SELECT @Dat_Isporaka = R.Datum
FROM #TmpRuta R, Naracki
WHERE Naracki.Datum_Vnes<=@DatZaklZaUtre AND Naracki.Dat_Isporaka IS NULL
AND Naracki.Sifra_OE=@Sifra_OE AND Naracki.Sifra_Nar=@Sifra_Nar AND Naracki.Broj_Nar=@Broj_Nar
AND Naracki.Sifra_Kup=R.Sifra_Kup AND Naracki.Sifra_Obj IS NULL AND R.Sifra_Obj IS NULL
AND R.Datum = DateAdd(Day, @Rbr, @DatIspOd) --bez obj.
SELECT @Dat_Isporaka = R.Datum
FROM #TmpRuta R, Naracki
WHERE Naracki.Datum_Vnes<=@DatZaklZaUtre AND Naracki.Dat_Isporaka IS NULL
AND Naracki.Sifra_OE=@Sifra_OE AND Naracki.Sifra_Nar=@Sifra_Nar AND Naracki.Broj_Nar=@Broj_Nar
AND Naracki.Sifra_Kup=R.Sifra_Kup AND Naracki.Sifra_Obj IS NOT NULL AND R.Sifra_Obj IS NOT NULL
AND Naracki.Sifra_Obj=R.Sifra_Obj AND R.Datum = DateAdd(Day, @Rbr, @DatIspOd) --so obj.
End
ELSE
Begin
SELECT @Dat_Isporaka = R.Datum
FROM #TmpRuta R, Naracki
WHERE Naracki.Dat_Isporaka IS NULL
AND Naracki.Sifra_OE=@Sifra_OE AND Naracki.Sifra_Nar=@Sifra_Nar AND Naracki.Broj_Nar=@Broj_Nar
AND Naracki.Sifra_Kup=R.Sifra_Kup AND Naracki.Sifra_Obj IS NULL AND R.Sifra_Obj IS NULL
AND R.Datum = DateAdd(Day, @Rbr, @DatIspOd) --bez obj.
SELECT @Dat_Isporaka = R.Datum
FROM #TmpRuta R, Naracki
WHERE Naracki.Dat_Isporaka IS NULL
AND Naracki.Sifra_OE=@Sifra_OE AND Naracki.Sifra_Nar=@Sifra_Nar AND Naracki.Broj_Nar=@Broj_Nar
AND Naracki.Sifra_Kup=R.Sifra_Kup AND Naracki.Sifra_Obj IS NOT NULL AND R.Sifra_Obj IS NOT NULL
AND Naracki.Sifra_Obj=R.Sifra_Obj
AND R.Datum = DateAdd(Day, @Rbr, @DatIspOd) --so obj.
End
IF @Dat_Isporaka IS NOT NULL BREAK
SET @Rbr=@Rbr+1
End
print @Dat_Isporaka
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajdivizijaoddokr]'))
drop procedure [dbo].[sp_dajdivizijaoddokr]
Go
CREATE PROCEDURE sp_DajDivizijaOdDokr
@Sifra_OE smallint,
@Sifra_Dok smallint,
@Broj_Dok int,
@Sifra_Div varchar(5) OUTPUT
AS
SELECT @Sifra_Div=Sifra_Div FROM Dokr WHERE Sifra_OE=@Sifra_OE AND Sifra_Dok=@Sifra_Dok AND Broj_Dok=@Broj_Dok
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajdivzanaracka]'))
drop procedure [dbo].[sp_dajdivzanaracka]
Go
CREATE PROCEDURE sp_DajDivzaNaracka
@Sifra_OE smallint,
@Sifra_Nar smallint,
@Broj_Nar int
AS
SELECT Distinct A.Sifra_Div FROM StaNarac S INNER JOIN KatArt A ON A.Sifra_Art=S.Sifra_Art
WHERE S.Sifra_OE=@Sifra_Oe AND S.Sifra_Nar=@Sifra_Nar AND S.Broj_Nar=@Broj_Nar
ORDER BY A.Sifra_Div
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajdobavuvaci]'))
drop procedure [dbo].[sp_dajdobavuvaci]
Go
CREATE PROCEDURE sp_DajDobavuvaci
AS
Select Distinct K.Kto, Kup.ImeKup
From Katart K
Inner Join Komint Kup On Kup.Sifra_Kup=K.Kto ORDER BY Kup.ImeKup
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajdok]'))
drop procedure [dbo].[sp_dajdok]
Go
CREATE procedure sp_DajDok
@Sifra_Oe smallint,
@Datum_dok smalldatetime
As
Select D.DokrID, D.Sifra_Oe,O.ImeOrg, D.Broj_Dok, D.Sifra_Dok From Dokr D
Inner Join Orged O on D.Sifra_oe=O.Sifra_Oe
Where D.Sifra_Oe=@Sifra_Oe and D.Datum_Dok=@Datum_Dok
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajdok100zaazur]'))
drop procedure [dbo].[sp_dajdok100zaazur]
Go
CREATE PROCEDURE sp_DajDok100ZaAzur
@Sifra_OE Smallint,
@Datum_Od Smalldatetime,
@Datum_Do Smalldatetime,
@BrDokOd int=Null,
@BrDokDo int=Null
AS
Declare @SSQL Varchar(4000)
Declare @Stapka1 as decimal
Declare @Stapka2 as decimal
SELECT @Stapka1=Stapka1, @Stapka2=Stapka2 FROM DDVStapki WHERE @Datum_Od >= Datum_Od and @Datum_Od <= Datum_Do
Set @SSQL = 'SELECT S.Sifra_OE, S.Datum_Dok,
SUM(CASE When S.POsn='+Cast(@Stapka1 as varchar(30))+' Then Kolic*DokCena Else 0 End)DokVr1,
SUM(CASE When S.POsn='+Cast(@Stapka1 as varchar(30))+' Then (Kolic*DokCena)-Kolic*DokCena/(1+POsn/100) Else 0 End) DokDDV1,
SUM(CASE When S.POsn='+Cast(@Stapka2 as varchar(30))+' Then Kolic*DokCena Else 0 End)DokVr2,
SUM(CASE When S.POsn='+Cast(@Stapka2 as varchar(30))+' Then (Kolic*DokCena)-Kolic*DokCena/(1+POsn/100) Else 0 End) DokDDV2
FROM Stavr S INNER JOIN DOKR D ON S.DokrID=D.DokrID
WHERE D.BROJ_NAL IS NULL AND D.SIFRA_DOK IN (100,101) AND D.SIFRA_OE '
If @Sifra_OE IS NULL
Set @SSQL = @SSQL + 'IN (SELECT Sifra_OE FROM ORGED WHERE OrgDaliFin = ''D'')'
Else
Set @SSQL = @SSQL + '= ' + Cast (@Sifra_OE as varchar(5))
If @BrDokOd IS NOT NULL
Set @SSQL = @SSQL + ' AND D.BROJ_DOK >= ' + Cast(@BrDokOd as varchar(10))
If @BrDokDo IS NOT NULL
Set @SSQL = @SSQL + ' AND D.BROJ_DOK <= ' + Cast(@BrDokDo as varchar(10))
If @Datum_Od Is NOT Null
SET @SSQL = @SSQL + ' AND D.Datum_Dok>=''' + Cast(@Datum_Od As Varchar(35)) + ''' '
If @Datum_Do Is NOT Null
SET @SSQL = @SSQL + ' AND D.Datum_Dok<=''' + Cast(@Datum_Do As Varchar(35)) + ''' '
SET @SSQL = @SSQL + ' GROUP BY S.Sifra_OE, S.Datum_Dok
ORDER BY S.Sifra_OE, S.Datum_Dok'
EXEC(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajdokbeztransnal]'))
drop procedure [dbo].[sp_dajdokbeztransnal]
Go
CREATE PROCEDURE sp_DajDokBezTransNal
@Sifra_OE smallint = Null,
@Datum_Od smalldatetime = Null,
@Datum_Do smalldatetime = Null
AS
Declare @SSQL varchar(2000)
SET @SSQL= 'SELECT D.DokrID, D.Sifra_OE OEDok, D.Sifra_Dok, D.Broj_Dok,
D.Datum_Dok, D.Toc200, D.Sifra_Kup, K.ImeKup
From Dokr D
LEFT OUTER JOIN Komint K ON D.Sifra_Kup = K.Sifra_Kup WHERE D.VlIzl=''I''
AND D.DokrID NOT IN (SELECT DokrID FROM TransNalStav)'
IF @Sifra_OE IS NOT NULL
SET @SSQL = @SSQL + ' AND D.Sifra_OE=' + cast(@Sifra_OE as varchar(5))
IF @Datum_Od IS NOT NULL
SET @SSQL = @SSQL + ' AND D.Datum_Dok>=''' + cast(@Datum_Od as varchar(35))+''' '
IF @Datum_Do IS NOT NULL
SET @SSQL = @SSQL + ' AND D.Datum_Dok<=''' + cast(@Datum_Do as varchar(35))+''' '
EXEC (@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajdokrid]'))
drop procedure [dbo].[sp_dajdokrid]
Go
CREATE PROCEDURE sp_DajDokrID
@Sifra_Oe smallint,
@Sifra_Dok Smallint,
@Broj_Dok int
AS
SELECT DokrID FROM Dokr
WHERE Sifra_Oe=@Sifra_Oe AND Sifra_Dok=@Sifra_Dok AND Broj_Dok=@Broj_Dok
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajdokridrealizacija]'))
SELECT @Sifra_Za = Sifra_ZA FROM TipDok WHERE Sifra_Dok=@Sifra_Dok
SET @SSQLUsl = ' WHERE D.BROJ_NAL IS NULL And D.Toc200 is not null AND D.SIFRA_DOK = ' + cast(@Sifra_Dok as varchar(5)) + ' AND D.SIFRA_OE '
--SET @SSQLUsl = @SSQLUsl + ' AND D.Toc200 IS NOT NULL '
If @Sifra_OE IS NULL
Set @SSQLUsl = @SSQLUsl + 'IN (SELECT Sifra_OE FROM ORGED WHERE OrgDaliFin = ''D'')'
Else
Set @SSQLUsl = @SSQLUsl + '= ' + Cast (@Sifra_OE as varchar(5))
If @BrDokOd IS NOT NULL
Set @SSQLUsl = @SSQLUsl + ' AND D.BROJ_DOK >= ' + Cast(@BrDokOd as varchar(10))
If @BrDokDo IS NOT NULL
Set @SSQLUsl = @SSQLUsl + ' AND D.BROJ_DOK <= ' + Cast(@BrDokDo as varchar(10))
IF @TipDFiscSamoPecKnz = 'D'
Begin
If @Datum_Od Is NOT Null
SET @SSQLUsl = @SSQLUsl + ' AND ((T.DaliFisc IN (''D'', ''V'') AND D.Dat_Pec_Fisc IS NOT NULL AND D.Dat_Pec_Fisc>=''' + Cast(@Datum_Od As Varchar(35)) + ''')
OR (T.DaliFisc NOT IN (''D'', ''V'') AND D.Datum_Dok>=''' + Cast(@Datum_Od As Varchar(35)) + '''))'
If @Datum_Do Is NOT Null
SET @SSQLUsl = @SSQLUsl + ' AND ((T.DaliFisc IN (''D'', ''V'') AND D.Dat_Pec_Fisc IS NOT NULL AND D.Dat_Pec_Fisc<''' + Cast(@Datum_Do1 As Varchar(35)) + ''')
OR (T.DaliFisc NOT IN (''D'', ''V'') AND D.Datum_Dok<=''' + Cast(@Datum_Do As Varchar(35)) + '''))'
End
ELSE
Begin
If @Datum_Od Is NOT Null
SET @SSQLUsl = @SSQLUsl + ' AND D.Datum_Dok>=''' + Cast(@Datum_Od As Varchar(35)) + ''' '
If @Datum_Do Is NOT Null
SET @SSQLUsl = @SSQLUsl + ' AND D.Datum_Dok<=''' + Cast(@Datum_Do As Varchar(35)) + ''' '
End
If @Sifra_Prim IS NOT NULL
Set @SSQLUsl = @SSQLUsl + ' AND Sifra_Prim = ' + Cast (@Sifra_Prim as varchar(5))
IF @SamoLikvidirani='D'
SET @SSQLUsl = @SSQLUsl + ' AND (D.Likvid IS NULL OR D.Likvid<>''M'')'
IF @TipDFiscSamoPecKnz = 'D'
SET @SSQLUsl = @SSQLUsl + ' AND (T.DaliFisc IS NULL OR T.DaliFisc NOT IN (''D'', ''V'') OR (D.Pec_Fisc IS NOT NULL AND D.Pec_Fisc>0)) '
IF @Sifra_Kup IS NOT NULL
SET @SSQLUsl = @SSQLUsl + ' AND D.Sifra_Kup = ''' + @Sifra_Kup + ''' '
IF @OdrediImaPovDivVoDok='D'
Begin
CREATE TABLE #TmpDiv
(DokrID int, BrDiv smallint, Sifra_Div smallint)
SET @SSQLPom = 'SELECT S.DokrID, COUNT(Distinct A.Sifra_Div) FROM Stavr S INNER JOIN KatArt A ON S.Sifra_Art=A.Sifra_Art
WHERE S.DokrID IN (SELECT D.DokrID FROM Dokr D INNER JOIN TipDok T ON D.Sifra_Dok=T.Sifra_Dok '
INSERT INTO #TmpDiv (DokrID, BrDiv) EXEC (@SSQLPom + @SSQLUsl +') GROUP BY S.DokrID')
--print @SSQLPom + @SSQLUsl
UPDATE #TmpDiv SET Sifra_Div=A.Sifra_Div FROM Stavr S, KatArt A WHERE #TmpDiv.BrDiv=1 AND #TmpDiv.DokrID=S.DokrID AND S.Sifra_Art=A.Sifra_Art
End
IF @Sifra_Za = 3
SET @SSQLOrd = ' ORDER BY D.DokrID ' --ova ostavi go zaradi prenosnicite
ELSE
SET @SSQLOrd = ' ORDER BY D.Sifra_OE, D.Broj_Dok '
--Set @SSQL = 'SELECT D.DokrID, D.Sifra_Oe, D.Sifra_Dok, D.Broj_Dok, Case D.Sifra_Za when 3 then D.ImaDodatna Else '''' End as ImaDodatna, D.Sifra_Prim, D.Sifra_Za, D.VlIzl, 12.03.12
Set @SSQL = 'SELECT D.DokrID, D.Sifra_Oe, D.Sifra_Dok, D.Broj_Dok, Case When D.Sifra_Za=3 OR D.ImaDodatna=''Z'' then D.ImaDodatna Else '''' End as ImaDodatna, D.Sifra_Prim, D.Sifra_Za, D.VlIzl,
SET @SSQL = 'SELECT D.Sifra_Kup, COUNT(DISTINCT D.Datum_Dok) FROM Dokr D INNER JOIN Stavr S ON D.DokrID=S.DokrID
WHERE D.Sifra_Kup IN (SELECT Sifra_Kup FROM #TmpKup) AND S.Sifra_Art IN (SELECT Sifra_Art FROM #TmpArtSkala) AND '+@Usl +' GROUP BY D.Sifra_Kup'
INSERT INTO #TmpP EXEC (@SSQL)
UPDATE #TmpKup SET VkDenovi = T.NPod FROM #TmpP T WHERE #TmpKup.Sifra_Kup=T.Sifra_Kup AND Sifra_Art IN (SELECT Sifra_Art FROM #TmpArtSkala)
DELETE FROM #TmpP
SET @SSQL = 'SELECT D.Sifra_Kup, SUM(S.Kolic) FROM Dokr D INNER JOIN Stavr S ON S.DokrID=D.DokrID
WHERE D.Sifra_Kup IN (SELECT Sifra_Kup FROM #TmpKup) AND S.Sifra_Art IN (SELECT Sifra_Art FROM #TmpArtSkala) AND ' +@Usl +' GROUP BY D.Sifra_Kup'
INSERT INTO #TmpP EXEC (@SSQL)
UPDATE #TmpKup SET ProsNab = T.NPod/VkDenovi FROM #TmpP T WHERE #TmpKup.Sifra_Kup=T.Sifra_Kup AND #TmpKup.VkDenovi<>0 AND Sifra_Art IN (SELECT Sifra_Art FROM #TmpArtSkala)
/*UPDATE #TmpKup SET Cena=19 WHERE Sifra_Art IN (SELECT Sifra_Art FROM #TmpArtSkala)
UPDATE #TmpKup SET Cena=19.5 WHERE ProsNab>50 AND ProsNab<=100 AND Sifra_Art IN (SELECT Sifra_Art FROM #TmpArtSkala)
UPDATE #TmpKup SET Cena=20 WHERE ProsNab>100 AND ProsNab<=150 AND Sifra_Art IN (SELECT Sifra_Art FROM #TmpArtSkala)
UPDATE #TmpKup SET Cena=20.25 WHERE ProsNab>150 AND ProsNab<=200 AND Sifra_Art IN (SELECT Sifra_Art FROM #TmpArtSkala)
UPDATE #TmpKup SET Cena=20.5 WHERE ProsNab>200 AND Sifra_Art IN (SELECT Sifra_Art FROM #TmpArtSkala) */
UPDATE #TmpKup SET Cena=K.Cena FROM KDrugo1 K WHERE Sifra_Art IN (SELECT Sifra_Art FROM #TmpArtSkala) AND #TmpKup.KDrugo1=K.Sifra_1K
UPDATE #TmpKup SET Cena=K.Cena+0.5 FROM KDrugo1 K WHERE ProsNab>50 AND ProsNab<=100 AND Sifra_Art IN (SELECT Sifra_Art FROM #TmpArtSkala) AND #TmpKup.KDrugo1=K.Sifra_1K
UPDATE #TmpKup SET Cena=K.Cena+1 FROM KDrugo1 K WHERE ProsNab>100 AND ProsNab<=150 AND Sifra_Art IN (SELECT Sifra_Art FROM #TmpArtSkala) AND #TmpKup.KDrugo1=K.Sifra_1K
UPDATE #TmpKup SET Cena=K.Cena+1.25 FROM KDrugo1 K WHERE ProsNab>150 AND ProsNab<=200 AND Sifra_Art IN (SELECT Sifra_Art FROM #TmpArtSkala) AND #TmpKup.KDrugo1=K.Sifra_1K
UPDATE #TmpKup SET Cena=K.Cena+1.5 FROM KDrugo1 K WHERE ProsNab>200 AND Sifra_Art IN (SELECT Sifra_Art FROM #TmpArtSkala) AND #TmpKup.KDrugo1=K.Sifra_1K
UPDATE #TmpKup SET Cena = C.Cena FROM Cenovnik C WHERE #TmpKup.Sifra_Kup=C.Sifra_Kup AND #TmpKup.Sifra_Art=C.Sifra_Art
FROM AnFinDok A LEFT OUTER JOIN Patnici P ON A.Sifra_Pat=P.Sifra_Pat
WHERE (A.OdNadvor IS NULL or LTrim(A.OdNadvor)='''') AND A.Sifra_Dok = ' + cast(@Sifra_Dok as varchar(5)) + ' '
If @Sifra_OE IS NOT NULL
Set @SSQL = @SSQL + ' AND A.Sifra_OE = ' + Cast (@Sifra_OE as varchar(5))
If @Sifra_Nal IS NOT NULL
Set @SSQL = @SSQL + ' AND A.Sifra_Nal = ' + Cast (@Sifra_Nal as varchar(5))
If @BrDokOd IS NOT NULL
Set @SSQL = @SSQL + ' AND A.BROJ_DOK >= ' + Cast(@BrDokOd as varchar(10))
If @BrDokDo IS NOT NULL
Set @SSQL = @SSQL + ' AND A.BROJ_DOK <= ' + Cast(@BrDokDo as varchar(10))
If @Datum_Od Is NOT Null
SET @SSQL = @SSQL + ' AND A.Datum_Dok>=''' + Cast(@Datum_Od As Varchar(35)) + ''' '
If @Datum_Do Is NOT Null
SET @SSQL = @SSQL + ' AND A.Datum_Dok<=''' + Cast(@Datum_Do As Varchar(35)) + ''' '
--print(@SSQL)
EXEC(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajgotovpro_sostavkontr]'))
drop procedure [dbo].[sp_dajgotovpro_sostavkontr]
Go
CREATE PROCEDURE sp_DajGotovPro_SostavKontr
@Sifra_Art varchar (20)
AS
SELECT DISTINCT KontrSer from SostavKontr
where Sifra_Art = @SifrA_art
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajgrorgzaoe]'))
drop procedure [dbo].[sp_dajgrorgzaoe]
Go
CREATE PROCEDURE sp_DajGrOrgZaOE
@Sifra_OE Smallint,
@Sif_GrOrg varchar(12) OUTPUT
AS
SELECT @Sif_GrOrg = G.Sif_GrOrg FROM GrOrg G
Inner Join SGrOrg S On G.Sif_GrOrg=S.Sif_GrOrg And S.Sifra_OE= @Sifra_OE
WHERE G.Edinstvena='D'
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajgrupizawebnarac]'))
drop procedure [dbo].[sp_dajgrupizawebnarac]
Go
CREATE PROCEDURE sp_DajGrupiZaWEBNarac
@WebPodelPoSto varchar(5) = Null,
@ZemiArtSamoOdAsortLst smallint = Null,
@SamoVoPDA char(1)=NULL
AS
IF @WebPodelPoSto IS NOT NULL
BEGIN
IF @WebPodelPoSto = 'DP'
IF @SamoVoPDA IS NOT NULL
Select Sifra_Div as Sifra_Gr,ImeDiv as Ime_Gr,'' Propagiraj From Divizii
ELSE
SELECT Sifra_Gr, Ime_Gr, '' Propagiraj FROM Grupi
END
ELSE
SELECT G.*, L.Reden_Broj FROM Grupi G INNER JOIN KatAsortLista L ON G.Sifra_gr=L.Sifra1 WHERE L.Broj_ALista = @ZemiArtSamoOdAsortLst
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajgrupizawebnarac1]'))
drop procedure [dbo].[sp_dajgrupizawebnarac1]
Go
CREATE PROCEDURE sp_DajGrupiZaWEBNarac1
AS
SELECT '001' As Sifra_Gr, '.' As Ime_Gr, '' Propagiraj
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajizn_marzazacena]'))
drop procedure [dbo].[sp_dajizn_marzazacena]
Go
CREATE PROCEDURE Sp_DajIzn_MarzaZaCena
@Cena decimal(18,6),
@Izn_Marza decimal(18,6) output
AS
SELECT @Izn_Marza=Izn_Marza FROM LstPartic
WHERE @Cena>=Iznos_Od AND @Cena<=Iznos_Do
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajiznosodkasstav]'))
drop procedure [dbo].[sp_dajiznosodkasstav]
Go
CREATE PROCEDURE sp_DajIznosOdKasStav
@Sifra_Nal smallint,
@Datum_Nal smalldatetime,
@Kto_Anal char(10),
@DP char(1),
@Sifra_OE smallint,
@ProkDali char(1)='D',
@Iznos decimal(18,4)= 0 OUTPUT
AS
IF @DP='D'
Begin
IF @ProkDali='N'
Begin
SELECT @Iznos=SUM(Dolzi) FROM KasStav WHERE Sifra_Nal=@Sifra_Nal AND Dod_Datum=@Datum_Nal AND Kto_Anal=@Kto_Anal AND Sifra_OE=@Sifra_OE
SELECT KStaID FROM KasStav WHERE Sifra_Nal=@Sifra_Nal AND Dod_Datum=@Datum_Nal AND Kto_Anal=@Kto_Anal AND Sifra_OE=@Sifra_OE
End
ELSE
Begin
SELECT @Iznos=SUM(Dolzi) FROM KasStav WHERE Sifra_Nal=@Sifra_Nal AND Dod_Datum=@Datum_Nal AND Kto_Anal=@Kto_Anal AND Sifra_OE=@Sifra_OE AND Proknizen IS NULL
SELECT KStaID FROM KasStav WHERE Sifra_Nal=@Sifra_Nal AND Dod_Datum=@Datum_Nal AND Kto_Anal=@Kto_Anal AND Sifra_OE=@Sifra_OE AND Proknizen IS NULL
End
End
ELSE
Begin
IF @ProkDali='N'
Begin
SELECT @Iznos=SUM(Pobaruva) FROM KasStav WHERE Sifra_Nal=@Sifra_Nal AND Dod_Datum=@Datum_Nal AND Kto_Anal=@Kto_Anal AND Sifra_OE=@Sifra_OE
SELECT KStaID FROM KasStav WHERE Sifra_Nal=@Sifra_Nal AND Dod_Datum=@Datum_Nal AND Kto_Anal=@Kto_Anal AND Sifra_OE=@Sifra_OE
End
ELSE
Begin
SELECT @Iznos=SUM(Pobaruva) FROM KasStav WHERE Sifra_Nal=@Sifra_Nal AND Dod_Datum=@Datum_Nal AND Kto_Anal=@Kto_Anal AND Sifra_OE=@Sifra_OE AND Proknizen IS NULL
SELECT KStaID FROM KasStav WHERE Sifra_Nal=@Sifra_Nal AND Dod_Datum=@Datum_Nal AND Kto_Anal=@Kto_Anal AND Sifra_OE=@Sifra_OE AND Proknizen IS NULL
End
End
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajkaraktzadrugo7]'))
drop procedure [dbo].[sp_dajkaraktzadrugo7]
Go
CREATE PROCEDURE sp_DajKaraktZaDrugo7
@Sifra_7 SMALLINT,
@Sifra_Art VARCHAR(20)
AS
CREATE TABLE #Tmp1
(Sifra_Karakt smallint,
ImeKarakt nvarchar(40))
-- Zemi ja listata na site mozzni karakteristiki na ovoj tip
INSERT INTO #Tmp1 (Sifra_Karakt, ImeKarakt)
SELECT TK.Sifra_Karakt, K.ImeKarakt
FROM TipKarakt TK
inner JOIN Karakterist K ON TK.Sifra_Karakt = K.Sifra_Karakt
WHERE TK.Sifra_7 = @Sifra_7
-- Vidi ako veke ima nekoi karakteristiki so PODATOCI, zemi go PODATOCITE
SELECT KK.Sifra_Karakt, KK.ImeKarakt, A.Karakt
FROM #Tmp1 KK
left outer JOIN KatKarakt A ON KK.Sifra_Karakt = A.Sifra_Karakt and A.Sifra_Art = @Sifra_Art
ORDER BY KK.Sifra_Karakt
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajkartcareklzakup]'))
drop procedure [dbo].[sp_dajkartcareklzakup]
Go
CREATE PROCEDURE sp_DajKartcaReklZaKup
@Sifra_Kup char(6),
@Sifra_Obj smallint,
@Sifra_Pat smallint = NULL
AS
Declare @SSQL varchar(3000)
SET @SSQL='SELECT S.Sifra_Art, A.ImeArt, A.Lokacija, S.Kolic, S.Datum_Dok, S.Sifra_Oe, S.Sifra_Dok, S.Broj_Dok
FROM Stavr S INNER JOIN Dokr D ON S.DokrID=D.DokrID
INNER JOIN KatArt A ON S.Sifra_Art=A.Sifra_Art
WHERE D.Sifra_Kup='+@Sifra_Kup +' AND D.VlIzl=''I'' AND A.Lokacija IN (''OS'', ''REK'', ''REP'') '
IF @Sifra_Obj IS NOT NULL
SET @SSQL =@SSQL +' AND D.Sifra_Obj='+cast(@Sifra_Obj as varchar(5))+' '
IF @Sifra_Pat IS NOT NULL
SET @SSQL =@SSQL +' AND D.Sifra_Pat='+cast(@Sifra_Pat as varchar(5))+' '
EXEC(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajkasovizakniz]'))
substring('K'+P_I+Cast(K.Broj_Dok as varchar(8))+' '+Substring(Case WHEN Kup.ImeKup IS NULL THEN K.Opis ELSE rtrim(K.Opis)+' '+ Kup.ImeKup END,1,40),1,40),
K.Danok1, K.Danok2, K.Kto_Osnovica
FROM KasStav K LEFT OUTER JOIN AnFinDok A ON K.AnID=A.AnID LEFT OUTER JOIN Komint Kup ON A.Sifra_Kup=Kup.Sifra_Kup
WHERE K.Sifra_Nal = @Sifra_Nal AND K.Broj_Nal = @Broj_Nal
substring('K'+P_I+Cast(K.Broj_Dok as varchar(8))+' '+Substring(Case WHEN Kup.ImeKup IS NULL THEN K.Opis ELSE rtrim(K.Opis)+' '+ Kup.ImeKup END,1,40),1,40)
FROM KasStav K LEFT OUTER JOIN AnFinDok A ON K.AnID=A.AnID LEFT OUTER JOIN Komint Kup ON A.Sifra_Kup=Kup.Sifra_Kup
LEFT OUTER JOIN KasStavDetal KD ON K.KStaID = KD.KStaID
WHERE K.Sifra_Nal = @Sifra_Nal AND K.Broj_Nal = @Broj_Nal AND KD.KStaID IS NULL
CASE WHEN K.Dolzi<>0 THEN KD.Iznos ELSE 0 END, CASE WHEN K.Pobaruva<>0 THEN KD.Iznos ELSE 0 END,
CASE WHEN K.Dolzi<>0 AND K.Kurs>0 THEN KD.Iznos/K.Kurs ELSE 0 END, CASE WHEN K.Pobaruva<>0 AND K.Kurs>0 THEN KD.Iznos/K.Kurs ELSE 0 END,
substring('K'+P_I+Cast(K.Broj_Dok as varchar(8))+' '+Substring(Case WHEN Kup.ImeKup IS NULL THEN K.Opis ELSE rtrim(K.Opis)+' '+ Kup.ImeKup END,1,40),1,40)
FROM KasStav K LEFT OUTER JOIN AnFinDok A ON K.AnID=A.AnID LEFT OUTER JOIN Komint Kup ON A.Sifra_Kup=Kup.Sifra_Kup
LEFT OUTER JOIN KasStavDetal KD ON K.KStaID = KD.KStaID
WHERE K.Sifra_Nal = @Sifra_Nal AND K.Broj_Nal = @Broj_Nal AND KD.KStaID IS NOT NULL
SELECT @wKojaCena = KojaCena FROM Komint WHERE Sifra_Kup=@Sifra_Kup
IF @wKojaCena<>''
Begin
--SELECT @wOsnCenKomBazen = OsnCenKomBazen FROM Konfig vaka e najlesno, ama go nema vo sekoja baza
CREATE TABLE #TmpKom (Sifra_Kup char(6))
SET @SSQL='SELECT OsnCenKomBazen FROM Konfig'
INSERT INTO #TmpKom EXEC (@SSQL)
SELECT @wOsnCenKomBazen = Sifra_Kup FROM #TmpKom
UPDATE #TmpArtKomerc SET Cena=C.Cena FROM Cenovnik C WHERE #TmpArtKomerc.Sifra_Art=C.Sifra_Art AND C.Sifra_Kup=substring(@wOsnCenKomBazen, 1, 5)+@wKojaCena AND C.Cena>0
UPDATE #TmpArtKomerc SET Uces=C.Popust FROM Cenovnik C WHERE #TmpArtKomerc.Sifra_Art=C.Sifra_Art AND C.Sifra_Kup=substring(@wOsnCenKomBazen, 1, 5)+@wKojaCena AND C.Popust>0
End
End
IF @PoCenovnik='D' OR @PoCenovnik='O'
BEGIN
UPDATE #TmpArtKomerc SET Cena=C.Cena FROM Cenovnik C WHERE #TmpArtKomerc.Sifra_Art=C.Sifra_Art AND C.Sifra_Kup=@Sifra_Kup AND C.Cena>0
UPDATE #TmpArtKomerc SET Uces=C.Popust FROM Cenovnik C WHERE #TmpArtKomerc.Sifra_Art=C.Sifra_Art AND C.Sifra_Kup=@Sifra_Kup AND C.Popust>0
END
IF @RabatOdPodgr='D'
Begin
SELECT @TipKup=TipKup FROM Komint WHERE Sifra_Kup=@Sifra_Kup
UPDATE #TmpArtKomerc SET Uces=C.Uces FROM CenPoPodgr C, Komint K, KatArt A WHERE #TmpArtKomerc.Sifra_Art=A.Sifra_Art AND
C.Sifra_Podelba=A.Sifra_Podg AND C.TipKup=@TipKup
End
SELECT * FROM #TmpArtKomerc
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajkomint]'))
drop procedure [dbo].[sp_dajkomint]
Go
CREATE procedure sp_DajKomint
As
Select Sifra_Kup Sifra_Komint, ImeKup NazivKomint, Adresa, Smesto Mesto, Zemja Zemlja From Komint ORDER BY Sifra_Kup
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajkomintzaotkup]'))
drop procedure [dbo].[sp_dajkomintzaotkup]
Go
CREATE PROCEDURE sp_DajKomintZaOtkup
@Sifra_OE smallint,
@Sifra_Dok smallint=88,
@Datum_Dok smalldatetime,
@KDrugo1 Smallint,
@Sifra_Art varchar(20)
AS
Declare @SSQL Varchar(4000)
CREATE TABLE #TmpDok
(DokrID int,
Broj_Dok int,
Sifra_Kup char(6),
ImeKup varchar(40),
Kolic decimal(18,6))
INSERT INTO #TmpDok (DokrID, Broj_Dok, Sifra_Kup, ImeKup, Kolic)
SELECT D.DokrID, D.Broj_Dok, K.Sifra_Kup, K.ImeKup, S.Kolic FROM Dokr D
LEFT OUTER JOIN Komint K ON D.Sifra_Kup=K.Sifra_Kup
LEFT OUTER JOIN Stavr S ON D.DokrID=S.DokrID
WHERE D.Sifra_OE=@Sifra_OE AND D.Sifra_Dok=@Sifra_Dok AND D.Datum_Dok=@Datum_Dok AND K.KDrugo1=@KDrugo1 AND S.Sifra_Art=@Sifra_Art
INSERT INTO #TmpDok (DokrID, Broj_Dok, Sifra_Kup, ImeKup, Kolic)
SELECT 0 DokrID, 0 Broj_Dok, K.Sifra_Kup, K.ImeKup, 0 Kolic FROM Komint K
WHERE K.KDrugo1=@KDrugo1 AND K.Sifra_Kup NOT IN (SELECT Sifra_Kup FROM #TmpDok)
SELECT * FROM #TmpDok ORDER BY Sifra_Kup
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajkomintzapat]'))
SET @SSQL = @SSQL + ' FROM KOMINT WHERE (Aktiven IS NULL OR Aktiven <>''N'')
AND Sifra_Kup IN (SELECT Sifra_Kup FROM KomintPat WHERE Sifra_Pat = ' + cast(@Sifra_Pat as varchar(5)) + ')'
If @Sifra_Grad IS NOT NULL
SET @SSQL = @SSQL + ' AND (Sifra_Grad = ' + cast(@Sifra_Grad as varchar(5)) + '
OR Sifra_Kup IN (Select Sifra_Kup from KObjekti Where Sifra_Grad = ' + cast(@Sifra_Grad as varchar(5)) + ' AND (Aktiven IS NULL OR Aktiven <>''N'') ))'
If @Sifra_Reg IS NOT NULL
SET @SSQL = @SSQL + ' AND (Sifra_Reg = '+cast(@Sifra_Reg as varchar(5)) + '
OR Sifra_Kup IN (Select Sifra_Kup from KObjekti Where Sifra_Reg = '+cast(@Sifra_Reg as varchar(5)) + ' AND (Aktiven IS NULL OR Aktiven <>''N'') ))'
If @KlkDena > 0
Begin
Declare @DatPoc As smalldatetime
SET @DatPoc = DateAdd(day, @KlkDena * -1, GetDate())
SET @SSQL = @SSQL + ' AND (DodadenNa >= '''+cast(@DatPoc as varchar(35)) + ''' OR IzmenetNa >= '''+cast(@DatPoc as varchar(35)) + ''') '
End
If @SamoKupSoReg = 'D'
SET @SSQL = @SSQL + ' AND (Sifra_Reg IS NOT NULL OR Sifra_Kup IN (SELECT Sifra_Kup FROM KObjekti WHERE Sifra_Reg IS NOT NULL))'
EXEC (@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajkomintzaprenos]'))
drop procedure [dbo].[sp_dajkomintzaprenos]
Go
CREATE PROCEDURE sp_DajKomintZaPrenos
@ObjIzvor char(1),
@ObjZaPrenos char(1)
AS
CREATE TABLE #TmpKom (Sifra_Kup char(6))
Declare @PocChr varchar(20)
Declare @KrChr varchar(20)
Declare KonfMat1 Cursor Fast_Forward For
Select Poc_char, Kr_char From KonfNasObjMatic
WHERE Tabela='Komint'
AND PatIndex('%'+@ObjZaPrenos + '%', PrenosVoObj)<>0 --and Izvor=@ObjIzvor
Open KonfMat1
Fetch Next From KonfMat1 Into @PocChr, @KrChr
While @@Fetch_Status = 0
Begin
INSERT INTO #TmpKom SELECT Sifra_Kup FROM Komint
Where Sifra_Kup >= @PocChr AND Sifra_Kup <= @KrChr AND
(Prenesen IS NULL OR PatIndex('%' + @ObjZaPrenos + '%', Prenesen)=0)
From KrsVaznost WHERE Datum = @PoslDatum AND SImeVal = @KojaVal
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajlikviddokr]'))
drop procedure [dbo].[sp_dajlikviddokr]
Go
CREATE PROCEDURE sp_DajLikvidDokr
@Sifra_OE Smallint,
@Sifra_Dok Smallint,
@Broj_Dok int,
@Likvid char (1) OUTPUT
AS
select @Likvid=Likvid From Dokr
WHERE Sifra_oe = @Sifra_oe And Sifra_DOk = @Sifra_Dok And Broj_Dok = @Broj_Dok
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajlimitzadiv]'))
drop procedure [dbo].[sp_dajlimitzadiv]
Go
CREATE PROCEDURE sp_DajLimitZaDiv
@Sifra_Kup char(6),
@Sifra_Div smallint,
@Kto char(10)=NULL,
@Limit decimal(18,6)=0 OUTPUT,
@Saldo decimal(18,6)=0 OUTPUT
AS
SELECT @Limit = Iznos FROM KomLimitDiv WHERE Sifra_Kup=@Sifra_Kup AND Sifra_DIv=@Sifra_Div
IF @Kto IS NULL
SELECT @Saldo = SUM(Dolzi-Plateno_Dolzi) FROM AnFinDok WHERE Sifra_Kup=@Sifra_Kup AND Sifra_Div=@Sifra_Div AND Sifra_Za=1
ELSE
SELECT @Saldo = SUM(Dolzi-Plateno_Dolzi) FROM AnFinDok WHERE Sifra_Kup=@Sifra_Kup AND Sifra_Div=@Sifra_Div AND Sifra_Za=1 AND Kto=@Kto
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajlista_komobj_popisdok]'))
drop procedure [dbo].[sp_dajlista_komobj_popisdok]
Go
CREATE PROCEDURE sp_DajLista_KomObj_PopisDok
@Sifra_OE smallint,
@Sifra_Dok smallint,
@Datum_Od smalldatetime,
@Datum_Do smalldatetime
AS
Declare @SSQL varchar(2000)
SELECT Distinct Sifra_Kup, Sifra_Obj
From PopisDok P
Where Sifra_Oe = @Sifra_Oe and Sifra_Dok = @Sifra_Dok and
Datum_PopisDok >= @Datum_Od and Datum_PopisDok <= @Datum_Do
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajlista_popisdok]'))
drop procedure [dbo].[sp_dajlista_popisdok]
Go
CREATE PROCEDURE sp_DajLista_PopisDok
@Sifra_Oe smallint,
@Sifra_Dok smallint,
@Datum_Od smalldatetime,
@Datum_Do smalldatetime
AS
Declare @SSQL varchar(2000)
SELECT Distinct Sifra_Oe, Sifra_Dok, Broj_Dok
From PopisDok P
where Sifra_Oe = @Sifra_Oe and Sifra_Dok = @Sifra_Dok and
Datum_PopisDok >= @Datum_Od and Datum_PopisDok <= @Datum_Do
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajmaxbrdok]'))
drop procedure [dbo].[sp_dajmaxbrdok]
Go
CREATE PROCEDURE sp_DajMaxBrDok
@Sifra_Nal smallint,
@P_I char(1),
@TipBlag char(3)=NULL,
@DoBroj int=NULL,
@Broj_Dok int Output
AS
IF @DoBroj IS NULL SET @DoBroj=1999999
IF @TipBlag IS NULL
Select @Broj_Dok=Max(Broj_Dok)
From KasStav
Where Sifra_Nal = @Sifra_Nal and P_I = @P_I AND Broj_Dok<@DoBroj
ELSE
Select @Broj_Dok=Max(Broj_Dok) From KasStav
Where Sifra_Nal = @Sifra_Nal and P_I = @P_I AND TipBlag=@TipBlag AND Broj_Dok<@DoBroj
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajmaxbrdokzp]'))
drop procedure [dbo].[sp_dajmaxbrdokzp]
Go
CREATE PROCEDURE sp_DajMaxBrDokZP
@Sifra_OETros smallint,
@Pomosen char(1),
@DoBroj int=NULL,
@Broj_Dok int Output
AS
IF @DoBroj IS NULL SET @DoBroj=1999999
If @Pomosen = 'D'
SELECT @Broj_Dok= MAX(Broj_RabN) FROM RabNal WHERE Pomosen = 'D' and Sifra_oerab = @Sifra_OETros AND Broj_RabN<@DoBroj
Else If @Pomosen = 'N'
SELECT @Broj_Dok=MAX(Broj_RabN) FROM RabNal WHERE (Pomosen <> 'D' or Pomosen is null) and Sifra_oerab = @Sifra_OETros AND Broj_RabN<@DoBroj
Else
SELECT @Broj_Dok=MAX(Broj_RabN) FROM RabNal WHERE Sifra_oerab = @Sifra_OETros AND Broj_RabN<@DoBroj
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajmaxbrdokzp_zap]'))
drop procedure [dbo].[sp_dajmaxbrdokzp_zap]
Go
create Procedure sp_DajMaxBrDokZP_Zap
@Sifra_OETros smallint,
@Pomosen char(1),
@DoBroj int=NULL,
@Broj_Dok int Output
AS
IF @DoBroj IS NULL
SET @DoBroj=1999999
If @Pomosen = 'D'
SELECT @Broj_Dok= MAX(Broj_RabN) FROM RabNal_Zap WHERE Pomosen = 'D' and Sifra_oerab = @Sifra_OETros AND Broj_RabN<@DoBroj
Else If @Pomosen = 'N'
SELECT @Broj_Dok=MAX(Broj_RabN) FROM RabNal_Zap WHERE (Pomosen <> 'D' or Pomosen is null) and Sifra_oerab = @Sifra_OETros AND Broj_RabN<@DoBroj
Else
SELECT @Broj_Dok=MAX(Broj_RabN) FROM RabNal_Zap WHERE Sifra_oerab = @Sifra_OETros AND Broj_RabN<@DoBroj
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajmaxdatumuslkomerc]'))
drop procedure [dbo].[sp_dajmaxdatumuslkomerc]
Go
CREATE PROCEDURE sp_DajMaxDatumUslKomerc
@Sifra_Kup char(6),
@Sifra_Tip smallint = NULL,
@Datum smalldatetime = NULL OUTPUT
AS
IF @Sifra_Tip IS NULL
SELECT @Datum = Max(Datum_Od) FROM Usl_Komerc_Per WHERE Sif_Kup_Gen = @Sifra_Kup AND Tip_Sif_Kup='K'
ELSE
SELECT @Datum = Max(Datum_Od) FROM Usl_Komerc_Per WHERE Sif_Kup_Gen = @Sifra_Tip AND Tip_Sif_Kup='T'
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajmaxrbr_magstavr]'))
drop procedure [dbo].[sp_dajmaxrbr_magstavr]
Go
CREATE PROCEDURE sp_DajMaxRbr_MagStavr
@Sifra_Oe Smallint,
@Sifra_Dok Smallint,
@Broj_Dok Int,
@MaxRbr Int = Null Output
AS
Set @MaxRbr = (Select Max(M.Rbr)
From Dokr D
Inner Join MagStavr M On M.DokrID=D.DokrID
Where D.Sifra_Oe=@Sifra_Oe And D.Sifra_Dok=@Sifra_Dok And D.Broj_Dok=@Broj_Dok)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajmaxspecozn_lotser]'))
drop procedure [dbo].[sp_dajmaxspecozn_lotser]
Go
CREATE PROCEDURE sp_DajMaxSpecOzn_LotSer
@Sifra_Art varchar(20),
@MaxSpecOzn varchar(30) = Null Output
AS
Set @MaxSpecOzn = (Select Max(SpecOzn) From LotSer Where Sifra_Art=@Sifra_Art)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajnajstarlot]'))
drop procedure [dbo].[sp_dajnajstarlot]
Go
CREATE PROCEDURE sp_DajNajstarLot
@Sifra_OE smallint,
@Sifra_Art varchar(20)
AS
CREATE TABLE #TmpZalPoLot
(Sifra_Art varchar(20),
LotBr varchar(50),
Sostojba decimal(18,4))
INSERT INTO #TmpZalPoLot (LotBr) SELECT MIN(LotBr) FROM SoMag
WHERE Sifra_Oe=@Sifra_Oe AND Sifra_Art=@Sifra_Art AND Sostojba>0
UPDATE #TmpZalPoLot SET Sifra_Art=@Sifra_Art, Sostojba=M.Sostojba FROM SoMag M WHERE M.Sifra_OE=@Sifra_OE AND M.Sifra_Art=@Sifra_Art AND #TmpZalPoLot.LotBr=M.LotBr
SELECT A.Sifra_Tar, A.Lokacija, T.ProcOsn, L.LotBr, L.Sostojba FROM KatArt A
INNER JOIN Tarifi T ON A.Sifra_Tar=T.Sifra_Tar
LEFT OUTER JOIN #TmpZalPoLot L ON L.Sifra_Art=A.Sifra_Art WHERE A.Sifra_Art=@Sifra_Art
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajnalogzadatum]'))
drop procedure [dbo].[sp_dajnalogzadatum]
Go
CREATE PROCEDURE sp_DajNalogZaDatum
@Sifra_Nal smallint,
@Datum_Nal smalldatetime,
@Broj_Nal int = Null OUTPUT,
@Tek_Datum_Nal smalldatetime = Null OUTPUT
AS
SELECT @Broj_Nal=Broj_Nal,@Tek_Datum_Nal=Datum_Nal FROM Nalozi WHERE Sifra_Nal=@Sifra_Nal AND Datum_Nal=@Datum_Nal
IF @@ROWCOUNT<1
Begin
SELECT @Broj_Nal=Max(Broj_Nal) FROM Nalozi WHERE Sifra_Nal=@Sifra_Nal AND Datum_Nal<=@Datum_Nal
IF @Broj_Nal IS NOT NULL
SELECT @Tek_Datum_Nal=Datum_Nal FROM Nalozi WHERE Sifra_Nal=@Sifra_Nal AND Broj_Nal=@Broj_Nal
End
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajnaracka_ponarid]'))
FROM StaNarac S INNER JOIN Naracki N ON S.NarID=N.NarID
INNER JOIN KatArt A ON S.Sifra_Art=A.Sifra_Art INNER JOIN Tarifi T ON T.Sifra_Tar=A.Sifra_Tar
INNER JOIN #Patnici P ON N.Sifra_Pat=P.Sifra_Pat
WHERE N.Datum_Nar>=@Datum_Nar_Od AND N.Datum_Nar<=@Datum_Nar_Do AND N.Sifra_Nar=@Sifra_Nar AND (S.PrifPredlog IS NULL OR S.PrifPredlog<>'N') AND S.Realiz_Na IS NULL
UPDATE #TmpPod SET Sifra_Oe_Dok=P.OE_OS FROM Patnici P WHERE #TmpPod.Sifra_Pat=P.Sifra_Pat AND #TmpPod.Lokacija='OS'
UPDATE #TmpPod SET Sifra_Oe_Dok=P.OE_Rek FROM Patnici P WHERE #TmpPod.Sifra_Pat=P.Sifra_Pat AND #TmpPod.Lokacija='REK'
UPDATE #TmpPod SET Sifra_Oe_Dok=P.OE_Rep FROM Patnici P WHERE #TmpPod.Sifra_Pat=P.Sifra_Pat AND #TmpPod.Lokacija='REP'
Declare @SifOE_sGrOrg smallint
SELECT TOP 1 @SifOE_sGrOrg=S.Sifra_OE FROM SGrOrg S WHERE S.Sif_GrOrg=@Sif_GrOrg_Zal ORDER BY S.Sifra_OE
UPDATE #TmpPod SET Sifra_Oe_Dok=@SifOE_sGrOrg WHERE Sifra_Oe_Dok IS NULL
UPDATE #TmpPod SET NNabCena=S.NNabCena FROM Soart S WHERE #TmpPod.Sifra_OE_Dok=S.Sifra_OE AND #TmpPod.Sifra_Art=S.Sifra_Art
CREATE TABLE #TmpZal
(Sifra_Art varchar(20),
Kolic decimal(18,6))
INSERT INTO #TmpZal SELECT S.Sifra_Art, SUM(S.Vlez-S.Izlez) FROM Soart S INNER JOIN SGrOrg SO ON S.Sifra_OE=SO.Sifra_OE
WHERE SO.Sif_GrOrg=@Sif_GrOrg_Zal AND Sifra_Art IN (SELECT Distinct Sifra_Art FROM #TmpPod)
GROUP BY S.Sifra_Art
UPDATE #TmpPod SET Kolic_Zal=Z.Kolic FROM #TmpZal Z WHERE #TmpPod.Sifra_Art=Z.Sifra_Art
INSERT INTO #TmpKup SELECT DISTINCT Sifra_Kup, Sifra_Obj FROM #TmpPod
CREATE TABLE #TmpIspor
(Sifra_Kup char(6),
Sifra_Obj smallint,
Sifra_Art varchar(20),
Kolic decimal(18,6))
INSERT INTO #TmpIspor (Sifra_Kup, Sifra_Obj, Sifra_Art, Kolic)
SELECT D.Sifra_Kup, D.Sifra_Obj, S.Sifra_Art, SUM(S.Kolic) FROM Stavr S INNER JOIN Dokr D ON S.DokrID=D.DokrID
INNER JOIN #TmpKup K ON D.Sifra_Kup=K.Sifra_Kup AND K.Sifra_Obj IS NULL
INNER JOIN #TmpZal Z ON S.Sifra_Art=Z.Sifra_Art
WHERE D.VlIzl='I' AND D.Sifra_Za=1 AND D.Datum_Dok>=@Datum_Od_Preth AND D.Datum_Dok<=@Datum_Do_Preth
GROUP BY D.Sifra_Kup, D.Sifra_Obj, S.Sifra_Art
INSERT INTO #TmpIspor (Sifra_Kup, Sifra_Obj, Sifra_Art, Kolic)
SELECT D.Sifra_Kup, D.Sifra_Obj, S.Sifra_Art, SUM(S.Kolic) FROM Stavr S INNER JOIN Dokr D ON S.DokrID=D.DokrID
INNER JOIN #TmpKup K ON D.Sifra_Kup=K.Sifra_Kup AND K.Sifra_Obj IS NOT NULL AND D.Sifra_Obj=K.Sifra_Obj
INNER JOIN #TmpZal Z ON S.Sifra_Art=Z.Sifra_Art
WHERE D.VlIzl='I' AND D.Sifra_Za=1 AND D.Datum_Dok>=@Datum_Od_Preth AND D.Datum_Dok<=@Datum_Do_Preth
GROUP BY D.Sifra_Kup, D.Sifra_Obj, S.Sifra_Art
UPDATE #TmpPod SET Kolic_Preth=P.Kolic FROM #TmpIspor P
WHERE #TmpPod.Sifra_Art=P.Sifra_Art AND #TmpPod.Sifra_Kup=P.Sifra_Kup AND #TmpPod.Sifra_Obj=P.Sifra_Obj AND #TmpPod.Sifra_OBj IS NOT NULL
UPDATE #TmpPod SET Kolic_Preth=P.Kolic FROM #TmpIspor P
WHERE #TmpPod.Sifra_Art=P.Sifra_Art AND #TmpPod.Sifra_Kup=P.Sifra_Kup AND #TmpPod.Sifra_Obj IS NULL AND #TmpPod.Sifra_Obj IS NULL
UPDATE #TmpPod SET ImeKup=K.ImeKup FROM Komint K WHERE #TmpPod.Sifra_Kup=K.Sifra_Kup
UPDATE #TmpPod SET ImeKup=rtrim(ImeKup) +' '+K.ImeObj FROM KObjekti K WHERE #TmpPod.Sifra_Kup=K.Sifra_Kup AND #TmpPod.Sifra_Obj IS NOT NULL AND #TmpPod.Sifra_Obj=K.Sifra_Obj
SELECT P.* FROM #TmpPod P ORDER BY P.Datum_Nar, P.Sifra_OE, P.SIfra_Nar, P.Broj_Nar, P.Sifra_Art
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajnarackizaodobr]'))
drop procedure [dbo].[sp_dajnarackizaodobr]
Go
CREATE PROCEDURE [dbo].[sp_DajNarackiZaOdobr]
@Datum_Nar_Od smalldatetime,
@Datum_Nar_Do smalldatetime,
@Sifra_Pat smallint=NULL,
@Sif_GrPat char(6)=NULL,
@Sifra_Nar smallint=NULL,
@SamoPregled char(1)=NULL,
@KojOdob char(1)='P'
AS
CREATE TABLE #Patnici
(Sifra_Pat smallint)
IF @Sifra_Pat IS NOT NULL
INSERT INTO #Patnici VALUES (@Sifra_Pat)
ELSE IF @Sif_GrPat IS NOT NULL
INSERT INTO #Patnici SELECT Sifra_Pat FROM SGrPat WHERE Sif_GrPat=@Sif_GrPat
ELSE
INSERT INTO #Patnici SELECT Sifra_Pat FROM Patnici
CREATE TABLE #TmpPod
(Sifra_OE smallint,
Sifra_Nar smallint,
Broj_Nar int,
Datum_Nar smalldatetime,
Sifra_Kup char(6),
Sifra_Obj smallint,
ImeKup varchar(80),
Sifra_Art varchar(20),
ImeArt varchar(40),
Kolic_Nar decimal(18,6),
Kolic_Real decimal(18,6),
Kolic_Zal decimal(18,6),
Kolic_Preth decimal(18,6),
Sifra_Pat smallint,
Lokacija varchar(10),
PrifPredlog char(1),
Realiz_Na smalldatetime,
Realiz_Kolic decimal(18,6),
Sifra_Oe_Dok smallint,
NNabCena decimal(18,6),
Sifra_Tar char(3),
POsn decimal(6,2),
Rok varchar(25),
Kolic_BO decimal(18,6),
Odobril varchar(10))
DECLARE @SSQL as varchar(3000)
IF (@SamoPregled IS NOT NULL)
BEGIN
SET @SSQL = '
INSERT INTO #TmpPod (Sifra_Kup, Sifra_Obj, Sifra_Art,
FROM StaNarac S INNER JOIN Naracki N ON S.NarID=N.NarID
INNER JOIN #Patnici P ON N.Sifra_Pat=P.Sifra_Pat
INNER JOIN KatArt A ON S.Sifra_Art=A.Sifra_Art
WHERE N.Datum_Nar >= ''' + cast(@Datum_Nar_Od as varchar(30)) + '''' +
' AND N.Datum_Nar <= ''' + cast(@Datum_Nar_Do as varchar(30)) + '''' + ' AND N.Sifra_Nar = ' + cast(@Sifra_Nar as varchar(10))
IF (@SamoPregled = 'O')
BEGIN
SET @SSQL = @SSQL + ' AND (S.Kolic_BO > 0 OR S.PrifPredlog =''N'' )'
IF @KojOdob = 'R'
SET @SSQL = @SSQL + ' AND S.Odobril IS NOT NULL'
END
IF (@SamoPregled = 'M')
SET @SSQL = @SSQL + ' AND (S.Kolic_BO > 0 OR S.PrifPredlog =''N'') AND S.Odobril IS NULL '
IF (@SamoPregled = 'N')
BEGIN
IF @KojOdob = 'R'
SET @SSQL = @SSQL + ' AND S.Kutija_Br <> '''' AND S.Odobril IS NULL '
ELSE
SET @SSQL = @SSQL + ' AND (S.Kolic_BO IS NULL OR S.Kolic_BO=0) AND (S.PrifPredlog IS NULL OR S.PrifPredlog<>''N'')'
END
IF (@SamoPregled = 'S')
IF @KojOdob = 'R'
SET @SSQL = @SSQL + ' AND (S.Kolic_BO > 0 OR S.PrifPredlog =''N'') '
-- PRINT(@SSQL)
EXEC(@SSQL)
UPDATE #TmpPod SET ImeKup=K.ImeKup FROM Komint K WHERE #TmpPod.Sifra_Kup=K.Sifra_Kup
UPDATE #TmpPod SET ImeKup=rtrim(ImeKup) + ' ' +K.ImeObj FROM KObjekti K WHERE #TmpPod.Sifra_Kup=K.Sifra_Kup AND #TmpPod.Sifra_Obj IS NOT NULL AND #TmpPod.Sifra_Obj=K.Sifra_Obj
END
ELSE
Begin
INSERT INTO #TmpPod (Sifra_Oe, Sifra_Nar, Broj_Nar, Datum_Nar, Sifra_Kup, Sifra_Obj,
FROM StaNarac S INNER JOIN Naracki N ON S.NarID=N.NarID
INNER JOIN KatArt A ON S.Sifra_Art=A.Sifra_Art INNER JOIN Tarifi T ON T.Sifra_Tar=A.Sifra_Tar
INNER JOIN #Patnici P ON N.Sifra_Pat=P.Sifra_Pat
WHERE N.Datum_Nar>=@Datum_Nar_Od AND N.Datum_Nar<=@Datum_Nar_Do AND N.Sifra_Nar=@Sifra_Nar AND (S.PrifPredlog IS NULL OR S.PrifPredlog<>'N') AND (S.Lokacija = '' OR S.Lokacija IS NULL) AND S.Realiz_Na IS NULL
UPDATE #TmpPod SET ImeKup=K.ImeKup FROM Komint K WHERE #TmpPod.Sifra_Kup=K.Sifra_Kup
UPDATE #TmpPod SET ImeKup=rtrim(ImeKup) +' '+K.ImeObj FROM KObjekti K WHERE #TmpPod.Sifra_Kup=K.Sifra_Kup AND #TmpPod.Sifra_Obj IS NOT NULL AND #TmpPod.Sifra_Obj=K.Sifra_Obj
End
SELECT cast(P.Sifra_Oe as varchar(5)) + '-' + cast(P.Sifra_Nar as varchar(6)) + '\' + cast(P.Broj_Nar as varchar(10)) AS Br_Nar, P.*
FROM #TmpPod P
ORDER BY P.Datum_Nar, P.Sifra_OE, P.SIfra_Nar, P.Broj_Nar, P.Sifra_Art
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajnarid_nar]'))
drop procedure [dbo].[sp_dajnarid_nar]
Go
create PROCEDURE sp_DajNarID_Nar
@Sifra_Oe smallint,
@Sifra_Nar smallint,
@Broj_Nar int,
@NarID int output
AS
Select @NarID = NarId
From Naracki
where @Sifra_Oe=Sifra_Oe and @Sifra_Nar=Sifra_Nar and @Broj_Nar=Broj_Nar
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajnepecdok]'))
SET @SSQL = @SSQL + ' FROM KObjekti O INNER JOIN KomintPat P ON O.Sifra_Kup=P.Sifra_Kup AND O.Sifra_Obj=P.Sifra_Obj
WHERE O.Sifra_Obj > 0 AND (O.Aktiven IS NULL OR O.Aktiven <>''N'')
AND O.Sifra_Kup IN (SELECT SIFRA_KUP FROM KOMINT WHERE (Aktiven IS NULL OR Aktiven <>''N'')
AND P.Sifra_Pat = ' + cast(@Sifra_Pat as varchar(5)) + ' '
If @Sifra_Grad IS NOT NULL
SET @SSQL = @SSQL + ' AND (Sifra_Grad = ' + cast(@Sifra_Grad as varchar(5)) + '
OR Sifra_Kup IN (Select Sifra_Kup from KObjekti Where Sifra_Grad = ' + cast(@Sifra_Grad as varchar(5)) + ' AND (Aktiven IS NULL OR Aktiven <>''N'') ))'
If @Sifra_Reg IS NOT NULL
SET @SSQL = @SSQL + ' AND (Sifra_Reg = '+cast(@Sifra_Reg as varchar(5)) + '
OR Sifra_Kup IN (Select Sifra_Kup from KObjekti Where Sifra_Reg = '+cast(@Sifra_Reg as varchar(5)) + ' AND (Aktiven IS NULL OR Aktiven <>''N'') ))'
If @KlkDena > 0
Begin
Declare @DatPoc As smalldatetime
SET @DatPoc = DateAdd(day, @KlkDena * -1, GetDate())
SET @SSQL = @SSQL + ' AND (DodadenNa >= '''+cast(@DatPoc as varchar(35)) + ''' OR IzmenetNa >= '''+cast(@DatPoc as varchar(35)) + ''') '
End
If @SamoKupSoReg = 'D'
SET @SSQL = @SSQL + ' AND (Sifra_Reg IS NOT NULL OR Sifra_Kup IN (SELECT Sifra_Kup FROM KObjekti WHERE Sifra_Reg IS NOT NULL))'
SET @SSQL = @SSQL + ' )'
print @SSQL
EXEC (@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajobjektizaprenos]'))
drop procedure [dbo].[sp_dajobjektizaprenos]
Go
CREATE PROCEDURE sp_DajObjektiZaPrenos
AS
SELECT M.*, O.Sifra_OE, O.OrgEdVoMark FROM Marketi M
INNER JOIN OrgEd O ON M.Sifra_Mark = O.Sifra_Mark
WHERE M.ID_Server IS NOT NULL AND M.ID_Server <> ''
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajobjektizawebnarac]'))
drop procedure [dbo].[sp_dajobjektizawebnarac]
Go
Create PROCEDURE sp_DajObjektiZaWEBNarac
AS
SELECT Sifra_Kup, Sifra_Obj, ImeObj, Adresa, Posta, SMesto, Telefon ,eMail, Kontakt FROM KObjekti
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajodscanlistagrupirano]'))
drop procedure [dbo].[sp_dajodscanlistagrupirano]
Go
CREATE PROCEDURE sp_DajOdScanListaGrupirano
@Sifra_OE smallint,
@Tip_Lista smallint,
@Broj_Lista int
AS
CREATE TABLE #TmpScanLista
(Rbr_Scan smallint,
Nom_Scan varchar (100),
Kolic_Pak decimal(18, 6),
Kolic decimal(18, 6),
LotBr varchar (50),
RokRed varchar (6),
Lokacija varchar (50),
Sifra_KatStatus smallint,
Sifra_KatPak smallint,
Sifra_Art varchar (20))
INSERT INTO #TmpScanLista (Rbr_Scan,Nom_Scan,Kolic_Pak,Kolic,LotBr,RokRed,Lokacija,Sifra_KatStatus,Sifra_KatPak,Sifra_Art)
(N.Identif_Br+'' '' +N.TekstPosle) Opis ,Count(S.NarID) Stavki,
''O'',NR.Realiziran ,N.NarID ,NR.DokrID ,''D''
From Naracki N
INNER JOIN Stanarac S On S.NarID=N.NarID
LEFT OUTER JOIN NarRealDok NR ON N.NarID =NR.NarID
WHERE N.NarID = '+ cast(@@NarID as varchar(10))
IF @Realiziran = 'D' --SAMO REALIIRANI
Set @@SQL = @@SQL + ' AND NR.Realiziran =''D'' '
ELSE IF @Realiziran = 'N' --NEREALIZIRANI i NEPOCNATI
Set @@SQL = @@SQL + ' AND NR.Realiziran is null '
Set @@SQL = @@SQL + ' GROUP by N.NarID,N.Sifra_Oe,N.Sifra_Nar,N.Broj_Nar,N.Toc200,(N.Identif_Br+'' ''+N.TekstPosle),NR.Realiziran ,N.NarID ,NR.DokrID '
END
EXEC (@@SQL)
End
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajpodzaartponom]'))
drop procedure [dbo].[sp_dajpodzaartponom]
Go
CREATE PROCEDURE sp_DajPodZaArtPoNom
@Nom VARCHAR(50),
@Sifra_Oe smallint = null
AS
DECLARE @Sifra_Art VARCHAR(20)
SELECT @Sifra_Art = Sifra_Art FROM ArkaKat WHERE Nom=@Nom
IF @@ROWCOUNT < 1
SELECT @Sifra_Art = Sifra_Art FROM ABarKod WHERE Nom=@Nom
IF @Sifra_Art IS NOT NULL
SELECT Sifra_Art, ImeArt, EdMera, CenaOsn as Cena FROM ArkaKat
WHERE Sifra_Art = @Sifra_Art
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajpodzatipdok]'))
drop procedure [dbo].[sp_dajpodzatipdok]
Go
create PROCEDURE [dbo].[sp_DajPodZaTipDok]
@Sifra_Dok smallint,
@Sifra_Nal smallint=NULL OUTPUT,
@Broj_Nal int=NULL OUTPUT,
@Datum_Nal smalldatetime=NULL OUTPUT,
@Kto varchar(10)=NULL OUTPUT
AS
Declare @Sts_Kniz char(1)
SELECT @Sifra_Nal=Sifra_Nal, @Kto=SUBSTRING(KoeKto,1,4) FROM TipDok WHERE Sifra_Dok=@Sifra_Dok
SELECT @Broj_Nal=MAX(Broj_Nal) FROM Nalozi WHERE Sifra_Nal=@Sifra_Nal
IF @Broj_Nal IS NOT NULL
SELECT @Sts_Kniz=Sts_Kniz, @Datum_Nal=Datum_Nal FROM Nalozi WHERE Sifra_Nal=@Sifra_Nal AND Broj_Nal=@Broj_Nal
ELSE SET @Broj_Nal=0
IF @Broj_Nal=0 OR @Sts_Kniz='D'
BEGIN
SET @Broj_Nal=@Broj_Nal +1
SET @Datum_Nal=dbo.fn_VratiDatum(GetDate())
INSERT INTO Nalozi (Sifra_Nal, Broj_Nal, Datum_Nal, Sts_Kniz)
VALUES (@Sifra_Nal, @Broj_Nal, @Datum_Nal, '')
END
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajpopis_komobj]'))
drop procedure [dbo].[sp_dajpopis_komobj]
Go
CREATE PROCEDURE sp_DajPopis_KomObj
@Sifra_OE smallint,
@Sifra_Dok smallint,
@Datum_Od smalldatetime,
@Datum_Do smalldatetime,
@Sifra_Kup char (6),
@Sifra_Obj char (6)
AS
Declare @SSQL varchar(2000)
Create Table #Art
(
Datum_Dok smalldatetime,
Broj_Dok int,
Rbr Smallint,
Sifra_Art Varchar(20)
)
Insert Into #Art Select Min(Datum_Dok), Min(Broj_Dok), Min(Rbr), Sifra_Art
From PopisDok
Where Sifra_Oe = @Sifra_Oe and Sifra_Dok = @Sifra_Dok and
Datum_PopisDok >= @Datum_Od and Datum_PopisDok <= @Datum_Do and
Sifra_Kup = @Sifra_Kup
Group By Sifra_Art
If @Sifra_Obj is null
SELECT P.Sifra_Art, Sum(P.Ostaveno) as Zaliha
From PopisDok P
Inner Join #Art A On A.Sifra_Art = P.Sifra_Art
Where P.Sifra_Oe = @Sifra_Oe and P.Sifra_Dok = @Sifra_Dok and
P.Datum_PopisDok >= @Datum_Od and P.Datum_PopisDok <= @Datum_Do and
P.Sifra_Kup = @Sifra_Kup
Group By P.Sifra_Art, A.Datum_Dok, A.Broj_Dok, A.Rbr
Order By A.Datum_Dok, A.Broj_Dok, A.Rbr
Else
SELECT P.Sifra_Art, Sum(P.Ostaveno) as Zaliha
From PopisDok P
Inner Join #Art A On A.Sifra_Art = P.Sifra_Art
Where P.Sifra_Oe = @Sifra_Oe and P.Sifra_Dok = @Sifra_Dok and
P.Datum_PopisDok >= @Datum_Od and P.Datum_PopisDok <= @Datum_Do and
P.Sifra_Kup = @Sifra_Kup and P.Sifra_Obj = @Sifra_Obj
Group By P.Sifra_Art, A.Datum_Dok, A.Broj_Dok, A.Rbr
Order By A.Datum_Dok, A.Broj_Dok, A.Rbr
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_dajposlkomercuslpokup]'))
drop procedure [dbo].[sp_dajposlkomercuslpokup]
Go
CREATE PROCEDURE sp_DajPoslKomercUslPoKup --spec. samo za rok i rabat
Set @SSQL = ' Insert Into #KupObj1 (Sifra_Kup, Sifra_Obj) Select Distinct Sifra_Kup, Sifra_Obj From SGrKupObj Where Sif_GrKup In (' + @GrKup + ') And Sifra_Obj Is Not Null '
Exec(@SSQL)
Set @SSQL = ' Insert Into #KupObj1 (Sifra_Kup, Sifra_Obj)
Select Distinct GK.Sifra_Kup, KO.Sifra_Obj
From SGrKupObj GK
Inner Join Kobjekti KO On GK.Sifra_Kup = KO.Sifra_Kup
Where GK.Sif_GrKup In (' + @GrKup + ') And GK.Sifra_Obj Is Null '
--Where GK.Sif_GrKup In (' + @GrKup + ') And GK.Sifra_Kup+Cast(KO.Sifra_Obj as char(4)) Not In (Select Sifra_Kup+Cast(Sifra_Obj as char(6)) From #KupObj) And GK.Sifra_Obj Is Null '
Exec(@SSQL)
Set @SSQL = ' Insert Into #KupObj1 (Sifra_Kup) Select Distinct Sifra_Kup From SGrKupObj Where Sif_GrKup In (' + @GrKup + ') And Sifra_Obj Is Null '
Exec(@SSQL)
INSERT INTO #KupObj SELECT DISTINCT Sifra_Kup, Sifra_Obj FROM #KupObj1
End
-- If @GrArt Is Not Null
-- Begin
-- Create Table #GrArt
-- (
-- Sifra_Art varchar(20)
-- )
-- Create NonClustered Index IX_Art On #GrArt (Sifra_Art)
-- Set @SSQL = 'Insert Into #GrArt Select DISTINCT Sifra_Art From SGrArt Where Sif_GrArt In (' + @GrArt + ') '
on P.Sifra_Oe = D.Sifra_Oe and P.Grp_Kasa = D.Sifra_Dok and P.Departm = D.Broj_Dok
Left Outer Join #Ski Ski On Ski.DokrID=D.DokrID '
Set @SSQL = @SSQL + ' Inner Join TipDok TD On TD.Sifra_Dok=D.Sifra_Dok
Where D.Sifra_Dok In (100, 101, 1, 3) '
If @Sifra_Oe Is Not Null
Set @SSQL=@SSQL + ' And D.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(5)) + ' '
If @Datum_Od Is Not Null
Set @SSQL=@SSQL + ' And D.Datum_Dok >= ''' + Cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQL=@SSQL + ' And D.Datum_Dok <= ''' + Cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Oper Is Not Null
Set @SSQL=@SSQL + ' And D.Sifra_Oper = ''' + @Sifra_Oper + ''' '
If @PrikaziSto = 'A'
Set @SSQL=@SSQL + ' Group By S.Sifra_Art, K.ImeArt, Ski.Sifra_Nac, Cast(D.Sifra_Oe as varchar(3)) + ''-'' + Cast(D.Sifra_Dok as varchar(3)) + ''/'' + Cast(D.Broj_Dok as varchar(6)) '
Insert Into #Promet Exec(@SSQL)
--print '3'
if @TwistOrg is not null and @TwistDok is not null
begin
If @PrikaziSto = 'A'
Set @SSQL = ' Select ''Dok'', S.Sifra_Art, K.ImeArt, Null Opis,
Insert Into #Tab(Sifra,Opis) select 'Datum', 'Od ' + cast(day(@DatumOd) as char(2))+'.' +cast(Month(@DatumOd) as char(2))+'.'+cast(year(@DatumOd) as char(4)) +
' Do ' + cast(day(@DatumDo) as char(2))+'.' +cast(Month(@DatumDo) as char(2))+'.'+cast(year(@DatumDo) as char(4))
Insert Into #Tab(Sifra, Opis) Select 1, 'Proda`ba:'
Set @SSQL = ' Select 101, ''Mleko i mle~ni proizvodi i konditorija '', Round(sum(Kolic*dbo.fn_VratiCenaOsnov(S.DokCena, S.DanDokCena, S.Posn, S.Uces, D.Kasa)),4)
From Stavr S
Inner Join Dokr D On D.DokrId = S.DokrId
Inner Join Katart K On K.Sifra_Art = S.Sifra_Art
Where S.Sifra_Oe In (3, 6) and S.Sifra_Dok in (1,3,6,11,13,16,81,83) And K.Sifra_Podg Not Like ''11%'' '
If @PoKojDatum = 'D'
Set @SSQL = @SSQL + ' And D.Datum_Dok >= ''' + cast(@Datum_Dok_Od as varchar(30)) + ''' And D.Datum_Dok <= ''' + cast(@Datum_Dok_Do as varchar(30)) + ''' '
Else
Set @SSQL = @SSQL + ' And D.Datum_Vnes >= ''' + cast(@Datum_Dok_Od as varchar(30)) + ''' And D.Datum_Vnes < ''' + cast(@Datum_Dok_Do + 1 as varchar(30)) + ''' '
Where (K.Sifra_Podg like ''100%'' or K.Sifra_Podg like ''102%'' or K.Sifra_Podg like ''104%'' or K.Sifra_Podg like ''106%'' or K.Sifra_Podg like ''109%'')
and S.Sifra_Dok in (1,3,6,11,13,16,81,83)
and S.Sifra_Oe <> 901'
If @PoKojDatum = 'D'
Set @SSQL = @SSQL + ' And D.Datum_Dok >= ''' + cast(@Datum_Dok_Od as varchar(30)) + ''' And D.Datum_Dok <= ''' + cast(@Datum_Dok_Do as varchar(30)) + ''' '
Else
Set @SSQL = @SSQL + ' And D.Datum_Vnes >= ''' + cast(@Datum_Dok_Od as varchar(30)) + ''' And D.Datum_Vnes < ''' + cast(@Datum_Dok_Do + 1 as varchar(30)) + ''' '
Set @SSQL = @SSQL + ' And D.Datum_Dok >= ''' + cast(@Datum_Dok_Od as varchar(30)) + ''' And D.Datum_Dok <= ''' + cast(@Datum_Dok_Do as varchar(30)) + ''' '
Else
Set @SSQL = @SSQL + ' And D.Datum_Vnes >= ''' + cast(@Datum_Dok_Od as varchar(30)) + ''' And D.Datum_Vnes < ''' + cast(@Datum_Dok_Do + 1 as varchar(30)) + ''' '
Insert Into #Tab Exec(@SSQL)
Set @SSQL = ' Select 111, ''Diskont - Mleko i mle~ni proizvodi i konditorija '', Round(sum(Kolic*dbo.fn_VratiCenaOsnov(S.DokCena, S.DanDokCena, S.Posn, S.Uces, D.Kasa)),4)
From Stavr S
Inner Join Dokr D On D.DokrId = S.DokrId
Inner Join Katart K On K.Sifra_Art = S.Sifra_Art
Where S.Sifra_Oe In (3, 6) and S.Sifra_Dok in (71,73) And K.Sifra_Podg Not Like ''11%''
and S.Sifra_Oe <> 901'
If @PoKojDatum = 'D'
Set @SSQL = @SSQL + ' And D.Datum_Dok >= ''' + cast(@Datum_Dok_Od as varchar(30)) + ''' And D.Datum_Dok <= ''' + cast(@Datum_Dok_Do as varchar(30)) + ''' '
Else
Set @SSQL = @SSQL + ' And D.Datum_Vnes >= ''' + cast(@Datum_Dok_Od as varchar(30)) + ''' And D.Datum_Vnes < ''' + cast(@Datum_Dok_Do + 1 as varchar(30)) + ''' '
Where (K.Sifra_Podg like ''100%'' or K.Sifra_Podg like ''102%'' or K.Sifra_Podg like ''104%'' or K.Sifra_Podg like ''106%'' or K.Sifra_Podg like ''109%'')
and S.Sifra_Dok in (71,73,82,84)
and S.Sifra_Oe <> 901'
If @PoKojDatum = 'D'
Set @SSQL = @SSQL + ' And D.Datum_Dok >= ''' + cast(@Datum_Dok_Od as varchar(30)) + ''' And D.Datum_Dok <= ''' + cast(@Datum_Dok_Do as varchar(30)) + ''' '
Else
Set @SSQL = @SSQL + ' And D.Datum_Vnes >= ''' + cast(@Datum_Dok_Od as varchar(30)) + ''' And D.Datum_Vnes < ''' + cast(@Datum_Dok_Do + 1 as varchar(30)) + ''' '
Where (K.Sifra_Podg like ''101%'' or K.Sifra_Podg like ''103%'' or K.Sifra_Podg like ''105%'')
and S.Sifra_Dok in (71,73,82,84)
and S.Sifra_Oe <> 901'
If @PoKojDatum = 'D'
Set @SSQL = @SSQL + ' And D.Datum_Dok >= ''' + cast(@Datum_Dok_Od as varchar(30)) + ''' And D.Datum_Dok <= ''' + cast(@Datum_Dok_Do as varchar(30)) + ''' '
Else
Set @SSQL = @SSQL + ' And D.Datum_Vnes >= ''' + cast(@Datum_Dok_Od as varchar(30)) + ''' And D.Datum_Vnes < ''' + cast(@Datum_Dok_Do + 1 as varchar(30)) + ''' '
Insert Into #Tab Exec(@SSQL)
Set @SSQL = ' Select 114, ''Diskont - Riba '', Round(sum(Kolic*dbo.fn_VratiCenaOsnov(S.DokCena, S.DanDokCena, S.Posn, S.Uces, D.Kasa)),4)
From Stavr S
Inner Join Dokr D On D.DokrId = S.DokrId
Inner Join Katart K on K.Sifra_art = S.Sifra_art
Where (K.Sifra_Podg like ''13%'')
and S.Sifra_Dok in (71,73,82,84)
and S.Sifra_Oe <> 901'
If @PoKojDatum = 'D'
Set @SSQL = @SSQL + ' And D.Datum_Dok >= ''' + cast(@Datum_Dok_Od as varchar(30)) + ''' And D.Datum_Dok <= ''' + cast(@Datum_Dok_Do as varchar(30)) + ''' '
Else
Set @SSQL = @SSQL + ' And D.Datum_Vnes >= ''' + cast(@Datum_Dok_Od as varchar(30)) + ''' And D.Datum_Vnes < ''' + cast(@Datum_Dok_Do + 1 as varchar(30)) + ''' '
Insert Into #Tab Exec(@SSQL)
Set @SSQL = ' Select 115, ''Diskont - Suvomesnati proizvodi '', Round(sum(Kolic*dbo.fn_VratiCenaOsnov(S.DokCena, S.DanDokCena, S.Posn, S.Uces, D.Kasa)),4)
From Stavr S
Inner Join Dokr D On D.DokrId = S.DokrId
Inner Join Katart K on K.Sifra_art = S.Sifra_art
Where (K.Sifra_Podg like ''11%'')
and S.Sifra_Dok in (71,73,82,84)
and S.Sifra_Oe <> 901'
If @PoKojDatum = 'D'
Set @SSQL = @SSQL + ' And D.Datum_Dok >= ''' + cast(@Datum_Dok_Od as varchar(30)) + ''' And D.Datum_Dok <= ''' + cast(@Datum_Dok_Do as varchar(30)) + ''' '
Else
Set @SSQL = @SSQL + ' And D.Datum_Vnes >= ''' + cast(@Datum_Dok_Od as varchar(30)) + ''' And D.Datum_Vnes < ''' + cast(@Datum_Dok_Do + 1 as varchar(30)) + ''' '
Insert Into #Tab Exec(@SSQL)
Set @SSQL = ' Select 116, ''Diskont - Zamrznat zelen~uk i sladoled '', Round(sum(Kolic*dbo.fn_VratiCenaOsnov(S.DokCena, S.DanDokCena, S.Posn, S.Uces, D.Kasa)),4)
From Stavr S
Inner Join Dokr D On D.DokrId = S.DokrId
Inner Join Katart K on K.Sifra_art = S.Sifra_art
Where (K.Sifra_Podg like ''421%'' or K.Sifra_Podg like ''522%'' or K.Sifra_Podg like ''40%'' or K.Sifra_Podg like ''411%'')
and S.Sifra_Dok in (71,73,82,84)
and S.Sifra_Oe <> 901'
If @PoKojDatum = 'D'
Set @SSQL = @SSQL + ' And D.Datum_Dok >= ''' + cast(@Datum_Dok_Od as varchar(30)) + ''' And D.Datum_Dok <= ''' + cast(@Datum_Dok_Do as varchar(30)) + ''' '
Else
Set @SSQL = @SSQL + ' And D.Datum_Vnes >= ''' + cast(@Datum_Dok_Od as varchar(30)) + ''' And D.Datum_Vnes < ''' + cast(@Datum_Dok_Do + 1 as varchar(30)) + ''' '
Insert Into #Tab Exec(@SSQL)
Set @SSQL = ' Select ''119'', ''Vkupno proda`ba '', Round(sum(Iznos),4)
From #Tab
Where Sifra Like ''1%'' '
Insert Into #Tab Exec(@SSQL)
-----------------------------------------------------------------------------------------N A B A V K A --------------------------------------------------------------------------------------------------------
Insert Into #Tab(Sifra, Opis) Select 2, 'Nabavka:'
Set @SSQL = ' Select 201, ''Mleko i mle~ni proizvodi i konditorija '', Round(sum(dbo.fn_Vr_Osnov(S.Kolic,S.MagCena, S.DanMagCena, S.Posn)),4)
From Stavr S
Inner Join Dokr D On D.DokrId = S.DokrId
Where S.Sifra_Oe = 6 and S.Sifra_Dok in (132,2,22,23,102) '
If @PoKojDatum = 'D'
Set @SSQL = @SSQL + ' And D.Datum_Dok >= ''' + cast(@Datum_Dok_Od as varchar(30)) + ''' And D.Datum_Dok <= ''' + cast(@Datum_Dok_Do as varchar(30)) + ''' '
Else
Set @SSQL = @SSQL + ' And D.Datum_Vnes >= ''' + cast(@Datum_Dok_Od as varchar(30)) + ''' And D.Datum_Vnes < ''' + cast(@Datum_Dok_Do + 1 as varchar(30)) + ''' '
Where (K.Sifra_Podg like ''100%'' or K.Sifra_Podg like ''102%'' or K.Sifra_Podg like ''104%'' or K.Sifra_Podg like ''106%'' or K.Sifra_Podg like ''109%'')
and S.Sifra_Dok in (132,2,22,23,102)
and S.Sifra_Oe <> 901' If @PoKojDatum = 'D'
Set @SSQL = @SSQL + ' And D.Datum_Dok >= ''' + cast(@Datum_Dok_Od as varchar(30)) + ''' And D.Datum_Dok <= ''' + cast(@Datum_Dok_Do as varchar(30)) + ''' '
Else
Set @SSQL = @SSQL + ' And D.Datum_Vnes >= ''' + cast(@Datum_Dok_Od as varchar(30)) + ''' And D.Datum_Vnes < ''' + cast(@Datum_Dok_Do + 1 as varchar(30)) + ''' '
Set @SSQL = @SSQL + ' And D.Datum_Dok >= ''' + cast(@Datum_Dok_Od as varchar(30)) + ''' And D.Datum_Dok <= ''' + cast(@Datum_Dok_Do as varchar(30)) + ''' '
Else
Set @SSQL = @SSQL + ' And D.Datum_Vnes >= ''' + cast(@Datum_Dok_Od as varchar(30)) + ''' And D.Datum_Vnes < ''' + cast(@Datum_Dok_Do + 1 as varchar(30)) + ''' '
Insert Into #Tab Exec(@SSQL)
Set @SSQL = ' Select ''209'', ''Vkupno nabavka '', sum(Iznos)
From #Tab
Where Sifra Like ''2%'' '
Insert Into #Tab Exec(@SSQL)
-------------------------------------------------------------------------------------- R A Z L I K A V O C E N I ----------------------------------------------------------------------------------------------------------------
Insert Into #Tab(Sifra, Opis) Select 3, 'Razlika vo cena:'
Set @SSQL = ' Select 301, ''Mleko i mle~ni proizvodi i konditorija '', Round(sum(Kolic*dbo.fn_VratiCenaOsnov(S.DokCena, S.DanDokCena, S.Posn, S.Uces, D.Kasa)
-S.Kolic*S.NabCena),4)
From Stavr S
Inner Join Dokr D On D.DokrId = S.DokrId
Inner Join Katart K on K.Sifra_art = S.Sifra_art
Where S.Sifra_Oe in (3, 6)
and S.VlIzl = ''I'' and D.Sifra_Za = 1
and S.Sifra_Dok in (1,3,6,11,13,16,71,73,81,82,83,84,85,86) And K.Sifra_Podg Not Like ''11%'' '
-- and S.Sifra_Dok Not In (51,52) '
If @PoKojDatum = 'D'
Set @SSQL = @SSQL + ' And D.Datum_Dok >= ''' + cast(@Datum_Dok_Od as varchar(30)) + ''' And D.Datum_Dok <= ''' + cast(@Datum_Dok_Do as varchar(30)) + ''' '
Else
Set @SSQL = @SSQL + ' And D.Datum_Vnes >= ''' + cast(@Datum_Dok_Od as varchar(30)) + ''' And D.Datum_Vnes < ''' + cast(@Datum_Dok_Do + 1 as varchar(30)) + ''' '
Where (K.Sifra_Podg like ''100%'' or K.Sifra_Podg like ''102%'' or K.Sifra_Podg like ''104%'' or K.Sifra_Podg like ''106%'' or K.Sifra_Podg like ''109%'')
and S.VlIzl = ''I'' and D.Sifra_Za = 1
and S.Sifra_Dok in (1,3,6,11,13,16,71,73,81,82,83,84,85,86)
and S.Sifra_Oe <> 901'
-- and S.Sifra_Dok Not In (51,52) '
If @PoKojDatum = 'D'
Set @SSQL = @SSQL + ' And D.Datum_Dok >= ''' + cast(@Datum_Dok_Od as varchar(30)) + ''' And D.Datum_Dok <= ''' + cast(@Datum_Dok_Do as varchar(30)) + ''' '
Else
Set @SSQL = @SSQL + ' And D.Datum_Vnes >= ''' + cast(@Datum_Dok_Od as varchar(30)) + ''' And D.Datum_Vnes < ''' + cast(@Datum_Dok_Do + 1 as varchar(30)) + ''' '
SELECT Top 1 [Sifra_OE], [Sifra_Art], [Vlez], [Izlez], [Prof_Rez], [Cena], [DanCena], [POsn], [NabCena], [DokCena], [Uces] FROM [Soart] Where Sifra_OE=@Sifra_OE And Sifra_Art=@Sifra_Art
Fetch Next From Tabela Into @Sifra_OE, @Sifra_Art
End
Close Tabela
Deallocate Tabela
Set Nocount Off
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_duplirazlceni]'))
SELECT P.Sifra_Pat_SAP + '/' + (CASE WHEN D.Sifra_Dok=81 THEN 'A' WHEN D.Sifra_Dok=82 THEN 'G' END)
+ CAST(D.Sifra_Oe AS VARCHAR(10)) + '-' + CAST(D.Sifra_Dok AS VARCHAR(10)) + '/' + CAST(D.Broj_Dok AS VARCHAR(10)) AS BROJ_DOK,
'' AS BROJ_KUP, dbo.fn_VratiGodMesDenBas(D.Datum_Dok) AS DATUM_DOK,
dbo.fn_VratiGodMesDenBas(DATEADD(DAY, 1, D.Datum_Dok)) AS DATUM_ISP,
CASE WHEN DATEPART(hh, D.Datum_Vnes) < 10 THEN '0' + CAST(DATEPART(hh, D.Datum_Vnes) AS VARCHAR(2)) ELSE CAST(DATEPART(hh, D.Datum_Vnes) AS VARCHAR(2)) END
+ CASE WHEN DATEPART(mm, D.Datum_Vnes) < 10 THEN '0' + CAST(DATEPART(mm, D.Datum_Vnes) AS VARCHAR(2)) ELSE CAST(DATEPART(mm, D.Datum_Vnes) AS VARCHAR(2)) END AS VRIJEME_ISP,
dbo.fn_VratiGodMesDenBas(D.Datum_Dok) AS DATUM_CIJENE,
D.Sifra_Kup AS SIFRA_KUPCA,
K.Star_Kup AS SIFRA_MI,
P.Sifra_Pat_SAP AS SIFRA_PUT,
'MK01' AS PROD_ORG,
K.Distr_Kanal AS DISTR_KAN,
'01' AS SEKTOR, --K.Sektor AS SEKTOR,
K.Adresa2 AS PROD_URED, --K.PROD_URED,
K.Zabeleska AS SKLADISTE,
D.Rok AS ROK_PLAC,
D.Identif_Br AS NAPOMENA,
D.Prenesen AS SINH
FROM Dokr D
LEFT OUTER JOIN KObjekti K ON D.Sifra_Kup = K.Sifra_Kup AND D.Sifra_Obj = K.Sifra_Obj
LEFT OUTER JOIN Patnici P ON D.Sifra_Pat = P.Sifra_Pat
WHERE D.Datum_Dok>=@DatumOd AND D.Datum_Dok<=@DatumDo
SELECT P.Sifra_Pat_SAP + '/' +'N'+CAST(N.Sifra_Oe AS VARCHAR(10)) + '-' + CAST(N.Sifra_Nar AS VARCHAR(10)) + '/' + CAST(N.Broj_Nar AS VARCHAR(10)) AS BROJ_DOK,
'' AS BROJ_KUP, dbo.fn_VratiGodMesDenBas(N.Datum_Nar) AS DATUM_DOK,
dbo.fn_VratiGodMesDenBas(DATEADD(DAY, 1, N.Datum_Nar)) AS DATUM_ISP,
CASE WHEN DATEPART(hh, N.Datum_Vnes) < 10 THEN '0' + CAST(DATEPART(hh, N.Datum_Vnes) AS VARCHAR(2)) ELSE CAST(DATEPART(hh, N.Datum_Vnes) AS VARCHAR(2)) END
+ CASE WHEN DATEPART(mm, N.Datum_Vnes) < 10 THEN '0' + CAST(DATEPART(mm, N.Datum_Vnes) AS VARCHAR(2)) ELSE CAST(DATEPART(mm, N.Datum_Vnes) AS VARCHAR(2)) END AS VRIJEME_ISP,
dbo.fn_VratiGodMesDenBas(N.Datum_Nar) AS DATUM_CIJENE,
N.Sifra_Kup AS SIFRA_KUPCA,
K.Star_Kup AS SIFRA_MI,
P.Sifra_Pat_SAP AS SIFRA_PUT,
'MK01' AS PROD_ORG,
'MR' AS DISTR_KAN,
'01' AS SEKTOR, --K.Sektor AS SEKTOR,
K.Prod_Ured AS PROD_URED, --K.PROD_URED,
K.Zabeleska AS SKLADISTE,
N.Rok AS ROK_PLAC,
N.Identif_Br AS NAPOMENA,
N.Prenesen AS SINH
FROM Naracki N
LEFT OUTER JOIN KObjekti K ON N.Sifra_Kup = K.Sifra_Kup AND N.Sifra_Obj = ( CASE WHEN K.Sifra_Obj IS NULL THEN 0 ELSE K.Sifra_Obj END)
LEFT OUTER JOIN Patnici P ON N.Sifra_Pat = P.Sifra_Pat
WHERE N.Datum_Nar>=@DatumOd AND N.Datum_Nar<=@DatumDo
*/
IF @PratiSiteDok <> 'D'
DELETE FROM ##TmpHdrSAP WHERE SINH IS NOT NULL AND SINH = 'D'
DELETE FROM ##TmpHdrSap WHERE BROJ_DOK IS NULL OR BROJ_DOK = ''
WHERE Sifra_OE IN (SELECT Sifra_OE FROM #TmpOE) AND Datum_Dok>=@Datum_Od AND Datum_Dok<=@Datum_Do AND VlIzl='I' AND Sifra_Prim IS NULL
Group By Sifra_Oe, Sifra_Art ORDER BY Sifra_Oe, Sifra_Art
UPDATE ##Prodazba SET ChainCode = substring(Replace(O.ImeOrg, ';', ','),1,30) FROM Orged O WHERE ##Prodazba.ShopCode=O.Sifra_OE
UPDATE ##Prodazba SET ChainCode = Replace(ChainCode, '"', '')
UPDATE ##Prodazba SET GrpCode = A.Sifra_Podg FROM KatArt A WHERE ##Prodazba.InCode=A.Sifra_Art
UPDATE ##Prodazba SET GrpName = P.Ime_Podg FROM Podgrupi P WHERE ##Prodazba.GrpCode=P.Sifra_Podg
UPDATE ##Prodazba SET GrpName = Replace(GrpName, ';', ',')
UPDATE ##Prodazba SET GrpName = Replace(GrpName, '"', '')
UPDATE ##Prodazba SET BarCode = Case WHEN upper(substring(A.Nom,1,1))='X' THEN '' ELSE A.Nom END, BarName = A.ImeArt FROM KatArt A WHERE ##Prodazba.InCode=A.Sifra_Art
UPDATE ##Prodazba SET BarName = Replace(BarName, ';', ',')
UPDATE ##Prodazba SET BarName = Replace(BarName, '"', '')
UPDATE ##Prodazba SET Price=Round(SalesAmount / SalesItem, 2) WHERE SalesItem<>0
UPDATE ##Prodazba SET BarCode = '' WHERE len(ltrim(rtrim(BarCode)))<8 OR len(ltrim(rtrim(BarCode)))>13
UPDATE ##Prodazba SET BarCode = '' WHERE PATINDEX ('%?%', BarCode)>0
UPDATE ##Prodazba SET BarCode = '' WHERE PATINDEX ('%/%', BarCode)>0
UPDATE ##Prodazba SET BarCode = '' WHERE PATINDEX ('%+%', BarCode)>0
UPDATE ##Prodazba SET BarCode = '' WHERE PATINDEX ('%*%', BarCode)>0
UPDATE ##Prodazba SET BarCode = '' WHERE PATINDEX ('%-%', BarCode)>0
UPDATE ##Prodazba SET BarCode = '' WHERE PATINDEX ('%.%', BarCode)>0
INSERT INTO #TmpABar (ABarBroj, Sifra_Art) SELECT Max(ABarBroj), Sifra_Art FROM #SiteBarKod WHERE Sifra_Art IN
(SELECT DISTINCT InCode FROM ##Prodazba WHERE BarCode='') GROUP BY Sifra_Art
UPDATE #TmpABar SET Nom =A.Nom FROM #SiteBarKod A WHERE #TmpABar.ABarBroj=A.ABarBroj
UPDATE #SiteBarKod SET Ind='D' FROM #TmpABar A WHERE #SiteBarKod.ABarBroj = A.ABarBroj
UPDATE ##Prodazba SET BarCode = A.Nom FROM #TmpABar A WHERE ##Prodazba.InCode=A.Sifra_Art AND ##Prodazba.BarCode=''
UPDATE ##Prodazba SET BarCode=InCode WHERE BarCode IS NULL OR BarCode=''
CREATE TABLE ##BarKod
( Sifra_Art varchar(20),
Nom varchar(50))
INSERT INTO ##BarKod (Sifra_art, Nom) SELECT Sifra_Art, Nom FROM #SiteBarKod WHERE Ind<>'D'
SELECT * FROM ##Prodazba
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_expvirkom]'))
drop procedure [dbo].[sp_expvirkom]
Go
CREATE PROCEDURE sp_ExpVirKom
@Datum_Od smalldatetime,
@Datum_Do smalldatetime,
@ZbirnoPoKom char(1)='D'
As
Declare @ii as smallint
Declare @DatumStr as varchar(8)
SET @DatumStr = cast(year(GetDate()) as char(4))
if month(GetDate())<10
SET @DatumStr=@DatumStr+'0'+cast(month(GetDate()) as char(1))
else
SET @DatumStr=@DatumStr+cast(month(GetDate()) as char(2))
if day(GetDate())<10
SET @DatumStr=@DatumStr+'0'+cast(day(GetDate()) as char(1))
else
SET @DatumStr=@DatumStr+cast(day(GetDate()) as char(2))
CREATE TABLE ##TmpKOM
(Zapis char(303))
CREATE TABLE #TmpSm
(VirID int,
Ska_Nal char(18),
Ska_Prim char(18))
INSERT INTO #TmpSm SELECT VirID, Ska_Nal, Ska_Prim FROM VirmanIzv WHERE Dat_Pec>=@Datum_Od AND Dat_Pec<=@Datum_Do AND Banka_Nal LIKE 'KOMERC%'
SET @ii = 1
While @ii < 10
Begin
UPDATE #TmpSm SET Ska_Nal='0'+RTrim(Ska_Nal) WHERE Len(RTrim(Ska_Nal))<18
UPDATE #TmpSm SET Ska_Prim='0'+RTrim(Ska_Prim) WHERE Len(RTrim(Ska_Prim))<18
SET @ii = @ii +1
End
IF @ZbirnoPoKom ='D'
INSERT INTO ##TmpKOM
SELECT cast(VV.Ska_Nal as char(18))+cast(K.ImeKup as char(70))+cast(VV.Ska_Prim as char(18))+'+'+
cast(cast(SUM(V.Iznos) as decimal(18,2)) as char(17)) +@DatumStr+
cast(V.Cel as char(70)) +
CASE WHEN V.Sifra_Virman='PP50' THEN '09' ELSE '01' END
+ cast(V.Sifra as char(3)) + cast(V.Pov_Prim as char(24)) + cast(V.Pov_Nal as char(24)) + cast(V.Nacin as char(1))+
CASE WHEN V.Sifra_Virman='PP50' THEN
cast(V.Uplatna as char(11))+
Cast(V.Budzet as char(15))+
Cast(V.Prihodna as Char(8)) ELSE space(32) END
+ cast(K.Danocen as char(13))
FROM VirmanIzv V LEFT OUTER JOIN Komint K ON V.Sifra_Prim=K.Sifra_Kup
INNER JOIN #TmpSm VV ON V.VirID=VV.VirID
WHERE V.Dat_Pec>=@Datum_Od AND V.Dat_Pec<=@Datum_Do AND V.Banka_Nal LIKE 'KOMERC%'
GROUP BY VV.Ska_Nal, K.ImeKup, VV.Ska_Prim, V.Cel, V.Sifra_Virman, V.Sifra, V.Pov_Prim, V.Pov_Nal, V.Nacin,V.Uplatna, V.Budzet, V.Prihodna, K.Danocen
ELSE
INSERT INTO ##TmpKOM
SELECT cast(VV.Ska_Nal as char(18))+cast(K.ImeKup as char(70))+cast(VV.Ska_Prim as char(18))+'+'+
cast(cast(V.Iznos as decimal(18,2)) as char(17)) +@DatumStr+
cast(V.Cel as char(70)) +
CASE WHEN V.Sifra_Virman='PP50' THEN '09' ELSE '01' END
+ cast(V.Sifra as char(3)) + cast(V.Pov_Prim as char(24)) + cast(V.Pov_Nal as char(24)) + cast(V.Nacin as char(1))+
CASE WHEN V.Sifra_Virman='PP50' THEN
cast(V.Uplatna as char(11))+
Cast(V.Budzet as char(15))+
Cast(V.Prihodna as Char(8)) ELSE space(32) END
+ cast(K.Danocen as char(13))
FROM VirmanIzv V LEFT OUTER JOIN Komint K ON V.Sifra_Prim=K.Sifra_Kup
INNER JOIN #TmpSm VV ON V.VirID=VV.VirID
WHERE V.Dat_Pec>=@Datum_Od AND V.Dat_Pec<=@Datum_Do AND V.Banka_Nal LIKE 'KOMERC%'
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_expvirsto]'))
drop procedure [dbo].[sp_expvirsto]
Go
CREATE PROCEDURE sp_ExpVirSto
@Datum_Od smalldatetime,
@Datum_Do smalldatetime,
@ZbirnoPoKom char(1) ='D'
As
Declare @DatumVal as varchar(8)
Declare @Dat as varchar(8)
if day(getdate())<10
SET @DatumVal='0'+cast(day(getdate()) as char(1))
else
SET @DatumVal=cast(day(getdate()) as char(2))
if month(getdate())<10
SET @DatumVal=@DatumVal+'0'+cast(month(getdate()) as char(1))
else
SET @DatumVal=@DatumVal+cast(month(getdate()) as char(2))
SET @DatumVal =@DatumVal+cast(year(getdate()) as char(4))
CREATE TABLE #TmpStopanska
( Rbr int identity(1,1),
Zapis varchar(220))
if @ZbirnoPoKom ='D'
INSERT INTO #TmpStopanska
SELECT '!'+
rtrim(cast(V.Ska_Nal as char(15)))+'!'+
cast(dbo.fn_LevoNuliStr(cast(Sum(V.Iznos) as decimal(18,2)), 12) as char(12))+'!'+
rtrim(case when V.Ska_Prim Is Null Then '' Else cast(V.Ska_Prim as char(15)) End)+'!'+
rtrim(case when K.ImeKUp is null then '' else cast(K.ImeKup as char(70))End)+'!'+
rtrim(case when V.Sifra is null then '' else cast(V.Sifra as char(3))end)+'!'+
rtrim(case when V.Cel is null then '' else cast(V.Cel as char(70))end)+'!'+
rtrim(case when V.Pov_Nal is null then '' else cast(V.Pov_Nal as char(24))end)+'!'+
case when V.Sifra_Virman='PP50'then
(case when V.budzet is null or rtrim(V.Budzet)='' then V.Uplatna+' '+V.Prihodna else V.Budzet+V.Prihodna end)else
rtrim(case when V.Pov_prim is null then '' else cast(V.Pov_Prim as char(24))end)End +'!'+
cast(dbo.fn_VratiDatumBezCrtiObratno(V.Dat_Val) as varchar(10))+'!'+--case when @DatumVal is null then '' else
cast(dbo.fn_VratiDatumBezCrtiObratno(V.Dat_Val) as varchar(10))+'!'+-- case when @DatumPec is null then '' else
rtrim(case when V.Nacin is null then '' else cast(V.Nacin as char(1))end)+'!'+
rtrim(case when V.Prioritet is null then '' else cast(V.Prioritet as varchar(2))end)+'!'+
CASE WHEN V.Sifra_Virman='PP30' THEN '0!' ELSE '1!' END
FROM VirmanIzv V
LEFT OUTER JOIN Komint K ON V.Sifra_Prim=K.Sifra_Kup
WHERE V.Dat_Pec>=@Datum_Od AND V.Dat_Pec<=@Datum_Do AND V.Banka_Nal LIKE 'STOP%'
GROUP BY V.Prioritet, V.Ska_Nal,V.Pov_Nal, V.Cel, V.Sifra, V.Ska_Prim, K.ImeKup,V.Uplatna, V.Budzet, V.Prihodna, V.Pov_Prim,
K.Danocen, V.Sifra_Virman, V.Nacin, V.Dat_Val
--CREATE TABLE ##TmpSto
--(Zapis varchar(300))
-- INSERT INTO ##TmpSto SELECT Cast(rbr as varchar(5))+Zapis from #TmpStopanska
else
INSERT INTO #TmpStopanska
SELECT '!'+
rtrim(cast(V.Ska_Nal as char(15)))+'!'+
cast(dbo.fn_LevoNuliStr(cast(V.Iznos as decimal(18,2)), 12) as char(12))+'!'+
rtrim(case when V.Ska_Prim Is Null Then '' Else cast(V.Ska_Prim as char(15)) End)+'!'+
rtrim(case when K.ImeKUp is null then '' else cast(K.ImeKup as char(70))End)+'!'+
rtrim(case when V.Sifra is null then '' else cast(V.Sifra as char(3))end)+'!'+
rtrim(case when V.Cel is null then '' else cast(V.Cel as char(70))end)+'!'+
rtrim(case when V.Pov_Nal is null then '' else cast(V.Pov_Nal as char(24))end)+'!'+
case when V.Sifra_Virman='PP50'then
(case when V.budzet is null or rtrim(V.Budzet)='' then V.Uplatna+' '+V.Prihodna else V.Budzet+V.Prihodna end)else
rtrim(case when V.Pov_prim is null then '' else cast(V.Pov_Prim as char(24))end)End +'!'+
cast(dbo.fn_VratiDatumBezCrtiObratno(V.Dat_Val) as varchar(10))+'!'+--case when @DatumVal is null then '' else
cast(dbo.fn_VratiDatumBezCrtiObratno(V.Dat_Val) as varchar(10))+'!'+-- bese samo @DatumVal case when @DatumPec is null then '' else
rtrim(case when V.Nacin is null then '' else cast(V.Nacin as char(1))end)+'!'+
rtrim(case when V.Prioritet is null then '' else cast(V.Prioritet as varchar(2))end)+'!'+
CASE WHEN V.Sifra_Virman='PP30' THEN '0!' ELSE '1!' END
FROM VirmanIzv V
LEFT OUTER JOIN Komint K ON V.Sifra_Prim=K.Sifra_Kup
WHERE V.Dat_Pec>=@Datum_Od AND V.Dat_Pec<=@Datum_Do AND V.Banka_Nal LIKE 'STOP%'
CREATE TABLE ##TmpSto
(Zapis varchar(300))
INSERT INTO ##TmpSto SELECT Cast(rbr as varchar(5))+Zapis from #TmpStopanska
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_expvirtut]'))
drop procedure [dbo].[sp_expvirtut]
Go
CREATE PROCEDURE sp_ExpVirTut
@Datum_Od smalldatetime,
@Datum_Do smalldatetime,
@ZbirnoPoKom char(1)='D'
As
Declare @DatumStr as varchar(10)
Declare @DatumVal as varchar(10)
SET @DatumStr = cast(year(GetDate()) as char(4))+'.'
if month(GetDate())<10
SET @DatumStr=@DatumStr+'0'+cast(month(GetDate()) as char(1))+'.'
else
SET @DatumStr=@DatumStr+cast(month(GetDate()) as char(2))+'.'
if day(GetDate())<10
SET @DatumStr=@DatumStr+'0'+cast(day(GetDate()) as char(1))
else
SET @DatumStr=@DatumStr+cast(day(GetDate()) as char(2))
CREATE TABLE ##TmpTUT
(Zapis char(277))
IF @ZbirnoPoKom ='D'
INSERT INTO ##TmpTUT
SELECT cast(V.Prioritet as char(2))+cast(V.Ska_Nal as char(18))+cast(V.Pov_Nal as char(24))+
cast(V.Cel as char(70))+cast(V.Sifra as char(6))+
cast(replace(cast(cast(Sum(V.Iznos) as decimal(18,2)) as char(19)),'.','') as char(19))+
cast(V.Ska_Prim as char(18))+cast(K.ImeKup as char(70))+
CASE WHEN V.Sifra_Virman='PP50' THEN Cast(V.Uplatna+V.Budzet+V.Prihodna as char(24))+'50' ELSE cast(V.Pov_Prim as char(24))+'30' End +
cast(K.Danocen as char(13))+@DatumStr+V.Nacin
FROM VirmanIzv V LEFT OUTER JOIN Komint K ON V.Sifra_Prim=K.Sifra_Kup
WHERE V.Dat_Pec>=@Datum_Od AND V.Dat_Pec<=@Datum_Do AND V.Banka_Nal LIKE '%TUTUN%'
GROUP BY V.Prioritet, V.Ska_Nal,V.Pov_Nal, V.Cel, V.Sifra, V.Ska_Prim, K.ImeKup,V.Uplatna, V.Budzet, V.Prihodna, V.Pov_Prim,
K.Danocen, V.Sifra_Virman, V.Nacin
else
INSERT INTO ##TmpTUT
SELECT cast(V.Prioritet as char(2))+cast(V.Ska_Nal as char(18))+cast(V.Pov_Nal as char(24))+
cast(V.Cel as char(70))+cast(V.Sifra as char(6))+
cast(replace(cast(cast(V.Iznos as decimal(18,2)) as char(19)),'.','') as char(19))+
cast(V.Ska_Prim as char(18))+cast(K.ImeKup as char(70))+
CASE WHEN V.Sifra_Virman='PP50' THEN Cast(V.Uplatna+V.Budzet+V.Prihodna as char(24))+'50' ELSE cast(V.Pov_Prim as char(24))+'30' End +
cast(K.Danocen as char(13))+@DatumStr+V.Nacin
FROM VirmanIzv V LEFT OUTER JOIN Komint K ON V.Sifra_Prim=K.Sifra_Kup
WHERE V.Dat_Pec>=@Datum_Od AND V.Dat_Pec<=@Datum_Do AND V.Banka_Nal LIKE '%TUTUN%'
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_fakt_ortop]'))
drop procedure [dbo].[sp_fakt_ortop]
Go
CREATE PROCEDURE sp_Fakt_Ortop
@Datum_Od smalldatetime = Null,
@Datum_Do smalldatetime = Null
AS
Declare @SSQL as varchar(8000)
Set @SSQL = ' Select R.Sifra_Art, sum(R.Kolku_Pakuv) Kolku_Pakuv, R.Cena_Tender, R.PRocDDV,
L.ImeArt, P.ImePacient, P.Broj_Kniska, P.EMBG
From Recepti_P R
Left Outer Join Katart L on R.Sifra_Art = L.Sifra_Art
Left Outer Join Pacienti P ON R.EMBG=P.EMBG
Where 1=1 '
Set @SSQL = @SSQL + ' And R.Datum_Izdav >= ''' + Cast(@Datum_Od as Varchar(30)) + ''' '
Set @SSQL = @SSQL + ' And R.Datum_Izdav <= ''' + Cast(@Datum_Do as Varchar(30)) + ''' '
Set @SSQL = @SSQL + ' Group By P.EMBG, R.Sifra_Art, R.Cena_Tender, R.ProcDDV,
L.ImeArt, P.ImePacient, P.Broj_Kniska, P.EMBG '
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_fakturi_zapecatenje]'))
drop procedure [dbo].[sp_fakturi_zapecatenje]
Go
CREATE PROCEDURE sp_Fakturi_ZaPecatenje
@Datum smalldatetime,
@Sifra_Dok varchar(200),
@Sifra_OE varchar(200)=Null,
@Pec_Dok smallint = Null,
@VlIzl char(1)=Null,
@OdMagStavr char(1) = 'N'
AS
Declare @SSQL as varchar(4000)
Set @SSQL = ' Select Distinct D.Sifra_Oe, D.Sifra_Dok, D.Broj_Dok, D.Br_Kopii
From Dokr D '
If @OdMagStavr='D'
Set @SSQL = @SSQL + ' Inner Join MagStavr M On M.DokrID=D.DokrID '
Set @SSQL = @SSQL + ' Where 1=1
And D.Datum_Dok >= ''' + cast(@Datum as varchar(30)) + '''
And D.Sifra_Dok In ( ' + @Sifra_Dok + ') '
If @Sifra_OE IS NOT NULL
Set @SSQL = @SSQL + ' And D.Sifra_OE In ( ' + @Sifra_OE + ') '
If @Pec_Dok Is Not Null
Set @SSQL = @SSQL + ' And D.Pec_Dok= ' + Cast(@Pec_Dok as varchar(6)) + ' '
Else If @Pec_Dok Is Null
Set @SSQL = @SSQL + ' And D.Pec_Dok Is Null '
If @VlIzl IS NOT NULL
Set @SSQL = @SSQL + ' And D.VlIzl= ''' + @VlIzl + ''' '
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_fiizvestai]'))
drop procedure [dbo].[sp_fiizvestai]
Go
CREATE PROCEDURE sp_FiIzvestai
@FiID smallint,
@Datum_Od smalldatetime,
@Datum_Do smalldatetime
AS
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_finsost_po_podelba6]'))
drop procedure [dbo].[sp_finsost_po_podelba6]
Go
CREATE PROCEDURE sp_FinSost_Po_Podelba6
@Sifra_Oe smallint = Null,
@Koi_Oe varchar(6) = Null,
@Datum_Od smalldatetime,
@Datum_Do smalldatetime,
@Sifra_Kup_Od char(6) = Null,
@Sifra_Kup_Do char(6) = Null,
@Kto_Anal varchar(11) = Null
AS
Declare @SSQL as varchar(8000)
Set @SSQL = ' Select Kup.KDrugo6, KD6.Ime_6K,
(Case When Kup.KDrugo6 < 100 Then ''0'' When (Kup.KDrugo6 Is Not Null And Kup.KDrugo6 >= 100) Then Substring(Cast(Kup.KDrugo6 as varchar(3)),1,1) Else Kup.KDrugo6 End) Grupa,
Sum(Case When A.Datum_Dok < ''' + Cast(@Datum_Od as varchar(30)) + ''' Then (A.Dolzi - A.Pobaruva) Else 0 End) PrethSaldo,
Sum(Case When A.Datum_Dok >= ''' + Cast(@Datum_Od as varchar(30)) + ''' Then A.Dolzi Else 0 End) Dolzi,
Sum(Case When A.Datum_Dok >= ''' + Cast(@Datum_Od as varchar(30)) + ''' Then A.Pobaruva Else 0 End) Pobaruva,
Sum(A.Dolzi - A.Pobaruva) Saldo,
Sum((Case When (DateAdd(Day, Rok, A.Datum_Dok) <= ''' + Cast(@Datum_Do as varchar(30)) + ''') Then A.Dolzi Else 0 End) -
(Case When (A.Datum_Dok <= ''' + Cast(@Datum_Do as varchar(30)) + ''') Then A.Pobaruva Else 0 End)) Dospeani,
Sum(Case When (A.Dolzi<>A.Plateno_Dolzi) And (DateAdd(Day, Rok, A.Datum_Dok) > ''' + Cast(@Datum_Do as varchar(30)) + ''') Then (A.Dolzi-A.Plateno_Dolzi) Else 0 End) NeDospeani
From AnfinDok A
Inner Join Komint Kup On Kup.Sifra_Kup=A.Sifra_Kup
Left Outer Join KDrugo6 KD6 On KD6.Sifra_6K=Kup.Kdrugo6
Where A.Sifra_Za = ''1''
And A.Datum_Dok <= ''' + Cast(@Datum_Do as varchar(30)) + '''
And (KDrugo6 < 900 Or KDrugo6 Is Null) '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' And A.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
If @Koi_Oe Is Not Null
Set @SSQL = @SSQL + ' And A.Sifra_Oe In (Select Sifra_Oe From SGrOrg Where Sif_GrOrg = ''' + @Koi_Oe + ''') '
If @Sifra_Kup_Od Is Not Null
Set @SSQL = @SSQL + ' And A.Sifra_Kup >= ' + @Sifra_Kup_Od + ' '
If @Sifra_Kup_Do Is Not Null
Set @SSQL = @SSQL + ' And A.Sifra_Kup <= ' + @Sifra_Kup_Do + ' '
If @Kto_Anal Is Not Null
Set @SSQL = @SSQL + ' And A.Kto = ''' + @Kto_Anal + ''' '
Set @SSQL = @SSQL + ' Group By Kup.KDrugo6, KD6.Ime_6K
Order By Kup.KDrugo6 '
print @SSQL
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_fipodsuma]'))
drop procedure [dbo].[sp_fipodsuma]
Go
CREATE PROCEDURE sp_FiPodSuma
@RbrFi smallint,
@OdKadeSakam char(1),
@Iznos decimal(18,6) OUTPUT
AS
Declare @SSQL varchar(1000)
Declare @OdKade char(1)
Declare @IznOdStav decimal(18,6)
SET @Iznos = 0
Declare Tabela3 Cursor Fast_Forward For
Select OdKade, Iznos
From ##TmpTab WHERE RbrFi < @RbrFi Order by RbrFi DESC
Open Tabela3
Fetch Next From Tabela3 Into @OdKade, @IznOdStav
While @@Fetch_Status = 0
Begin
If @OdKade = @OdKadeSakam
Begin
Close Tabela3
Deallocate Tabela3
RETURN
End
If @OdKade <> 'P'
Set @Iznos = @Iznos + @IznOdStav
Fetch Next From Tabela3 Into @OdKade, @IznOdStav
End
Close Tabela3
Deallocate Tabela3
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_fix_dajcenazadatum]'))
drop procedure [dbo].[sp_fix_dajcenazadatum]
Go
CREATE PROCEDURE sp_fix_DajCenaZaDatum
@VlIzl char(1) = Null,
@Tip_Sif_Kup char(1) = Null,
@Sif_Kup_Gen varchar(11) = Null,
@Tip_Sif_Art char(1) = Null,
@Sif_Art_Gen varchar(20),
@Datum smalldatetime
AS
SELECT *
FROM dbo.fix_DajCenaZaDatum(@VlIzl, @Tip_Sif_Kup, @Sif_Kup_Gen, @Tip_Sif_Art, @Sif_Art_Gen, @Datum)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_fix_dajrabatodcenpopodgr]'))
drop procedure [dbo].[sp_fix_dajrabatodcenpopodgr]
SET KrCena = -1 * (Tek_Vr_Vlez-Tek_Vr_Izlez+Vr_RazlC) / Kolic + PocCena
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_genlot]'))
drop procedure [dbo].[sp_genlot]
Go
CREATE PROCEDURE sp_GenLot
@KoiOE varchar(100)=NULL,
@SurGotov char(1)='S', --S-surovini,G-gotov pr.
@Sifra_Dob char(6)=NULL, --treba samo za surovini
@Datum smalldatetime,
@KojDatum char(1)='D', --D-dat.dok,V-dat.vnes
@Lot varchar(30)='' OUTPUT
AS
DECLARE @SSQL varchar(3000)
DECLARE @OznDob as varchar(10)
Declare @Br as smallint
Declare @dmy as varchar(6)
IF Day(@Datum) < 10
SET @dmy = '0' + ltrim(CAST(Day(@Datum) as char(1)))
ELSE
SET @dmy = ltrim(CAST(Day(@Datum) as char(2)))
IF Month(@Datum) < 10
SET @dmy = @dmy + '0' + ltrim(CAST(MONTH(@Datum) as char(1)))
ELSE
SET @dmy = @dmy + ltrim(CAST(MONTH(@Datum) as char(2)))
SET @dmy = @dmy + Substring(CAST(YEAR(@Datum) as char(4)),3,2)
CREATE TABLE #TmpBr
(Broj smallint)
SET @SSQL = 'SELECT COUNT(DISTINCT S.Sifra_Art) FROM Stavr S
INNER JOIN Dokr D ON S.DokrID=D.DokrID WHERE S.VlIzl=''V'' AND D.Sifra_Za=''2'' AND '
IF @KojDatum='V'
SET @SSQL = @SSQL + 'db.fn_VratiDatum(D.Datum_Vnes)='''+cast(@Datum as varchar(35))+''' '
Else
SET @SSQL = @SSQL + 'S.Datum_Dok='''+cast(@Datum as varchar(35))+''' '
IF @SurGotov='S'
SET @SSQL = @SSQL + 'AND D.Sifra_Kup='+ @Sifra_Dob
INSERT INTO #TmpBr EXEC (@SSQL)
SELECT @Br=Broj FROM #TmpBr
IF @Br IS NULL SET @Br = 0
if @Br > 98 SET @Br = 98
SET @Br = @Br + 1
IF @SurGotov='S'
Begin
SELECT @OznDob = SkrOznaka FROM Komint WHERE Sifra_Kup=@Sifra_Dob
IF @OznDob IS NULL SET @OznDob='XX'
IF Len(@OznDob)=0 SET @OznDob='XX'
IF Len(@OznDob)=1 SET @OznDob=@OznDob+'X'
SET @Lot = @dmy +Substring(@OznDob,1,2)
IF @Br<=9
SET @Lot = @Lot + '0' + cast(@Br as char(1))
ELSE
SET @Lot = @Lot + cast(@Br as char(2))
End
ELSE
Begin
SET @Lot = @dmy
IF @Br<=9
SET @Lot = @Lot + '0' + cast(@Br as char(1))
ELSE
SET @Lot = @Lot + cast(@Br as char(2))
End
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_genodobrenija]'))
drop procedure [dbo].[sp_genodobrenija]
Go
CREATE PROCEDURE sp_GenOdobrenija
@ProcOdob decimal(6,2),
@PocDatFak smalldatetime,
@Sifra_Nal_Upl smallint,
@Dat_Upl_Od smalldatetime,
@Dat_Upl_Do smalldatetime,
@Sifra_Kup char(6) = NULL,
@Kto char(10),
@TolerRazlUpl decimal(10,2),
@GrpOdobKup char(1)='D',
@KoiCeniKup varchar(30) = NULL,
@DaliIAneks1 char(1)='N',
@TolerDenaDocni smallint = NULL,
@PoUplati char(1) = 'D'
AS
IF @TolerDenaDocni IS NULL SET @TolerDenaDocni = 0
Declare @SSQL varchar(3000)
CREATE TABLE #TmpFin
(AnID_Upl int,
AnID_Fak int,
Sifra_OEF smallint,
Sifra_DokF smallint,
Broj_DokF int,
Datum_Upl smalldatetime,
Datum_Fak smalldatetime,
Rok smallint,
Sifra_Kup char(6),
Iznos_Fak decimal(18,4),
Izn_Plat decimal(18,4),
POsn1 decimal(6,2),
POsn2 decimal(6,2),
Osn1 decimal(18,6),
Osn2 decimal(18,6), --ovde dodaj pole sifra_pat ako treba
ObrabDDV char(1))
IF @PoUplati='D'
Begin
CREATE TABLE #TmpUpl
(AnID_Upl int,
Datum_Upl smalldatetime)
SET @SSQL = 'SELECT AnID, Datum_Dok FROM AnFinDok WHERE Kto=''' + @Kto +''' AND Datum_Dok >=''' + Cast(@Dat_Upl_Od as varchar(35)) +
''' AND Datum_Dok <=''' + Cast(@Dat_Upl_Do as varchar(35)) + ''' AND Pobaruva>0 '
IF @Sifra_Kup IS NOT NULL
SET @SSQL = @SSQL + ' AND Sifra_Kup=' + @Sifra_Kup
IF @Sifra_Nal_Upl IS NOT NULL
SET @SSQL = @SSQL + ' AND Sifra_Nal=' + cast(@Sifra_Nal_Upl as varchar(6)) -- ovde bese gresska @Sifra_Kup
IF @DaliIAneks1='D' OR @KoiCeniKup IS NOT NULL
Begin
SET @SSQL = @SSQL + ' AND Sifra_Kup IN (SELECT Sifra_Kup FROM Komint WHERE 1=1 '
IF @DaliIAneks1='D'
SET @SSQL = @SSQL + ' AND Aneks1 IS Not NULL AND Aneks1<>'''' '
IF @KoiCeniKup IS NOT NULL
SET @SSQL = @SSQL + ' AND KojaCena IN (' + @KoiCeniKup + ') '
SET @SSQL = @SSQL + ') '
End
INSERT INTO #TmpUpl EXEC (@SSQL)
Declare @AnIDUpl int
Declare @DatUpl smalldatetime
Declare TabUpl Cursor Fast_Forward For Select AnID_Upl, Datum_Upl From #TmpUpl
Open TabUpl
Fetch Next From TabUpl Into @AnIDUpl, @DatUpl
While @@Fetch_Status = 0
Begin
SET @SSQL = 'SELECT '+cast(@AnIDUpl as varchar(10))+ ', A.AnID, A.Sifra_OE, A.Sifra_Dok, A.Broj_Dok, A.Datum_Dok, A.Rok, A.Sifra_Kup, A.Dolzi, A.Plateno_Dolzi FROM AnFinDok A
INNER JOIN AnZatv Z ON (A.AnID=Z.AnID1 AND Z.AnID2=' + cast(@AnIDUpl as varchar(10))+ ') OR (A.AnID=Z.AnID2 AND Z.AnID1=' + cast(@AnIDUpl as varchar(10))+
') WHERE A.Dolzi > 0 AND A.Datum_Dok>=''' + cast(@PocDatFak as varchar(35)) + ''' AND A.AnID NOT IN (SELECT AnID_Fak FROM StaOdobr)
AND A.AnID NOT IN (SELECT AnID_Fak FROM #TmpFin) AND A.Dolzi * (1-'+ cast(@ProcOdob as varchar(10)) + '/100) - A.Plateno_Dolzi <= ' +
cast(@TolerRazlUpl as varchar(15)) + ' AND A.Datum_Dok + A.Rok' + '+'+cast(@TolerDenaDocni as varchar(5)) + '>=''' + cast(@DatUpl as varchar(35)) + ''' '
------- Brisi gi site stavki fakturi koi imaat nekoja uplata po rokot
CREATE TABLE #Tmp1
(Kolku int)
Declare @AnIDFak int
Declare @DatFak smalldatetime
Declare @Rok integer
Declare @IznFak as decimal
Declare @Klk as integer
Declare TabFak Cursor Fast_Forward For Select AnID_Fak, Datum_Fak, Rok, Iznos_Fak From #TmpFin ORDER BY AnID_Fak
Open TabFak
Fetch Next From TabFak Into @AnIDFak, @DatFak, @Rok, @IznFak
While @@Fetch_Status = 0
Begin
DELETE FROM #Tmp1
SET @SSQL = 'SELECT Count(*) FROM AnFinDok A
INNER JOIN AnZatv Z ON (A.AnID=Z.AnID1 AND Z.AnID2=' + cast(@AnIDFak as varchar(10))+ ') OR (A.AnID=Z.AnID2 AND Z.AnID1=' + cast(@AnIDFak as varchar(10))+
') WHERE A.Pobaruva > 0 AND A.Datum_Dok >''' + cast(@DatFak+@Rok + @TolerDenaDocni as varchar(35)) + ''' AND Z.Iznos >' +
Cast(@IznFak * @ProcOdob /100 +@TolerRazlUpl as varchar(15))
INSERT INTO #Tmp1 EXEC (@SSQL)
SELECT @Klk = Kolku FROM #Tmp1
IF @Klk IS NOT NULL AND @Klk > 0 UPDATE #TmpFin SET AnID_Upl= -1 WHERE AnID_Fak=@AnIDFak
Fetch Next From TabFak Into @AnIDFak, @DatFak, @Rok, @IznFak
FROM #TmpFin F LEFT OUTER JOIN #TmpFak S ON F.Sifra_OEF=S.Sifa_OE AND F.Sifra_DokF=S.Sifra_Dok AND F.Broj_DokF=S.Broj_Dok
UPDATE #TmpFin SET POsn1=S.Stapka1, POsn2=S.Stapka2, Osn1=Round(F.Danok1 + F.Danok1/(S.Stapka1/100),2),
Osn2=Round(F.Danok2 + F.Danok2/(S.Stapka2/100),2), ObrabDDV='D' FROM AnFinDok F, DDVStapki S
WHERE #TmpFin.Sifra_OEF=F.Sifra_OE AND #TmpFin.Sifra_DokF=F.Sifra_Dok AND #TmpFin.Broj_DokF=F.Broj_Dok AND
#TmpFin.ObrabDDV IS NULL AND F.Datum_Dok >= S.Datum_Od And F.Datum_Dok <= S.Datum_Do AND (F.Danok1 > 0 OR F.Danok2 >0)
UPDATE #TmpFin SET POsn2=5, Osn2=Iznos_Fak WHERE ObrabDDV IS NULL
*/
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_genodobrenija_dva_rabati]'))
drop procedure [dbo].[sp_genodobrenija_dva_rabati]
Go
CREATE PROCEDURE sp_GenOdobrenija_Dva_Rabati
@DenoviOdob1 smallint = 7,
@PocDatFak smalldatetime,
@Sifra_Nal_Upl smallint,
@Dat_Upl_Od smalldatetime,
@Dat_Upl_Do smalldatetime,
@Sifra_Kup char(6) = NULL,
@Kto char(10),
@TolerRazlUpl decimal(10,2),
@GrpOdobKup char(1)='D',
@KoiCeniKup varchar(30) = NULL,
@DaliIAneks1 char(1)='N',
@TolerDenaDocni smallint = NULL,
@PoUplati char(1) = 'D', --
@DodRabat smallint = Null,
@DenaMaxRabPlakOdOrg char(1)='N',
@Odobr2Rabati char(1)='D'
AS
IF @TolerDenaDocni IS NULL SET @TolerDenaDocni = 0
Declare @ProcDodRab as smallint
Set @ProcDodRab = 1
If @DodRabat IS NOT NULL AND @DodRabat > 1 Set @ProcDodRab = @DodRabat
Declare @SSQL varchar(3000)
CREATE TABLE #TmpFin
(
AnID_Upl int,
AnID_Fak int,
Sifra_OEF smallint,
Sifra_DokF smallint,
Broj_DokF int,
Datum_Upl smalldatetime,
Datum_Fak smalldatetime,
Rok smallint,
Sifra_Kup char(6),
Iznos_Fak decimal(18,4),
Izn_Plat decimal(18,4),
POsn1 decimal(6,2),
POsn2 decimal(6,2),
Osn1 decimal(18,6),
Osn2 decimal(18,6), --ovde dodaj pole sifra_pat ako treba
ObrabDDV char(1),
ProcOdobr decimal(6,2)
)
IF @PoUplati='D'
Begin
CREATE TABLE #TmpUpl
(
AnID_Upl int,
Datum_Upl smalldatetime
)
SET @SSQL = 'SELECT AnID, Datum_Dok
FROM AnFinDok
WHERE Kto=''' + @Kto +''' AND Datum_Dok >=''' + Cast(@Dat_Upl_Od as varchar(35)) +
''' AND Datum_Dok <=''' + Cast(@Dat_Upl_Do as varchar(35)) + ''' AND Pobaruva > 0 '
IF @Sifra_Kup IS NOT NULL
SET @SSQL = @SSQL + ' AND Sifra_Kup=' + @Sifra_Kup
IF @Sifra_Nal_Upl IS NOT NULL
SET @SSQL = @SSQL + ' AND Sifra_Nal=' + cast(@Sifra_Nal_Upl as varchar(6))
IF @DaliIAneks1='D' OR @KoiCeniKup IS NOT NULL
Begin
SET @SSQL = @SSQL + ' AND Sifra_Kup IN (SELECT Sifra_Kup FROM Komint WHERE 1=1 '
IF @DaliIAneks1='D'
SET @SSQL = @SSQL + ' AND Aneks1 IS Not NULL AND Aneks1<>'''' '
IF @KoiCeniKup IS NOT NULL
SET @SSQL = @SSQL + ' AND KojaCena IN (' + @KoiCeniKup + ') '
SET @SSQL = @SSQL + ') '
End
INSERT INTO #TmpUpl EXEC (@SSQL)
Declare @AnIDUpl int
Declare @DatUpl smalldatetime
Declare TabUpl Cursor Fast_Forward For Select AnID_Upl, Datum_Upl From #TmpUpl
Open TabUpl
Fetch Next From TabUpl Into @AnIDUpl, @DatUpl
While @@Fetch_Status = 0
Begin
-- Platenite fakturi predvreme do @DenovoOdob1
IF @Odobr2Rabati='D' --da iskoristime proc.i za onie koi imaat eden rabat
Begin
SET @SSQL = 'SELECT ' + Cast(@AnIDUpl as varchar(10))+ ', A.AnID, A.Sifra_OE, A.Sifra_Dok, A.Broj_Dok, A.Datum_Dok, A.Rok,
A.Sifra_Kup, A.Dolzi, A.Plateno_Dolzi,
(Case WHEN Spec_Forma_Pec LIKE ''P%'' THEN Cast(Replace(Spec_Forma_Pec, ''P'', '''') as decimal(6,2)) + ' + Cast(@ProcDodRab as varchar(5)) + ' ELSE 0 END) ProcRabat
FROM AnFinDok A
INNER JOIN AnZatv Z ON (A.AnID=Z.AnID1 AND Z.AnID2=' + cast(@AnIDUpl as varchar(10))+ ')
OR (A.AnID=Z.AnID2 AND Z.AnID1=' + cast(@AnIDUpl as varchar(10))+ ')
INNER JOIN Komint Kup On Kup.Sifra_Kup = A.Sifra_Kup
INNER JOIN Dokr D ON A.Sifra_OE=D.Sifra_OE AND A.Sifra_Dok=D.Sifra_Dok AND A.Broj_Dok=D.Broj_Dok
INNER JOIN OrgEd O ON D.Sifra_Oe=O.Sifra_Oe
WHERE A.Dolzi > 0 AND A.Datum_Dok>=''' + cast(@PocDatFak as varchar(35)) + '''
AND A.AnID NOT IN (SELECT AnID_Fak FROM StaOdobr)
AND A.AnID NOT IN (SELECT AnID_Fak FROM #TmpFin)
AND A.Dolzi * (1-((Case WHEN Spec_Forma_Pec LIKE ''P%'' THEN Cast(Replace(Spec_Forma_Pec, ''P'', '''') as decimal(6,2)) ELSE 0 END) + ' + Cast(@ProcDodRab as varchar(5)) + ')/100) - A.Plateno_Dolzi <= ' + Cast(@TolerRazlUpl as varchar(15)) + '
AND A.Datum_Dok + '
IF @DenaMaxRabPlakOdOrg='D'
SET @SSQL = @SSQL+'O.DenaMaxRabPlak '
Else
SET @SSQL = @SSQL+ Cast(@DenoviOdob1 as varchar(3))
SET @SSQL = @SSQL+ '>=''' + cast(@DatUpl as varchar(35)) + ''' AND D.Spec_Forma_Pec IS NOT NULL AND D.Spec_Forma_Pec LIKE ''P%''
AND Substring(D.Spec_Forma_Pec,3,6)<>''D00V00'' ' --ovie se dok.za koi nema 2 rokovi
SET @SSQL = 'SELECT ' + Cast(@AnIDUpl as varchar(10))+ ', A.AnID, A.Sifra_OE, A.Sifra_Dok, A.Broj_Dok, A.Datum_Dok, A.Rok,
A.Sifra_Kup, A.Dolzi, A.Plateno_Dolzi, (Case WHEN Spec_Forma_Pec LIKE ''P%'' THEN Cast(Replace(Spec_Forma_Pec, ''P'', '''') as decimal(6,2)) ELSE 0 END)
FROM AnFinDok A
INNER JOIN AnZatv Z ON (A.AnID=Z.AnID1 AND Z.AnID2=' + cast(@AnIDUpl as varchar(10))+ ')
OR (A.AnID=Z.AnID2 AND Z.AnID1=' + cast(@AnIDUpl as varchar(10))+ ')
INNER JOIN Komint Kup On Kup.Sifra_Kup = A.Sifra_Kup
INNER JOIN Dokr D ON A.Sifra_OE=D.Sifra_OE AND A.Sifra_Dok=D.Sifra_Dok AND A.Broj_Dok=D.Broj_Dok
INNER JOIN OrgEd O ON D.Sifra_Oe=O.Sifra_Oe
WHERE A.Dolzi > 0 AND A.Datum_Dok>=''' + cast(@PocDatFak as varchar(35)) + '''
AND A.AnID NOT IN (SELECT AnID_Fak FROM StaOdobr)
AND A.AnID NOT IN (SELECT AnID_Fak FROM #TmpFin)
AND A.Dolzi * (1- (Case WHEN Spec_Forma_Pec LIKE ''P%'' THEN Cast(Replace(Spec_Forma_Pec, ''P'', '''') as decimal(6,2)) ELSE 0 END)/100) - A.Plateno_Dolzi <= ' + Cast(@TolerRazlUpl as varchar(15)) + '
AND A.Datum_Dok + '
IF @DenaMaxRabPlakOdOrg='D'
SET @SSQL = @SSQL+'O.DenaRabPlak'
Else
SET @SSQL = @SSQL+'A.Rok'
SET @SSQL = @SSQL+'+'+cast(@TolerDenaDocni as varchar(5)) + '>=''' + cast(@DatUpl as varchar(35)) + '''
AND D.Spec_Forma_Pec IS NOT NULL AND D.Spec_Forma_Pec LIKE ''P%'' '
------- Brisi gi site stavki fakturi koi imaat nekoja uplata po rokot
CREATE TABLE #Tmp1
(
Kolku int
)
Declare @AnIDFak int
Declare @DatFak smalldatetime
Declare @Rok integer
Declare @IznFak as decimal
Declare @Klk as integer
Declare @ProcOdobrFin as decimal(6,2)
Declare TabFak Cursor Fast_Forward For Select AnID_Fak, Datum_Fak, Rok, Iznos_Fak, ProcOdobr From #TmpFin ORDER BY AnID_Fak
Open TabFak
Fetch Next From TabFak Into @AnIDFak, @DatFak, @Rok, @IznFak, @ProcOdobrFin
While @@Fetch_Status = 0
Begin
DELETE FROM #Tmp1
SET @SSQL = 'SELECT Count(*) FROM AnFinDok A
INNER JOIN AnZatv Z ON (A.AnID=Z.AnID1 AND Z.AnID2=' + cast(@AnIDFak as varchar(10))+ ') OR (A.AnID=Z.AnID2 AND Z.AnID1=' + cast(@AnIDFak as varchar(10))+ ')
WHERE A.Pobaruva > 0 AND A.Datum_Dok >''' + cast(@DatFak + @Rok + @TolerDenaDocni as varchar(35)) + '''
AND Z.Iznos >' + Cast(@IznFak * @ProcOdobrFin /100 + @TolerRazlUpl as varchar(15))
INSERT INTO #Tmp1 EXEC (@SSQL)
SELECT @Klk = Kolku FROM #Tmp1
IF @Klk IS NOT NULL AND @Klk > 0
UPDATE #TmpFin SET AnID_Upl= -1 WHERE AnID_Fak=@AnIDFak
Fetch Next From TabFak Into @AnIDFak, @DatFak, @Rok, @IznFak, @ProcOdobrFin
------- Brisi gi site stavki fakturi koi imaat nekoja uplata po rokot
CREATE TABLE #Tmp1
( Kolku int )
Declare @AnIDFak int
Declare @DatFak smalldatetime
Declare @Rok integer
Declare @IznFak as decimal
Declare @Klk as integer
Declare @ProcOdobrFin as decimal(6,2)
Declare TabFak Cursor Fast_Forward For Select AnID_Fak, Datum_Fak, Rok, Iznos_Fak, ProcOdobr From #TmpFin ORDER BY AnID_Fak
Open TabFak
Fetch Next From TabFak Into @AnIDFak, @DatFak, @Rok, @IznFak, @ProcOdobrFin
While @@Fetch_Status = 0
Begin
DELETE FROM #Tmp1
SET @SSQL = 'SELECT Count(*) FROM AnFinDok A
INNER JOIN AnZatv Z ON (A.AnID=Z.AnID1 AND Z.AnID2=' + cast(@AnIDFak as varchar(10))+ ') OR (A.AnID=Z.AnID2 AND Z.AnID1=' + cast(@AnIDFak as varchar(10))+ ')
WHERE A.Pobaruva > 0 AND A.Datum_Dok >''' + cast(@DatFak +@DenoviOdobMal as varchar(35)) + '''
AND Z.Iznos >' + Cast(@IznFak * @ProcOdobrFin /100 + @TolerRazlUpl as varchar(15))
INSERT INTO #Tmp1 EXEC (@SSQL)
SELECT @Klk = Kolku FROM #Tmp1
IF @Klk IS NOT NULL AND @Klk > 0
UPDATE #TmpFin SET AnID_Upl= -1 WHERE AnID_Fak=@AnIDFak
Fetch Next From TabFak Into @AnIDFak, @DatFak, @Rok, @IznFak, @ProcOdobrFin
End
Close TabFak
Deallocate TabFak
Declare TabFak Cursor Fast_Forward For Select AnID_Fak, Datum_Fak, Rok, Iznos_Fak, ProcOdobr From #TmpFin
WHERE ProcOdobr=@DodRabat+@ProcOdob ORDER BY AnID_Fak
Open TabFak
Fetch Next From TabFak Into @AnIDFak, @DatFak, @Rok, @IznFak, @ProcOdobrFin
While @@Fetch_Status = 0
Begin
DELETE FROM #Tmp1
SET @SSQL = 'SELECT Count(*) FROM AnFinDok A
INNER JOIN AnZatv Z ON (A.AnID=Z.AnID1 AND Z.AnID2=' + cast(@AnIDFak as varchar(10))+ ') OR (A.AnID=Z.AnID2 AND Z.AnID1=' + cast(@AnIDFak as varchar(10))+ ')
WHERE A.Pobaruva > 0 AND A.Datum_Dok >''' + cast(@DatFak + @Rok + @TolerDenaDocni as varchar(35)) + '''
AND Z.Iznos >' + Cast(@IznFak * @ProcOdobrFin /100 + @TolerRazlUpl as varchar(15))
INSERT INTO #Tmp1 EXEC (@SSQL)
SELECT @Klk = Kolku FROM #Tmp1
IF @Klk IS NOT NULL AND @Klk > 0
UPDATE #TmpFin SET ProcOdobr=@ProcOdob WHERE AnID_Fak=@AnIDFak
Fetch Next From TabFak Into @AnIDFak, @DatFak, @Rok, @IznFak, @ProcOdobrFin
WHERE #TmpFin.Sifra_OEF=F.Sifra_OE AND #TmpFin.Sifra_DokF=F.Sifra_Dok AND #TmpFin.Broj_DokF=F.Broj_Dok AND
#TmpFin.ObrabDDV IS NULL AND F.Datum_Dok >= S.Datum_Od And F.Datum_Dok <= S.Datum_Do AND (F.Danok1 > 0 OR F.Danok2 >0)
UPDATE #TmpFin
SET POsn2=5, Osn2=Iznos_Fak
WHERE ObrabDDV IS NULL
SELECT T.*, K.Spec_Rabat
FROM #TmpFin T
INNER JOIN Komint K ON T.Sifra_Kup=K.Sifra_Kup
ORDER BY K.Sifra_Reg, T.Sifra_Kup, T.AnID_Fak --dodaj vo order na sredina, sifra_pat ako treba
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_genodobrenija_rabatodkomint]'))
drop procedure [dbo].[sp_genodobrenija_rabatodkomint]
Go
CREATE PROCEDURE sp_GenOdobrenija_RabatOdKomint
@ProcOdob decimal(6,2),
@PocDatFak smalldatetime,
@Sifra_Nal_Upl smallint,
@Dat_Upl_Od smalldatetime,
@Dat_Upl_Do smalldatetime,
@Sifra_Kup char(6) = NULL,
@Kto char(10),
@TolerRazlUpl decimal(10,2),
@GrpOdobKup char(1)='D',
@KoiCeniKup varchar(30) = NULL,
@DaliIAneks1 char(1)='N',
@TolerDenaDocni smallint = NULL,
@PoUplati char(1) = 'D', -- D - po Uplati, F - po Fakturi i Uplati N - Samo po napraveni Fakturi (ne mora da se plateni)
@RabatOdKomint char(1) = 'D',
-- @PoFri_i_Upl char(1) = 'U',
@Koi_Oe_Fri varchar(300) = Null,
@KoiDokStornoNeOdobr varchar(100) = Null -- '3,11' - Fiksno za Swiss Lion -- Koi dokumenti se koristat za storno fakturi za neisporacana ili vratena roba za da ne vleguvaat vo odobrenijata
AS
IF @TolerDenaDocni IS NULL SET @TolerDenaDocni = 0
Declare @SSQL varchar(8000)
Declare @SSQLUsl varchar(8000)
Set @SSQLUsl = ' '
CREATE TABLE #TmpFin
(
AnID_Upl int,
AnID_Fak int,
Sifra_OEF smallint,
Sifra_DokF smallint,
Broj_DokF int,
Datum_Upl smalldatetime,
Datum_Fak smalldatetime,
Rok smallint,
Sifra_Kup char(6),
Iznos_Fak decimal(18,4),
Izn_Plat decimal(18,4),
POsn1 decimal(6,2),
POsn2 decimal(6,2),
Osn1 decimal(18,6),
Osn2 decimal(18,6), --ovde dodaj pole sifra_pat ako treba
ObrabDDV char(1),
Spec_Rabat decimal(18,6)
)
IF @PoUplati In ('D', 'F')
Begin
-- Uslovi po komintenti
--IF @Sifra_Oe IS NOT NULL
-- SET @SSQLUsl = @SSQLUsl + ' AND Sifra_Oe=' + Cast(@Sifra_Oe as varchar(6)) + ' '
IF @Sifra_Kup IS NOT NULL
SET @SSQLUsl = @SSQLUsl + ' AND Sifra_Kup=' + @Sifra_Kup
IF @Sifra_Nal_Upl IS NOT NULL
SET @SSQLUsl = @SSQLUsl + ' AND Sifra_Nal=' + cast(@Sifra_Nal_Upl as varchar(6))
IF @DaliIAneks1='D' OR @KoiCeniKup IS NOT NULL OR @RabatOdKomint = 'D'
Begin
SET @SSQLUsl = @SSQLUsl + ' AND Sifra_Kup IN (SELECT Sifra_Kup FROM Komint WHERE 1=1 '
IF @DaliIAneks1='D'
SET @SSQLUsl = @SSQLUsl + ' AND Aneks1 IS Not NULL AND Aneks1<>'''' '
IF @KoiCeniKup IS NOT NULL
SET @SSQLUsl = @SSQLUsl + ' AND KojaCena IN (' + @KoiCeniKup + ') '
IF @RabatOdKomint='D'
SET @SSQLUsl = @SSQLUsl + ' AND Spec_Rabat > 0 '
SET @SSQLUsl = @SSQLUsl + ') '
End
If @PoUplati = 'F'
Begin
-- Site fakturi vo periodot
CREATE TABLE #TmpFri
(
AnID_Fra int,
Datum_Fra smalldatetime,
Rok smallint
)
SET @SSQL = 'SELECT AnID, Datum_Dok, Rok
FROM AnFinDok
WHERE Kto=''' + @Kto +''' AND Datum_Dok >=''' + Cast(@Dat_Upl_Od as varchar(35)) + ''' AND Datum_Dok <=''' + Cast(@Dat_Upl_Do as varchar(35)) + ''' AND Dolzi>0
AND AnID NOT IN (SELECT AnID_Fak FROM StaOdobr) '
If @Koi_Oe_Fri Is Not Null
Set @SSQL = @SSQL + ' And Sifra_Oe In (' + @Koi_Oe_Fri + ') '
INSERT INTO #TmpFri EXEC (@SSQL+@SSQLUsl) -- po datuna na faktura posto gledame po fakturi
End
Else If @PoUplati = 'D'
Begin
-- Site uplati vo periodot
CREATE TABLE #TmpUpl
(
AnID_Upl int,
Datum_Upl smalldatetime
)
SET @SSQL = 'SELECT AnID, Datum_Dok Datum_Upl
FROM AnFinDok
WHERE Kto=''' + @Kto +''' AND Datum_Dok >=''' + Cast(@Dat_Upl_Od as varchar(35)) + ''' AND Datum_Dok <=''' + Cast(@Dat_Upl_Do as varchar(35)) + ''' AND Pobaruva>0 '
INSERT INTO #TmpUpl EXEC (@SSQL+@SSQLUsl)
End
-- Da gi najdeme dokumentite za koi treba da dadene rabat
If @PoUplati = 'F' -- po Fakturi i po uplati
Begin
Declare @AnIDFra int
Declare @DatFra smalldatetime
Declare @RokFra as smallint
Declare TabFri Cursor Fast_Forward For Select AnID_Fra, Datum_Fra, Rok From #TmpFri
Open TabFri
Fetch Next From TabFri Into @AnIDFra, @DatFra, @RokFra
While @@Fetch_Status = 0
Begin
SET @SSQL = 'SELECT Max(A.AnID), ' + cast(@AnIDFra as varchar(10))+ ', '
IF @RabatOdKomint='D'
Set @SSQL = @SSQL + ' Kup.Spec_Rabat '
Else
Set @SSQL = @SSQL + ' ' + Cast(@ProcOdob as varchar(10)) + ' '
Set @SSQL = @SSQL + ' FROM AnFinDok A
INNER JOIN AnZatv Z ON (A.AnID=Z.AnID1 AND Z.AnID2=' + cast(@AnIDFra as varchar(10))+ ')
INNER JOIN AnFinDok F On F.AnID = Z.AnID2
INNER JOIN Komint Kup On Kup.Sifra_Kup=A.Sifra_Kup
WHERE A.Datum_Dok>=''' + cast(@PocDatFak as varchar(35)) + '''
AND F.AnID NOT IN (SELECT AnID_Fak FROM StaOdobr)
AND F.AnID NOT IN (SELECT AnID_Fak FROM #TmpFin) ' --And A.Pobaruva > 0
IF @RabatOdKomint='D'
Set @SSQL = @SSQL + ' AND F.Dolzi * (1-Kup.Spec_Rabat/100) - F.Plateno_Dolzi <= ' + cast(@TolerRazlUpl as varchar(15)) + ' '
Else
Set @SSQL = @SSQL + ' AND F.Dolzi * (1-'+ cast(@ProcOdob as varchar(10)) + '/100) - F.Plateno_Dolzi <= ' + cast(@TolerRazlUpl as varchar(15)) + ' '
Set @SSQL = @SSQL + ' AND A.Datum_Dok <= ''' + cast((@DatFra + @RokFra + @TolerDenaDocni) as varchar(35)) + ''' ' -- '+ A.Rok' + '+'+cast(@TolerDenaDocni as varchar(5)) + '>=''' + cast(@DatUpl as varchar(35)) + ''' '
INSERT INTO #TmpFin (AnID_Upl, AnID_Fak, Spec_Rabat) EXEC (@SSQL+' Group By Kup.Spec_Rabat')
--select * from #tmpfin
SET @SSQL = 'SELECT Max(A.AnID), ' + cast(@AnIDFra as varchar(10))+ ', '
IF @RabatOdKomint='D'
Set @SSQL = @SSQL + ' Kup.Spec_Rabat '
Else
Set @SSQL = @SSQL + ' ' + Cast(@ProcOdob as varchar(10)) + ' '
Set @SSQL = @SSQL + ' FROM AnFinDok A
INNER JOIN AnZatv Z ON (A.AnID=Z.AnID2 AND Z.AnID1=' + cast(@AnIDFra as varchar(10))+ ')
INNER JOIN AnFinDok F On F.AnID = Z.AnID1
INNER JOIN Komint Kup On Kup.Sifra_Kup=A.Sifra_Kup
WHERE A.Datum_Dok>=''' + cast(@PocDatFak as varchar(35)) + '''
AND F.AnID NOT IN (SELECT AnID_Fak FROM StaOdobr)
AND F.AnID NOT IN (SELECT AnID_Fak FROM #TmpFin) ' --A.Pobaruva > 0
IF @RabatOdKomint='D'
Set @SSQL = @SSQL + ' AND F.Dolzi * (1-Kup.Spec_Rabat/100) - F.Plateno_Dolzi <= ' + cast(@TolerRazlUpl as varchar(15)) + ' '
Else
Set @SSQL = @SSQL + ' AND F.Dolzi * (1-'+ cast(@ProcOdob as varchar(10)) + '/100) - F.Plateno_Dolzi <= ' + cast(@TolerRazlUpl as varchar(15)) + ' '
Set @SSQL = @SSQL + ' AND A.Datum_Dok <= ''' + cast((@DatFra + @RokFra + @TolerDenaDocni) as varchar(35)) + ''' ' -- '+ A.Rok' + '+'+cast(@TolerDenaDocni as varchar(5)) + '>=''' + cast(@DatUpl as varchar(35)) + ''' '
INSERT INTO #TmpFin (AnID_Upl, AnID_Fak, Spec_Rabat) EXEC (@SSQL+' Group By Kup.Spec_Rabat')
--select * from #tmpfin
Update #TmpFin
Set Sifra_OEF=F.Sifra_OE, Sifra_DokF=F.Sifra_Dok, Broj_DokF=F.Broj_Dok, Datum_Fak=F.Datum_Dok,
Fetch Next From TabFri Into @AnIDFra, @DatFra, @RokFra
End
Close TabFri
Deallocate TabFri
--select * from #tmpfin
End
Else If @PoUplati = 'D' -- po Uplati
Begin
Declare @AnIDUpl int
Declare @DatUpl smalldatetime
Declare TabUpl Cursor Fast_Forward For Select AnID_Upl, Datum_Upl From #TmpUpl
Open TabUpl
Fetch Next From TabUpl Into @AnIDUpl, @DatUpl
While @@Fetch_Status = 0
Begin
SET @SSQL = 'SELECT ' + cast(@AnIDUpl as varchar(10))+ ', A.AnID, A.Sifra_OE, A.Sifra_Dok, A.Broj_Dok, A.Datum_Dok, A.Rok, A.Sifra_Kup, A.Dolzi, A.Plateno_Dolzi, '
IF @RabatOdKomint='D'
Set @SSQL = @SSQL + ' Kup.Spec_Rabat '
Else
Set @SSQL = @SSQL + ' ' + Cast(@ProcOdob as varchar(10)) + ' '
Set @SSQL = @SSQL + ' FROM AnFinDok A
INNER JOIN AnZatv Z ON (A.AnID=Z.AnID1 AND Z.AnID2=' + cast(@AnIDUpl as varchar(10))+ ') OR (A.AnID=Z.AnID2 AND Z.AnID1=' + cast(@AnIDUpl as varchar(10))+ ')
INNER JOIN Komint Kup On Kup.Sifra_Kup=A.Sifra_Kup
WHERE A.Dolzi > 0 AND A.Datum_Dok>=''' + cast(@PocDatFak as varchar(35)) + '''
AND A.AnID NOT IN (SELECT AnID_Fak FROM StaOdobr)
AND A.AnID NOT IN (SELECT AnID_Fak FROM #TmpFin) '
IF @RabatOdKomint='D'
Set @SSQL = @SSQL + ' AND A.Dolzi * (1-Kup.Spec_Rabat/100) - A.Plateno_Dolzi <= ' + cast(@TolerRazlUpl as varchar(15)) + ' '
Else
Set @SSQL = @SSQL + ' AND A.Dolzi * (1-'+ cast(@ProcOdob as varchar(10)) + '/100) - A.Plateno_Dolzi <= ' + cast(@TolerRazlUpl as varchar(15)) + ' '
Set @SSQL = @SSQL + ' AND A.Datum_Dok + A.Rok' + '+'+cast(@TolerDenaDocni as varchar(5)) + '>=''' + cast(@DatUpl as varchar(35)) + ''' '
------- Brisi gi site stavki fakturi koi imaat nekoja uplata po rokot
CREATE TABLE #Tmp1
(Kolku int)
Declare @AnIDFak int
Declare @DatFak smalldatetime
Declare @Rok integer
Declare @IznFak as decimal
Declare @Klk as integer
Declare @Spec_Rabat as decimal
Declare TabFak Cursor Fast_Forward For Select AnID_Fak, Datum_Fak, Rok, Iznos_Fak, Spec_Rabat From #TmpFin ORDER BY AnID_Fak
Open TabFak
Fetch Next From TabFak Into @AnIDFak, @DatFak, @Rok, @IznFak, @Spec_Rabat -- vo @Spec_Rabat sega e procentot na odobrenie i ako se raboti so rabat od komintent ili so fiksen rabat (@Proc_Odobr)
While @@Fetch_Status = 0
Begin
DELETE FROM #Tmp1
SET @SSQL = 'SELECT Count(*)
FROM AnFinDok A
INNER JOIN AnZatv Z ON (A.AnID=Z.AnID1 AND Z.AnID2=' + cast(@AnIDFak as varchar(10))+ ') OR (A.AnID=Z.AnID2 AND Z.AnID1=' + cast(@AnIDFak as varchar(10))+ ')
INNER JOIN Komint Kup On Kup.Sifra_Kup=A.Sifra_Kup
WHERE A.Pobaruva > 0 AND A.Datum_Dok >''' + cast(@DatFak+@Rok + @TolerDenaDocni as varchar(35)) + '''
AND Z.Iznos >' + Cast(@IznFak * @Spec_Rabat /100 +@TolerRazlUpl as varchar(15))
INSERT INTO #Tmp1 EXEC (@SSQL)
SELECT @Klk = Kolku FROM #Tmp1
IF @Klk IS NOT NULL AND @Klk > 0
UPDATE #TmpFin SET AnID_Upl= -1 WHERE AnID_Fak=@AnIDFak
Fetch Next From TabFak Into @AnIDFak, @DatFak, @Rok, @IznFak, @Spec_Rabat
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_input_lc]'))
drop procedure [dbo].[sp_input_lc]
Go
CREATE PROCEDURE sp_Input_LC
@Datum_Dok_Od Smalldatetime,
@Datum_Dok_Do Smalldatetime,
@TipDok_Vlez varchar(100)='132,33',
@Sifra_Art_Od varchar(20)=Null,
@Sifra_Art_Do varchar(20)='009000',
@Sif_GrOrg char(6)='9'
AS
Declare @SSQL Varchar(2000)
SET @SSQL='SELECT S.Sifra_OE, S.Sifra_Dok, S.Broj_Dok, S.Datum_Dok,
dbo.fn_ULKod(S.Sifra_Art, A.Alt_sifra) AS Item_Code, S.Kolic
FROM Stavr S
INNER JOIN KatArt A ON S.Sifra_Art=A.Sifra_Art
WHERE A.Iskluci <> ''D'' '
IF @TipDok_Vlez IS NOT NULL
SET @SSQL = @SSQL + ' AND S.Sifra_dok IN (' + @TipDok_Vlez +') '
IF @Sifra_Art_Od IS NOT NULL
SET @SSQL = @SSQL + ' AND S.Sifra_Art>=''' + @Sifra_Art_Od +''' '
IF @Sifra_Art_Do IS NOT NULL
SET @SSQL = @SSQL + ' AND S.Sifra_Art<=''' + @Sifra_Art_Do +''' '
If @Sif_GrOrg IS NOT NULL
SET @SSQL = @SSQL + ' AND S.Sifra_OE IN (SELECT Sifra_OE FROM SGrOrg WHERE Sif_GrOrg = '''+@Sif_GrOrg +''') '
If @Datum_Dok_Od Is NOT Null
SET @SSQL = @SSQL + 'AND S.Datum_Dok>=''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
If @Datum_Dok_Do Is NOT Null
SET @SSQL = @SSQL + 'AND S.Datum_Dok<=''' + Cast(@Datum_Dok_Do As Varchar(35)) + ''' '
EXEC(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_inventor]'))
drop procedure [dbo].[sp_inventor]
Go
CREATE PROCEDURE sp_Inventor
@Datum smalldatetime,
@Sifra_Art_Od varchar(20)=Null,
@Sifra_Art_Do varchar(20)='009000',
@Sif_GrOrg char(6)='9'
AS
Set Nocount On
Declare @SSQL varchar(4000)
--test
SET @SSQL = 'SELECT dbo.fn_ULKod(S.Sifra_Art, K.Alt_Sifra) Sifra_Art,
Vlez=Sum(CASE
WHEN S.VlIzl = ''V'' THEN S.Kolic
ELSE 0
END),
Izlez=Sum(CASE
WHEN S.VlIzl = ''I'' THEN S.Kolic
ELSE 0
END),
PHYSICAL=Sum(CASE
WHEN S.Sifra_Dok=990 THEN S.Kolic
ELSE 0
END)
FROM Stavr S
INNER JOIN KatArt K On S.Sifra_Art=K.Sifra_Art
WHERE K.Iskluci <> ''D'' '
IF @Sifra_Art_Od IS NOT NULL
SET @SSQL = @SSQL + ' AND S.Sifra_Art>=''' + @Sifra_Art_Od +''' '
IF @Sifra_Art_Do IS NOT NULL
SET @SSQL = @SSQL + ' AND S.Sifra_Art<=''' + @Sifra_Art_Do +''' '
SET @SSQL=@SSQL+ 'And S.Sifra_Art Not In (Select Distinct Sifra_Art From Sostav) '
If @Sif_GrOrg IS NOT NULL
SET @SSQL = @SSQL + ' AND S.Sifra_OE IN (SELECT Sifra_OE FROM SGrOrg WHERE Sif_GrOrg = '''+@Sif_GrOrg +''') '
SET @SSQL=@SSQL+ 'AND S.Datum_Dok<=''' + Cast(@Datum As Varchar(35)) + '''
Group By S.Sifra_Art, K.Alt_Sifra '
CREATE TABLE #PrometArt
( Sifra_Art varchar(20),
Vlez Numeric(18,4),
Izlez Numeric(18,4),
PHYSICAL Decimal(15,4)
)
INSERT #PrometArt EXEC(@SSQL)
SELECT 'MKMA' DB_CODE,
Sifra_Art ITEM_CODE,
Vlez - Izlez QUANTITY,
PHYSICAL PHYSICAL,
@Datum TRANS_DATE
FROM #PrometArt
Set Nocount Off
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_ios_od_do]'))
drop procedure [dbo].[sp_ios_od_do]
Go
CREATE PROCEDURE sp_IOS_Od_Do
@Sifra_Za Char(1) = '1',
@Sifra_KupOd Char(6),
@Sifra_KupDo Char(6),
@Kto varChar(100) = Null,
@Sifra_OE Smallint=Null, -- OVA KORISTI KAKO PATNIK
@Sifra_Grad smallint = NULL,
@Sifra_Reg smallint = NULL,
@IOSOdEdnaOE char(1) = 'N',
@Sirok char(1) = 'N', --N za mob.uredi, D-za notebook
@Kartica char(1) = 'N', --D-cela kartica
@KoiOE varchar(100)=NULL, --04.04.08
@PoKomintPat char(1) = 'N'
AS
Declare @SSQL Varchar(2000)
CREATE TABLE #TmpKup
( Sifra_Kup char(6)
)
IF @PoKomintPat='D'
Begin
SET @SSQL = 'SELECT DISTINCT P.Sifra_Kup FROM KomintPat P WHERE P.Sifra_Pat = ' + Cast(@Sifra_OE as varchar(5))
IF @Sifra_Grad IS NOT NULL OR @Sifra_Reg IS NOT NULL
SET @SSQL = @SSQL + ' INNER JOIN Komint K ON P.Sifra_Kup=K.Sifra_Kup '
If @Sifra_KupOd Is NOT Null
SET @SSQL = @SSQL + ' AND P.Sifra_Kup>=''' + @Sifra_KupOd + ''' '
If @Sifra_KupDo Is NOT Null
SET @SSQL = @SSQL + ' AND P.Sifra_Kup<=''' + @Sifra_KupDo + ''' '
If @Sifra_Grad Is Not Null
SET @SSQL = @SSQL + ' AND K.Sifra_Grad ='+ cast(@Sifra_Grad as varchar(6))
If @Sifra_Reg IS NOT NULL
SET @SSQL = @SSQL + ' AND K.Sifra_Reg ='+ cast(@Sifra_Reg as varchar(6))
INSERT INTO #TmpKup EXEC (@SSQL)
End
Else
Begin
SET @SSQL = 'SELECT Sifra_Kup FROM Komint WHERE 1=1 '
If @Sifra_OE Is Not Null
Set @SSQL = @SSQL + ' AND (Sifra_pat = '+cast(@Sifra_OE as varchar(4))+' OR Sifra_Pat2 = '+cast(@Sifra_OE as varchar(4)) + ') '
If @Sifra_KupOd Is NOT Null
SET @SSQL = @SSQL + ' AND Sifra_Kup>=''' + @Sifra_KupOd + ''' '
If @Sifra_KupDo Is NOT Null
SET @SSQL = @SSQL + ' AND Sifra_Kup<=''' + @Sifra_KupDo + ''' '
If @Sifra_Grad Is Not Null
SET @SSQL = @SSQL + ' AND Sifra_Grad ='+ cast(@Sifra_Grad as varchar(6))
If @Sifra_Reg IS NOT NULL
SET @SSQL = @SSQL + ' AND Sifra_Reg ='+ cast(@Sifra_Reg as varchar(6))
--If (@IOSOdEdnaOE = 'D' AND @Sifra_OE Is Not Null) OR @Sifra_KupOd Is NOT Null OR @Sifra_KupDo Is NOT Null OR @Sifra_Grad IS NOT NULL OR @Sifra_Reg IS NOT NULL
If @Sifra_OE Is Not Null OR @Sifra_KupOd Is NOT Null OR @Sifra_KupDo Is NOT Null OR @Sifra_Grad IS NOT NULL OR @Sifra_Reg IS NOT NULL
Begin
SET @SSQL = @SSQL + ' UNION SELECT DISTINCT Sifra_Kup FROM KObjekti WHERE 1=1 '
If @Sifra_OE Is Not Null --AND @IOSOdEdnaOE = 'D'
Set @SSQL = @SSQL + ' AND (Sifra_pat = '+cast(@Sifra_OE as varchar(4))+' OR Sifra_Pat2 = '+cast(@Sifra_OE as varchar(4)) + ') '
If @Sifra_KupOd Is NOT Null
SET @SSQL = @SSQL + ' AND Sifra_Kup>=''' + @Sifra_KupOd + ''' '
If @Sifra_KupDo Is NOT Null
SET @SSQL = @SSQL + ' AND Sifra_Kup<=''' + @Sifra_KupDo + ''' '
If @Sifra_Grad Is Not Null
SET @SSQL = @SSQL + ' AND Sifra_Grad ='+ cast(@Sifra_Grad as varchar(6))
If @Sifra_Reg IS NOT NULL
SET @SSQL = @SSQL + ' AND Sifra_Reg ='+ cast(@Sifra_Reg as varchar(6))
(CASE K.Priv_Lice WHEN '1' THEN '1 Kooperanti ' WHEN '2' THEN '2 Kooperanti so pers.danok' WHEN '3' THEN '3 Firmi koi ne se DDV obvrznici' WHEN '4' THEN '4 Firmi koi se DDV obvrznici' END) as OpisPL
FROM #IL I
INNER JOIN Komint K ON I.Sifra_Kup=K.Sifra_Kup
INNER JOIN KatArt A ON I.Sifra_Art=A.Sifra_Art
LEFT OUTER JOIN #TmpBnk B ON K.Sifra_Kup=B.Sifra_Kup
ORDER BY I.Sifra_Kup, I.Sifra_Art
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_ispllistotkupsr]'))
Set @SSQL = @SSQL + 'Inner Join PodGrupi P ON K.Sifra_Podg=P.Sifra_Podg '
If (@TipKup Is Not Null) Or (@Pod1 Is Not Null) Or (@Pod2 Is Not Null) Or (@Koi_Gradovi Is Not Null) Or (@Pod3 Is Not Null) Or (@Pod4 Is Not Null) Or (@Pod5 Is Not Null)
Or (@Pod6 Is Not Null) Or (@Pod7 Is Not Null) Or (@Sifra_Tip Is Not Null)
Set @SSQL = @SSQL + 'Left Outer Join Komint KUP ON D.Sifra_Kup=KUP.Sifra_Kup
Left Outer Join KObjekti KO ON D.Sifra_obj=KO.Sifra_obj and D.Sifra_kup=KO.Sifra_kup '
Set @SSQL = @SSQL + 'Where D.VlIzl=''I'' And D.Sifra_Za=1 And K.Iskluci <> ''D'' '
If @Sifra_Brand Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_Drg=' + Cast(@Sifra_Brand As Varchar(5)) + ' '
Set @SSQL='Select D.Sifra_Kup+'' ''+(Case WHEN D.Sifra_Obj IS NULL THEN '''' ELSE Cast(D.Sifra_Obj as varchar(3)) END) As Sif_PM, D.Sifra_Kup, K.ImeKup,
D.Sifra_Obj, O.ImeObj, D.Sifra_Pat, P.ImePat, K4.Ime_4K, D.Datum_Dok, (S.Sifra_Art+''-''+ A.ImeArt) SifArt, S.Alt_KOlic,(case when D.Sifra_Obj is null then K.VidStalazi else O.VidStalazi end) Stalazi
From #Tmp1 T
INNER JOIN Stavr S ON S.DokID=T.DokID
Inner Join Dokr D on S.DokrID=D.DokrID
Left outer Join Komint K on D.Sifra_Kup=K.Sifra_kup
Left outer Join KObjekti O on D.Sifra_Kup=O.Sifra_kup AND D.Sifra_Obj=O.Sifra_Obj
Left outer Join Patnici P on D.Sifra_Pat = P.Sifra_Pat
left outer Join KDrugo4 K4 on (Case When O.KDrugo4 Is Not Null Then O.KDrugo4 Else K.KDrugo4 End) = K4.Sifra_4K
Inner Join KatArt A on S.Sifra_Art=A.Sifra_Art
Where D.Sifra_Za=1 AND D.VlIzl=''I'' AND S.Kolic>=0 AND A.Aktiven=''D'' '
Set @SSQL = @SSQL + @SSQLUSL
--Set @SSQL = @SSQL + ' Group By D.Sifra_Kup, K.ImeKup, D.Sifra_Obj, O.ImeObj, D.Datum_Dok,S.Sifra_Art, A.ImeArt, S.Alt_KOlic, K.VidStalazi, O.VidStalazi '
Set @SSQL = @SSQL + 'Order by K.ImeKup, D.Sifra_Kup, O.ImeObj, D.Sifra_Obj, P.ImePat, D.Datum_Dok, A.ImeArt, S.Sifra_Art'
----------------------------------------- OVA E USLOVOT - NE CEPKAJ ----------------------------------------------------------------------------------------
If @Sifra_OE Is Not NULL ---------
Set @SSQL = @SSQL + 'WHERE [Sifra_OE]=' + Cast(@Sifra_OE As Varchar(5)) + ' ' ---------
If @Sifra_Dok Is Not NULL ---------
Set @SSQL = @SSQL + ' AND [Sifra_Dok]=' + Cast(@Sifra_Dok As Varchar(5)) + ' ' ---------
If @Broj_Dok Is Not NULL ---------
Set @SSQL = @SSQL + ' AND [Broj_Dok]=' + Cast(@Broj_Dok As Varchar(10)) + ' ' ---------
If @Sifra_Prim Is Not Null ---------
Set @SSQL = @SSQL + 'AND Sifra_Prim=' + Cast(@Sifra_Prim As Varchar(5)) + ' ' ---------
WHERE TipObr = @TipObr AND Sifra_OE = @Sifra_OE AND Sifra_Dok = @Sifra_Dok
RETURN @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_izmenilokacija]'))
drop procedure [dbo].[sp_izmenilokacija]
Go
CREATE PROCEDURE sp_IzmeniLokacija
@Sifra_Lok char(3),
@ImeLok nvarchar(40),
@Nivo_Lok smallint = Null,
@Sifra_Oe_Kniz smallint = null
AS
Update Lokacija
Set ImeLok=@ImeLok, Nivo_Lok=@Nivo_Lok, Sifra_Oe_Kniz=@Sifra_Oe_Kniz
Where Sifra_Lok=@Sifra_Lok
Return @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_izmenilokorg]'))
drop procedure [dbo].[sp_izmenilokorg]
Go
create PROCEDURE [dbo].[sp_IzmeniLokOrg]
@Sifra_LokOrg int,
@ImeLokOrg nvarchar(100),
@GrpLokOrg varchar(20)
AS
UPDATE LokOrg
SET ImeLokOrg = @ImeLokOrg,
GrpLokOrg = @GrpLokOrg
WHERE @Sifra_LokOrg = Sifra_LokOrg
RETURN @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_izmenilpopis]'))
drop procedure [dbo].[sp_izmenilpopis]
Go
CREATE PROCEDURE sp_IzmeniLPopis
@IDPopis int,
@Broj int,
@IDLPopis int,
@Sifra_Art Varchar(20),
@Popis decimal (18,6)
AS
UPDATE LPopis SET
Sifra_Art = @Sifra_Art,
Popis = @Popis
WHERE IDPopis = @IDPopis and Broj = @Broj and IDLPopis = @IDLPopis
RETURN @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_izmenimakrolok]'))
drop procedure [dbo].[sp_izmenimakrolok]
Go
CREATE PROCEDURE sp_IzmeniMakroLok
@Sifra_MakLok char(10),
@Ime_MakLok nvarchar(40),
@Sifra_Lok char(3),
@Sifra_Oe_Kniz smallint= null
AS
Update MakroLok
Set Ime_MakLok=@Ime_MakLok, Sifra_Lok=@Sifra_Lok, Sifra_oe_Kniz=@Sifra_Oe_Kniz
Where Sifra_MakLok=@Sifra_MakLok
Return @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_izmenimark]'))
drop procedure [dbo].[sp_izmenimark]
Go
CREATE PROCEDURE sp_IzmeniMark
@Sifra_Mark smallint,
@ImeMark Varchar(40),
@ID_Server varchar(30),
@Ime_Baza varchar(15),
@Br_Vraboteni smallint = Null,
@Metri_Kvadr smallint = Null
AS
UPDATE Marketi
SET [ImeMark]=@ImeMark, [ID_Server] = @ID_Server, [Ime_Baza] = @Ime_Baza, Br_Vraboteni=@Br_Vraboteni, Metri_Kvadr=@Metri_Kvadr
WHERE [Sifra_Mark]=@Sifra_Mark
RETURN @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_izmenimarza]'))
drop procedure [dbo].[sp_izmenimarza]
Go
CREATE PROCEDURE sp_IzmeniMarza
@Sifra_Art Varchar(20),
@Proc_Marza Decimal(6, 0)
AS
Update Katart Set Proc_Marza=@Proc_Marza Where Sifra_Art=@Sifra_Art
If @@ROWCOUNT = 1
RETURN 0
Else
RETURN 77000
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_izmenimasini]'))
drop procedure [dbo].[sp_izmenimasini]
Go
CREATE PROCEDURE sp_IzmeniMasini
@Sifra_Mas varchar(15),
@ImeMas char(40)
AS
Update Masini
Set ImeMas=@ImeMas
Where Sifra_Mas=@Sifra_Mas
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_izmenimckatpoz]'))
drop procedure [dbo].[sp_izmenimckatpoz]
Go
create PROCEDURE [dbo].[sp_IzmeniMCKatPoz]
@Sif_MCPozicija int,
@ImeMCPozicija nvarchar(50),
@SkrImeMCPozicija nvarchar(10),
@Tip char(1),
@DozvVredC nvarchar(300),
@DozvVredNOd decimal(18,6),
@DozvVredNDo decimal(18,6)
AS
UPDATE MCKatPozicija
SET ImeMCPozicija = @ImeMCPozicija,
SkrImeMCPozicija = @SkrImeMCPozicija,
Tip = @Tip,
DozvVredC = @DozvVredC,
DozvVredNOd = @DozvVredNOd,
DozvVredNDo = @DozvVredNDo
WHERE Sif_MCPozicija = @Sif_MCPozicija
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_izmenimclista]'))
drop procedure [dbo].[sp_izmenimclista]
Go
create PROCEDURE [dbo].[sp_IzmeniMCLista]
@Br_MCLista smallint,
@Sif_MCPozicija smallint,
@ImeMCLista nvarchar(50),
@SkrImeMCLista nvarchar(10),
@Rbr smallint,
@Aktiven char(1)
AS
UPDATE MCLista
SET ImeMCLista = @ImeMCLista,
SkrImeMCLista = @SkrImeMCLista,
Rbr = @Rbr,
Aktiven = @Aktiven
WHERE Br_MCLista = @Br_MCLista AND Sif_MCPozicija = @Sif_MCPozicija
Return @@Error
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_izmenimerenjazaart]'))
drop procedure [dbo].[sp_izmenimerenjazaart]
Go
CREATE PROCEDURE sp_IzmeniMerenjaZaArt
@Sifra_Kup char(6),
@Datum smalldatetime,
@Sifra_Art varchar(20),
@Vrednost decimal(18,6),
@Proteini decimal(18,6)= null
AS
Update MerenjaZaArt
Set Vrednost=@Vrednost, Proteini=@Proteini
WHERE Sifra_Kup = @Sifra_Kup and Datum=@Datum and Sifra_Art=@Sifra_Art
Return @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_izmenimikrolok]'))
drop procedure [dbo].[sp_izmenimikrolok]
Go
CREATE PROCEDURE sp_IzmeniMikroLok
@Sifra_MikLok char(10),
@Ime_MikLok nvarchar(40),
@Sifra_MakLok char(10),
@Sifra_Oe_Kniz smallint = null
AS
Update MikroLok
Set Ime_MikLok=@Ime_MikLok, Sifra_MakLok=@Sifra_MakLok, Sifra_oe_kniz=@Sifra_oe_Kniz
Where Sifra_MikLok=@Sifra_MikLok
Return @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_izmeninabavnakatart]'))
drop procedure [dbo].[sp_izmeninabavnakatart]
Go
CREATE PROCEDURE sp_IzmeniNabavnaKatart
@Sifra_Art varchar(20),
@Nabavna decimal(12,4)
AS
Update Katart
Set Nabavna= @Nabavna
Where Sifra_art = @Sifra_art
Return @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_izmeninadvkor]'))
drop procedure [dbo].[sp_izmeninadvkor]
Go
CREATE PROCEDURE [dbo].[sp_IzmeniNadvKor]
@KorIme varchar(15),
@Sifra_Kup char(6)=Null,
@Lozinka varchar(15)=Null,
@Aktiven char(1)=Null,
@Aktiven_Od smalldatetime=Null,
@Aktiven_Do smalldatetime=Null,
@Jazik char(3)=Null,
@LokAdm char(1)=Null,
@email varchar(50),
@IzmenetOd varchar(30)
AS
Declare @IzmenetNa smalldatetime;
Set @IzmenetNa = Getdate();
if(@Lozinka IS NOT Null)
Update NadvKor
Set Sifra_Kup=@Sifra_Kup, Lozinka=cast(@Lozinka as varbinary(100)), Aktiven=@Aktiven, Aktiven_Od=@Aktiven_Od, Aktiven_Do=@Aktiven_Do, Jazik=@Jazik,LokAdm=@LokAdm,email=@email,IzmenetOd=@IzmenetOd,IzmenetNa=@IzmenetNa
Where KorIme=@KorIme
else
Update NadvKor
Set Sifra_Kup=@Sifra_Kup,Aktiven=@Aktiven, Aktiven_Od=@Aktiven_Od, Aktiven_Do=@Aktiven_Do, Jazik=@Jazik,LokAdm=@LokAdm,email=@email,IzmenetOd=@IzmenetOd,IzmenetNa=@IzmenetNa
Where KorIme=@KorIme
Return @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_izmeninalog]'))
drop procedure [dbo].[sp_izmeninalog]
Go
CREATE PROCEDURE sp_IzmeniNalog
@Sifra_Nal smallint,
@ImeNal Char(40),
@Knizi char(1) ,
@SvojNal char(1),
@MoraSubAn char(1) = Null,
@PrasDanok char(1) = Null,
@PrasDanokDev char(1) = Null,
@PredlDatNaDok char(1) = Null,
@VoDDV_Knig char(1)=NULL,
@Kto_Blag char(10)=NULL,
@Predl_Nar_Nal char(1) = Null
AS
SET NOCOUNT ON
UPDATE TipNal
SET ImeNal=@ImeNal, Knizi=@Knizi, SvojNal=@SvojNal, MoraSubAn = @MoraSubAn,
From AnFinDok F INNER JOIN Komint K ON F.Sifra_Kup=K.Sifra_Kup
Where F.Sifra_OE=' + Cast(@Sifra_OE As varchar(6))+' AND F.Sifra_DokDK='+cast(@Sifra_DokDK as varchar(3)) + ' AND F.Broj_Kalk=' + Cast(@Broj_Dok As varchar(10)) + '
Group By F.TipDevKalk, F.Kto, F.KojaVal, K.ImeKup, F.BrojDok '
From AnFinDok Where Sifra_OE=' + Cast(@Sifra_OE As varchar(6)) +' AND Sifra_DokDK='+cast(@Sifra_DokDK as varchar(3))+' AND Broj_Kalk=' + Cast(@Broj_Dok As varchar(10)) + '
Group By TipDevKalk, Kto, KojaVal '
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_izv_akciskirabati]'))
drop procedure [dbo].[sp_izv_akciskirabati]
Go
CREATE PROCEDURE sp_Izv_AkciskiRabati
@Sifra_OE Smallint = Null,
@KoiOE Varchar(300) = Null,
@Datum_Od Smalldatetime = Null,
@Datum_Do Smalldatetime = Null,
@Sifra_Brand Smallint = Null,
@Sifra_Art_Od Varchar(20) = Null,
@Sifra_Art_Do Varchar(20) = Null,
@Sifra_Kup_Od Char(6) = Null,
@Sifra_Kup_Do Char(6) = Null,
@Sifra_Gr varChar(6) = Null,
@Sifra_Podg Char(6) = Null,
@Lokacija Varchar(10) = Null,
@Koi_Gradovi varchar(200) = Null,
@PoKojDatum char(1) = 'D', -- D - Po Datum na Dokument, V - Po Datum Na Vnes
@Drugo1 smallint = Null,
@Drugo2 smallint = Null,
@Drugo3 smallint = Null,
@Drugo4 smallint = Null,
@Drugo5 smallint = Null,
@KDrugo1 smallint = Null,
@KDrugo2 smallint = Null,
@KDrugo3 smallint = Null,
@KDrugo4 smallint = Null,
@KDrugo5 smallint = Null,
@PoArt_PoDok char(1) = 'A', -- A - po Artikli, D - Detalno po dokumenti
Insert Into #Tab (Sifra_Art, Sifra_Sur, Anomalija)
Select Sifra_Art, Null, ' Artiklot nema sostavnica '
From Katart
Where DaliSurov='G'
And Sifra_Art Not In (Select Sifra_Art From Sostav)
And Sifra_Art Not In (Select Sifra_Art From GSostav Where Sif_GrOrg = @Sif_GrOrgN)--G Inner Join SGrOrg S On S.Sif_GrOrg=G.Sif_GrOrg And S.Sifra_Oe = @Sifra_Oe)
Fetch Next From Dat Into @SifOe, @DatTek, @DatVnes, @SifPat
End
Close Dat
Deallocate Dat
Create Table #MaxTura
(
Sifra_Oe smallint,
Datum smalldatetime,
MaxTura smallint
)
Insert Into #MaxTura
Select Sifra_Oe, Datum, Max(Tura)
From #Tab2
Group By Sifra_Oe, Datum
Select T.Datum, T.Sifra_Oe, O.ImeOrg, T.Sifra_Pat, P.ImePat, T.Tura, (case when P.OsnovnaPlata is null then 0 else P.OsnovnaPlata end) Tezina,
Sum(Case when D.Datum_Vnes>=T.DatumVremeOd And D.Datum_Vnes<T.DatumVremeDo And D.SIfra_Dok = 4 then Round(S.Kolic*K.Tezina/100000,4) else 0 end) as Tovareno,
Sum(Case when D.Datum_Vnes>=T.DatumVremeOd And D.Datum_Vnes<T.DatumVremeDo And D.SIfra_Dok In (83,84) then Round(S.Kolic*K.Tezina/100000,4) else 0 end) as ZemenoTeren,
Sum(Case when D.Datum_Vnes>=T.DatumVremeOd And D.Datum_Vnes<T.DatumVremeDo And D.SIfra_Dok In (81,82) then Round(S.Kolic*K.Tezina/100000,4) else 0 end) as Prodadeno,
Sum(Case when MT.MaxTura=T.Tura And D.SIfra_Dok = 5 then Round(S.Kolic*K.Tezina/100000,4) else 0 end) as VratenoMag, -- zatoa ssto vratenoto ne go vnesuvaat odma go stavam vo poslednata tura
Sum(Case when D.Datum_Vnes>=T.DatumVremeOd And D.Datum_Vnes<T.DatumVremeDo And D.SIfra_Dok = 4 then Round(S.Kolic/K.ImaKomerc,4) else 0 end) as Tovar_paketi_gajbi,
Sum(Case when D.Datum_Vnes>=T.DatumVremeOd And D.Datum_Vnes<T.DatumVremeDo And K.Drugo3=2 And D.SIfra_Dok In (81,82,87,88,89) then Round(S.Kolic/K.ImaKomerc,4) else 0 end) as Pro_Gajbi,
Sum(Case when D.Datum_Vnes>=T.DatumVremeOd And D.Datum_Vnes<T.DatumVremeDo And K.Drugo3!=2 And D.SIfra_Dok In (81,82,87,88,89) then Round(S.Kolic/K.ImaKomerc,4) else 0 end) as Pro_Paketi,
Max(Case When KO.Sifra_Grad Is Not Null Then KO.Sifra_Grad Else Kup.Sifra_Grad End) MaxDalecina
--P.OsnovnaPlata, P.ImePat, O.ImeOrg, (Tovareno/P.OsnovnaPlata*100) ProcTov, (Prodadeno/P.OsnovnaPlata*100) as ProcProd
From Dokr D
Inner Join #Tab2 T on D.Datum_Dok=T.Datum And T.Sifra_Oe = D.Sifra_Oe --(Case When D.Sifra_Dok In (4,5) Then D.Sifra_Prim Else D.Sifra_Oe End)
Inner Join Stavr S on D.DokrID=S.DokrID
Left outer Join Katart K On S.Sifra_Art=K.Sifra_Art
Left Outer Join #MaxTura MT On MT.Sifra_Oe=T.Sifra_Oe And MT.Datum=T.Datum
Left Outer Join TipDok TD on D.Sifra_dok=TD.Sifra_Dok
left Outer Join Patnici P on T.Sifra_pat=P.Sifra_Pat
left Outer Join Orged O on T.Sifra_Oe=O.Sifra_oe
left Outer Join Komint Kup on Kup.Sifra_Kup = D.Sifra_Kup
left Outer Join KObjekti KO on KO.Sifra_Kup = D.Sifra_Kup And KO.Sifra_Obj=D.Sifra_Obj
Group By T.Datum, T.Sifra_Oe, O.ImeOrg, T.Sifra_Pat, P.ImePat, T.Tura, P.OsnovnaPlata
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_izvkartdepoz]'))
drop procedure [dbo].[sp_izvkartdepoz]
Go
-- WTRGTx --
CREATE PROCEDURE sp_IzvKartDepoz
@Sifra_Kor_Od varchar(20)=NULL,
@Sifra_Kor_Do varchar(20)= null,
@Datum_Od smalldatetime = null,
@Datum_Do smalldatetime = null,
@Specif char(1) = 'D'
AS
DECLARE @SSQL AS nvarchar(4000)
DECLARE @SSQLusl AS nvarchar(4000)
SET @SSQLusl=' WHERE 1=1 '
if @Sifra_Kor_Od IS NOT NULL
SET @SSQLusl = @SSQLusl + ' AND D.Sifra_Kor >=' + @Sifra_Kor_Od
IF @Sifra_Kor_Do IS NOT NULL
SET @SSQLusl = @SSQLusl + ' AND D.Sifra_Kor <=' + @Sifra_Kor_Do
IF @Datum_Od IS NOT NULL
SET @SSQLusl = @SSQLusl + ' AND D.Datum >=''' + CAST(@Datum_OD AS VARCHAR(50))+''' '
IF @Datum_Do IS NOT NULL
SET @SSQLusl = @SSQLusl + ' AND D.Datum <=''' + CAST(@Datum_Do AS VARCHAR(50))+''' '
IF @Specif='D'
Begin
CREATE TABLE #TmpS
(Sifra_Kor varchar(20),
PocSaldo decimal(18,2))
IF @Datum_OD IS NOT NULL
INSERT INTO #TmpS (Sifra_Kor, PocSaldo) SELECT Sifra_Kor, SUM(PRimen_Izn - Vraten_Izn) FROM KartDepoz
WHERE Datum < @Datum_Od GROUP BY Sifra_Kor
SET @SSQL = 'SELECT D.Sifra_Kor, SUM(D.Primen_Izn) Primen_Izn, SUM(D.Vraten_Izn) Vraten_Izn FROM KartDepoz D '
SET @SSQL = @SSQL +@SSQLusl + ' GROUP BY D.Sifra_Kor '
CREATE TABLE #TmpX
(
Sifra_Kor varchar(20),
Primen_Izn Decimal(18, 2),
Vraten_Izn Decimal(18, 2)
)
DECLARE @tSSQL AS NVARCHAR(4000)
SET @tSSQL = 'INSERT INTO #TmpX (Sifra_Kor, Primen_Izn, Vraten_Izn) ' + @SSQL
EXEC (@tSSQL)
SELECT X.Primen_izn,X.Vraten_Izn, K.Sifra_Kor, K.ImeKor, S.PocSaldo FROM KartKor K
LEFT OUTER JOIN #TmpS S ON K.Sifra_Kor = S.Sifra_Kor
LEFT OUTER JOIN #TmpX X ON X.Sifra_Kor = K.Sifra_Kor
WHERE S.PocSaldo<>0 OR X.Primen_Izn<>0 OR X.Vraten_izn<>0
End
Else
Begin
SET @SSQL = 'SELECT D.*, K.ImeKor FROM KartDepoz D LEFT OUTER JOIN KartKor K ON D.Sifra_Kor=K.Sifra_Kor '
SET @SSQL = @SSQL + @SSQLusl
EXEC(@SSQL)
End
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_izvplakanjekonsignacija]'))
drop procedure [dbo].[sp_izvplakanjekonsignacija]
Go
CREATE PROCEDURE sp_IzvPlakanjeKonsignacija
@Datum smalldatetime,
@Sifra_Kup_Od char(6),
@Sifra_Kup_Do char(6),
@KDrugo1 smallint = Null,
@KoiKta varchar(300) = Null,
@GrOrgZal varchar(10) = Null,
-------- za Tinex slednive parametri po default --------
(Case When S.DanDokCena=''N'' Then S.DokCena*(1+S.Posn/100)*(1-S.Uces/100)*(1-D.Kasa/100) Else S.DokCena*(1-S.Uces/100)*(1-D.Kasa/100) End)
From Dokr D
Inner Join Stavr S On S.DokrID=D.DokrID
Where D.VlIzl = ''V'' And D.Sifra_Za = ''2'' '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
If @KoiOe Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Oe In (Select Sifra_Oe From SGrOrg Where Sif_GrOrg = ''' + @KoiOe + ''') '
If @Datum_Od Is Not Null
Set @SSQL = @SSQL + ' And D.Datum_Dok >= ''' + Cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQL = @SSQL + ' And D.Datum_Dok <= ''' + Cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Art_Od Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_Art >= ''' + @Sifra_Art_Od + ''' '
If @Sifra_Art_Do Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_Art <= ''' + @Sifra_Art_Do + ''' '
Set @SSQL = @SSQL + ' Order By S.Sifra_Art, D.Sifra_Oe, D.Datum_Dok, D.DokrID '
Insert Into #Tab Exec(@SSQL)
Declare @SifOe smallint
Declare @SifOeSt smallint
Declare @SifDok smallint
Declare @BrDok int
Declare @SifArt varchar(20)
Declare @SifArtSt varchar(20)
Declare @DatDok smalldatetime
Declare @Cena decimal(18,6)
Declare @CenaSt decimal(18,6)
Declare Razl Cursor Fast_Forward For Select Sifra_Art, Sifra_Oe, Sifra_Dok, Broj_Dok, Datum_Dok, DokCena From #Tab Order By Sifra_Art, Sifra_Oe, Datum_Dok, DokrID
Open Razl
Fetch Next From Razl Into @SifArt, @SifOe, @SifDok, @BrDok, @DatDok, @Cena
While @@Fetch_Status = 0
Begin
If @SifArtSt=@SifArt And @SifOeSt=@SifOe And @CenaSt<>@Cena
Begin
Insert Into #RazlNab (Sifra_Oe, Sifra_Dok, Broj_Dok, Sifra_Art, Datum_Dok, StaraCena, NovaCena)
Set @SSQLUsl = @SSQLUsl + 'AND K.Aneks1 Is Not Null And K.Aneks1 <> '' '' And K.KojaCena In (2,5) '
IF @KoiUpl='D'
Set @SSQLUsl = @SSQLUsl + ' AND A.AnID Not In (Select AnID_Fak from StaOdobr) '
End
If @ProcOdobr Is Not Null And @ProcOdobr > 0
Set @SSQLUsl = @SSQLUsl + ' And A.Dolzi > 0 And (A.Dolzi-A.Plateno_Dolzi)<=((Dolzi*' + Cast(@ProcOdobr as varchar(6)) + '/100)+ ' + Cast(@TolerKusok as varchar(6)) + ')
And AnId Not In (Select AnID_Fak From StaOdobr) '
If @Fra_Uplata = '2' And @KomercOd = 'F'
Begin
Set @SSQLPat = ' '
End
Else
Begin
If @KomercKako = 'I'
If @Sifra_Pat IS NOT NULL
SET @SSQLPat = ' AND A.Sifra_Pat In (' + @Sifra_Pat + ') '
Else
SET @SSQLPat = ' '
If @KomercKako = 'T'
If @Sifra_Pat IS NOT NULL
SET @SSQLPat = ' AND K.Sifra_Pat In (' + @Sifra_Pat + ') '
Set @SSQL = ' Insert Into #KupObj1 (Sifra_Kup, Sifra_Obj)
Select Distinct Sifra_Kup, Sifra_Obj From SGrKupObj
Where Sif_GrKup In (' + @GrKup + ') And Sifra_Obj Is Not Null '
Exec(@SSQL)
Set @SSQL = ' Insert Into #KupObj1 (Sifra_Kup, Sifra_Obj)
Select Distinct GK.Sifra_Kup, KO.Sifra_Obj
From SGrKupObj GK
Inner Join Kobjekti KO On GK.Sifra_Kup = KO.Sifra_Kup
Where GK.Sif_GrKup In (' + @GrKup + ') And GK.Sifra_Obj Is Null '
--Where GK.Sif_GrKup In (' + @GrKup + ') And GK.Sifra_Kup+Cast(KO.Sifra_Obj as char(4)) Not In (Select Sifra_Kup+Cast(Sifra_Obj as char(6)) From #KupObj) And GK.Sifra_Obj Is Null '
Exec(@SSQL)
Set @SSQL = ' Insert Into #KupObj1 (Sifra_Kup) Select Distinct Sifra_Kup From SGrKupObj Where Sif_GrKup In (' + @GrKup + ') And Sifra_Obj Is Null '
Exec(@SSQL)
INSERT INTO #KupObj SELECT DISTINCT Sifra_Kup, Sifra_Obj FROM #KupObj1
---------------------------------------------------------------------- Od Stavr prodadeni proizvodi so ambalaza -------------------------------------------------------------------
If @Datum_Od Is Not Null
Begin
Create Table #Preth
(
Zadolzenie decimal(18,6),
Razdolzenie decimal(18,6)
)
Set @SSQL = 'Select
SUM((Case WHEN S.Kolic > 0 Then (Case When (A.SodrziArt <> 0 and A.SodrziArt Is Not Null) Then (S.Kolic/A.SodrziArt) Else S.Kolic End) Else 0 End)),
SUM((Case WHEN S.Kolic < 0 Then (Case When (A.SodrziArt <> 0 and A.SodrziArt Is Not Null) Then (S.Kolic/A.SodrziArt) Else S.Kolic End) Else 0 End))
From Dokr D
Inner Join Stavr S On S.DokrId=D.DokrID
Inner Join Katart K On K.Sifra_Art=S.Sifra_Art
Inner Join KatAmb A On A.Sifra_Amb=K.Sifra_Amb
Where K.Sifra_Amb = ''' + @Sifra_Amb + ''' '
If @KupDob = 'K'
Set @SSQL = @SSQL + ' And D.VlIzl = ''I'' '
Else If @KupDob = 'D'
Set @SSQL = @SSQL + ' And D.VlIzl = ''V'' '
If @Povratna = 'D'
Set @SSQL = @SSQL + ' And A.Povratna = ''D'' '
If @Sifra_Kup Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Kup = ''' + @Sifra_Kup + ''' '
If @Sifra_Obj Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Obj = ' + cast(@Sifra_Obj as varchar(10)) + ' '
If @Datum_Od Is Not Null
Set @SSQL = @SSQL + ' And D.Datum_Dok < ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Oe = ' + cast(@Sifra_Oe as varchar(10)) + ' '
If @Koi_OE Is Not NULL
Set @SSQL = @SSQL + ' And D.Sifra_OE IN (Select G.Sifra_Oe from SGrOrg G where G.sif_GrOrg = ''' + @Koi_Oe + ''') '
---------------------------------------------------------------------- Od Stavr prodadeni proizvodi so ambalaza -------------------------------------------------------------------
---------------------------------------------------------------------- Od Stavr prodadeni proizvodi so ambalaza -------------------------------------------------------------------
-- SUM(Case D.VlIzl When ''I'' Then (Case WHEN S.Kolic < 0 Then (-1*S.Kolic/A.SodrziArt) Else 0 End))
If @Datum_Od Is Not Null
Begin
Create Table #Preth
(
Zadolzenie decimal(18,6),
Razdolzenie decimal(18,6)
)
If @VkluciAmbOdDok = 'D'
Begin
If @KojIzv in ('C', 'D')
Begin
Set @SSQL = 'Select
SUM((Case WHEN S.Kolic > 0 Then (Case When (A.SodrziArt <> 0 and A.SodrziArt Is Not Null) Then (S.Kolic/A.SodrziArt) Else S.Kolic End) Else 0 End)),
SUM((Case WHEN S.Kolic < 0 Then (Case When (A.SodrziArt <> 0 and A.SodrziArt Is Not Null) Then (-1*(S.Kolic/A.SodrziArt)) Else (-1*S.Kolic) End) Else 0 End))
From Dokr D
Inner Join Stavr S On S.DokrId=D.DokrID
Inner Join Katart K On K.Sifra_Art=S.Sifra_Art
Inner Join KatAmb A On A.Sifra_Amb=K.Sifra_Amb
Where D.VlIzl = ''V'' And K.Sifra_Amb = ''' + @Sifra_Amb + '''
And D.Datum_Dok < ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Povratna = 'D'
Set @SSQL = @SSQL + ' And A.Povratna = ''D'' '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Oe = ' + cast(@Sifra_Oe as varchar(10)) + ' '
Insert Into #Preth Exec(@SSQL)
End
-- SUM((Case WHEN S.Kolic < 0 Then S.Kolic/A.SodrziArt Else 0 End)),
-- SUM((Case WHEN S.Kolic > 0 Then S.Kolic/A.SodrziArt Else 0 End))
If @KojIzv in ('C', 'K')
Begin
Set @SSQL = 'Select
SUM((Case WHEN S.Kolic < 0 Then (Case When (A.SodrziArt <> 0 and A.SodrziArt Is Not Null) Then (-1*(S.Kolic/A.SodrziArt)) Else (-1*S.Kolic) End) Else 0 End)),
SUM((Case WHEN S.Kolic > 0 Then (Case When (A.SodrziArt <> 0 and A.SodrziArt Is Not Null) Then (S.Kolic/A.SodrziArt) Else S.Kolic End) Else 0 End))
From Dokr D
Inner Join Stavr S On S.DokrId=D.DokrID
Inner Join Katart K On K.Sifra_Art=S.Sifra_Art
Inner Join KatAmb A On A.Sifra_Amb=K.Sifra_Amb
Where D.VlIzl = ''I'' And K.Sifra_Amb = ''' + @Sifra_Amb + '''
And D.Datum_Dok < ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Povratna = 'D'
Set @SSQL = @SSQL + ' And A.Povratna = ''D'' '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Oe = ' + cast(@Sifra_Oe as varchar(10)) + ' '
Insert Into #Preth Exec(@SSQL)
End
End
------------------------------------------------------------------------------ Od StaAmbal dadena ambalaza ---------------------------------------------------------------------------
If @KojIzv in ('C', 'D')
Begin
Set @SSQL = 'Select
SUM((Case WHEN S.Kolic > 0 Then S.Kolic Else 0 End)),
Abs(SUM((Case WHEN S.Kolic < 0 Then S.Kolic Else 0 End)))
From Dokr D
Inner Join StaAmbal S On S.DokrId=D.DokrID
Inner Join KatAmb A On A.Sifra_Amb=S.Sifra_Amb
Where D.VlIzl = ''V'' And S.Sifra_Amb = ''' + @Sifra_Amb + '''
And D.Datum_Dok < ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Povratna = 'D'
Set @SSQL = @SSQL + ' And A.Povratna = ''D'' '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Oe = ' + cast(@Sifra_Oe as varchar(10)) + ' '
If @Koi_OE Is Not NULL
Set @SSQL = @SSQL + ' And D.Sifra_OE IN (Select G.Sifra_Oe from SGrOrg G where G.sif_GrOrg = ''' + @Koi_Oe + ''') '
Insert Into #Preth Exec(@SSQL)
End
If @KojIzv in ('C', 'K')
Begin
Set @SSQL = 'Select
Abs(SUM((Case WHEN S.Kolic < 0 Then S.Kolic Else 0 End))),
SUM((Case WHEN S.Kolic > 0 Then S.Kolic Else 0 End))
From Dokr D
Inner Join StaAmbal S On S.DokrId=D.DokrID
Inner Join KatAmb A On A.Sifra_Amb=S.Sifra_Amb
Where D.VlIzl = ''I'' And S.Sifra_Amb = ''' + @Sifra_Amb + '''
And D.Datum_Dok < ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Povratna = 'D'
Set @SSQL = @SSQL + ' And A.Povratna = ''D'' '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Oe = ' + cast(@Sifra_Oe as varchar(10)) + ' '
If @Koi_OE Is Not NULL
Set @SSQL = @SSQL + ' And D.Sifra_OE IN (Select G.Sifra_Oe from SGrOrg G where G.sif_GrOrg = ''' + @Koi_Oe + ''') '
Insert Into #Preth Exec(@SSQL)
End
Select @PrethZAdolz=Sum(Zadolzenie), @PrethRazdolz=Sum(Razdolzenie) From #Preth
---------------------------------------------------------------------- Od Stavr prodadeni proizvodi so ambalaza -------------------------------------------------------------------
If @VkluciAmbOdDok = 'D'
Begin
If @KojIzv in ('C', 'D')
Begin
--(Case WHEN S.Kolic > 0 Then S.Kolic/A.SodrziArt Else 0 End),
--(Case WHEN S.Kolic < 0 Then S.Kolic/A.SodrziArt Else 0 End)
(Case WHEN S.Kolic > 0 Then (Case When (A.SodrziArt <> 0 and A.SodrziArt Is Not Null) Then (S.Kolic/A.SodrziArt) Else S.Kolic End) Else 0 End),
(Case WHEN S.Kolic < 0 Then (Case When (A.SodrziArt <> 0 and A.SodrziArt Is Not Null) Then (-1*(S.Kolic/A.SodrziArt)) Else (-1*S.Kolic) End) Else 0 End)
From Dokr D
Inner Join Stavr S On S.DokrId=D.DokrID
Inner Join Katart K On K.Sifra_Art=S.Sifra_Art
Inner Join KatAmb A On A.Sifra_Amb=K.Sifra_Amb
Where D.VlIzl = ''V'' And K.Sifra_Amb = ''' + @Sifra_Amb + ''' '
If @Povratna = 'D'
Set @SSQL = @SSQL + ' And A.Povratna = ''D'' '
If @Datum_Od Is Not Null
Set @SSQL = @SSQL + ' And D.Datum_Dok >= ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQL = @SSQL + ' And D.Datum_Dok <= ''' + cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Oe = ' + cast(@Sifra_Oe as varchar(10)) + ' '
Insert Into #Tab Exec(@SSQL)
End
If @KojIzv in ('C', 'K')
Begin
--(Case WHEN S.Kolic < 0 Then S.Kolic/A.SodrziArt Else 0 End),
--(Case WHEN S.Kolic > 0 Then S.Kolic/A.SodrziArt Else 0 End)
(Case WHEN S.Kolic < 0 Then (Case When (A.SodrziArt <> 0 and A.SodrziArt Is Not Null) Then (-1*(S.Kolic/A.SodrziArt)) Else (-1*S.Kolic) End) Else 0 End),
(Case WHEN S.Kolic > 0 Then (Case When (A.SodrziArt <> 0 and A.SodrziArt Is Not Null) Then (S.Kolic/A.SodrziArt) Else S.Kolic End) Else 0 End)
From Dokr D
Inner Join Stavr S On S.DokrId=D.DokrID
Inner Join Katart K On K.Sifra_Art=S.Sifra_Art
Inner Join KatAmb A On A.Sifra_Amb=K.Sifra_Amb
Where D.VlIzl = ''I'' And K.Sifra_Amb = ''' + @Sifra_Amb + ''' '
If @Povratna = 'D'
Set @SSQL = @SSQL + ' And A.Povratna = ''D'' '
If @Datum_Od Is Not Null
Set @SSQL = @SSQL + ' And D.Datum_Dok >= ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQL = @SSQL + ' And D.Datum_Dok <= ''' + cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Oe = ' + cast(@Sifra_Oe as varchar(10)) + ' '
Insert Into #Tab Exec(@SSQL)
End
End
------------------------------------------------------------------------------ Od StaAmbal dadena ambalaza ---------------------------------------------------------------------------
(A.Dolzi*0.05) as IznosSoOdobr, 0 as Dolzi, 0 Pobaruva,
0 as Plateno_Dolzi, 0 as Plateno_Pobar, A.Sifra_Pat, A.Sifra_Za, A.AnID, A.Opis
FROM AnFinDok A
Inner Join Komint Kup On Kup.Sifra_Kup=A.Sifra_Kup
INNER JOIN TipDok T ON A.Sifra_Dok=T.Sifra_Dok
WHERE A.Sifra_Kup=''' + @Sifra_Kup + ''' AND A.Sifra_Za=''1''
And Kup.KojaCena In (''2'',''5'')
And A.AnID Not In (Select AnID_Fak From StaOdobr)
And A.AnID Not In (Select AnID_Odob From StaOdobr)
And A.Dolzi > 0 '
If @Datum_Dok_Od Is NOT Null
SET @SSQL = @SSQL + 'AND A.Datum_Dok>=''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
If @Datum_Dok_Do Is NOT Null
SET @SSQL = @SSQL + 'AND A.Datum_Dok<=''' + Cast(@Datum_Dok_Do As Varchar(35)) + ''' '
If @Datum_Nal_Od Is NOT Null
SET @SSQL = @SSQL + 'AND A.Datum_Nal>=''' + Cast(@Datum_Nal_Od As Varchar(35)) + ''' '
If @Datum_Nal_Do Is NOT Null
SET @SSQL = @SSQL + 'AND A.Datum_Nal<=''' + Cast(@Datum_Nal_Do As Varchar(35)) + ''' '
Set @SSQL = @SSQL + @SSQLUsl
If @Podred = 'D'
Set @SSQL = @SSQL + 'Order By Dateadd(Day, A.Rok, A.Datum_Dok), A.Sifra_Za, A.Broj_Dok '
Else
Set @SSQL = @SSQL + 'Order By A.Datum_Dok, A.AnID, A.Dolzi Desc '
EXEC(@SSQL)
print @SSQL
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_kart_oe]'))
drop procedure [dbo].[sp_kart_oe]
Go
CREATE PROCEDURE sp_Kart_Oe
@Sifra_Kup_Od Char(6) = Null,
@Sifra_Kup_Do Char(6) = Null,
@Datum_Dok_Od Smalldatetime = Null,
@Datum_Dok_Do Smalldatetime = Null,
@Kto Char(10) = Null,
@Sifra_OE Smallint = Null,
@Koi_OE Varchar(10) = Null,
@VkluciPren char(1) = 'D',
@PrethSost char(1) = 'D', -- N ako ne treba Pocetna Sostojba - (za Sub Reporti)
@PrethDolzi Decimal(18,6) Output,
@PrethPobar Decimal(18,6) Output,
@PrethFakturi Decimal(18,6) Output
AS
Declare @SSQL Varchar(8000)
Declare @SSQLUsl Varchar(8000)
Declare @SSQLUsl1 Varchar(8000)
Set @SSQL = ' '
Set @SSQLUsl = ' '
Set @SSQLUsl1 = ' '
Create Table #Kart
(
Sifra_Oe smallint,
Sifra_Dok smallint,
Broj_Dok int,
Sifra_Kup char(6),
Datum_Dok smalldatetime,
Sifra_Za char(1),
ImaDodatna char(1),
Kto char(10),
Dolzi decimal(18,6),
Pobaruva decimal(18,6),
DolziFakturi decimal(18,6),
BrojDok varchar (25)
)
---------------------------------------------------------------------------- U S L O V -------------------------------------------------------------------------------------
---------------------------------------------------------------------------- U P L A T I -------------------------------------------------------------------------------------
---------------------------------------------------------------------------- F A K T U R I -------------------------------------------------------------------------------------
---------------------------------------------------------------------- P R E N O S N I C I ------------------------------------------------------------------------------
Declare @wDatAkt1 smalldatetime, @wKlkM smallint, @wKlkA as smallint
SET @wStInvBr=''
Declare Tabela1 Cursor Fast_Forward For
Select Inv_Broj, Datum, Sto From #TmpMiruv ORDER BY Inv_Broj, Datum
Open Tabela1
Fetch Next From Tabela1 Into @wInvBr, @wDat, @wSto
While @@Fetch_Status = 0
Begin
IF @wInvBr <> @wStInvBr --novo sredstvo
Begin
SELECT @wDatAkt =DatAkt, @wDatPrest=DatPrest FROM #Tmp1AmorPresm WHERE Inv_Broj=@wInvBr
SET @wStInvBr=@wInvBr
SET @wKlkM = 0
SET @wKlkA = 0
SET @wDatAkt1 = @wDatAkt
End
IF @wSto='M'
Begin
SET @wKlkM = @wKlkM + 1
IF @wKlkM=1 AND @wKlkA=0
INSERT INTO #Tmp2AmorPresm (Inv_Broj,Rbr,DatAkt,DatPrest,Osn_Amor,Otpis_pret, Miruvanje)
VALUES (@wInvBr,0,@wDatAkt, @wDat,0,0,'M')
ELSE
UPDATE #Tmp2AmorPresm SET DatPrest=@wDat WHERE Inv_Broj=@wInvBr AND DatAkt=@wDatAkt1
End
ELSE
Begin
SET @wKlkA = @wKlkA + 1
SET @wDatAkt1 = @wDat
INSERT INTO #Tmp2AmorPresm (Inv_Broj,Rbr,DatAkt,DatPrest,Osn_Amor,Otpis_pret, Miruvanje)
VALUES (@wInvBr,0,@wDat, @wDatPrest,0,0, 'A')
End
Fetch Next From Tabela1 Into @wInvBr, @wDat, @wSto
End
Close Tabela1
Deallocate Tabela1
--select * from #Tmp2AmorPresm
Declare @ImaOvaaGod smallint, @PrvoStGod smallint
Declare TabOS Cursor Fast_Forward For
Select Inv_Broj From #TmpOS1 ORDER BY Inv_Broj
Open TabOS
Fetch Next From TabOS INTO @wInvBr
While @@Fetch_Status = 0
Begin
SET @PrvoStGod=0
SET @ImaOvaaGod=0
Declare Tabela2 Cursor Fast_Forward For
Select DatAkt, DatPrest, Miruvanje From #Tmp2AmorPresm WHERE Inv_Broj=@wInvBr ORDER BY DatAkt DESC
Open Tabela2
Fetch Next From Tabela2 Into @wDatAkt, @wDatPrest, @wSto
While @@Fetch_Status = 0
Begin
IF @wDatAkt >= @PocDatGod
Begin
INSERT INTO #TmpAmorPresm SELECT * FROM #Tmp2AmorPresm WHERE Inv_Broj=@wInvBr AND DatAkt=@wDatAkt
IF @ImaOvaaGod=1 UPDATE #TmpAmorPresm SET Rbr=4 WHERE Inv_Broj=@wInvBr AND DatAkt=@wDatAkt
SET @ImaOvaaGod=1
End
ELSE
Begin
IF @PrvoStGod=0 AND @ImaOvaaGod=0 AND ((@wDatPrest IS NULL AND @wSto='A') OR (@wDatPrest IS NOT NULL AND (@wSto='M' OR @wDatPrest>=@PocDatGod)))
Begin
INSERT INTO #TmpAmorPresm SELECT * FROM #Tmp2AmorPresm WHERE Inv_Broj=@wInvBr AND DatAkt=@wDatAkt
End
SET @PrvoStGod=1
End
Fetch Next From Tabela2 Into @wDatAkt, @wDatPrest, @wSto
End
Close Tabela2
Deallocate Tabela2
Fetch Next From TabOS INTO @wInvBr
End
Close TabOS
Deallocate TabOS
DELETE FROM #Tmp2AmorPresm
--select * from #tmpamorpresm
--sega uste komplikacijata da ima dogradba,delumen otpis na sredstvata koi se so miruvanje, aktiviranje
/*
Declare @wOsnDogr decimal(18,6)
Declare TabDogr Cursor Fast_Forward For
SELECT A.Inv_Broj, A.DatAkt, A.DatPrest, A.Osn_Amor FROM #TmpAmorPresm A INNER JOIN #TmpOS O ON A.Inv_Broj=O.Inv_Broj WHERE A.Rbr=1 ORDER BY A.Inv_Broj, A.DatAkt
Open TabDogr
Fetch Next From TabDogr Into @wInvBr, @wDatAkt, @wDatPrest, @wOsnDogr
While @@Fetch_Status = 0
Begin
DELETE FROM #Tmp1AmorPresm
INSERT INTO #Tmp1AmorPresm SELECT * FROM #TmpAmorPresm WHERE Inv_Broj=@wInvBr AND DatAkt=@wDatAkt AND Rbr=1
DELETE FROM #TmpAmorPresm WHERE Inv_Broj=@wInvBr AND DatAkt=@wDatAkt AND Rbr=1
DELETE FROM #Tmp2AmorPresm
SET @wStInvBr=@wInvBr
SET @wKlkM = 0
SET @wKlkA = 0
SET @wDatAkt1 = @wDatAkt
Declare Tabela1 Cursor Fast_Forward For
Select Datum, Sto From #TmpMiruv WHERE Inv_Broj=@wInvBr ORDER BY Datum
Open Tabela1
Fetch Next From Tabela1 Into @wDat, @wSto
While @@Fetch_Status = 0
Begin
IF @wSto='M'
Begin
SET @wKlkM = @wKlkM + 1
IF @wKlkM=1 AND @wKlkA=0
INSERT INTO #Tmp2AmorPresm (Inv_Broj,Rbr,DatAkt,DatPrest,Osn_Amor,Otpis_pret, Miruvanje)
UPDATE #TmpAmorPresm SET DatPrest = #PomOsn.DatPrest FROM #PomOsn
WHERE #PomOsn.Inv_Broj = #TmpAmorPresm.Inv_Broj AND #TmpAmorPresm.Rbr=1
UPDATE #TmpAmorPresm SET Osn_Amor = S.Osn_Amor, Otpis_Pret = S.Otpis_Pret
FROM PocSostOsn S WHERE S.Inv_Broj = #TmpAmorPresm.Inv_Broj AND S.Godina = @Godina AND #TmpAmorPresm.Rbr=0
UPDATE #TmpAmorPresm SET Osn_Amor = S.Osn_Amor, Otpis_Pret = S.Otpis_Pret
FROM StavOsnSred S WHERE S.Inv_Broj=#TmpAmorPresm.Inv_Broj AND S.Delov_God=@Godina AND S.Tip_StaOsn ='P' AND #TmpAmorPresm.Rbr=0 AND (#TmpAmorPresm.Osn_Amor IS NULL OR #TmpAmorPresm.Osn_Amor=0)
UPDATE #TmpAmorPresm SET Stapka_Amor = AmorGrp.Stapka FROM OsnSred, AmorGrp
WHERE #TmpAmorPresm.Inv_Broj = OsnSred.Inv_Broj AND OsnSred.Sifra_Amor = AmorGrp.Sifra_Amor
UPDATE #TmpAmorPresm SET PocDatAmor = dbo.fn_VratiPrvDatumSledenMes (DatAkt, @Godina)
UPDATE #TmpAmorPresm SET KrDatAmor = dbo.fn_NapraviDatum (@Godina+1, 1, 1) WHERE DatPrest IS NULL
UPDATE #TmpAmorPresm SET KrDatAmor = dbo.fn_VratiDatumOdDo (year(DatPrest), month(DatPrest), 31) WHERE DatPrest IS NOT NULL
UPDATE #TmpAmorPresm SET PocDatKumul = PocDatAmor WHERE PocDatAmor > @PocDatGod
UPDATE #TmpAmorPresm SET PocDatKumul = @PocDatGod WHERE PocDatAmor <= @PocDatGod
UPDATE #TmpAmorPresm SET KrDatKumul = KrDatAmor WHERE KrDatAmor < @KrDat
UPDATE #TmpAmorPresm SET KrDatKumul = @KrDat WHERE KrDatAmor >= @KrDat
UPDATE #TmpAmorPresm SET PocDatDoPer = PocDatAmor WHERE PocDatAmor > @PocDatGod
UPDATE #TmpAmorPresm SET PocDatDoPer = @PocDatGod WHERE PocDatAmor <= @PocDatGod
UPDATE #TmpAmorPresm SET KrDatDoPer = KrDatAmor WHERE KrDatAmor < DateAdd(day, -1, @PocDat)
UPDATE #TmpAmorPresm SET KrDatDoPer = DateAdd(day, -1, @PocDat) WHERE KrDatAmor >= DateAdd(day, -1, @PocDat)
IF @PresmPoDenovi='D' --dod.03.02.2012
Begin
UPDATE #TmpAmorPresm SET PocDatAmor = DatAkt WHERE DatAkt>@PocDat
UPDATE #TmpAmorPresm SET KrDatAmor = DatPrest WHERE DatPrest IS NOT NULL
UPDATE #TmpAmorPresm SET PocDatKumul = PocDatAmor WHERE PocDatAmor > @PocDatGod
UPDATE #TmpAmorPresm SET KrDatKumul = KrDatAmor WHERE KrDatAmor < @KrDat
UPDATE #TmpAmorPresm SET PocDatDoPer = PocDatAmor WHERE PocDatAmor > @PocDatGod
UPDATE #TmpAmorPresm SET KrDatDoPer = KrDatAmor WHERE KrDatAmor < DateAdd(day, -1, @PocDat)
Set @SSQL = @SSQL + 'AND (A.Sifra_Za=1 OR A.Sifra_Za=2) '
If @KoiFri = 'P'
Set @SSQL = @SSQL + 'AND A.Dolzi=A.Plateno_Dolzi AND A.Pobaruva=A.Plateno_Pobar '
Else If @KoiFri = 'N'
Set @SSQL = @SSQL + 'AND (A.Dolzi<>A.Plateno_Dolzi OR A.Pobaruva<>A.Plateno_Pobar) '
Else If @KoiFri = 'R'
Set @SSQL = @SSQL + 'AND (A.Plateno_Dolzi = 0 and A.Plateno_Pobar = 0) ' -- Logikata ne e bas dobra (stavena e da ne prikazuva nisto); se isklucuva so gorniot uslov
If @Datum_Dok_Od Is NOT Null
SET @SSQL = @SSQL + 'AND A.Datum_Dok>=''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
If @Datum_Dok_Do Is NOT Null
SET @SSQL = @SSQL + 'AND A.Datum_Dok<=''' + Cast(@Datum_Dok_Do As Varchar(35)) + ''' '
If @Datum_Nal_Od Is NOT Null
SET @SSQL = @SSQL + 'AND A.Datum_Nal>=''' + Cast(@Datum_Nal_Od As Varchar(35)) + ''' '
If @Datum_Nal_Do Is NOT Null
SET @SSQL = @SSQL + 'AND A.Datum_Nal<=''' + Cast(@Datum_Nal_Do As Varchar(35)) + ''' '
Left Outer Join DokRabnal DRN On DRN.RabNalID=R.RabNalID
Left Outer Join Dokr D On D.DokrID=DRN.DokrId
Left Outer Join Stavr S On S.DokrID=D.DokrID
Left Outer Join Komint Kup On Kup.Sifra_Kup = R.Sifra_Kup
Left Outer Join Katart K On K.Sifra_art = S.Sifra_art
Left outer join Rabotnik RA on R.Sifra_Rab= RA.Sifra_Rab
Left outer join Rabotnik RA2 on R.Sifra_Rab_2 = RA2.Sifra_Rab '
if @Sifra_Gr is not null
set @SSQL = @SSQL + ' Left Outer Join Podgrupi P
on K.Sifra_Podg = P.Sifra_Podg '
set @SSQL = @SSQL + ' Where DRN.Tip_RabStav In (''T'') '
if @Sifra_Art is not null
set @SSQL = @SSQL + ' and S.Sifra_Art = ''' + @Sifra_Art + ''' '
if @Sifra_Gr is not null
set @SSQL = @SSQL + ' and P.Sifra_Gr = ''' + @Sifra_Gr + ''' '
if @Sifra_Podg is not null
set @SSQL = @SSQL + ' and K.Sifra_Podg = ''' + @Sifra_Podg + ''' '
If @DatumOtv_Od Is Not Null
Set @SSQL = @SSQL + ' And R.Datum_Otv >= ''' + cast(@DatumOtv_Od as varchar(30)) + ''' '
If @DatumOtv_Do Is Not Null
Set @SSQL = @SSQL + ' And R.Datum_Otv <= ''' + cast(@DatumOtv_Do as varchar(30)) + ''' '
Exec(@SSQL+@SSQLUsl)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_kartica_artikal_boigolemini]'))
drop procedure [dbo].[sp_kartica_artikal_boigolemini]
Go
CREATE PROCEDURE sp_Kartica_Artikal_BoiGolemini
@Sifra_Oe smallint,
@KoiOe varchar(6),
@Datum_Od smalldatetime,
@Datum_Do smalldatetime,
@Sifra_Art varchar(20),
@Sifra_Boja smallint = Null,
@Sifra_Velic smallint = Null,
@Lokacija varchar(10) = Null,
@Sifra_Kup varchar(6) = Null,
@Sifra_Obj smallint = Null,
@PrethVlez decimal(18,6) = Null Output,
@PrethIzlez decimal(18,6) = Null Output
AS
Set @PrethVlez=0
Set @PrethIzlez=0
Declare @SSQL as varchar(8000)
If @Datum_Od Is Not Null
Begin
Create Table #Tab
(
Vlez decimal(18,6),
Izlez decimal(18,6)
)
IF @Sifra_Velic IS NULL AND @Sifra_Boja IS NULL
Begin
Set @SSQL = ' Select Sum(Case When M.VlIzl = ''V'' Then M.Kolic Else 0 End) Vlez,
Sum(Case When M.VlIzl = ''I'' Then M.Kolic Else 0 End) Izlez
From MagStavr M
Inner Join Dokr D On D.DokrID=M.DokrID
Where D.Datum_Dok < ''' + Cast(@Datum_Od as varchar(30)) + '''
And M.Sifra_Art = ''' + @Sifra_Art + ''' AND D.Datum_Dok<'''+cast(@Datum_Od as varchar(35))+''' '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' And M.Sifra_Oe = ' + cast(@Sifra_Oe as varchar(6)) + ' '
If @KoiOE Is Not Null
Set @SSQL = @SSQL + ' And M.Sifra_OE In (Select Sifra_OE From SGrOrg Where Sif_GrOrg=''' + Cast(@KoiOE As Varchar(6)) + ''') '
If @Sifra_Boja Is Not Null
Set @SSQL = @SSQL + ' And replace(Substring(LotBr, PatIndex(''% %'', LotBr)+1, PatIndex(''%:%'', LotBr)-PatIndex(''% %'', LotBr)-1), ''*'', '''') = ' + Cast(@Sifra_Boja as varchar(6)) + ' '
If @Sifra_Velic Is Not Null
Set @SSQL = @SSQL + ' And replace(Substring(LotBr, PatIndex(''%:%'', LotBr)+1, 5), ''*'', '''') = ' + Cast(@Sifra_Velic as varchar(6)) + ' '
If @Lokacija Is Not Null
Set @SSQL = @SSQL + ' And M.Lokacija = ''' + @Lokacija + ''' '
If @Sifra_Kup Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Kup = ''' + @Sifra_Kup + ''' '
If @Sifra_Obj Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Obj = ' + Cast(@Sifra_Obj as varchar(6)) + ' '
End
ELSE
Begin
Set @SSQL = ' Select Sum(Case When M.VlIzl = ''V'' Then M.Kolic Else 0 End) Vlez,
Sum(Case When M.VlIzl = ''I'' Then M.Kolic Else 0 End) Izlez
From Stavr M
Inner Join Dokr D On D.DokrID=M.DokrID
Where D.Datum_Dok < ''' + Cast(@Datum_Od as varchar(30)) + '''
And M.Sifra_Art = ''' + @Sifra_Art + ''' AND D.Datum_Dok<'''+cast(@Datum_Od as varchar(35))+''' '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' And M.Sifra_Oe = ' + cast(@Sifra_Oe as varchar(6)) + ' '
If @KoiOE Is Not Null
Set @SSQL = @SSQL + ' And M.Sifra_OE In (Select Sifra_OE From SGrOrg Where Sif_GrOrg=''' + Cast(@KoiOE As Varchar(6)) + ''') '
If @Sifra_Kup Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Kup = ''' + @Sifra_Kup + ''' '
If @Sifra_Obj Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Obj = ' + Cast(@Sifra_Obj as varchar(6)) + ' '
End
Insert Into #Tab Exec(@SSQL)
Select @PrethVlez=Vlez, @PrethIzlez=Izlez From #Tab
End
--sega da dopolnime za stavkite koi se bez boi
CREATE TABLE #TmpStavr
(Sifra_OE smallint,
Sifra_Dok smallint,
Broj_Dok int,
Kolic decimal(18,6),
KolicMag decimal(18,6))
IF @Sifra_Velic IS NULL AND @Sifra_Boja IS NULL
Begin
Set @SSQL = 'SELECT S.Sifra_OE, S.Sifra_Dok, S.Broj_Dok, SUM(S.Kolic), 0 FROM Stavr S Inner Join Dokr D On D.DokrID=S.DokrID
WHERE S.Sifra_Art=''' + @Sifra_Art + ''' '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_Oe = ' + cast(@Sifra_Oe as varchar(6)) + ' '
If @KoiOE Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_OE In (Select Sifra_OE From SGrOrg Where Sif_GrOrg=''' + Cast(@KoiOE As Varchar(6)) + ''') '
If @Datum_Od Is Not Null
Set @SSQL = @SSQL + ' And S.Datum_Dok >= ''' + Cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQL = @SSQL + ' And S.Datum_Dok <= ''' + Cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Kup Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Kup = ''' + @Sifra_Kup + ''' '
If @Sifra_Obj Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Obj = ' + Cast(@Sifra_Obj as varchar(6)) + ' '
Set @SSQL = @SSQL + ' GROUP BY S.Sifra_OE, S.Sifra_Dok, S.Broj_Dok '
INSERT INTO #TmpStavr (Sifra_OE, Sifra_Dok, Broj_Dok, Kolic, KolicMag) EXEC(@SSQL)
CREATE TABLE #TmpMag
(Sifra_OE smallint,
Sifra_Dok smallint,
Broj_Dok int,
KolicMag decimal(18,6))
Set @SSQL = 'SELECT D.Sifra_OE, D.Sifra_Dok, D.Broj_Dok, SUM(S.Kolic) FROM MagStavr S Inner Join Dokr D On D.DokrID=S.DokrID
WHERE S.Sifra_Art=''' + @Sifra_Art + ''' '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_Oe = ' + cast(@Sifra_Oe as varchar(6)) + ' '
If @KoiOE Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_OE In (Select Sifra_OE From SGrOrg Where Sif_GrOrg=''' + Cast(@KoiOE As Varchar(6)) + ''') '
If @Datum_Od Is Not Null
Set @SSQL = @SSQL + ' And D.Datum_Dok >= ''' + Cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQL = @SSQL + ' And D.Datum_Dok <= ''' + Cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Kup Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Kup = ''' + @Sifra_Kup + ''' '
If @Sifra_Obj Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Obj = ' + Cast(@Sifra_Obj as varchar(6)) + ' '
Set @SSQL = @SSQL + ' GROUP BY D.Sifra_OE, D.Sifra_Dok, D.Broj_Dok '
INSERT INTO #TmpMag (Sifra_OE, Sifra_Dok, Broj_Dok, KolicMag) EXEC(@SSQL)
UPDATE #TmpStavr SET KolicMag=M.KolicMag FROM #TmpMag M WHERE #TmpStavr.Sifra_OE=M.Sifra_OE AND #TmpStavr.Sifra_Dok=M.Sifra_Dok AND #TmpStavr.Broj_Dok=M.Broj_Dok
Left Outer Join DokRabNal DRN On DRN.DokrID=D.DokrID
Left Outer Join RabNal RN On RN.RabNalID=DRN.RabNalID
Inner Join Orged O On O.Sifra_Oe = M.Sifra_Oe
Left Outer Join Komint K On K.Sifra_kup = D.Sifra_Kup
Left Outer Join KObjekti KO On KO.Sifra_kup = D.Sifra_Kup And KO.Sifra_Obj=D.Sifra_Obj
Left Outer Join KatStatus KS On KS.Sifra_KatStatus=M.Sifra_KatStatus
Left Outer Join TipKatPakuv KP On KP.Sifra_KatPak=M.Sifra_KatPak
Left Outer Join Boja B On B.Sifra_Boja = replace(Substring(LotBr, PatIndex(''% %'', LotBr)+1, PatIndex(''%:%'', LotBr)-PatIndex(''% %'', LotBr)-1), ''*'', '''')
Left Outer Join Velicina V On V.Sifra_Velic = replace(Substring(LotBr, PatIndex(''%:%'', LotBr)+1, 5), ''*'', '''')
Where M.Sifra_Art = ''' + @Sifra_Art + ''' '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' And M.Sifra_Oe = ' + cast(@Sifra_Oe as varchar(6)) + ' '
If @KoiOE Is Not Null
Set @SSQL = @SSQL + ' And M.Sifra_OE In (Select Sifra_OE From SGrOrg Where Sif_GrOrg=''' + Cast(@KoiOE As Varchar(6)) + ''') '
If @Datum_Od Is Not Null
Set @SSQL = @SSQL + ' And D.Datum_Dok >= ''' + Cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQL = @SSQL + ' And D.Datum_Dok <= ''' + Cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Boja Is Not Null
Set @SSQL = @SSQL + ' And replace(Substring(LotBr, PatIndex(''% %'', LotBr)+1, PatIndex(''%:%'', LotBr)-PatIndex(''% %'', LotBr)-1),''*'', '''') = ' + Cast(@Sifra_Boja as varchar(6)) + ' '
If @Sifra_Velic Is Not Null
Set @SSQL = @SSQL + ' And replace(Substring(LotBr, PatIndex(''%:%'', LotBr)+1, 5),''*'', '''') = ' + Cast(@Sifra_Velic as varchar(6)) + ' '
If @Sifra_Kup Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Kup = ''' + @Sifra_Kup + ''' '
If @Sifra_Obj Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Obj = ' + Cast(@Sifra_Obj as varchar(6)) + ' '
SET @SSQL = @SSQL + ' AND A.Datum_Dok < ''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
If @Datum_Nal_Od Is NOT Null
SET @SSQL = @SSQL + ' AND A.Datum_Nal < ''' + Cast(@Datum_Nal_Od As Varchar(35)) + ''' '
If @Datum_Dosp_Od Is Not Null
Set @SSQL = @SSQL + ' And DateAdd(Day, A.Rok, A.Datum_Dok) < ''' + Cast(@Datum_Dosp_Od As Varchar(35)) + ''' '
If @Sifra_Kup Is Not Null
SET @SSQLUsl = @SSQLUsl + ' And A.Sifra_Kup=' + @Sifra_Kup + ' '
If @Sifra_Za = '1' OR @Sifra_Za = '2'
Set @SSQLUsl = @SSQLUsl + ' AND A.Sifra_Za=' + @Sifra_Za + ' '
Else If @Sifra_Za = '0'
Set @SSQLUsl = @SSQLUsl + ' AND (A.Sifra_Za=1 OR A.Sifra_Za=2) '
If @KoiFri = 'P'
Set @SSQLUsl = @SSQLUsl + ' AND A.Dolzi=A.Plateno_Dolzi AND A.Pobaruva=A.Plateno_Pobar '
Else If @KoiFri = 'N'
Set @SSQLUsl = @SSQLUsl + ' AND (A.Dolzi<>A.Plateno_Dolzi OR A.Pobaruva<>A.Plateno_Pobar) '
Else If @KoiFri = 'R'
Set @SSQLUsl = @SSQLUsl + ' AND (A.Plateno_Dolzi <> 0 Or A.Plateno_Pobar <> 0) and (A.Plateno_Dolzi = 0 and A.Plateno_Pobar = 0) ' -- Logikata ne e bas dobra (stavena e da ne prikazuva nisto)
Else If @KoiFri = 'M'
Set @SSQLUsl = @SSQLUsl + ' AND (A.Plateno_Dolzi <> 0 Or A.Plateno_Pobar <> 0) ' -- site stavki koi sto se delumno ili celosno plateni (zaradi slozuvanje so sp_Kart_ZatvStavki)
If @Kto Is NOT Null and @Kto2 Is Null
SET @SSQLUsl = @SSQLUsl + ' AND A.Kto=''' + @Kto + ''' '
If @Kto Is NOT Null and @Kto2 Is Not Null
Begin
If @KFKto2 = 'D'
SET @SSQLUsl = @SSQLUsl + ' AND (A.Kto = ''' + @Kto + ''' or A.Kto <> ''' + @Kto2 + ''') '
Else
SET @SSQLUsl = @SSQLUsl + ' AND A.Kto in (''' + @Kto + ''', ''' + @Kto2 + ''') '
End
If @Kto Is Null and @Kto2 Is Not Null
Begin
If @KFKto2 = 'D'
SET @SSQLUsl = @SSQLUsl + ' AND A.Kto <> ''' + @Kto2 + ''' '
Else
SET @SSQLUsl = @SSQLUsl + ' AND A.Kto = ''' + @Kto2 + ''' '
End
If @Sifra_Pat Is NOT Null
SET @SSQLUsl = @SSQLUsl + ' AND A.Sifra_Pat=' + Cast(@Sifra_Pat As Varchar(6)) + ' '
If @Sifra_OE Is NOT Null
SET @SSQLUsl = @SSQLUsl + ' AND A.Sifra_OE=' + Cast(@Sifra_OE As Varchar(6)) + ' '
If @Koi_OE Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And A.Sifra_OE In (Select Sifra_OE From SGrOrg Where Sif_GrOrg=''' + @Koi_OE + ''') '
INSERT INTO #Preth_Promet EXEC(@SSQL+@SSQLUsl + ' Group By A.Sifra_Pat ')
Left Outer Join Komint Kup On Kup.Sifra_Kup = T.Sifra_Kup
Left Outer Join KObjekti KO On KO.Sifra_Kup = T.Sifra_Kup And KO.Sifra_Obj=T.Sifra_Obj
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_karticanakosignacija]'))
drop procedure [dbo].[sp_karticanakosignacija]
Go
CREATE PROCEDURE sp_KarticaNaKosignacija
@Sifra_Kup Char(6) = Null,
@Sifra_Obj smallint = Null,
@Datum_Od smalldatetime,
@Datum_Do smalldatetime,
@SoDanok char(1) = 'D',
@Sifra_Art varchar(20),
@PrethVlKol decimal(18,6) = Null Output,
@PrethIzlKol decimal(18,6) = Null Output,
@PrethVlVred decimal(18,6) = Null Output,
@PrethIzlVred decimal(18,6) = Null Output
AS
Declare @SSQL Varchar (8000)
If @Datum_Od Is Not Null
Begin
Create Table #PrethSost
(
PrethVlKol decimal(18,6),
PrethIzlKol decimal(18,6),
PrethVlVred decimal(18,6),
PrethIzlVred decimal(18,6)
) -- ((Case When (K.SodrziEd<>0 And S.Sifra_Dok In (15,16,85,86)) Then S.Kolic*K.SodrziEd Else S.Kolic End) * dbo.fn_VratiCena(S.DokCena, S.Posn, S.DanDokCena, ''' + @SoDanok + ''')) Else 0 End)),
Set @SSQL = ' Select Sum((Case When (S.Sifra_Dok In (15,16,85,86) Or (S.Sifra_Dok=990 And D.VlIzl=''V'')) Then (Case When (K.SodrziEd<>0 And S.Sifra_Dok In (15,16,85,86)) Then S.Kolic*K.SodrziEd Else S.Kolic End) Else 0 End)),
Sum((Case When S.Sifra_Dok In (185, 186,191,192) Then S.Kolic Else 0 End)),
Sum((Case When (S.Sifra_Dok In (15,16,85,86) Or (S.Sifra_Dok=990 And D.VlIzl=''V'')) Then (S.Kolic * dbo.fn_VratiCena(S.DokCena, S.Posn, S.DanDokCena, ''' + @SoDanok + ''')) Else 0 End)),
Sum((Case When S.Sifra_Dok In (185, 186,191,192) Then (S.Kolic * dbo.fn_VratiCena(S.DokCena, S.Posn, S.DanDokCena, ''' + @SoDanok + ''')) Else 0 End))
From Stavr S
Inner Join Dokr D On D.DokrID = S.DokrID
Inner Join Katart K On K.Sifra_Art = S.Sifra_Art
Where S.Sifra_Dok in (85,86,15,16,990,185,186,191,192)
And S.Sifra_Art = ''' + @Sifra_Art + '''
And S.Datum_Dok < ''' + Cast(@Datum_Od as varchar(30)) + ''' '
If @Sifra_Kup Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Kup = ' + @Sifra_kup + ' '
If @Sifra_Obj Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Obj = ' + Cast(@Sifra_Obj as Varchar(6)) + ' '
Insert Into #PrethSost Exec(@SSQL)
Select @PrethVlKol=PrethVlKol, @PrethIzlKol=PrethIzlKol, @PrethVlVred=PrethVlVred, @PrethIzlVred=PrethIzlVred From #PrethSost
End
Set @SSQL = ' Select S.Sifra_Oe, S.Sifra_Dok, S.Broj_Dok, S.Datum_Dok, S.Sifra_Art,
(Case When (S.Sifra_Dok In (15,16,85,86) Or (S.Sifra_Dok=990 And D.VlIzl=''V'')) Then
(Case When (K.SodrziEd<>0 And S.Sifra_Dok In (15,16,85,86)) Then S.Kolic*K.SodrziEd Else S.Kolic End) Else 0 End) Vlez,
(Case When S.Sifra_Dok In (185, 186,191,192) Then S.Kolic Else 0 End) Izlez,
(Case When (K.SodrziEd<>0 And S.Sifra_Dok In (15,16,85,86)) Then
Inner Join PlkProm K On T2.Sifra_Oe=K.Sifra_Oe And T2.Grp_Kasa=K.Grp_Kasa And T2.BrKasa=K.BrKasa And T2.Broj_Ska=K.Broj_Ska
Where T2.VkIznos Is Not Null And T2.VkIznos <> 0
Group By K.Sifra_Oe, K.Grp_Kasa, K.BrKasa, K.Broj_Ska, K.Sifra_Nac, T2.VkIznos
Update #Tmp1 set VkIznos = Iznos Where Abs(VkIznos-Iznos) < 1
Update #Tmp1 set Procent = Iznos/VkIznos
Set @SSQL = ' SELECT A.Sifra_Kor, KK.ImeKor, S.Sifra_Art, K.ImeArt, Sum(S.Kolic*T.Procent) Kolic, Sum(S.Kolic*T.Procent*S.Cena*(1-S.Popust/100)) Vrednost
FROM ArkaKartKpm A
Inner Join SPromet S On S.Sifra_Oe = A.Sifra_Oe And S.Grp_Kasa = A.Grp_Kasa And S.BrKasa = A.BrKasa And S.Broj_Ska = A.Broj_Ska
Inner Join #Tmp1 T On T.Sifra_Oe = A.Sifra_Oe And T.Grp_Kasa = A.Grp_Kasa And T.BrKasa = A.BrKasa And T.Broj_Ska = A.Broj_Ska And T.Sifra_Nac=A.Sifra_Nac '
If @SifrarnikArtOd = 'A'
Set @SSQL = @SSQL + ' Inner Join ArkaKartKor KK On KK.Sifra_Kor = A.Sifra_Kor
Inner Join ArkaKat K On S.Sifra_Art = K.Sifra_Art '
Else
Begin
If @KorSoOe = 'D'
Set @SSQL = @SSQL + ' Inner Join KartKor KK On KK.Sifra_Kor = A.Sifra_Kor And KK.Sifra_Oe = A.Sifra_Oe
Inner Join Katart K On S.Sifra_Art = K.Sifra_Art '
Else
Set @SSQL = @SSQL + ' Inner Join KartKor KK On KK.Sifra_Kor = A.Sifra_Kor
Inner Join Katart K On S.Sifra_Art = K.Sifra_Art '
End
If @Sifra_Gr Is Not Null And (@SifrarnikArtOd <> 'A' Or @SifrarnikArtOd Is Null)
Set @SSQL = @SSQL + ' Inner Join Podgrupi P On P.Sifra_Podg = K.Sifra_Podg '
Set @SSQL = @SSQL + ' Where A.FraUpl = ''F'' '
Set @SSQL = @SSQL + @SSQLUsl
If @Kto Is Not Null and @SifrarnikArtOd = 'K'
Set @SSQL = @SSQL + ' And K.Kto = ''' + @Kto + ''' '
If @Sifra_Podg Is Not Null And (@SifrarnikArtOd <> 'A' Or @SifrarnikArtOd Is Null)
Set @SSQL = @SSQL + ' And K.Sifra_Podg = ''' + @Sifra_Podg + ''' '
If @Sifra_Gr Is Not Null And (@SifrarnikArtOd <> 'A' Or @SifrarnikArtOd Is Null)
Set @SSQL = @SSQL + ' And P.Sifra_Gr = ''' + @Sifra_Gr + ''' '
If @Sifra_Art_Od Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_Art >= ''' + @Sifra_Art_Od + ''' '
If @Sifra_Art_Do Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_Art <= ''' + @Sifra_Art_Do + ''' '
If @SamoSoPopust ='D'
Set @SSQLUsl = @SSQLUsl + ' And S.Popust <> 0 '
Set @SSQL = @SSQL + ' Group By A.Sifra_Kor, KK.ImeKor, S.Sifra_Art, K.ImeArt '
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_kartvidtrosok]'))
Inner Join KatSpecTipMat TM On TM.Sifra_TipMat= K.Sifra_TipMat
Inner Join Katart KA On KA.Sifra_art = K.Sifra_art
Inner Join Podgrupi P On KA.Sifra_Podg=P.Sifra_Podg
Inner Join Grupi G On P.Sifra_Gr=G.Sifra_Gr
Left Outer Join Komint KUP On KA.Kto=KUP.Sifra_Kup
Left Outer Join DrgPodel B On KA.Sifra_Drg=B.Sifra_Drg
Where 1=1 '
If @Sifra_Art_Od Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_art >= ''' + @Sifra_art_Od + ''' '
If @Sifra_Art_Do Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_art <= ''' + @Sifra_art_Do + ''' '
If @Kto Is Not Null
Set @SSQL = @SSQL + ' And KA.Kto = ''' + @Kto + ''' '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + ' And P.Sifra_Gr = ''' + @Sifra_Gr + ''' '
If @Sifra_Podg Is Not Null
Set @SSQL = @SSQL + ' And KA.Sifra_Podg = ''' + @Sifra_Podg + ''' '
If @Sifra_Drg Is Not Null
Set @SSQL = @SSQL + ' And KA.Sifra_Drg=''' + Cast(@Sifra_Drg As Varchar(6)) + ''' '
If @Sifra_Div Is Not Null
Set @SSQL = @SSQL + ' And KA.Sifra_Div=''' + Cast(@Sifra_Div As Varchar(6)) + ''' '
If @Drugo1 Is Not NULL
Set @SSQL = @SSQL + ' And KA.Drugo1=' + Cast(@Drugo1 As Varchar(6)) + ' '
If @Drugo2 Is Not NULL
Set @SSQL = @SSQL + ' And KA.Drugo2=' + Cast(@Drugo2 As Varchar(6)) + ' '
If @Drugo3 Is Not NULL
Set @SSQL = @SSQL + ' And KA.Drugo3=' + Cast(@Drugo3 As Varchar(6)) + ' '
If @Drugo4 Is Not NULL
Set @SSQL = @SSQL + ' And KA.Drugo4=' + Cast(@Drugo4 As Varchar(6)) + ' '
If @Drugo5 Is Not NULL
Set @SSQL = @SSQL + ' And KA.Drugo5=' + Cast(@Drugo5 As Varchar(6)) + ' '
If @Drugo6 Is Not NULL
Set @SSQL = @SSQL + ' And KA.Drugo6=' + Cast(@Drugo6 As Varchar(6)) + ' '
If @Drugo7 Is Not NULL
Set @SSQL = @SSQL + ' And KA.Drugo7=' + Cast(@Drugo7 As Varchar(6)) + ' '
If @Sifra_ZBrand Is Not Null
Set @SSQL = @SSQL + ' And B.Sifra_Drg1=' + Cast(@Sifra_ZBrand As Varchar(6)) + ' '
If @Sifra_TipMat Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_TipMat=' + Cast(@Sifra_TipMat As Varchar(6)) + ' '
If @Lokacija Is Not NULL
Set @SSQL = @SSQL + ' And KA.Lokacija=''' + @Lokacija + ''' '
Set @SSQL = @SSQL + ' order by K.Sifra_art '
Print (@SSQL)
Exec (@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_kniga_fakt]'))
drop procedure [dbo].[sp_kniga_fakt]
Go
CREATE PROCEDURE [dbo].[sp_Kniga_Fakt]
@Sifra_Za Char(1),
@Datum_Nal_Od Smalldatetime,
@Datum_Nal_Do Smalldatetime,
@Datum_Dok_Od Smalldatetime,
@Datum_Dok_Do Smalldatetime,
@Sifra_Nal Smallint,
@Sifra_OE Smallint,
@Kto Char(6),
@Broj_Nal int = Null,
@Dok_Od_Dokr char(1) = 'D', -- dali vo knigata na fakturi da vleguvaat i dokumentite od dokr koi ne se proknizani (gi nema vo findok), a koi treba da vlezat vo kniga na fakturi
@Dok_Od_KasStav char(1) = 'N', -- dali vo knigata na fakturi da vleguvaat i kasovite dokumentite so konto 160% (za big bull)
@DaliPrenIzlez char(1) = 'N'
AS
Declare @SSQL Varchar(8000)
Set @SSQL = 'SELECT A.Sifra_OE, A.Sifra_Dok, A.Broj_Dok, A.BrojDok, '''' Ispratnica,
LEFT OUTER JOIN Komint K ON D.Sifra_Kup=K.Sifra_Kup
Left Outer Join DDVStapki S On D.Datum_Dok >= S.Datum_Od And D.Datum_Dok <= S.Datum_Do
Left Outer JOIN Nalozi N ON D.Sifra_Nal = N.Sifra_Nal AND D.Broj_Nal = N.Broj_Nal
Left Outer Join AnFindok A On A.Sifra_Oe = D.Sifra_Oe And A.Sifra_Dok = D.Sifra_Dok And A.Broj_Dok=D.Broj_Dok
Inner Join TipDok TD On D.Sifra_Dok=TD.Sifra_Dok
Inner Join TipNal TN On D.Sifra_Nal = TN.Sifra_Nal
WHERE D.Sifra_Dok<>132
And D.Sifra_Za In (1,2) And D.Sifra_Za=' + @Sifra_Za + '
And TD.VoDDV_Knig =' + '''D''' + '
And (TD.AnalKupDob = ''N'' Or TD.AnalKupDob = ''D'' And D.Broj_Nal Is Null)
And A.Sifra_oe Is Null '
--And Cast(D.Sifra_Oe as varchar(6)) + ''&&&'' + Cast(D.Sifra_Dok as varchar(6)) + ''&&&'' + Cast(D.Broj_Dok as varchar(6))
--Not In (Select Cast(A.Sifra_Oe as varchar(6)) + ''&&&'' + Cast(A.Sifra_Dok as varchar(6)) + ''&&&'' + Cast(A.Broj_Dok as varchar(6)) From AnFinDok A) '
If @Broj_Nal Is NOT Null
Set @SSQL = @SSQL + 'AND D.Broj_Nal=' + Cast(@Broj_Nal As Varchar(10)) + ' '
If @Sifra_Nal Is NOT Null
Set @SSQL = @SSQL + 'AND D.Sifra_Nal=' + Cast(@Sifra_Nal As Varchar(10)) + ' '
If @Sifra_OE Is NOT Null
Set @SSQL = @SSQL + 'AND D.Sifra_OE=' + Cast(@Sifra_OE As Varchar(10)) + ' '
If @Kto Is NOT Null
Set @SSQL = @SSQL + 'AND D.Kto=' + @Kto + ' '
If @Datum_Dok_Od Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Dok>=''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
If @Datum_Dok_Do Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Dok<=''' + Cast(@Datum_Dok_Do As Varchar(35)) + ''' '
If @Datum_Nal_Od Is NOT Null
SET @SSQL = @SSQL + ' And ((N.Datum_Nal Is Not Null And N.Datum_Nal >= ''' + Cast(@Datum_Nal_Od As Varchar(35)) + ''')
Or (N.Datum_Nal Is Null And D.Datum_Dok >= ''' + Cast(@Datum_Nal_Od As Varchar(35)) + ''')) '
If @Datum_Nal_Do Is NOT Null
SET @SSQL = @SSQL + ' And ((N.Datum_Nal Is Not Null And N.Datum_Nal <= ''' + Cast(@Datum_Nal_Do As Varchar(35)) + ''')
Or (N.Datum_Nal Is Null And D.Datum_Dok <= ''' + Cast(@Datum_Nal_Do As Varchar(35)) + ''')) '
LEFT OUTER JOIN Komint K ON D.Sifra_Kup=K.Sifra_Kup
Left Outer Join DDVStapki S On D.Datum_Dok >= S.Datum_Od And D.Datum_Dok <= S.Datum_Do
Left Outer JOIN Nalozi N ON D.Sifra_Nal = N.Sifra_Nal AND D.Broj_Nal = N.Broj_Nal
Left Outer Join AnFindok A On A.Sifra_Oe = D.Sifra_Oe And A.Sifra_Dok = D.Sifra_Dok And A.Broj_Dok=D.Broj_Dok
Inner Join TipDok TD On D.Sifra_Dok=TD.Sifra_Dok
Inner Join TipNal TN On D.Sifra_Nal = TN.Sifra_Nal
WHERE D.Sifra_Dok<>132
And TD.VoDDV_Knig =' + '''D''' + '
And (TD.AnalKupDob = ''N'' Or TD.AnalKupDob = ''D'' And D.Broj_Nal Is Null)
And A.Sifra_oe Is Null '
--And Cast(D.Sifra_Oe as varchar(6)) + ''&&&'' + Cast(D.Sifra_Dok as varchar(6)) + ''&&&'' + Cast(D.Broj_Dok as varchar(6))
--Not In (Select Cast(A.Sifra_Oe as varchar(6)) + ''&&&'' + Cast(A.Sifra_Dok as varchar(6)) + ''&&&'' + Cast(A.Broj_Dok as varchar(6)) From AnFinDok A) '
If @Broj_Nal Is NOT Null
Set @SSQL = @SSQL + 'AND D.Broj_Nal=' + Cast(@Broj_Nal As Varchar(10)) + ' '
If @Sifra_Nal Is NOT Null
Set @SSQL = @SSQL + 'AND D.Sifra_Nal=' + Cast(@Sifra_Nal As Varchar(10)) + ' '
If @Sifra_OE Is NOT Null
Set @SSQL = @SSQL + 'AND D.Sifra_OE=' + Cast(@Sifra_OE As Varchar(10)) + ' '
If @Kto Is NOT Null
Set @SSQL = @SSQL + 'AND D.Kto=' + @Kto + ' '
If @Datum_Dok_Od Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Dok>=''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
If @Datum_Dok_Do Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Dok<=''' + Cast(@Datum_Dok_Do As Varchar(35)) + ''' '
If @Datum_Nal_Od Is NOT Null
SET @SSQL = @SSQL + ' And ((N.Datum_Nal Is Not Null And N.Datum_Nal >= ''' + Cast(@Datum_Nal_Od As Varchar(35)) + ''')
Or (N.Datum_Nal Is Null And D.Datum_Dok >= ''' + Cast(@Datum_Nal_Od As Varchar(35)) + ''')) '
If @Datum_Nal_Do Is NOT Null
SET @SSQL = @SSQL + ' And ((N.Datum_Nal Is Not Null And N.Datum_Nal <= ''' + Cast(@Datum_Nal_Do As Varchar(35)) + ''')
Or (N.Datum_Nal Is Null And D.Datum_Dok <= ''' + Cast(@Datum_Nal_Do As Varchar(35)) + ''')) '
End
print @ssql
EXEC(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_kniga_fakt_ks]'))
drop procedure [dbo].[sp_kniga_fakt_ks]
Go
CREATE PROCEDURE sp_Kniga_Fakt_KS
@Sifra_Za Char(1),
@Datum_Nal_Od Smalldatetime,
@Datum_Nal_Do Smalldatetime,
@Datum_Dok_Od Smalldatetime,
@Datum_Dok_Do Smalldatetime,
@Sifra_Nal Smallint,
@Sifra_OE Smallint,
@Kto Char(6),
@Broj_Nal int = Null,
@Dok_Od_Dokr char(1) = 'D', -- dali vo knigata na fakturi da vleguvaat i dokumentite od dokr koi ne se proknizani (gi nema vo findok), a koi treba da vlezat vo kniga na fakturi
@Dok_Od_KasStav char(1) = 'N', -- dali vo knigata na fakturi da vleguvaat i kasovite dokumentite so konto 160% (za big bull)
@DaliPrenIzlez char(1) = 'N',
@TipNalTros varchar(200) = Null -- Nalozite koi treba da se isklucat od izvesstajot
AS
-- 31.03.2010 gk - deviznite kalkulacii tip dok 132 treba da e postaven da ne vleguva vo kniga za DDV
Declare @SSQL Varchar(8000)
Set @SSQL = 'SELECT A.Sifra_OE, A.Sifra_Dok, A.Broj_Dok, A.BrojDok, '''' Ispratnica,
LEFT OUTER JOIN Komint K ON D.Sifra_Kup=K.Sifra_Kup
Left Outer Join DDVStapki S On D.Datum_Dok >= S.Datum_Od And D.Datum_Dok <= S.Datum_Do
Left Outer JOIN Nalozi N ON D.Sifra_Nal = N.Sifra_Nal AND D.Broj_Nal = N.Broj_Nal
Inner Join TipDok TD On D.Sifra_Dok=TD.Sifra_Dok
Inner Join TipNal TN On D.Sifra_Nal = TN.Sifra_Nal
WHERE D.Sifra_Dok<>132
And D.Sifra_Za In (1,2) And D.Sifra_Za=' + @Sifra_Za + '
And TD.VoDDV_Knig =' + '''D''' + '
And (TD.AnalKupDob = ''N'' Or TD.AnalKupDob = ''D'' And D.Broj_Nal Is Null)
And Cast(D.Sifra_Oe as varchar(6)) + ''&&&'' + Cast(D.Sifra_Dok as varchar(6)) + ''&&&'' + Cast(D.Broj_Dok as varchar(6))
Not In (Select Cast(A.Sifra_Oe as varchar(6)) + ''&&&'' + Cast(A.Sifra_Dok as varchar(6)) + ''&&&'' + Cast(A.Broj_Dok as varchar(6)) From AnFinDok A) '
If @Broj_Nal Is NOT Null
Set @SSQL = @SSQL + 'AND D.Broj_Nal=' + Cast(@Broj_Nal As Varchar(10)) + ' '
If @Sifra_Nal Is NOT Null
Set @SSQL = @SSQL + 'AND D.Sifra_Nal=' + Cast(@Sifra_Nal As Varchar(10)) + ' '
If @Sifra_OE Is NOT Null
Set @SSQL = @SSQL + 'AND D.Sifra_OE=' + Cast(@Sifra_OE As Varchar(10)) + ' '
If @Kto Is NOT Null
Set @SSQL = @SSQL + 'AND D.Kto=' + @Kto + ' '
If @Datum_Dok_Od Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Dok>=''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
If @Datum_Dok_Do Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Dok<=''' + Cast(@Datum_Dok_Do As Varchar(35)) + ''' '
If @Datum_Nal_Od Is NOT Null
SET @SSQL = @SSQL + ' And ((N.Datum_Nal Is Not Null And N.Datum_Nal >= ''' + Cast(@Datum_Nal_Od As Varchar(35)) + ''')
Or (N.Datum_Nal Is Null And D.Datum_Dok >= ''' + Cast(@Datum_Nal_Od As Varchar(35)) + ''')) '
If @Datum_Nal_Do Is NOT Null
SET @SSQL = @SSQL + ' And ((N.Datum_Nal Is Not Null And N.Datum_Nal <= ''' + Cast(@Datum_Nal_Do As Varchar(35)) + ''')
Or (N.Datum_Nal Is Null And D.Datum_Dok <= ''' + Cast(@Datum_Nal_Do As Varchar(35)) + ''')) '
LEFT OUTER JOIN Komint K ON D.Sifra_Kup=K.Sifra_Kup
Left Outer Join DDVStapki S On D.Datum_Dok >= S.Datum_Od And D.Datum_Dok <= S.Datum_Do
Left Outer JOIN Nalozi N ON D.Sifra_Nal = N.Sifra_Nal AND D.Broj_Nal = N.Broj_Nal
Left Outer Join TipDok TD On D.Sifra_Dok=TD.Sifra_Dok
Left Outer Join TipNal TN On D.Sifra_Nal = TN.Sifra_Nal
WHERE D.Sifra_Dok<>132
And D.Sifra_Za = 3
And TD.VoDDV_Knig = ''D''
And D.VlIzl = ''I'' '
If @Broj_Nal Is NOT Null
Set @SSQL = @SSQL + 'AND D.Broj_Nal=' + Cast(@Broj_Nal As Varchar(10)) + ' '
If @Sifra_Nal Is NOT Null
Set @SSQL = @SSQL + 'AND D.Sifra_Nal=' + Cast(@Sifra_Nal As Varchar(10)) + ' '
If @Sifra_OE Is NOT Null
Set @SSQL = @SSQL + 'AND D.Sifra_OE=' + Cast(@Sifra_OE As Varchar(10)) + ' '
If @Kto Is NOT Null
Set @SSQL = @SSQL + 'AND D.Kto=' + @Kto + ' '
If @Datum_Dok_Od Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Dok>=''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
If @Datum_Dok_Do Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Dok<=''' + Cast(@Datum_Dok_Do As Varchar(35)) + ''' '
If @Datum_Nal_Od Is NOT Null
SET @SSQL = @SSQL + ' And ((N.Datum_Nal Is Not Null And N.Datum_Nal >= ''' + Cast(@Datum_Nal_Od As Varchar(35)) + ''')
Or (N.Datum_Nal Is Null And D.Datum_Dok >= ''' + Cast(@Datum_Nal_Od As Varchar(35)) + ''')) '
If @Datum_Nal_Do Is NOT Null
SET @SSQL = @SSQL + ' And ((N.Datum_Nal Is Not Null And N.Datum_Nal <= ''' + Cast(@Datum_Nal_Do As Varchar(35)) + ''')
Or (N.Datum_Nal Is Null And D.Datum_Dok <= ''' + Cast(@Datum_Nal_Do As Varchar(35)) + ''')) '
End -- And TD.VoDDV_Knig =' + '''D''' + '
print @ssql
EXEC(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_kniga_fakt_ks_tr]'))
drop procedure [dbo].[sp_kniga_fakt_ks_tr]
Go
CREATE PROCEDURE sp_Kniga_Fakt_KS_Tr
@Sifra_Za Char(1),
@Datum_Nal_Od Smalldatetime,
@Datum_Nal_Do Smalldatetime,
@Datum_Dok_Od Smalldatetime,
@Datum_Dok_Do Smalldatetime,
@Sifra_Nal Smallint,
@Sifra_OE Smallint,
@Kto Char(6),
@Broj_Nal int = Null,
-- @Dok_Od_Dokr char(1) = 'D', -- dali vo knigata na fakturi da vleguvaat i dokumentite od dokr koi ne se proknizani (gi nema vo findok), a koi treba da vlezat vo kniga na fakturi
-- @Dok_Od_KasStav char(1) = 'N', -- dali vo knigata na fakturi da vleguvaat i kasovite dokumentite so konto 160% (za big bull)
Set @SSQL = @SSQL + 'And K.KDrugo1=' + Cast(@Pod1 As Varchar(6)) + ' '
End
Else If @KFPod1='D' And @Pod1 Is Not Null
Set @SSQL = @SSQL + 'And K.KDrugo1<>' + Cast(@Pod1 As Varchar(6)) + ' '
If @KFPod2 Is Null
Begin
If @Pod2 Is Not Null
Set @SSQL = @SSQL + 'And K.KDrugo2=' + Cast(@Pod2 As Varchar(6)) + ' '
End
Else If @KFPod2='D' And @Pod2 Is Not Null
Set @SSQL = @SSQL + 'And K.KDrugo2<>' + Cast(@Pod2 As Varchar(6)) + ' '
If @KFPod3 Is Null
Begin
If @Pod3 Is Not Null
Set @SSQL = @SSQL + 'And K.KDrugo3=' + Cast(@Pod3 As Varchar(6)) + ' '
End
Else If @KFPod3='D' And @Pod3 Is Not Null
Set @SSQL = @SSQL + 'And K.KDrugo3<>' + Cast(@Pod3 As Varchar(6)) + ' '
If @KFPod4 Is Null
Begin
If @Pod4 Is Not Null
Set @SSQL = @SSQL + 'And K.KDrugo4=' + Cast(@Pod4 As Varchar(6)) + ' '
End
Else If @KFPod4='D' And @Pod4 Is Not Null
Set @SSQL = @SSQL + 'And K.KDrugo4<>' + Cast(@Pod4 As Varchar(6)) + ' '
If @KFPod5 Is Null
Begin
If @Pod5 Is Not Null
Set @SSQL = @SSQL + 'And K.KDrugo5=' + Cast(@Pod5 As Varchar(6)) + ' '
End
Else If @KFPod5='D' And @Pod5 Is Not Null
Set @SSQL = @SSQL + 'And K.KDrugo5<>' + Cast(@Pod5 As Varchar(6)) + ' '
If @Sifra_Tip Is Not Null
SET @SSQL = @SSQL +' AND K.Sifra_Tip=' + Cast(@Sifra_Tip As Varchar(6)) + ' '
If @Datum_Dok_Od Is NOT Null
SET @SSQL = @SSQL + 'AND A.Datum_Dok>=''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
If @Datum_Dok_Do Is NOT Null
SET @SSQL = @SSQL + 'AND A.Datum_Dok<=''' + Cast(@Datum_Dok_Do As Varchar(35)) + ''' '
If @Datum_Nal_Od Is NOT Null
SET @SSQL = @SSQL + 'AND A.Datum_Nal>=''' + Cast(@Datum_Nal_Od As Varchar(35)) + ''' '
If @Datum_Nal_Do Is NOT Null
SET @SSQL = @SSQL + 'AND A.Datum_Nal<=''' + Cast(@Datum_Nal_Do As Varchar(35)) + ''' '
If @Datum_Dosp_Od Is NOT Null
SET @SSQL = @SSQL + 'AND DateAdd(Day, A.Rok, A.Datum_Dok)>=''' + Cast(@Datum_Dosp_Od As Varchar(35)) + ''' '
If @Datum_Dosp_Do Is NOT Null
SET @SSQL = @SSQL + 'AND DateAdd(Day, A.Rok, A.Datum_Dok)<=''' + Cast(@Datum_Dosp_Do As Varchar(35)) + ''' '
If @Sifra_Nal Is Not Null
Set @SSQL = @SSQL + 'AND A.Sifra_Nal=' + Cast(@Sifra_Nal As Varchar(10)) + ' '
If @Sifra_Dok Is Not Null
Set @SSQL = @SSQL + 'AND A.Sifra_Dok=' + Cast(@Sifra_Dok As Varchar(10)) + ' '
If @Sifra_OE Is Not Null
Set @SSQL = @SSQL + 'AND A.Sifra_OE=' + Cast(@Sifra_OE As Varchar(10)) + ' '
If @Sifra_Div Is Not Null
Set @SSQL = @SSQL + 'AND A.Sifra_Div=' + Cast(@Sifra_Div As Varchar(10)) + ' '
If @Kto Is Not Null
Set @SSQL = @SSQL + 'AND A.Kto=''' + @Kto + ''' '
If @KoiGradovi Is Not Null
Set @SSQL = @SSQL + 'And K.Sifra_Grad In (' + @KoiGradovi + ') '
If @KoiRegioni Is Not Null
Set @SSQL = @SSQL + 'And K.Sifra_Reg In (' + @KoiRegioni + ') '
If @KomercKako = 'I'
If @Sifra_Pat IS NOT NULL
SET @SSQL = @SSQL + ' AND A.Sifra_Pat In (' + @Sifra_Pat + ') '
If @KomercKako = 'T'
If @Sifra_Pat IS NOT NULL
SET @SSQL = @SSQL + ' AND K.Sifra_Pat In (' + @Sifra_Pat + ') '
-- If @Sifra_Pat Is Not Null
-- Set @SSQL = @SSQL + 'AND A.Sifra_Pat=' + Cast(@Sifra_Pat As Varchar(6)) + ' '
If @KoiFri = 'P'
Set @SSQL = @SSQL + 'AND A.Dolzi=A.Plateno_Dolzi AND A.Pobaruva=A.Plateno_Pobar '
Else If @KoiFri = 'N'
Set @SSQL = @SSQL + 'AND (A.Dolzi<>A.Plateno_Dolzi OR A.Pobaruva<>A.Plateno_Pobar) '
EXEC(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_kniga_fakt_tr]'))
drop procedure [dbo].[sp_kniga_fakt_tr]
Go
create PROCEDURE sp_Kniga_Fakt_Tr
@Sifra_Za Char(1),
@Datum_Nal_Od Smalldatetime,
@Datum_Nal_Do Smalldatetime,
@Datum_Dok_Od Smalldatetime,
@Datum_Dok_Do Smalldatetime,
@Sifra_Nal Smallint,
@Sifra_OE Smallint,
@Kto Char(6),
@Broj_Nal int = Null,
@Dok_Od_Dokr char(1) = 'D', -- dali vo knigata na fakturi da vleguvaat i dokumentite od dokr koi ne se proknizani (gi nema vo findok), a koi treba da vlezat vo kniga na fakturi
@Dok_Od_KasStav char(1) = 'N', -- dali vo knigata na fakturi da vleguvaat i kasovite dokumentite so konto 160% (za big bull)
Inner Join TipNal TN On A.Sifra_Nal = TN.Sifra_Nal
Left Outer Join DDVStapki S On A.Datum_Dok >= S.Datum_Od And A.Datum_Dok <= S.Datum_Do
WHERE A.SIfra_Nal=102 and A.Kto=''1020'' and A.Sifra_Za=2 And A.Sifra_Nal <> 999
and PObaruva <> 0 and Danok1 + Danok2 <> 0 '
If @Broj_Nal Is NOT Null
Set @SSQL = @SSQL + 'AND A.Broj_Nal=' + Cast(@Broj_Nal As Varchar(10)) + ' '
If @Sifra_Nal Is NOT Null
Set @SSQL = @SSQL + 'AND A.Sifra_Nal=' + Cast(@Sifra_Nal As Varchar(10)) + ' '
If @Sifra_OE Is NOT Null
Set @SSQL = @SSQL + 'AND Sifra_OE=' + Cast(@Sifra_OE As Varchar(10)) + ' '
If @Kto Is NOT Null
Set @SSQL = @SSQL + 'AND Kto=' + @Kto + ' '
If @Datum_Dok_Od Is NOT Null
SET @SSQL = @SSQL + 'AND A.Datum_Dok>=''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
If @Datum_Dok_Do Is NOT Null
SET @SSQL = @SSQL + 'AND A.Datum_Dok<=''' + Cast(@Datum_Dok_Do As Varchar(35)) + ''' '
If @Datum_Nal_Od Is NOT Null
SET @SSQL = @SSQL + 'AND A.Datum_Nal>=''' + Cast(@Datum_Nal_Od As Varchar(35)) + ''' '
If @Datum_Nal_Do Is NOT Null
SET @SSQL = @SSQL + 'AND A.Datum_Nal<=''' + Cast(@Datum_Nal_Do As Varchar(35)) + ''' '
EXEC(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_kniga_faktizlsr]'))
drop procedure [dbo].[sp_kniga_faktizlsr]
Go
CREATE PROCEDURE sp_Kniga_FaktIzlSR
@Datum_Nal_Od Smalldatetime,
@Datum_Nal_Do Smalldatetime,
@Datum_Dok_Od Smalldatetime,
@Datum_Dok_Do Smalldatetime,
@Sifra_Nal Smallint,
@Sifra_OE Smallint,
@Kto Char(6),
@Broj_Nal int = Null,
@Dok_Od_Dokr char(1) = 'D', -- dali vo knigata na fakturi da vleguvaat i dokumentite od dokr koi ne se proknizani (gi nema vo findok), a koi treba da vlezat vo kniga na fakturi
@Dok_Od_KasStav char(1) = 'N', -- dali vo knigata na fakturi da vleguvaat i kasovite dokumentite so konto 160% (za big bull)
Inner Join TipNal TN On A.Sifra_Nal = TN.Sifra_Nal
INNER JOIN Nalozi N ON A.Sifra_Nal=N.Sifra_Nal AND A.Broj_Nal=N.Broj_Nal
Left Outer Join DDVStapki S On A.Datum_Dok >= S.Datum_Od And A.Datum_Dok <= S.Datum_Do
WHERE TD.TipDok=1 And TD.Dev <> ''D'' AND A.Toc200<>0 AND TD.VoDDV_Knig =' + '''D''' + ' And A.Sifra_Za=1 And A.Sifra_Nal <> 999 ' +
' And (TN.VoDDV_Knig IS NULL OR TN.VoDDV_Knig<>''N'') AND TD.AnalKupDob=''N'''
If @Broj_Nal Is NOT Null
Set @SSQL = @SSQL + 'AND A.Broj_Nal=' + Cast(@Broj_Nal As Varchar(10)) + ' '
If @Sifra_Nal Is NOT Null
Set @SSQL = @SSQL + 'AND A.Sifra_Nal=' + Cast(@Sifra_Nal As Varchar(10)) + ' '
If @Sifra_OE Is NOT Null
Set @SSQL = @SSQL + 'AND Sifra_OE=' + Cast(@Sifra_OE As Varchar(10)) + ' '
If @Kto Is NOT Null
Set @SSQL = @SSQL + 'AND Kto=' + @Kto + ' '
If @Datum_Dok_Od Is NOT Null
SET @SSQL = @SSQL + 'AND A.Datum_Dok>=''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
If @Datum_Dok_Do Is NOT Null
SET @SSQL = @SSQL + 'AND A.Datum_Dok<=''' + Cast(@Datum_Dok_Do As Varchar(35)) + ''' '
If @Datum_Nal_Od Is NOT Null
SET @SSQL = @SSQL + 'AND N.Datum_Nal>=''' + Cast(@Datum_Nal_Od As Varchar(35)) + ''' '
If @Datum_Nal_Do Is NOT Null
SET @SSQL = @SSQL + 'AND N.Datum_Nal<=''' + Cast(@Datum_Nal_Do As Varchar(35)) + ''' '
INSERT INTO #TmpKngIzl EXEC(@SSQL)
End
UPDATE #TmpKngIzl SET VkOsn=Osn1+Osn2,VkOsnZaOdb=Osn1+Osn2
SELECT * FROM #TmpKngIzl ORDER BY Datum_Dok
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_kniga_faktvlsr]'))
drop procedure [dbo].[sp_kniga_faktvlsr]
Go
CREATE PROCEDURE sp_Kniga_FaktVlSR
@Datum_Nal_Od Smalldatetime,
@Datum_Nal_Do Smalldatetime,
@Datum_Dok_Od Smalldatetime,
@Datum_Dok_Do Smalldatetime,
@Sifra_Nal Smallint,
@Sifra_OE Smallint,
@Kto Char(6),
@Broj_Nal int = Null,
@Dok_Od_Dokr char(1) = 'D', -- dali vo knigata na fakturi da vleguvaat i dokumentite od dokr koi ne se proknizani (gi nema vo findok), a koi treba da vlezat vo kniga na fakturi
@Dok_Od_KasStav char(1) = 'N', -- dali vo knigata na fakturi da vleguvaat i kasovite dokumentite so konto 160% (za big bull)
@DaliPrenIzlez char(1) = 'N',
@Kto_Zemj char(6)=4331
AS
CREATE TABLE #TmpKngVl
(Datum_Nal smalldatetime,
Kol3 varchar(20),
Sifra_OE smallint,
Sifra_Dok smallint,
Broj_Dok int,
Sifra_Nal smallint,
Broj_Nal int,
BrojDok varchar(35),
Datum_Dok smalldatetime,
ImeKup varchar(40),
Danocen varchar(15),
VkIznDok decimal(18,2),
VkBezDDV decimal(18,2),
Kol10 decimal(18,2),
Kol11 decimal(18,2),
VkDDV decimal(18,2),
DDV_ZaOdb decimal(18,2),
DDV_NeOdb decimal(18,2),
UvozOsn decimal(18,2),
UvozDDV decimal(18,2),
ZemjOsn decimal(18,2),
ZemjDDV decimal(18,2))
Declare @SifDokCarDK smallint
SELECT @SifDokCarDK = Devk_TipD_CarFra FROM Konfig
Round(Sum(Case When S.Posn > 15 Then (S.Kolic*dbo.fn_VratiCenaOsnov(S.DokCena, S.DanDokCena, S.Posn, S.Uces, D.Kasa) * S.Posn / 100)
Else 0 End ), 4) Danok1,
Round(Sum(Case When S.Posn <= 15 Then (S.Kolic*dbo.fn_VratiCenaOsnov(S.DokCena, S.DanDokCena, S.Posn, S.Uces, D.Kasa) * S.Posn / 100)
Else 0 End ), 4) Danok2
FROM DOKR D
Inner Join Stavr S On D.DokrID=S.DokrID
Inner Join TipDok TD On TD.Sifra_Dok = D.Sifra_Dok
WHERE D.VlIzl=''I'' '
-- If @SamoPecFisk = 'D'
-- Set @SSQL = @SSQL + ' And Pec_Fisc > 0 '
If @Sifra_Nal Is Null And @Sifra_Dok Is Null and (@ListTipDok is null or @ListTipDok = '')
Begin
Set @SSQL = @SSQL + ' And TD.DaliFisc = ''D'' '
If @PoKojDatum = 'D'
Begin
If @Datum_Dok_Od Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Dok>=''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
If @Datum_Dok_Do Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Dok<=''' + Cast(@Datum_Dok_Do As Varchar(35)) + ''' '
End
Else
Begin
If @Datum_Dok_Od Is NOT Null
Set @SSQL = @SSQL + ' And D.Dat_Pec_Fisc is not null AND dbo.fn_VratiDatum(D.Dat_Pec_Fisc)>='''+Cast(@Datum_Dok_Od As varchar(25))+''' '
-- OR (TD.DaliFisc<>''D'' AND D.Datum_Dok>=''' + Cast(@Datum_Dok_Od As varchar(25)) + ''')) '
If @Datum_Dok_Do Is NOT Null
Set @SSQL = @SSQL + ' And D.Dat_Pec_Fisc is not null AND dbo.fn_VratiDatum(D.Dat_Pec_Fisc)<='''+Cast(@Datum_Dok_Do As varchar(25))+''' '
-- OR (TD.DaliFisc<>''D'' AND D.Datum_Dok<=''' + Cast(@Datum_Dok_Do As varchar(25)) + ''')) '
End
End
else If @ListTipDok is not null and @ListTipDok <> ''
Begin
Set @SSQL = @SSQL + ' And D.Sifra_Dok in (' + @ListTipDok + ') '
If @PoKojDatum = 'D'
Begin
If @Datum_Dok_Od Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Dok>=''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
If @Datum_Dok_Do Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Dok<=''' + Cast(@Datum_Dok_Do As Varchar(35)) + ''' '
End
Else
Begin
If @Datum_Dok_Od Is NOT Null
Set @SSQL = @SSQL + ' And D.Dat_Pec_Fisc is not null AND dbo.fn_VratiDatum(D.Dat_Pec_Fisc)>='''+Cast(@Datum_Dok_Od As varchar(25))+''' '
If @Datum_Dok_Do Is NOT Null
Set @SSQL = @SSQL + ' And D.Dat_Pec_Fisc is not null AND dbo.fn_VratiDatum(D.Dat_Pec_Fisc)<='''+Cast(@Datum_Dok_Do As varchar(25))+''' '
End
End
Else
Begin
If @PoKojDatum = 'D'
Begin
If @Datum_Dok_Od Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Dok>=''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
If @Datum_Dok_Do Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Dok<=''' + Cast(@Datum_Dok_Do As Varchar(35)) + ''' '
End
Else
Begin
If @Datum_Dok_Od Is NOT Null
Set @SSQL = @SSQL + ' And ((TD.DaliFisc=''D'' And D.Dat_Pec_Fisc is not null AND dbo.fn_VratiDatum(D.Dat_Pec_Fisc)>='''+Cast(@Datum_Dok_Od As varchar(25))+''' )
OR (TD.DaliFisc<>''D'' AND D.Datum_Dok>=''' + Cast(@Datum_Dok_Od As varchar(25)) + ''')) '
If @Datum_Dok_Do Is NOT Null
Set @SSQL = @SSQL + ' And ((TD.DaliFisc=''D'' And D.Dat_Pec_Fisc is not null AND dbo.fn_VratiDatum(D.Dat_Pec_Fisc)<='''+Cast(@Datum_Dok_Do As varchar(25))+''' )
OR (TD.DaliFisc<>''D'' AND D.Datum_Dok<=''' + Cast(@Datum_Dok_Do As varchar(25)) + ''')) '
End
End
If @Sifra_Nal Is Not Null
SET @SSQL = @SSQL + 'And D.Sifra_Nal=''' + Cast(@Sifra_Nal As Varchar(10)) + ''' '
If @Sifra_Dok Is NOT NULL
SET @SSQL = @SSQL + 'AND S.Sifra_Dok=''' + Cast(@Sifra_Dok As Varchar(10)) + ''' '
If @Sifra_OE Is NOT Null
SET @SSQL = @SSQL + 'AND S.Sifra_OE=' + Cast(@Sifra_OE As Varchar(6)) + ' '
If @Koi_OE Is NOT Null
SET @SSQL = @SSQL + 'AND S.Sifra_OE In (Select Sifra_Oe From SGrOrg Where Sif_GrOrg = ''' + @Koi_Oe + ''') '
IF @PoKojDatum = 'F'
Set @SSQL = @SSQL + ' Group By (Case When TD.DaliFisc=''D'' And D.Pec_Fisc>0 Then dbo.fn_VratiDatum(D.Dat_Pec_Fisc) Else D.Datum_Dok End), '
Else
Set @SSQL = @SSQL + ' Group By D.Datum_Dok, '
Set @SSQL = @SSQL + ' (Case When S.Posn > 15 Then 18 When (S.Posn Between 1 and 15) Then 5 Else 0 End),
(Case When S.Posn > 15 Then 3 When (S.Posn Between 1 and 15) Then 2 Else 1 End) '
Inner Join TipDok TD On TD.Sifra_Dok = D.Sifra_Dok
WHERE D.VlIzl=''I'' '
If @Sifra_Nal Is Null And @Sifra_Dok Is Null and (@ListTipDok is null or @ListTipDok = '')
Begin
Set @SSQL = @SSQL + ' And TD.DaliFisc = ''D'' '
If @PoKojDatum = 'D'
Begin
If @Datum_Dok_Od Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Dok>=''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
If @Datum_Dok_Do Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Dok<=''' + Cast(@Datum_Dok_Do As Varchar(35)) + ''' '
End
Else
Begin
If @Datum_Dok_Od Is NOT Null
Set @SSQL = @SSQL + ' And D.Dat_Pec_Fisc is not null AND dbo.fn_VratiDatum(D.Dat_Pec_Fisc)>='''+Cast(@Datum_Dok_Od As varchar(25))+''' '
-- OR (TD.DaliFisc<>''D'' AND D.Datum_Dok>=''' + Cast(@Datum_Dok_Od As varchar(25)) + ''')) '
If @Datum_Dok_Do Is NOT Null
Set @SSQL = @SSQL + ' And D.Dat_Pec_Fisc is not null AND dbo.fn_VratiDatum(D.Dat_Pec_Fisc)<='''+Cast(@Datum_Dok_Do As varchar(25))+''' '
-- OR (TD.DaliFisc<>''D'' AND D.Datum_Dok<=''' + Cast(@Datum_Dok_Do As varchar(25)) + ''')) '
End
End
else If @ListTipDok is not null and @ListTipDok <> ''
Begin
Set @SSQL = @SSQL + ' And D.Sifra_Dok in (' + @ListTipDok + ') '
If @PoKojDatum = 'D'
Begin
If @Datum_Dok_Od Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Dok>=''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
If @Datum_Dok_Do Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Dok<=''' + Cast(@Datum_Dok_Do As Varchar(35)) + ''' '
End
Else
Begin
If @Datum_Dok_Od Is NOT Null
Set @SSQL = @SSQL + ' And D.Dat_Pec_Fisc is not null AND dbo.fn_VratiDatum(D.Dat_Pec_Fisc)>='''+Cast(@Datum_Dok_Od As varchar(25))+''' '
If @Datum_Dok_Do Is NOT Null
Set @SSQL = @SSQL + ' And D.Dat_Pec_Fisc is not null AND dbo.fn_VratiDatum(D.Dat_Pec_Fisc)<='''+Cast(@Datum_Dok_Do As varchar(25))+''' '
End
End
Else
Begin
If @PoKojDatum = 'D'
Begin
If @Datum_Dok_Od Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Dok>=''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
If @Datum_Dok_Do Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Dok<=''' + Cast(@Datum_Dok_Do As Varchar(35)) + ''' '
End
Else
Begin
If @Datum_Dok_Od Is NOT Null
Set @SSQL = @SSQL + ' And ((TD.DaliFisc=''D'' And D.Dat_Pec_Fisc is not null AND dbo.fn_VratiDatum(D.Dat_Pec_Fisc)>='''+Cast(@Datum_Dok_Od As varchar(25))+''' )
OR (TD.DaliFisc<>''D'' AND D.Datum_Dok>=''' + Cast(@Datum_Dok_Od As varchar(25)) + ''')) '
If @Datum_Dok_Do Is NOT Null
Set @SSQL = @SSQL + ' And ((TD.DaliFisc=''D'' And D.Dat_Pec_Fisc is not null AND dbo.fn_VratiDatum(D.Dat_Pec_Fisc)<='''+Cast(@Datum_Dok_Do As varchar(25))+''' )
OR (TD.DaliFisc<>''D'' AND D.Datum_Dok<=''' + Cast(@Datum_Dok_Do As varchar(25)) + ''')) '
End
End
If @Sifra_Nal Is Not Null
SET @SSQL = @SSQL + 'And D.Sifra_Nal=''' + Cast(@Sifra_Nal As Varchar(10)) + ''' '
If @Sifra_Dok Is NOT NULL
SET @SSQL = @SSQL + 'AND S.Sifra_Dok=''' + Cast(@Sifra_Dok As Varchar(10)) + ''' '
If @Sifra_OE Is NOT Null
SET @SSQL = @SSQL + 'AND S.Sifra_OE=' + Cast(@Sifra_OE As Varchar(6)) + ' '
If @Koi_OE Is NOT Null
SET @SSQL = @SSQL + 'AND S.Sifra_OE In (Select Sifra_Oe From SGrOrg Where Sif_GrOrg = ''' + @Koi_Oe + ''') '
SET @PocDat = dbo.fn_NapraviDatum(Year(@Datum_od), 1,1)
IF @VlIzl='V'
SET @Sifra_Za='2'
ELSE
SET @Sifra_Za='1'
CREATE TABLE #TmpKngOru
(Rbr int IDENTITY (1, 1),
Sifra_Art varchar(20),
ImeArt varchar(40),
Ime_1 varchar(40),
Ime_2 varchar(40),
Kolic decimal(18,2),
FabrBroj varchar(40),
Ispratnica varchar(40),
Opis varchar(40),
Datum_Dok smalldatetime,
ImeKup varchar(40),
KupAdresa varchar(40),
KupSmesto varchar(20),
KorImeKor varchar(40),
KorSmesto varchar(20),
KorAdresa varchar(40),
LK varchar(40))
SET @SSQL='SELECT S.Sifra_Art, A.ImeArt, D1.Ime_1, D2.Ime_2, CASE WHEN KS.KontrSerExt IS NULL THEN S.Kolic ELSE 1 End AS Kolic, KS.KontrSerExt, D.Ispratnica, D.Opis, D.Datum_Dok,
FROM Stavr S INNER JOIN Dokr D ON S.DokrID=D.DokrID
INNER JOIN KatArt A ON S.Sifra_Art = A.Sifra_Art
LEFT OUTER JOIN Drugo1 D1 ON A.Drugo1=D1.Sifra_1
LEFT OUTER JOIN Drugo2 D2 ON A.Drugo2=D2.Sifra_2
LEFT OUTER JOIN Komint Kup ON D.Sifra_Kup=Kup.Sifra_Kup
LEFT OUTER JOIN KartKor Kor ON D.Sifra_Kor=Kor.Sifra_Kor
LEFT OUTER JOIN MagStavr MS ON S.DokrID=MS.DokrID AND S.Sifra_Art=MS.Sifra_Art
LEFT OUTER JOIN KatSerKlas KS ON MS.Sifra_Art = KS.SifrA_Art and MS.SpecOzn = KS.KontrSer
WHERE S.VlIzl='''+@VlIzl+''' AND D.Sifra_Za='+@Sifra_Za+' AND A.Drugo1 IS NOT NULL AND S.Datum_Dok>='''+cast(@PocDat as varchar(30))+''' AND S.Datum_Dok<='''+cast(@Datum_Do as varchar(30))+''' '
IF @Sifra_OE IS NOT NULL
SET @SSQL = @SSQL + ' AND S.Sifra_Oe='+cast(@Sifra_OE as varchar(4))
IF @Sif_GrOrg IS NOT NULL
SET @SSQL = @SSQL + ' AND S.Sifra_OE IN (SELECT Sifra_OE FROM SGrOrg WHERE Sif_GrOrg='''+@Sif_GrOrg+''') '
IF @VlIzl='I'
SET @SSQL = @SSQL + ' AND A.Drugo1='+cast(@Drugo1 as varchar(4))
SET @SSQL = @SSQL + ' ORDER BY S.Datum_Dok, D.DokrID, S.DokID '
SELECT * FROM #TmpKngOru WHERE Datum_Dok>=@Datum_Od
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_knigatrg]'))
drop procedure [dbo].[sp_knigatrg]
Go
CREATE PROCEDURE sp_KnigaTrg
@Sifra_OE Smallint,
@Datum_Otv Smalldatetime,
@Datum_Od Smalldatetime,
@Datum_Do Smalldatetime,
@Dali_902 Char(1),
@Dali_903 Char(1),
@Dali_904 Char(1),
@Iskluci_Sifri_Prim varchar(200) = NULL,
@PecFisc_PoDatPec char(1) = 'D', --dodadeno 25.09.04 PRIMA VRED. D ili N
@PrenStornoVlez char(1) = 'N',
@PoNabCenaStavr char(1) = 'N', -- samo za zito v
@RezVoTab_PoNalozi char(1) = 'N', -- ova e za slaganata -- go vraka rezultatot vo pomosna tabela i vo sifra_dok, broj_dok stava sifra_nal, broj_nal
@RazlCeniSamoTKdok char(1) = 'N', -- Razliki vo ceni proizlezeni samo od dokumenti koi vlegiuvaat vo trg.kniga
@ProdVredn Decimal(18,4) = 0.0 OUTPUT,
@NabVred Decimal(18,4) = 0.0 OUTPUT,
@VkalkDan Decimal(18,4) = 0.0 OUTPUT,
@ObvrskaDan Decimal(18,4) = 0.0 OUTPUT,
@VrednProd Decimal(18,4) = 0.0 OUTPUT
AS
IF @PecFisc_PoDatPec = 'D' SET @Datum_Do = DateADD(minute, 1439, @Datum_Do)
Declare @Tip813 char(1)
SELECT @Tip813=VoTRG_Knig FROM TipDok WHERE Sifra_Dok=813
Declare @Tip450 char(1)
SELECT @Tip450=VoTRG_Knig FROM TipDok WHERE Sifra_Dok=450
Declare @SSQL Varchar(8000)
CREATE TABLE #tmpKniga
(
InterenBr Integer IDENTITY(0, 1),
Sifra_Oe smallint,
Sifra_Dok smallint,
ImeDok char(40),
Opis_TKNG varchar(40),
Kto Char(10),
Datum_Dok Smalldatetime,
Datum_Knz Smalldatetime,
Broj Varchar(100),
Opis Varchar(100),
OdKade char(1),
VlIzl char(1),
ProdVredn Numeric(18, 4),
NabVred Numeric(18,4),
VkalkDan Numeric(18, 4),
ObvrskaDan Numeric(18, 4),
VrednProd Numeric(18, 4)
)
If @RezVoTab_PoNalozi = 'D' -- ova e za isklucitelni slucai
Set @SSQL = 'Select D.Sifra_Oe, D.Sifra_Nal, '
Else
Set @SSQL = 'Select Null as Sifra_Oe, D.Sifra_Dok, '
Set @SSQL = @SSQL + ' TD.ImeDok, D.Kto, TD.Opis_TKNG, '
IF @PecFisc_PoDatPec = 'N'
Set @SSQL = @SSQL + 'D.Datum_Dok Datum_Dok, D.Datum_Dok Datum_Knz, '
Else
Set @SSQL = @SSQL + 'Datum_Dok=Case When TD.DaliFisc=''D'' And D.Pec_Fisc>0 Then D.Dat_Pec_Fisc Else D.Datum_Dok End,
Datum_Knz=Case When TD.DaliFisc=''D'' And D.Pec_Fisc>0 Then D.Dat_Pec_Fisc Else D.Datum_Dok End, '
If @RezVoTab_PoNalozi = 'D' -- ova e za isklucitelni slucai
Set @SSQL = @SSQL + 'Cast(D.Broj_Nal as varchar(10)) Broj, '
Else
Set @SSQL = @SSQL + 'Cast(D.Sifra_Dok As Varchar(6)) + ''-'' + Cast(D.Broj_Dok As Varchar(9)) Broj, '
Set @SSQL = @SSQL + ' D.Identif_Br, ''D'', D.VlIzl, '
If @PoNabCenaStavr = 'D' --samo za zito v - po default e na 'N'
Begin
If @PrenStornoVlez = 'D'
Begin
Set @SSQL = @SSQL + '
ProdVredn = Case D.VlIzl
When ''I'' Then Sum((Case D.ImaDodatna When ''D'' Then (-1*S.Kolic*dbo.fn_VratiCena(S.MagCena, S.Posn, S.DanMagCena, ''D'')) Else 0.0 End))
When ''V'' Then Sum((Case D.ImaDodatna When ''P'' Then S.Kolic*dbo.fn_VratiCena(S.MagCena, S.Posn, S.DanMagCena, ''D'') Else S.Kolic*dbo.fn_VratiCena(S.MagCena, S.Posn, S.DanMagCena, ''D'') End )) End,
NabVred = Case D.VlIzl
When ''I'' Then Sum((Case D.ImaDodatna When ''D'' Then (-1*S.Kolic*S.NabCena*(1+S.PosnPren/100)) Else 0.0 End))
When ''V'' Then Sum((S.Kolic*S.NabCena*(1+S.PosnPren/100))) End,
VkalkDan = Case D.VlIzl
When ''I'' Then 0.0
When ''V'' Then 0.0 End,
ObvrskaDan = Case D.VlIzl
When ''I'' Then 0.0
When ''V'' Then 0.0 End,
VrednProd = Case D.VlIzl
When ''I'' Then (Case D.ImaDodatna When ''D'' Then 0 Else D.Toc200 End)
When ''V'' Then 0.0 End '
End
Else
Begin
Set @SSQL = @SSQL + '
ProdVredn = Case D.VlIzl
When ''I'' Then 0.0
When ''V'' Then Sum((Case D.ImaDodatna When ''P'' Then S.Kolic*dbo.fn_VratiCena(S.MagCena, S.Posn, S.DanMagCena, ''D'') Else S.Kolic*dbo.fn_VratiCena(S.MagCena, S.Posn, S.DanMagCena, ''D'') End )) End,
NabVred = Case D.VlIzl
When ''I'' Then 0.0
When ''V'' Then Sum((S.Kolic*S.NabCena*(1+S.PosnPren/100))) End,
VkalkDan = Case D.VlIzl
When ''I'' Then 0.0
When ''V'' Then 0.0 End,
ObvrskaDan = Case D.VlIzl
When ''I'' Then 0.0
When ''V'' Then 0.0 End,
VrednProd = Case D.VlIzl
When ''I'' Then D.Toc200
When ''V'' Then 0.0 End '
End
End Else -- If @PoNabCenaStavr = 'D'
Begin
If @PrenStornoVlez = 'D'
Begin
Set @SSQL = @SSQL + '
ProdVredn = Case D.VlIzl
When ''I'' Then (Case D.ImaDodatna When ''D'' Then (-1*Toc200) Else 0.0 End)
When ''V'' Then D.MagVrDan End,
NabVred = Case D.VlIzl
When ''I'' Then (Case D.ImaDodatna When ''D'' Then (-1*Toc200) Else 0.0 End)
When ''V'' Then D.Toc200 End,
VkalkDan = Case D.VlIzl
When ''I'' Then 0.0
When ''V'' Then D.PDanok1 + D.PDanok2 End,
ObvrskaDan = Case D.VlIzl
When ''I'' Then 0.0
When ''V'' Then D.PDanok1 + D.PDanok2 - (D.Danok1 + D.Danok2) End,
VrednProd = Case D.VlIzl
When ''I'' Then (Case D.ImaDodatna When ''D'' Then 0 Else D.Toc200 End)
When ''V'' Then 0.0 End '
End
Else
Begin
Set @SSQL = @SSQL + '
ProdVredn = Case D.VlIzl
When ''I'' Then 0.0
When ''V'' Then D.MagVrDan End,
NabVred = Case D.VlIzl
When ''I'' Then 0.0
When ''V'' Then D.Toc200 End,
VkalkDan = Case D.VlIzl
When ''I'' Then 0.0
When ''V'' Then D.PDanok1 + D.PDanok2 End,
ObvrskaDan = Case D.VlIzl
When ''I'' Then 0.0
When ''V'' Then D.PDanok1 + D.PDanok2 - (D.Danok1 + D.Danok2) End,
VrednProd = Case D.VlIzl
When ''I'' Then D.Toc200
When ''V'' Then 0.0 End '
End
End
Set @SSQL = @SSQL + ' From Dokr D
Inner Join TipDok TD On D.Sifra_Dok=TD.Sifra_Dok And TD.VoTRG_Knig=''D'' '
If @PoNabCenaStavr = 'D'
Set @SSQL = @SSQL + ' Inner Join stavr S On S.DokrID=D.DokrID '
Set @SSQL = @SSQL + ' Where D.Sifra_OE=' + Cast(@Sifra_OE As Varchar(6))
IF @PecFisc_PoDatPec = 'N'
Set @SSQL = @SSQL + ' And D.Datum_Dok>=''' + Cast(@Datum_Otv As varchar(25)) + ''' And D.Datum_Dok<=''' + Cast(@Datum_Do As Varchar(25)) + ''' '
ELSE
Set @SSQL = @SSQL + ' And ((TD.DaliFisc=''D'' AND D.Dat_Pec_Fisc is not null AND D.Dat_Pec_Fisc>='''+Cast(@Datum_Otv As varchar(25))+''')
OR (TD.DaliFisc<>''D'' AND D.Datum_Dok>=''' + Cast(@Datum_Otv As varchar(25)) + '''))
And ((TD.DaliFisc=''D'' AND D.Dat_Pec_Fisc is not null AND D.Dat_Pec_Fisc<='''+Cast(@Datum_Do As varchar(25))+''')
OR (TD.DaliFisc<>''D'' AND D.Datum_Dok<=''' + Cast(@Datum_Do As Varchar(25)) + ''')) '
If @Iskluci_Sifri_Prim IS NOT NULL
Set @SSQL = @SSQL + ' And (D.Sifra_Prim NOT IN (' + @Iskluci_Sifri_Prim + ') OR D.Sifra_Prim IS NULL) '
If @PoNabCenaStavr = 'D' -- dodadeno 13.05.05 za zito vane
Begin
If @RezVoTab_PoNalozi = 'D' -- ova e za isklucitelni slucai
Set @SSQL = @SSQL + ' Group By D.Sifra_Oe, D.Sifra_Nal, '
Else
Set @SSQL = @SSQL + ' Group By D.Sifra_Dok, '
Set @SSQL = @SSQL + ' TD.ImeDok, D.Kto, TD.Opis_TKNG, '
IF @PecFisc_PoDatPec = 'N'
Set @SSQL = @SSQL + 'D.Datum_Dok, '
Else
Set @SSQL = @SSQL + ' (Case When TD.DaliFisc=''D'' And D.Pec_Fisc>0 Then D.Dat_Pec_Fisc Else D.Datum_Dok End), '
-- Set @SSQL = @SSQL + 'Case When D.Pec_Fisc>0 Then D.Dat_Pec_Fisc Else D.Datum_Dok End, '
If @RezVoTab_PoNalozi = 'D' -- ova e za isklucitelni slucai
From #tmpKniga Where Datum_Dok>=@Datum_Od And Datum_Dok<=@Datum_Do
End
Else
Select * From #tmpKniga Where Datum_Dok>=@Datum_Od And Datum_Dok<=@Datum_Do
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_knigatrg_diskont]'))
drop procedure [dbo].[sp_knigatrg_diskont]
Go
CREATE PROCEDURE sp_KnigaTrg_Diskont
@Sifra_OE Smallint,
@Datum_Otv Smalldatetime,
@Datum_Od Smalldatetime,
@Datum_Do Smalldatetime,
@Koi_Oe_Diskont varchar(300) = Null,
@PrikaziSoMarza char(1) = 'N',
@MoraPecFisk char(1) = 'D', -- Dali mora dokumentite da se pecateni na fiskalen
@ProdVredn Decimal(18,4) = 0.0 OUTPUT,
@NabVred Decimal(18,4) = 0.0 OUTPUT,
@VkalkDan Decimal(18,4) = 0.0 OUTPUT,
@ObvrskaDan Decimal(18,4) = 0.0 OUTPUT,
@VrednProd Decimal(18,4) = 0.0 OUTPUT
AS
Declare @Tip813 char(1)
SELECT @Tip813=VoTRG_Knig FROM TipDok WHERE Sifra_Dok=813
Declare @SSQL Varchar(8000)
CREATE TABLE #tmpKniga
(
InterenBr Integer IDENTITY(0, 1),
Sifra_Dok smallint,
ImeDok char(40),
Kto Char(10),
Ispratnica Varchar(50),
Datum_Dok Smalldatetime,
Datum_Knz Smalldatetime,
Broj Varchar(100),
Opis Varchar(100),
OdKade char(1),
ProdVredn Numeric(18, 4),
NabVred Numeric(18,4),
VkalkDan Numeric(18, 4),
ObvrskaDan Numeric(18, 4),
VrednProd Numeric(18, 4)
)
Set @SSQL = 'Select D.Sifra_Dok, TD.ImeDok, D.Kto, D.Ispratnica, '
If @MoraPecFisk = 'N'
Set @SSQL = @SSQL + ' D.Datum_Dok,
D.Datum_Dok, '
Else
Set @SSQL = @SSQL + ' Datum_Dok=Case When TD.DaliFisc=''D'' And D.Pec_Fisc>0 Then dbo.fn_VratiDatum(D.Dat_Pec_Fisc) Else D.Datum_Dok End,
Datum_Knz=Case When TD.DaliFisc=''D'' And D.Pec_Fisc>0 Then dbo.fn_VratiDatum(D.Dat_Pec_Fisc) Else D.Datum_Dok End, '
Set @SSQL = @SSQL + ' Cast(D.Sifra_Dok As Varchar(6)) + ''-'' + Cast(D.Broj_Dok As Varchar(9)) Broj, D.Identif_Br, ''D'',
ProdVredn = Case D.VlIzl
When ''I'' Then 0.0
When ''V'' Then D.MagVrDan End,
NabVred = Case D.VlIzl
When ''I'' Then 0.0
When ''V'' Then D.Toc200 End,
VkalkDan = Case D.VlIzl
When ''I'' Then 0.0
When ''V'' Then D.PDanok1 + D.PDanok2 End,
ObvrskaDan = Case D.VlIzl
When ''I'' Then 0.0
When ''V'' Then D.PDanok1 + D.PDanok2 - (D.Danok1 + D.Danok2) End,
VrednProd = Case D.VlIzl
When ''I'' Then D.Toc200
When ''V'' Then 0.0 End
From Dokr D
Inner Join TipDok TD On D.Sifra_Dok=TD.Sifra_Dok And TD.VoTRG_Knig=''D''
Where D.Sifra_OE=' + Cast(@Sifra_OE As Varchar(6)) + ' '
If @MoraPecFisk = 'N'
Set @SSQL = @SSQL + ' And D.Datum_Dok >= '''+ Cast(@Datum_Otv As varchar(25)) + ''' And D.Datum_Dok <= '''+ Cast(@Datum_Do As varchar(25)) + ''' '
Else
Set @SSQL = @SSQL + ' And ((TD.DaliFisc=''D'' AND dbo.fn_VratiDatum(D.Dat_Pec_Fisc) is not null AND dbo.fn_VratiDatum(D.Dat_Pec_Fisc)>='''+Cast(@Datum_Otv As varchar(25))+''')
OR (TD.DaliFisc<>''D'' AND D.Datum_Dok>=''' + Cast(@Datum_Otv As varchar(25)) + '''))
And ((TD.DaliFisc=''D'' AND dbo.fn_VratiDatum(D.Dat_Pec_Fisc) is not null AND dbo.fn_VratiDatum(D.Dat_Pec_Fisc)<='''+Cast(@Datum_Do As varchar(25))+''')
OR (TD.DaliFisc<>''D'' AND D.Datum_Dok<=''' + Cast(@Datum_Do As Varchar(25)) + ''')) '
IF @Tip813='D' --dodadeno 07.09.04
Begin
Set @SSQL = @SSQL + ' Union ALL Select A.Sifra_Dok, TD.ImeDok, A.Kto, Null as Ispratnica,
A.Datum_Dok Datum_Dok,
A.Datum_Dok Datum_Knz,
Cast(A.Sifra_Dok As Varchar(6)) + ''-'' + Cast(A.Broj_Dok As Varchar(6)) Broj,
A.BrojDok, ''A'', 0.0 AS ProdVredn, 0.0 AS NabVred, 0.0 AS VkalkDan, 0.0 AS ObvrskaDan,
Pobaruva AS VrednProd
From AnFinDok A
Inner Join TipDok TD On A.Sifra_Dok=TD.Sifra_Dok
Where A.Sifra_Dok=813 AND A.Sifra_OE=' + Cast(@Sifra_OE As Varchar(6)) + '
And A.Datum_Dok>=''' + Cast(@Datum_Otv As varchar(25)) + '''
And A.Datum_Dok<=''' + Cast(@Datum_Do As Varchar(25)) + ''' '
End
Set @SSQL = @SSQL + ' Union ALL Select Null as Sifra_Dok, Null as ImeDok, Null as Kto, Null as Ispratnica, KT.Datum_Dok, KT.Datum_Knz, KT.Broj, KT.Opis, ''K'', KT.ProdVredn, KT.NabVred, KT.VkalkDan, KT.ObvrskaDan, KT.VrednProd
From KnigaTrg KT
Where KT.Sifra_OE=' + + Cast(@Sifra_OE As Varchar(5)) + '
And KT.Datum_Dok>=''' + Cast(@Datum_Otv As varchar(25)) + '''
And KT.Datum_Dok<=''' + Cast(@Datum_Do As Varchar(25)) + ''' '
-- Novoto
-- Izlezni dokumenti od bilo koja druga OE ili Gr.Oe ako e vnesena i koi vo TipDok.Disk_Oe = @Sifra_Oe i se prikazuvaat na vleznata strana na kalkulacijata
Set @SSQL = @SSQL + ' Union ALL Select D.Sifra_Dok, TD.ImeDok, D.Kto, D.Ispratnica, '
If @MoraPecFisk = 'N'
Set @SSQL = @SSQL + ' D.Datum_Dok,
D.Datum_Dok, '
Else
Set @SSQL = @SSQL + ' Datum_Dok=Case When TD.DaliFisc=''D'' And D.Pec_Fisc>0 Then dbo.fn_VratiDatum(D.Dat_Pec_Fisc) Else D.Datum_Dok End,
Datum_Knz=Case When TD.DaliFisc=''D'' And D.Pec_Fisc>0 Then dbo.fn_VratiDatum(D.Dat_Pec_Fisc) Else D.Datum_Dok End, '
Set @SSQL = @SSQL + ' Cast(D.Sifra_Oe As Varchar(6)) + ''-'' + Cast(D.Sifra_Dok As Varchar(6)) + ''/'' + Cast(D.Broj_Dok As Varchar(9)) Broj, D.Identif_Br, ''D'', '
If @PrikaziSoMarza = 'N'
Set @SSQL = @SSQL + '
ProdVredn = Case D.VlIzl
When ''I'' Then Sum((S.Kolic*dbo.fn_VratiCenaSoDDVBezRabat(S.DokCena, S.DanDokCena, S.Posn, S.Uces, D.Kasa)))
When ''V'' Then 0.0 End,
NabVred = Case D.VlIzl
When ''I'' Then Sum((S.Kolic*dbo.fn_VratiCenaSoDDVBezRabat(S.DokCena, S.DanDokCena, S.Posn, S.Uces, D.Kasa)))
When ''V'' Then 0.0 End, '
Else
Set @SSQL = @SSQL + '
ProdVredn = Case D.VlIzl
When ''I'' Then Sum((S.Kolic*dbo.fn_VratiCenaSoDDVBezRabat(S.DokCena, S.DanDokCena, S.Posn, S.Uces, D.Kasa)))
When ''V'' Then 0.0 End,
NabVred = Case D.VlIzl
When ''I'' Then Sum((S.Kolic*dbo.fn_VratiCena(S.NabCena, S.Posn, ''N'', ''D'')))
When ''V'' Then 0.0 End, '
Set @SSQL = @SSQL + '
VkalkDan = Case D.VlIzl
When ''I'' Then 0.0
When ''V'' Then 0.0 End,
ObvrskaDan = Case D.VlIzl
When ''I'' Then 0.0
When ''V'' Then 0.0 End,
VrednProd = Case D.VlIzl
When ''I'' Then 0.0
When ''V'' Then 0.0 End
From Dokr D
Inner Join Stavr S On S.DokrID=D.DokrID
Inner Join TipDok TD On D.Sifra_Dok=TD.Sifra_Dok And TD.VoTRG_Knig=''D''
Where D.Sifra_OE<>' + Cast(@Sifra_OE As Varchar(6)) + '
And TD.Disk_Oe = ' + Cast(@Sifra_OE As Varchar(6)) + '
And D.VlIzl = ''I'' '
If @MoraPecFisk = 'N'
Set @SSQL = @SSQL + ' And D.Datum_Dok >= '''+ Cast(@Datum_Otv As varchar(25)) + ''' And D.Datum_Dok <= '''+ Cast(@Datum_Do As varchar(25)) + ''' '
Else
Set @SSQL = @SSQL + ' And ((TD.DaliFisc=''D'' AND dbo.fn_VratiDatum(D.Dat_Pec_Fisc) is not null AND dbo.fn_VratiDatum(D.Dat_Pec_Fisc)>='''+Cast(@Datum_Otv As varchar(25))+''')
OR (TD.DaliFisc<>''D'' AND D.Datum_Dok>=''' + Cast(@Datum_Otv As varchar(25)) + '''))
And ((TD.DaliFisc=''D'' AND dbo.fn_VratiDatum(D.Dat_Pec_Fisc) is not null AND dbo.fn_VratiDatum(D.Dat_Pec_Fisc)<='''+Cast(@Datum_Do As varchar(25))+''')
OR (TD.DaliFisc<>''D'' AND D.Datum_Dok<=''' + Cast(@Datum_Do As Varchar(25)) + ''')) '
If @Koi_Oe_Diskont Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Oe In (' + @Koi_Oe_Diskont + ') '
Set @SSQL = @SSQL + ' Group By D.Sifra_Dok, TD.ImeDok, D.Kto, D.Ispratnica, '
If @MoraPecFisk = 'N'
Set @SSQL = @SSQL + ' D.Datum_Dok,
D.Datum_Dok, '
Else
Set @SSQL = @SSQL + ' (Case When TD.DaliFisc=''D'' And D.Pec_Fisc>0 Then dbo.fn_VratiDatum(D.Dat_Pec_Fisc) Else D.Datum_Dok End),
(Case When TD.DaliFisc=''D'' And D.Pec_Fisc>0 Then dbo.fn_VratiDatum(D.Dat_Pec_Fisc) Else D.Datum_Dok End), '
Set @SSQL = @SSQL + ' Cast(D.Sifra_Oe As Varchar(6)) + ''-'' + Cast(D.Sifra_Dok As Varchar(6)) + ''/'' + Cast(D.Broj_Dok As Varchar(9)), D.Identif_Br, D.VlIzl '
Set @SSQLUsl = @SSQLUsl + ' And N.Sifra_Oe = ' + Cast(@Sifra_Pat as varchar(6)) + ' '
If @KoiPat Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And N.Sifra_Oe In (Select Sifra_Oe From SGrOrg Where Sif_GrOrg = ''' + @KoiPat + ''') '
Create Table #Rez
(
Sifra_Pat int,
Datum smalldatetime,
PocRabVreme datetime,
Sifra_Kup_Start char(6),
Sifra_Obj_Start char(6),
KrajRabVreme datetime,
Sifra_Kup_Kraj char(6),
Sifra_Obj_Kraj char(6),
BrPoseti int,
BrNaracki int,
BrStavkiNar int,
BrFakturi int,
BrStavkiFra int,
VrednostNar decimal(18,4),
VrednostFri decimal(18,4),
)
Set @SSQL = 'Select N.Sifra_Oe, Cast(Cast(Year(DatumVreme) as varchar(4)) + ''-'' + Cast(Month(DatumVreme) as varchar(2)) + ''-'' + Cast(Day(DatumVreme) as varchar(2)) as smalldatetime),
Min(N.DatumVreme), Max(N.DatumVreme), Count(*)
From Akcija N
Where N.DatumVreme >= ''' + Cast(@Datum_Od as varchar(30)) + ''' And N.DatumVreme < ''' + Cast(@Datum_Do + 1 as varchar(30)) + ''' '
Set @SSQL = @SSQL + @SSQLUsl + ' Group By N.Sifra_Oe, Cast(Cast(Year(DatumVreme) as varchar(4)) + ''-'' + Cast(Month(DatumVreme) as varchar(2)) + ''-'' + Cast(Day(DatumVreme) as varchar(2)) as smalldatetime) '
Insert Into #Rez (Sifra_Pat, Datum, PocRabVreme, KrajRabVreme, BrPoseti) Exec(@SSQL)
Update #Rez Set Sifra_Kup_Start = A.Sifra_Kup, Sifra_Obj_Start = A.Sifra_Obj From Akcija A Where A.Sifra_Oe = #Rez.Sifra_Pat And A.DatumVreme=#Rez.PocRabVreme
Update #Rez Set Sifra_Kup_Kraj = A.Sifra_Kup, Sifra_Obj_Kraj = A.Sifra_Obj From Akcija A Where A.Sifra_Oe = #Rez.Sifra_Pat And A.DatumVreme=#Rez.KrajRabVreme
Create Table #NarPom
(
Sifra_Pat int,
Datum smalldatetime,
BrNaracki int,
BrStavkiNar int,
BrFakturi int,
BrStavkiFra int,
VrednostNar decimal(18,4),
VrednostFri decimal(18,4)
)
Create Table #Nar
(
Sifra_Pat int,
Datum smalldatetime,
BrNaracki int,
BrStavkiNar int,
BrFakturi int,
BrStavkiFra int,
VrednostNar decimal(18,4),
VrednostFri decimal(18,4)
) --Sum(SN.Kolic*(Case When SN.DanDokCena = ''D'' Then SN.DokCena Else (SN.DokCena*(1+SN.Posn/100)) End)*(1-SN.Uces/100)) bese vo VrednostNar
Set @SSQL = ' Select N.Sifra_Oe, N.Datum_Nar, Count(Distinct N.Sifra_Kup + (Case When N.Sifra_Obj Is Not Null Then Cast(N.Sifra_Obj as char(4)) Else '''' End)),
Set @SSQL = @SSQL + 'AND (A.Sifra_Za=1 OR A.Sifra_Za=2) '
If @KoiFri = 'P'
Set @SSQL = @SSQL + 'AND A.Dolzi=A.Plateno_Dolzi AND A.Pobaruva=A.Plateno_Pobar '
Else If @KoiFri = 'N'
Set @SSQL = @SSQL + 'AND (A.Dolzi<>A.Plateno_Dolzi OR A.Pobaruva<>A.Plateno_Pobar) '
Else If @KoiFri = 'R'
Set @SSQL = @SSQL + 'AND (A.Plateno_Dolzi <> 0 Or A.Plateno_Pobar <> 0) and (A.Plateno_Dolzi = 0 and A.Plateno_Pobar = 0) ' -- Logikata ne e bas dobra (stavena e da ne prikazuva nisto)
Else If @KoiFri = 'M'
Set @SSQL = @SSQL + 'AND (A.Plateno_Dolzi <> 0 Or A.Plateno_Pobar <> 0) ' -- site stavki koi sto se delumno ili celosno plateni (zaradi slozuvanje so sp_Kart_ZatvStavki)
Set @SSQL = @SSQL + 'AND (A.Sifra_Za=1 OR A.Sifra_Za=2) '
If @KoiFri = 'P'
Set @SSQL = @SSQL + 'AND A.Dolzi=A.Plateno_Dolzi AND A.Pobaruva=A.Plateno_Pobar '
Else If @KoiFri = 'N'
Set @SSQL = @SSQL + 'AND (A.Dolzi<>A.Plateno_Dolzi OR A.Pobaruva<>A.Plateno_Pobar) '
Else If @KoiFri = 'R'
Set @SSQL = @SSQL + 'AND (A.Plateno_Dolzi <> 0 Or A.Plateno_Pobar <> 0) and (A.Plateno_Dolzi = 0 and A.Plateno_Pobar = 0) ' -- Logikata ne e bas dobra (stavena e da ne prikazuva nisto)
Else If @KoiFri = 'M'
Set @SSQL = @SSQL + 'AND (A.Plateno_Dolzi <> 0 Or A.Plateno_Pobar <> 0) ' -- site stavki koi sto se delumno ili celosno plateni (zaradi slozuvanje so sp_Kart_ZatvStavki)
Sum( Case WHEN Dolzi < 0 Then Dolzi Else 0 End) DolziNeg,
Sum( Case WHEN Pobaruva < 0 Then Pobaruva Else 0 End) PobaruvaNeg
FROM AnFinDok A
WHERE Sifra_Kup=''' + @Sifra_Kup + ''' '
If @Datum_Nal_Od Is NOT Null
SET @SSQL = @SSQL + 'AND A.Datum_Nal>=''' + Cast(@Datum_Nal_Od As Varchar(35)) + ''' '
If @Datum_Nal_Do Is NOT Null
SET @SSQL = @SSQL + 'AND A.Datum_Nal<=''' + Cast(@Datum_Nal_Do As Varchar(35)) + ''' '
If @KoiFri = 'P'
Set @SSQL = @SSQL + 'AND A.Dolzi=A.Plateno_Dolzi AND A.Pobaruva=A.Plateno_Pobar '
Else If @KoiFri = 'N'
Set @SSQL = @SSQL + 'AND (A.Dolzi<>A.Plateno_Dolzi OR A.Pobaruva<>A.Plateno_Pobar) '
Else If @KoiFri = 'R'
Set @SSQL = @SSQL + 'AND (A.Plateno_Dolzi <> 0 Or A.Plateno_Pobar <> 0) and (A.Plateno_Dolzi = 0 and A.Plateno_Pobar = 0) ' -- Logikata ne e bas dobra (stavena e da ne prikazuva nisto)
Else If @KoiFri = 'M'
Set @SSQL = @SSQL + 'AND (A.Plateno_Dolzi <> 0 Or A.Plateno_Pobar <> 0) ' -- site stavki koi sto se delumno ili celosno plateni (zaradi slozuvanje so sp_Kart_ZatvStavki)
If @Datum_Dok_Od Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND A.Datum_Dok>=''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
If @Datum_Dok_Do Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND A.Datum_Dok<=''' + Cast(@Datum_Dok_Do As Varchar(35)) + ''' '
If @Datum_Dosp_Od Is Not Null
Set @SSQLUsl = @SSQLUsl + 'And DateAdd(Day, A.Rok, A.Datum_Dok)>=''' + Cast(@Datum_Dosp_Od As Varchar(35)) + ''' '
If @Datum_Dosp_Do Is Not Null
Set @SSQLUsl = @SSQLUsl + 'And DateAdd(Day, A.Rok, A.Datum_Dok)<=''' + Cast(@Datum_Dosp_Do As varchar(35)) + ''' '
Set @SSQL = ' Insert Into #KupObj1 (Sifra_Kup, Sifra_Obj) Select Distinct Sifra_Kup, Sifra_Obj From SGrKupObj Where Sif_GrKup In (' + @GrKup + ') And Sifra_Obj Is Not Null '
Exec(@SSQL)
Set @SSQL = ' Insert Into #KupObj1 (Sifra_Kup, Sifra_Obj)
Select Distinct GK.Sifra_Kup, KO.Sifra_Obj
From SGrKupObj GK
Inner Join Kobjekti KO On GK.Sifra_Kup = KO.Sifra_Kup
Where GK.Sif_GrKup In (' + @GrKup + ') And GK.Sifra_Obj Is Null '
--Where GK.Sif_GrKup In (' + @GrKup + ') And GK.Sifra_Kup+Cast(KO.Sifra_Obj as char(4)) Not In (Select Sifra_Kup+Cast(Sifra_Obj as char(6)) From #KupObj) And GK.Sifra_Obj Is Null '
Exec(@SSQL)
Set @SSQL = ' Insert Into #KupObj1 (Sifra_Kup) Select Distinct Sifra_Kup From SGrKupObj Where Sif_GrKup In (' + @GrKup + ') And Sifra_Obj Is Null '
Exec(@SSQL)
INSERT INTO #KupObj SELECT DISTINCT Sifra_Kup, Sifra_Obj FROM #KupObj1
End
If @GrArt Is Not Null
Begin
Create Table #GrArt
(
Sifra_Art varchar(20)
)
Create NonClustered Index IX_Art On #GrArt (Sifra_Art)
Set @SSQL = 'Insert Into #GrArt Select DISTINCT Sifra_Art From SGrArt Where Sif_GrArt In (' + @GrArt + ') '
-- Vtoro: Tabelata #KomintDokr da ja napolnime so site komintenti koi sto se javuvaat vo Dokr, a gi zadovoluvaat vnesenite filtri
Set @SSQL = ' Select Distinct D.Sifra_Kup, D.Sifra_Obj
From Dokr D
Inner Join Komint Kup On Kup.Sifra_Kup=D.Sifra_Kup
Left Outer Join KObjekti KO On KO.Sifra_Kup=D.Sifra_Kup And KO.Sifra_Obj=D.Sifra_Obj '
If @Sifra_Art_Od Is Not Null Or @Sifra_Art_Do Is Not Null Or @Sifra_Gr Is Not Null Or @Sifra_Podg Is Not Null Or @Sifra_Brand Is Not Null Or @Sifra_ZBrand Is Not Null
Or @APod1 Is Not Null Or @APod2 Is Not Null Or @APod3 Is Not Null Or @APod4 Is Not Null Or @APod5 Is Not Null
begin
Set @SSQL = @SSQL + ' Inner Join Stavr S On S.DokrID=D.DokrID
Inner Join Katart K On K.Sifra_Art=S.Sifra_Art '
If @GrArt Is Not Null
Set @SSQL = @SSQL + ' Inner Join #GrArt GA On GA.Sifra_Art=K.Sifra_Art '
end
-------------------------------------
If @GrKup Is Not Null
Set @SSQL = @SSQL + ' Inner Join #KupObj GK On GK.Sifra_Kup=D.Sifra_Kup
And (Case When D.Sifra_Obj Is Not Null Then D.Sifra_Obj Else 1234 End) = (Case When GK.Sifra_Obj Is Not Null Then GK.Sifra_Obj Else 1234 End) '
--------------------------------------
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + ' Left Outer Join Podgrupi PG On PG.Sifra_Podg=K.Sifra_Podg '
If @Sifra_ZBrand Is Not Null
Set @SSQL = @SSQL + ' Left Outer Join DrgPodel B On B.Sifra_Drg=K.Sifra_Drg '
Set @SSQL = @SSQL + ' Where D.Sifra_Za=1 '
-- go dopolnuvame uslovot so ostanatite filtri
If @Sifra_OE Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And D.Sifra_OE=' + Cast(@Sifra_OE As Varchar(5)) + ' '
Set @SSQLUsl = @SSQLUsl + 'And K.Drugo1=' + Cast(@APod1 as varchar(6)) + ' '
If @APod2 Is Not Null
Set @SSQLUsl = @SSQLUsl + 'And K.Drugo2=' + Cast(@APod2 as varchar(6)) + ' '
If @APod3 Is Not Null
Set @SSQLUsl = @SSQLUsl + 'And K.Drugo3=' + Cast(@APod3 as varchar(6)) + ' '
If @APod4 Is Not Null
Set @SSQLUsl = @SSQLUsl + 'And K.Drugo4=' + Cast(@APod4 as varchar(6)) + ' '
If @APod5 Is Not Null
Set @SSQLUsl = @SSQLUsl + 'And K.Drugo5=' + Cast(@APod5 as varchar(6)) + ' '
If @Datum_Od Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And D.Datum_Dok>=''' + Cast(@Datum_Od As Varchar(25)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And D.Datum_Dok<=''' + Cast(@Datum_Do As Varchar(25)) + ''' '
Insert Into #KomintDokr Exec(@SSQL+@SSQLUsl)
-- Da gi prikazeme rezultatite
Select K.Sifra_Kup, Kup.ImeKup, K.Sifra_Obj, Null As Ime_Obj, Kup.Sifra_Grad as Sifra_Grad_Kup, G.ImeGrad as ImeGrad_Kup, Null as Sifra_Grad_Obj, Null as ImeGrad_Obj,
Kup.Kdrugo1, K1.Ime_1K, Kup.Kdrugo2, K2.Ime_2K, Kup.Kdrugo3, K3.Ime_3K, Kup.Kdrugo4, K4.Ime_4K, Kup.Kdrugo5, K5.Ime_5K, KUP.Adresa as AdresaKup, Null as AdresaObj
From #Komint K
Inner Join Komint Kup On Kup.Sifra_Kup=K.Sifra_Kup
Left Outer Join Grad G On G.Sifra_Grad = Kup.Sifra_Grad
Left Outer Join KDrugo1 K1 On K1.Sifra_1K=Kup.KDrugo1
Left Outer Join KDrugo2 K2 On K2.Sifra_2K=Kup.KDrugo2
Left Outer Join KDrugo3 K3 On K3.Sifra_3K=Kup.KDrugo3
Left Outer Join KDrugo4 K4 On K4.Sifra_4K=Kup.KDrugo4
Left Outer Join KDrugo5 K5 On K5.Sifra_5K=Kup.KDrugo5
Where K.Sifra_Obj Is Null
And K.Sifra_Kup Not In (Select Distinct Sifra_Kup From #KomintDokr Where Sifra_Obj Is Null)
Union
Select K.Sifra_Kup, Kup.ImeKup, K.Sifra_Obj, KO.ImeObj, Kup.Sifra_Grad as Sifra_Grad_Kup, GG.ImeGrad as ImeGrag_Kup, KO.Sifra_Grad as Sifra_Grad_Obj, G.ImeGrad as ImeGrad_Obj,
KO.Kdrugo1, K1.Ime_1K, KO.Kdrugo2, K2.Ime_2K, KO.Kdrugo3, K3.Ime_3K, KO.Kdrugo4, K4.Ime_4K, KO.Kdrugo5, K5.Ime_5K, KUP.Adresa as AdresaKup, KO.Adresa as AdresaObj
From #Komint K
Inner Join Komint Kup On Kup.Sifra_Kup=K.Sifra_Kup
Left Outer Join KObjekti KO On KO.Sifra_Kup=K.Sifra_Kup And KO.Sifra_Obj=K.Sifra_Obj
Left Outer Join Grad G On G.Sifra_Grad = KO.Sifra_Grad
Left Outer Join Grad GG On GG.Sifra_Grad = Kup.Sifra_Grad
Left Outer Join KDrugo1 K1 On K1.Sifra_1K=KO.KDrugo1
Left Outer Join KDrugo2 K2 On K2.Sifra_2K=KO.KDrugo2
Left Outer Join KDrugo3 K3 On K3.Sifra_3K=KO.KDrugo3
Left Outer Join KDrugo4 K4 On K4.Sifra_4K=KO.KDrugo4
Left Outer Join KDrugo5 K5 On K5.Sifra_5K=KO.KDrugo5
Where K.Sifra_Obj Is Not Null
And K.Sifra_Kup+'&&&'+Cast(K.Sifra_Obj as varchar(6)) Not In (Select Distinct Sifra_Kup+'&&&'+cast(Sifra_Obj as varchar(6)) From #KomintDokr Where Sifra_Obj Is Not Null)
Order By K.Sifra_Kup, K.Sifra_Obj
--select * from #komint order by sifra_kup
--select * from #komintdokr order by sifra_kup
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_komintodnepratenidok]'))
drop procedure [dbo].[sp_komintodnepratenidok]
Go
CREATE PROCEDURE sp_KomintOdNePrateniDok
@Sifra_OE smallint,
@Datum smalldatetime
AS
Declare @SSQL Varchar(2000)
CREATE TABLE #SiteKom
( Sifra_kup varchar(10)
)
INSERT INTO #SiteKom
SELECT DISTINCT Sifra_Kup
FROM Dokr
WHERE (Sifra_OE = @Sifra_OE OR Sifra_Prim = @Sifra_OE) AND
(ImaDodatna IS NULL OR ImaDodatna <> 'P') AND
(Prenesen IS NULL OR Prenesen <> 'D')
INSERT INTO #SiteKom
SELECT DISTINCT K.Kto Sifra_Kup FROM Stavr S
Inner Join Dokr D On S.DokrID=D.DokrID
Inner Join Katart K On S.Sifra_Art=K.Sifra_Art
Where (D.Prenesen IS NULL OR D.Prenesen <> 'D')
And (D.Sifra_OE = 1 OR D.Sifra_Prim = 1) AND
(D.ImaDodatna IS NULL OR D.ImaDodatna <> 'P')
INSERT INTO #SiteKom
SELECT DISTINCT Kto Sifra_Kup
FROM KatArt
Where DodadenNa >= @Datum or IzmenetNa >= @Datum
Select Distinct Sifra_Kup From #SiteKom
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_komintsokolrab]'))
drop procedure [dbo].[sp_komintsokolrab]
Go
CREATE PROCEDURE sp_KomintSoKolRab
@Sifra_Kup char(6)=null
AS
Declare @SSQL Varchar(2000)
SET @SSQL='SELECT Sifra_Kup, ImeKup, Uces_Kol FROM Komint K
WHERE Uces_Kol is not null and Uces_Kol<>0'
IF @Sifra_Kup IS NOT NULL
SET @SSQL = @SSQL + ' AND K.Sifra_Kup=''' + @Sifra_Kup +''' '
EXEC(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_konfig]'))
drop procedure [dbo].[sp_konfig]
Go
CREATE PROCEDURE sp_Konfig
@Pole varchar(30),
@DataType varchar(20) = Null,
@Golemina varchar(10) = Null,
@VrednostNum decimal(18,6) = Null,
@Vrednost varchar(300),
@Akcija char(1)
AS
Declare @SSQL as Varchar(2000)
Declare @Tabela as varchar(20)
Declare @TabID int
Set @Tabela = 'KONFIG'
Create Table #Tab
(
ImeKolona Varchar(128),
Tip Varchar(128)
)
Create Table #Tab1
(
ImeKolona Varchar(128),
Tip Varchar(128),
Vrednost Varchar(128)
)
Set @TabID = (Select ID From SysObjects Where Name = @Tabela)
Insert Into #Tab (ImeKolona, Tip)
Select SC.Name, ST.Name
From SysColumns SC
Inner Join SysTypes ST On ST.XType =SC.XType
Where SC.ID=@TabID and SC.Name=@Pole
Declare Crs Cursor For Select ImeKolona, Tip From #Tab
Open Crs
Declare @ImeKolona as varchar(128)
Declare @Tip as varchar(128)
Fetch Next From Crs Into @ImeKolona, @Tip
While @@Fetch_Status = 0
Begin
Set @SSQL = ' Select Top 1 ''' + @ImeKolona + ''', ''' + @Tip + ''', ' + @ImeKolona + ' From ' + @Tabela + ' '
Insert Into #Tab1 Exec(@SSQL)
Fetch Next From Crs Into @ImeKolona, @Tip
End --While
Close Crs
Deallocate Crs
--------- Ako ne postoi go vmetnvame poleto vo konfig
If Not Exists (Select ImeKolona, Tip, Vrednost From #Tab1)
If @Akcija = 'D'
Begin
Set @SSQL = ' Alter Table Konfig Add ' + @Pole + ' ' + @DataType + ' '
If @Golemina Is Not Null
Set @SSQL = @SSQL + '(' + @Golemina + ') '
Set @SSQL = @SSQL + 'Null '
Print @SSQL
Exec(@SSQL)
End
--------- Ja menuvame vrdnosta na poleto so zadadenata
If @Akcija = 'D'
Begin
Set @SSQL = ' '
If @Vrednost Is Not Null
If IsNumeric(@Vrednost) = 1
Set @SSQL = ' Update Konfig Set ' + @Pole + ' = ''' + @Vrednost + ''' '
Else
Set @SSQL = ' Update Konfig Set ' + @Pole + ' = ' + @Vrednost + ' '
If @VrednostNum Is Not Null
Set @SSQL = ' Update Konfig Set ' + @Pole + ' = ' + Cast(@VrednostNum as varchar(20))
Print @SSQL
Exec(@SSQL)
Print ' GOTOVO '
End
Else
Print ' Nema sto da pravam '
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_konfigmesecgodina]'))
drop procedure [dbo].[sp_konfigmesecgodina]
Go
create PROCEDURE sp_KonfigMesecGodina
@Mesec smallint,
@Godina smallint
AS
Update Konfig
Set Mesec=@Mesec, Godina=@Godina
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_konfigpole]'))
drop procedure [dbo].[sp_konfigpole]
Go
CREATE PROCEDURE sp_KonfigPole
@Pole varchar(50) = Null,
@Vred varchar(50) = Null OUTPUT
AS
Declare @SSQL as Varchar(1000)
Declare @Tabela as varchar(20)
Declare @TabID int
Set @Tabela = 'KONFIG'
Set @TabID = (Select ID From SysObjects Where Name = @Tabela)
If Exists (Select SC.Name From SysColumns SC Where SC.ID=@TabID and SC.Name=@Pole)
Begin
Create Table #Tab
(
Vred varchar(50)
)
If @Pole Is Not Null And @Pole <> ''
Begin
Set @SSQL = ' Select ' + @Pole + ' From Konfig '
Insert Into #Tab Exec (@SSQL)
Select @Vred = Vred From #Tab
End
If @Vred Is Null
Set @Vred=''
End
Return @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_konfirmacijasaldo]'))
drop procedure [dbo].[sp_konfirmacijasaldo]
Go
CREATE PROCEDURE [dbo].[sp_KonfirmacijaSaldo]
@Kto_Anal varchar(200)=null, -- Stringot da se pusta so apostrofi na sekoe konto '1200', '2200'
Sum((Case When (S.Sifra_Dok In (15,16,85,86) Or (S.Sifra_Dok=990 And D.VlIzl=''V'')) Then
(Case When (K.SodrziEd<>0 And S.Sifra_Dok In (15,16,85,86)) Then (S.Kolic*K.SodrziEd*C.CenaDat)
Else (S.Kolic * C.CenaDat) End)
Else 0 End)) VrDokCenaDatVlez,
Sum((Case When S.Sifra_Dok In (185, 186) Then (S.Kolic * dbo.fn_VratiCena(S.DokCena, S.Posn, S.DanDokCena, ''' + @SoDanok + ''')) Else 0 End)) VrDokIzl,
Sum((Case When S.Sifra_Dok In (185, 186) Then (S.Kolic * C.CenaDat) Else 0 End)) VrDokCenaDatIzl
From Stavr S
Inner Join Dokr D On D.DokrID = S.DokrID
Inner Join Katart K On K.Sifra_Art = S.Sifra_Art
Left Outer Join #Ceni C On C.Sifra_Art = S.Sifra_Art
Where S.Sifra_Dok in (85,86,15,16,990,185,186) '
*/
Set @SSQL = ' Select S.Sifra_Oe, S.Sifra_Dok, S.Broj_Dok, S.Datum_Dok,
Sum((Case When (S.Sifra_Dok In (15,16,85,86) Or (S.Sifra_Dok=990 And D.VlIzl=''V'')) Then (S.Kolic * dbo.fn_VratiCena(S.DokCena, S.Posn, S.DanDokCena, ''' + @SoDanok + ''')) Else 0 End)) VrDokVlez, '
If @Org_EdCeni = 3
Set @SSQL = @SSQL + ' Sum((Case When (S.Sifra_Dok In (15,16,85,86)) Then (S.Kolic*K.SodrziEd*C.CenaDat) When (S.Sifra_Dok=990 And D.VlIzl=''V'') Then (S.Kolic*C.CenaDat) Else 0 End)) VrDokCenaDatVlez, '
Else
Set @SSQL = @SSQL + ' Sum((Case When (S.Sifra_Dok In (15,16,85,86)) Then (S.Kolic*C.CenaDat) When (S.Sifra_Dok=990 And D.VlIzl=''V'') Then (S.Kolic/K.SodrziEd*C.CenaDat) Else 0 End)) VrDokCenaDatVlez, '
Set @SSQL = @SSQL + ' Sum((Case When S.Sifra_Dok In (185, 186) Then (S.Kolic * dbo.fn_VratiCena(S.DokCena, S.Posn, S.DanDokCena, ''' + @SoDanok + ''')) Else 0 End)) VrDokIzl, '
If @Org_EdCeni = 3
Set @SSQL = @SSQL + ' Sum((Case When S.Sifra_Dok In (185, 186) Then (S.Kolic*C.CenaDat) Else 0 End)) VrDokCenaDatIzl '
Else
Set @SSQL = @SSQL + ' Sum((Case When S.Sifra_Dok In (185, 186) Then (S.Kolic/K.SodrziEd*C.CenaDat) Else 0 End)) VrDokCenaDatIzl '
Set @SSQL = @SSQL + ' From Stavr S
Inner Join Dokr D On D.DokrID = S.DokrID
Inner Join Katart K On K.Sifra_Art = S.Sifra_Art
Left Outer Join #Ceni C On C.Sifra_Art = S.Sifra_Art
Where S.Sifra_Dok in (85,86,15,16,990,185,186) '
-- If @Sifra_Art Is Not Null
-- Set @SSQL = @SSQL + ' And S.Sifra_Art = ' + @Sifra_Art + ' '
If @Sifra_Kup Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Kup = ' + @Sifra_kup + ' '
If @Sifra_Obj Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Obj = ' + Cast(@Sifra_Obj as Varchar(6)) + ' '
If @Datum_Od Is Not Null
Set @SSQL = @SSQL + ' And S.Datum_Dok >= ''' + Cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQL = @SSQL + ' And S.Datum_Dok <= ''' + Cast(@Datum_Do as varchar(30)) + ''' '
Set @SSQL = @SSQL + ' Group By S.Sifra_Oe, S.Sifra_Dok, S.Broj_Dok, S.Datum_Dok '
Set @SSQL = @SSQL + 'Union Select K.Kto_Klas, K.ImeKlasa,
G.Kto_GrAn Sint_GrAn, G.ImeGrAn Ime_Sint_GrAn,
Null, Null
From Klas K
Inner Join GrAnal G On K.Kto_Klas=G.Kto_Klas '
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_kontrolen_izv_zbfakt]'))
drop procedure [dbo].[sp_kontrolen_izv_zbfakt]
Go
CREATE PROCEDURE sp_Kontrolen_Izv_ZbFakt
@Sifra_GrOrg char (6),
@Sifra_Dok smallint,
@Sifra_Dok2 smallint = Null,
@Sifra_Dok3 smallint = Null,
@Datum_Od Smalldatetime = Null,
@Datum_Do Smalldatetime = Null,
@Sifra_Prev char (6) = Null,
@PoIsprat decimal(18,6) = Null Output,
@Danok_Isprat decimal(18,6) = Null Output,
@Br_Isprat decimal(18,6) = Null Output,
@PoDok decimal(18,6) = Null Output,
@Danok_Dok decimal(18,6) = Null Output,
@Br_Isprat_Dok decimal(18,6) = Null Output,
@Br_Dok decimal(18,6) = Null Output,
-- @PoZbFakt decimal(18,6) = Null Output,
-- @Danok_ZbFakt decimal(18,6) = Null Output,
@PoIspZbFakt decimal(18,6) = Null Output,
@Danok_IspZbFakt decimal(18,6) = Null Output
AS
Set Nocount On
Declare @SSQL as varchar(8000)
Declare @SSQLUsl as varchar(8000)
Declare @SSQLPom as varchar(8000)
Set @SSQLUsl = ' '
Set @SSQLPom = ' '
------------------------------------------------------ Da gi najdeme site dokumenti za koi nema napraveno zbirni fakturi --------------------------------------------------------------
-------------------------------------- Kontrola na fakturiranjeto (dali iznosite na zbirnite dok. se ednakvi na zbirovite na ispratnicite koi vleguvaat vo zbirnite f-ri) ------------------------------
create Table #Dok
(
PoIsprat decimal(18,6),
Danok_Isprat decimal(18,6),
Br_Isprat decimal(18,6)
)
Set @SSQL = 'Select Sum(D.Toc200), Sum(D.Danok1+D.Danok2), Count(D.DokrId)
From Dokr D
Where D.Sifra_Oe In (Select Sifra_Oe From SGrOrg Where Sif_GrOrg= ''' + @Sifra_GrOrg + ''') '
If @Sifra_Dok Is Not Null And @Sifra_Dok2 Is Not Null And @Sifra_Dok3 Is Not Null
Set @SSQL = @SSQL + ' And (D.Sifra_Dok = ' + Cast(@Sifra_Dok as varchar(6)) + ' Or D.Sifra_Dok = ' + Cast(@Sifra_Dok2 as varchar(6)) + ' Or D.Sifra_Dok = ' + Cast(@Sifra_Dok3 as varchar(6)) + ') '
else if @Sifra_Dok Is Not Null And @Sifra_Dok2 Is Not Null
Set @SSQL = @SSQL + ' And (D.Sifra_Dok = ' + Cast(@Sifra_Dok as varchar(6)) + ' Or D.Sifra_Dok = ' + Cast(@Sifra_Dok2 as varchar(6)) + ') '
else If @Sifra_Dok Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Dok = ' + Cast(@Sifra_Dok as varchar(6)) + ' '
Insert Into #Dok(PoIsprat, Danok_Isprat, Br_Isprat) Exec(@SSQL+@SSQLUsl)
Select @PoIsprat=PoIsprat, @Danok_Isprat=Danok_Isprat, @Br_Isprat=Br_Isprat From #Dok
-- Gi barame kombinaciite na (sifra_oe i sifra_dok) od dokumentite i kombinaciite koi se javuvaat za soodvetni zbirni dokumenti (Sifra_Oe_Acc i Sifra_Oe_Dok)
Create Table #AccOeDok
(
Sifra_Oe smallint,
Sifra_Dok smallint,
Sifra_Oe_Acc smallint,
Sifra_Dok_Acc smallint
)
Set @SSQL = ' Select A.Sifra_Oe, A.Sifra_Dok, A.Sifra_Oe_Acc, A.Sifra_Dok_Acc
From KonfAccr A
Where Sifra_Oe In (Select Sifra_Oe From SGrOrg Where Sif_GrOrg= ''' + @Sifra_GrOrg + ''') '
If @Sifra_Dok Is Not Null And @Sifra_Dok2 Is Not Null And @Sifra_Dok3 Is Not Null
Set @SSQL = @SSQL + ' And (A.Sifra_Dok = ' + Cast(@Sifra_Dok as varchar(6)) + ' Or A.Sifra_Dok = ' + Cast(@Sifra_Dok2 as varchar(6)) + ' Or A.Sifra_Dok = ' + Cast(@Sifra_Dok3 as varchar(6)) + ') '
else if @Sifra_Dok Is Not Null And @Sifra_Dok2 Is Not Null
Set @SSQL = @SSQL + ' And (A.Sifra_Dok = ' + Cast(@Sifra_Dok as varchar(6)) + ' Or A.Sifra_Dok = ' + Cast(@Sifra_Dok2 as varchar(6)) + ') '
else If @Sifra_Dok Is Not Null
Set @SSQL = @SSQL + ' And A.Sifra_Dok = ' + Cast(@Sifra_Dok as varchar(6)) + ' '
Insert Into #AccOeDok Exec(@SSQL)
-- Da di najdam zbirnite dokumenti koi se napraveni od ispratnicite (zs ne mozam da napram sum ako imam join so stavkite)
Create Table #KoiDok
(
DokrZbID int,
KolkuDok smallint
)
Set @SSQL = 'Select Dzb.DokrZbID, Count(Distinct D.DokrID)
From DokrZb Dzb
Inner Join DokrZbSta DzbS On DzbS.DokrZbID=Dzb.DokrZbID
Inner Join Dokr D On D.DokrID=DzbS.DokrID
Inner Join #AccOeDok AOD On AOD.Sifra_Oe=D.Sifra_Oe And AOD.Sifra_Dok=D.Sifra_Dok
Inner Join #AccOeDok AOD1 On AOD1.Sifra_Oe_Acc=Dzb.Sifra_Oe And AOD1.Sifra_Dok_Acc=Dzb.Sifra_Dok '
-- dali filtrive za datum i prevoznik da gi gledame od dokr ili od dokrzb
If @Datum_Od Is Not Null
Set @SSQL = @SSQL + ' And Dzb.Datum_Dok >= ''' + Cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQL = @SSQL + ' And Dzb.Datum_Dok <= ''' + Cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Prev Is Not Null
Set @SSQL = @SSQL + ' And Dzb.Sifra_Prev = ''' + @Sifra_Prev + ''' '
Set @SSQL = @SSQL + ' Group By Dzb.DokrZbID '
Insert Into #KoiDok(DokrZbID, KolkuDok) Exec(@SSQL)
Create Table #ZbDok
(
PoDok decimal(18,6),
Danok_Dok decimal(18,6),
Br_Isprat_Dok decimal(18,6),
Br_Dok decimal(18,6)
)
Set @SSQL = 'Select Sum(Dzb.Toc200), Sum(Dzb.Danok1+Dzb.Danok2), Sum(D.KolkuDok), Count(Dzb.DokrZbID)
From DokrZb Dzb
Inner Join #KoiDok D On D.DokrZbID=Dzb.DokrZbID
Where 1=1 '
Insert Into #ZbDok(PoDok, Danok_Dok, Br_Isprat_Dok, Br_Dok) Exec(@SSQL)
Select @PoDok=PoDok, @Danok_Dok=Danok_Dok, @Br_Isprat_Dok=Br_Isprat_Dok, @Br_Dok=Br_Dok From #ZbDok
--------------------------------- Kontrola na vrzuvanje na ispratnici (dali zbirot na ispratnicite e ednakov na zbirot na zbirnite fakturi vo koi vleguvaat -----------------------
Create Table #DokOdDokr
(
DokrID int
)
Set @SSQL = 'Select Distinct DzbS.DokrID
From DokrZb Dzb
Inner Join DokrZbSta DzbS On DzbS.DokrZbID=Dzb.DokrZbID
Inner Join Dokr D On D.DokrID=DzbS.DokrID
Inner Join #AccOeDok AOD On AOD.Sifra_Oe=D.Sifra_Oe And AOD.Sifra_Dok=D.Sifra_Dok
Inner Join #AccOeDok AOD1 On AOD1.Sifra_Oe_Acc=Dzb.Sifra_Oe And AOD1.Sifra_Dok_Acc=Dzb.Sifra_Dok '
-- dali filtrive za datum i prevoznik da gi gledame od dokr ili od dokrzb
If @Datum_Od Is Not Null
Set @SSQL = @SSQL + ' And Dzb.Datum_Dok >= ''' + Cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQL = @SSQL + ' And Dzb.Datum_Dok <= ''' + Cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Prev Is Not Null
Set @SSQL = @SSQL + ' And Dzb.Sifra_Prev = ''' + @Sifra_Prev + ''' '
Insert Into #DokOdDokr(DokrID) Exec(@SSQL)
Create Table #PoIsprat
(
PoIspZbFakt decimal(18,6),
Danok_IspZbFakt decimal(18,6)
)
Set @SSQL = 'Select Sum(D.Toc200), Sum(D.Danok1+D.Danok2)
From Dokr D
Where D.DokrID In (Select DokrID From #DokOdDokr) '
Insert Into #PoIsprat(PoIspZbFakt, Danok_IspZbFakt) Exec(@SSQL)
Select @PoIspZbFakt=PoIspZbFakt, @Danok_IspZbFakt=Danok_IspZbFakt From #PoIsprat
Set Nocount Off
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_kontrolen_kol]'))
drop procedure [dbo].[sp_kontrolen_kol]
Go
CREATE PROCEDURE sp_kontrolen_kol
@Sifra_OE smallint = NULL,
@KoiOE Varchar(6) = NULL,
@Sifra_Art_Od varchar(20) = NULL,
@Sifra_Art_Do varchar(20) = NULL,
@Datum_Nal_Od Smalldatetime = NULL,
@Datum_Nal_Do Smalldatetime = NULL,
@Datum_Dok_Od Smalldatetime = NULL,
@Datum_Dok_Do Smalldatetime = NULL,
@Sifra_Kup varchar(8) = NULL,
@Sifra_Gr varchar(6) = NULL,
@Sifra_Podg char(6) = NULL,
@Lokacija varchar(10) = NULL,
@SamoRazliki char(1) = 'D',
@Sifra_Drg smallint = Null,
@TipDok varchar(300) = Null
AS
Declare @SSQL As Varchar(4000)
CREATE TABLE #Promet
( Sifra_OE Smallint,
Sifra_Art Varchar(20),
TVlez Numeric(18, 4),
TIzlez Numeric(18, 4),
So_Vlez Numeric(18, 4),
So_Izlez Numeric(18, 4)
)
SET @SSQL = 'SELECT S.Sifra_OE, S.Sifra_Art, sum(dbo.fn_KolicVlIzl(S.VlIzl, S.Kolic, ''V'')) as TVlez, sum(dbo.fn_KolicVlIzl(S.VlIzl, S.Kolic, ''I'')) as TIzlez
FROM Stavr S
INNER JOIN Katart K ON S.Sifra_Art = K.Sifra_Art And K.SMatUsl=''M'' '
If @Sifra_Gr IS NOT NULL
Begin
Set @SSQL=@SSQL+'INNER JOIN Podgrupi PG ON K.Sifra_Podg=PG.Sifra_Podg '
Set @SSQL=@SSQL+'INNER JOIN Grupi G ON PG.Sifra_Gr=G.Sifra_Gr '
End
SET @SSQL = @SSQL + 'WHERE 1=1 '
If @Sifra_OE Is Not Null
SET @SSQL = @SSQL + 'AND S.Sifra_OE=' + Cast(@Sifra_OE As Varchar(10)) + ' '
If @KoiOE Is Not Null
Set @SSQL = @SSQL + 'And S.Sifra_OE In (Select Sifra_OE From SGrOrg Where Sif_GrOrg=''' + @KoiOE + ''') '
If @TipDok Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_Dok In (' + @TipDok + ') '
If @Sifra_Kup Is NOT NULL
SET @SSQL = @SSQL + ' AND K.Kto = ''' + @Sifra_Kup + ''' '
If @Sifra_Art_Od Is NOT Null
SET @SSQL = @SSQL + 'AND S.Sifra_Art>=''' + Cast(@Sifra_Art_Od As Varchar(35)) + ''' '
If @Sifra_Art_Do Is NOT Null
SET @SSQL = @SSQL + 'AND S.Sifra_Art<=''' + Cast(@Sifra_Art_Do As Varchar(35)) + ''' '
If @Datum_Dok_Od Is NOT Null
SET @SSQL = @SSQL + 'AND S.Datum_Dok>=''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
If @Datum_Dok_Do Is NOT Null
SET @SSQL = @SSQL + 'AND S.Datum_Dok<=''' + Cast(@Datum_Dok_Do As Varchar(35)) + ''' '
If @Sifra_Gr IS NOT NULL
Set @SSQL=@SSQL+'AND (G.Sifra_Gr='''+@Sifra_Gr+''') '
If @Sifra_Podg IS NOT NULL
Set @SSQL=@SSQL+'AND (K.Sifra_Podg='''+@Sifra_Podg+''') '
If @Lokacija IS NOT NULL
Set @SSQL=@SSQL+'AND (K.Lokacija='''+lTrim(rtrim(@Lokacija))+''') '
If @Sifra_Drg Is Not Null
SET @SSQL = @SSQL + ' And K.Sifra_Drg=' + Cast(@Sifra_Drg As Varchar(10)) + ' '
Set @SSQL = @SSQL + ' GROUP BY S.Sifra_OE, S.Sifra_Art'
INSERT INTO #Promet (Sifra_OE, Sifra_Art, TVlez, TIzlez) EXEC(@SSQL)
CREATE TABLE #Promet1
( Sifra_OE Smallint,
Sifra_Art Varchar(20),
So_Vlez Numeric(18, 4),
So_Izlez Numeric(18, 4),
ImaPromet char(1)
)
SET @SSQL = 'SELECT S.Sifra_OE As Sifra_OE, S.Sifra_Art As Sifra_Art, S.Vlez As So_Vlez, S.Izlez As So_Izlez, ''N'' As ImaPromet
FROM SoArt S
INNER JOIN Katart K ON S.Sifra_Art = K.Sifra_Art And K.SMatUsl=''M'' '
If @Sifra_Gr IS NOT NULL
Begin
Set @SSQL=@SSQL+'INNER JOIN Podgrupi PG ON K.Sifra_Podg=PG.Sifra_Podg '
Set @SSQL=@SSQL+'INNER JOIN Grupi G ON PG.Sifra_Gr=G.Sifra_Gr '
End
SET @SSQL = @SSQL + 'WHERE 1=1 '
If @Sifra_OE Is Not Null
SET @SSQL = @SSQL + 'AND S.Sifra_OE=' + Cast(@Sifra_OE As Varchar(10)) + ' '
If @KoiOE Is Not Null
Set @SSQL = @SSQL + 'And S.Sifra_OE In (Select Sifra_OE From SGrOrg Where Sif_GrOrg=''' + @KoiOE + ''') '
If @Sifra_Kup Is NOT NULL
SET @SSQL = @SSQL + ' AND K.Kto = ''' + @Sifra_Kup + ''' '
If @Sifra_Art_Od Is NOT Null
SET @SSQL = @SSQL + 'AND S.Sifra_Art>=''' + Cast(@Sifra_Art_Od As Varchar(35)) + ''' '
If @Sifra_Art_Do Is NOT Null
SET @SSQL = @SSQL + 'AND S.Sifra_Art<=''' + Cast(@Sifra_Art_Do As Varchar(35)) + ''' '
If @Sifra_Gr IS NOT NULL
Set @SSQL=@SSQL+'AND (G.Sifra_Gr='''+@Sifra_Gr+''') '
If @Sifra_Podg IS NOT NULL
Set @SSQL=@SSQL+'AND (K.Sifra_Podg='''+@Sifra_Podg+''') '
If @Lokacija IS NOT NULL
Set @SSQL=@SSQL+'AND (K.Lokacija='''+lTrim(rtrim(@Lokacija))+''') '
If @Sifra_Drg Is Not Null
SET @SSQL = @SSQL + ' And K.Sifra_Drg=' + Cast(@Sifra_Drg As Varchar(10)) + ' '
INSERT INTO #Promet1 EXEC(@SSQL)
UPDATE #Promet1
SET ImaPromet = 'D'
FROM #Promet
WHERE #Promet.Sifra_Art = #Promet1.Sifra_Art AND #Promet.Sifra_OE = #Promet1.Sifra_OE
UPDATE #Promet
SET So_Vlez = #Promet1.So_Vlez, So_Izlez = #Promet1.So_Izlez
FROM #Promet1
WHERE #Promet.Sifra_Art = #Promet1.Sifra_Art AND #Promet.Sifra_OE = #Promet1.Sifra_OE
INSERT INTO #Promet (Sifra_OE, Sifra_Art, So_Vlez, So_Izlez)
Select Sifra_Oe,1 as Sifra_Dok,1 as Broj_Dok,Datum as Datum_Dok,Datum As DatumVnes,SifArt as Sifra_Art, ImeArt,'' as EdMera, Kolic,'i' as VlIzl, SpecOzn,'1'as Sifra_Kup , Isporacatel as ImeKup,'1' as Sifra_Prim,'1' as ImePrim,1 as Paketi,'1' as Identif_Br,'1' as TekstPole,'1' as RokTraDen,'1' as ImeOrg,Lot as LotBr,'1' as AltSerBr,1 as DokCena, 1 as DanDokCena,1 as Posn,1 as MagCena, 1 as DanMagCena
From #IdentifKartOdma
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_kopiraj_proektpoz]'))
If @Kor = @KorIme and @Loz=@Pass and @Aktiven='D' and (@Aktiven_Od is null Or @Aktiven_Od <= GetDate()) and (@Aktiven_Do is null Or @Aktiven_Do >= GetDate())
Set @OK='D'
Else
Begin
If @Aktiven_Od > GetDate()
Set @OK = 'U' -- Ne e aktiviran
If @Aktiven_Do < GetDate()
Set @OK = 'P' -- Pomina vremeto
If @Aktiven <> 'D'
Set @OK = 'A' -- Ne e aktiven
If @Loz<>@Pass
Set @OK = 'L' -- Gresna lozinka
If @Kor<>@KorIme
Set @OK = 'K' -- Nema takov korisnik
End
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_kororgtip]'))
drop procedure [dbo].[sp_kororgtip]
Go
CREATE PROCEDURE sp_KorOrgTip
@Sifra_Kor int
AS
SELECT * FROM PrivilOrgTip WHERE Sifra_GrKor IN
(SELECT R.Name FROM Sysusers R
INNER JOIN SysMembers M ON R.UID = M.GroupUID
WHERE M.MemberUID= @Sifra_Kor)
RETURN @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_korprivkoncept]'))
drop procedure [dbo].[sp_korprivkoncept]
Go
create PROCEDURE sp_KorPrivKoncept
@Sifra_Kor int
AS
SELECT * FROM PrivKoncept WHERE Sifra_GrKor IN
(SELECT R.Name FROM Sysusers R
INNER JOIN SysMembers M ON R.UID = M.GroupUID
WHERE M.MemberUID= @Sifra_Kor)
RETURN @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_korvogrupi]'))
drop procedure [dbo].[sp_korvogrupi]
Go
CREATE PROCEDURE sp_KorVoGrupi
@rolename sysname = NULL
AS
if @rolename is not null
begin
-- VALIDATE GIVEN NAME
if not exists (select * from sysusers where name = @rolename and issqlrole = 1)
------ POPIS --------------------------------------------------------------------------------------------------------------------------------------------
If @Godina Is Not Null and @Idni_Denovi_Dok Is Not Null
Begin
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'CK_Popis_Datum1' AND type = 'C')
ALTER TABLE Popis DROP CONSTRAINT CK_Popis_Datum1
Set @SSQL = ' ALTER TABLE dbo.Popis WITH NOCHECK ADD CONSTRAINT
Where #TopListaPeriod.Sifra_Podg=#TopLista.Sifra_Podg and #TopListaPeriod.Sifra_Art=#TopLista.Sifra_Art and #TopListaPeriod.Sifra_Pat=#TopLista.Sifra_Pat
Left Outer Join Komint KUP On T.Sifra_Kup = KUP.Sifra_Kup '
IF @SoPodgrupi = 'D'
Set @SSQL = @SSQL + 'Inner Join Podgrupi PG ON K.Sifra_Podg = PG.Sifra_Podg
Inner Join Grupi G ON G.Sifra_Gr = PG.Sifra_Gr '
If @PoGradovi = 'D'
Set @SSQL = @SSQL + 'Left Outer Join Grad G ON G.Sifra_Grad = Kup.Sifra_Grad '
If @Podred = 'S'
Set @SSQL = @SSQL + 'Order By T.Sifra_Art '
Else If @Podred = 'A'
Set @SSQL = @SSQL + 'Order By K.ImeArt '
Else If @Podred = '1'
Set @SSQL = @SSQL + 'Order By Izlezi DESC'
Else If @Podred = '2'
Set @SSQL = @SSQL + 'Order By Kolicina DESC'
Else If @Podred = '3'
Set @SSQL = @SSQL + 'Order By Vr_Krajna DESC'
Else If @Podred = '4'
Set @SSQL = @SSQL + 'Order By Vr_NPS DESC'
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_kup_toplista]'))
drop procedure [dbo].[sp_kup_toplista]
Go
CREATE PROCEDURE sp_Kup_TopLista
@Sifra_OE Smallint = Null,
@KoiOE Varchar(500) = Null,
@Pod1 Smallint = Null,
@Pod2 Smallint = Null,
@Pod3 Smallint = Null,
@Pod4 Smallint = Null,
@Pod5 Smallint = Null,
@Pod6 Smallint = Null,
@Pod7 Smallint = Null,
@KFPod1 char(1) = Null,
@KFPod2 char(1) = Null,
@KFPod3 char(1) = Null,
@KFPod4 char(1) = Null,
@KFPod5 char(1) = Null,
@KFPod6 char(1) = Null,
@KFPod7 char(1) = Null,
@Sifra_Tip Smallint = Null,
@Datum_Od Smalldatetime = Null,
@Datum_Do Smalldatetime = Null,
@Sifra_Art_Od Varchar(20) = Null,
@Sifra_Art_Do Varchar(20) = Null,
@Sifra_Brand Smallint = Null,
@Sifra_ZBrand Smallint = Null,
@Sifra_Kup_Od Char(6) = Null,
@Sifra_Kup_Do Char(6) = Null,
@Podred Char(1) = Null,
@Kolku Int = Null,
@Kto Char(6) = Null,
@Sifra_Gr varChar(6) = Null,
@Sifra_Podg Char(6) = Null,
@Lokacija Varchar(10) = Null,
@TipKup VarChar(300) = Null,
@Komint_KObj Char(1) = 'K',
@RazbijSostav Char(1) = 'N',
@Koi_Gradovi Varchar(200) = Null,
@Sifra_Pat varchar(300) = Null,
@TipDokProd varchar(200) = Null,
@Koi_Regioni varchar(200) = Null,
@PoProdMesta char(1) = 'N',
@Sifra_Mest int = Null,
@ProcPoArtikli char(1) = 'D',
@KomercKako char(1) = 'I', -- I - Istoriski od AnFinDok, T - Tekovno od Komint
@PoKojDatum char(1) = 'D', -- D - Po Datum na Dokument, V - Po Datum Na Vnes
@Drugo1 smallint = Null,
@Drugo2 smallint = Null,
@Drugo3 smallint = Null,
@Drugo4 smallint = Null,
@Drugo5 smallint = Null,
@Drugo6 smallint = Null,
@Drugo7 smallint = Null,
@Posrednik char(6) = Null,
@PocnuvaSo char(1) = 'N', -- Se Odnesuva na podgrupite D, N (Povrzano e so @Sifra_Podg)
@PoGodini char(1) = 'N',
@PoMeseci char(1) = 'N',
@Sifra_Nivo char(2) = Null,
@KojaCena char(1) = Null,
@PoGradovi char(1) = 'D',
@ImeArtDel varchar(20) = Null,
@DevCena char(1) = 'N', -- Prikazi vrednost po devizna cena D - so danok, B - bez Danok N - ne
@PrethBazaOd char(1) = 'N', -- K - Konfig (poleto PrethBaza) ?T? - Nekoja tabela (FirParal ili Nekoja Nova za vo idnina)
@ParalenliBazi varchar(200) = Null,
@Sifra_Div smallint = Null,
@GrKup varchar(500) = Null,
@GrArt varchar(500) = Null
AS
If @PoKojDatum = 'V'
If @Datum_Do Is Not Null
Set @Datum_Do = @Datum_Do + 1
Set Nocount On
Declare @SSQL Varchar(8000)
Declare @SSQLUsl Varchar(8000)
Declare @SSQLFrom Varchar(8000)
Declare @SSQLGroup Varchar(8000)
Set @SSQLUsl = ' '
Set @SSQLFrom = ' '
Set @SSQLGroup = ' '
If @GrKup Is Not Null
Begin
CREATE Table #KupObj
(
Sifra_Kup char(6),
Sifra_Obj smallint
)
CREATE Table #KupObj1
(
Sifra_Kup char(6),
Sifra_Obj smallint
)
Set @SSQL = ' Insert Into #KupObj1 (Sifra_Kup, Sifra_Obj) Select Distinct Sifra_Kup, Sifra_Obj From SGrKupObj Where Sif_GrKup In (' + @GrKup + ') And Sifra_Obj Is Not Null '
Exec(@SSQL)
Set @SSQL = ' Insert Into #KupObj1 (Sifra_Kup, Sifra_Obj)
Select Distinct GK.Sifra_Kup, KO.Sifra_Obj
From SGrKupObj GK
Inner Join Kobjekti KO On GK.Sifra_Kup = KO.Sifra_Kup
Where GK.Sif_GrKup In (' + @GrKup + ') And GK.Sifra_Obj Is Null '
--Where GK.Sif_GrKup In (' + @GrKup + ') And GK.Sifra_Kup+Cast(KO.Sifra_Obj as char(4)) Not In (Select Sifra_Kup+Cast(Sifra_Obj as char(6)) From #KupObj) And GK.Sifra_Obj Is Null '
Exec(@SSQL)
Set @SSQL = ' Insert Into #KupObj1 (Sifra_Kup) Select Distinct Sifra_Kup From SGrKupObj Where Sif_GrKup In (' + @GrKup + ') And Sifra_Obj Is Null '
Exec(@SSQL)
INSERT INTO #KupObj SELECT DISTINCT Sifra_Kup, Sifra_Obj FROM #KupObj1
End
If @GrArt Is Not Null
Begin
Create Table #GrArt
(
Sifra_Art varchar(20)
)
Create NonClustered Index IX_Art On #GrArt (Sifra_Art)
Set @SSQL = 'Insert Into #GrArt Select DISTINCT Sifra_Art From SGrArt Where Sif_GrArt In (' + @GrArt + ') '
Exec(@SSQL)
End
-------------------------------------------------------------------------------- U S L O V ------------------------------------------------------------------------------------------------------------
If @Sifra_Brand Is Not Null
Set @SSQLUsl = @SSQLUsl + 'And K.Sifra_Drg=' + Cast(@Sifra_BRand As Varchar(6)) + ' '
If @Sifra_ZBrand Is Not Null
Set @SSQLUsl = @SSQLUsl + 'And B.Sifra_Drg1=' + Cast(@Sifra_ZBrand As Varchar(6)) + ' '
If @Lokacija Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Lokacija=''' + @Lokacija + ''' '
If @Koi_Gradovi Is Not NULL
Begin
Set @SSQLUsl = @SSQLUsl + ' And ((KO.Sifra_Grad Is Not Null And KO.Sifra_Grad In (' + @Koi_Gradovi + '))
OR ( KO.Sifra_Grad Is Null and KUP.Sifra_Grad In ( ' + @Koi_Gradovi + '))) '
End
If @Koi_Regioni Is Not NULL
Begin
Set @SSQLUsl = @SSQLUsl + ' And ((KO.Sifra_Reg Is Not Null And KO.Sifra_Reg In (' + @Koi_Regioni + '))
OR ( KO.Sifra_Reg Is Null and KUP.Sifra_Reg In ( ' + @Koi_Regioni + '))) '
End
If @Kto Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Kto=' + @Kto + ' '
If @Sifra_Podg Is Not Null
If @PocnuvaSo ='D'
Set @SSQLUsl=@SSQLUsl+'AND (K.Sifra_Podg Like ''' + Rtrim(@Sifra_Podg) + '%'') '
Else
Set @SSQLUsl=@SSQLUsl + ' And K.Sifra_Podg=''' + @Sifra_Podg + ''' '
If @Sifra_Gr Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Gr=' + @Sifra_Gr + ' '
If @PoKojDatum = 'V'
Begin
If @Datum_Od Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And D.Datum_Vnes>=''' + Cast(@Datum_Od As Varchar(25)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And D.Datum_Vnes<''' + Cast(@Datum_Do As Varchar(25)) + ''' '
End
Else
Begin
If @Datum_Od Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And S.Datum_Dok>=''' + Cast(@Datum_Od As Varchar(25)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And S.Datum_Dok<=''' + Cast(@Datum_Do As Varchar(25)) + ''' '
End
If @Sifra_Kup_Od Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And D.Sifra_Kup>=''' + Cast(@Sifra_Kup_Od As Varchar(6)) + ''' '
If @Sifra_Kup_Do Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And D.Sifra_Kup<=''' + Cast(@Sifra_Kup_Do As Varchar(6)) + ''' '
If @GrKup Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And D.Sifra_Kup In (Select Distinct Sifra_Kup From SGrKup Where Sif_GrKup In ( ' + @GrKup + ' )) '
If @Pod1 Is Not NULL
If @KFPod1 = 'D'
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo1 Is Not Null And KO.KDrugo1 <> ' + Cast(@Pod1 As Varchar(6)) + ')
Or (KO.KDrugo1 Is Null And Kup.KDrugo1 <> ' + Cast(@Pod1 As Varchar(6)) + ') Or (KO.KDrugo1 Is Null And Kup.KDrugo1 Is Null)) '
Else
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo1 Is Not Null And KO.KDrugo1 = ' + Cast(@Pod1 As Varchar(6)) + ')
Or (KO.KDrugo1 Is Null And Kup.KDrugo1 = ' + Cast(@Pod1 As Varchar(6)) + ')) '
If @Pod2 Is Not NULL
If @KFPod2 = 'D'
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo2 Is Not Null And KO.KDrugo2 <> ' + Cast(@Pod2 As Varchar(6)) + ')
Or (KO.KDrugo2 Is Null And Kup.KDrugo2 <> ' + Cast(@Pod2 As Varchar(6)) + ') Or (KO.KDrugo2 Is Null And Kup.KDrugo2 Is Null)) '
Else
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo2 Is Not Null And KO.KDrugo2 = ' + Cast(@Pod2 As Varchar(6)) + ')
Or (KO.KDrugo2 Is Null And Kup.KDrugo2 = ' + Cast(@Pod2 As Varchar(6)) + ')) '
If @Pod3 Is Not NULL
If @KFPod3 = 'D'
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo3 Is Not Null And KO.KDrugo3 <> ' + Cast(@Pod3 As Varchar(6)) + ')
Or (KO.KDrugo3 Is Null And Kup.KDrugo3 <> ' + Cast(@Pod3 As Varchar(6)) + ') Or (KO.KDrugo3 Is Null And Kup.KDrugo3 Is Null)) '
Else
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo3 Is Not Null And KO.KDrugo3 = ' + Cast(@Pod3 As Varchar(6)) + ')
Or (KO.KDrugo3 Is Null And Kup.KDrugo3 = ' + Cast(@Pod3 As Varchar(6)) + ')) '
If @Pod4 Is Not NULL
If @KFPod4 = 'D'
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo4 Is Not Null And KO.KDrugo4 <> ' + Cast(@Pod4 As Varchar(6)) + ')
Or (KO.KDrugo4 Is Null And Kup.KDrugo4 <> ' + Cast(@Pod4 As Varchar(6)) + ') Or (KO.KDrugo4 Is Null And Kup.KDrugo4 Is Null)) '
Else
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo4 Is Not Null And KO.KDrugo4 = ' + Cast(@Pod4 As Varchar(6)) + ')
Or (KO.KDrugo4 Is Null And Kup.KDrugo4 = ' + Cast(@Pod4 As Varchar(6)) + ')) '
If @Pod5 Is Not NULL
If @KFPod5 = 'D'
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo5 Is Not Null And KO.KDrugo5 <> ' + Cast(@Pod5 As Varchar(6)) + ')
Or (KO.KDrugo5 Is Null And Kup.KDrugo5 <> ' + Cast(@Pod5 As Varchar(6)) + ') Or (KO.KDrugo5 Is Null And Kup.KDrugo5 Is Null)) '
Else
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo5 Is Not Null And KO.KDrugo5 = ' + Cast(@Pod5 As Varchar(6)) + ')
Or (KO.KDrugo5 Is Null And Kup.KDrugo5 = ' + Cast(@Pod5 As Varchar(6)) + ')) '
If @Pod6 Is Not NULL
If @KFPod6 = 'D'
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo6 Is Not Null And KO.KDrugo6 <> ' + Cast(@Pod6 As Varchar(6)) + ')
Or (KO.KDrugo6 Is Null And Kup.KDrugo6 <> ' + Cast(@Pod6 As Varchar(6)) + ') Or (KO.KDrugo6 Is Null And Kup.KDrugo6 Is Null)) '
Else
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo6 Is Not Null And KO.KDrugo6 = ' + Cast(@Pod6 As Varchar(6)) + ')
Or (KO.KDrugo6 Is Null And Kup.KDrugo6 = ' + Cast(@Pod6 As Varchar(6)) + ')) '
If @Pod7 Is Not NULL
If @KFPod7 = 'D'
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo7 Is Not Null And KO.KDrugo7 <> ' + Cast(@Pod7 As Varchar(6)) + ')
Or (KO.KDrugo7 Is Null And Kup.KDrugo7 <> ' + Cast(@Pod7 As Varchar(6)) + ') Or (KO.KDrugo7 Is Null And Kup.KDrugo7 Is Null)) '
Else
Set @SSQLUsl = @SSQLUsl + ' And ((KO.KDrugo7 Is Not Null And KO.KDrugo7 = ' + Cast(@Pod7 As Varchar(6)) + ')
Or (KO.KDrugo7 Is Null And Kup.KDrugo7 = ' + Cast(@Pod7 As Varchar(6)) + ')) '
If @Sifra_Tip Is Not NULL
Begin
Set @SSQLUsl = @SSQLUsl + ' And ((KO.Sifra_Tip Is Not Null And KO.Sifra_Tip = ' + Cast(@Sifra_Tip As Varchar(6)) + ')
Or (KO.Sifra_Tip Is Null And Kup.Sifra_Tip = ' + Cast(@Sifra_Tip As Varchar(6)) + ')) '
End
If @Sifra_Nivo Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And KUP.Sifra_Nivo = ''' + @Sifra_Nivo + ''' '
If @KojaCena Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And KUP.KojaCena = ''' + @KojaCena + ''' '
If @KomercKako = 'I'
If @Sifra_Pat IS NOT NULL
SET @SSQLUsl = @SSQLUsl + ' AND D.Sifra_Pat In (' + @Sifra_Pat + ') '
If @KomercKako = 'T'
If @Sifra_Pat IS NOT NULL
Set @SSQLUsl = @SSQLUsl + ' And ((KO.Sifra_Pat Is Not Null And KO.Sifra_Pat In (' + @Sifra_Pat + '))
OR ( KO.Sifra_Pat Is Null and KUP.Sifra_Pat In (' + @Sifra_Pat + '))) '
If @Sifra_Mest IS NOT NULL
SET @SSQLUsl = @SSQLUsl + ' AND D.Sifra_Mest = ' + Cast(@Sifra_Mest as varchar(6)) + ' '
If @Sifra_Art_Od Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_Art>=''' + @Sifra_Art_Od + ''' '
If @Sifra_Art_Do Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_Art<=''' + @Sifra_Art_Do + ''' '
If @TipKup Is Not NULL
Begin
Set @SSQLUsl = @SSQLUsl + ' And ((KO.TipKup Is Not Null And KO.TipKup In (' + @TipKup + '))
OR ( KO.TipKup Is Null and KUP.TipKup In ( ' + @TipKup + '))) '
End
If @Sifra_OE Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_OE=' + Cast(@Sifra_OE As Varchar(5)) + ' '
If @KoiOE Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_OE IN (' + @KoiOE + ') '
If @TipDokProd IS NOT NULL
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_Dok IN (' + @TipDokProd + ') '
If @Drugo1 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo1=' + Cast(@Drugo1 As Varchar(6)) + ' '
If @Drugo2 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo2=' + Cast(@Drugo2 As Varchar(6)) + ' '
If @Drugo3 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo3=' + Cast(@Drugo3 As Varchar(6)) + ' '
If @Drugo4 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo4=' + Cast(@Drugo4 As Varchar(6)) + ' '
If @Drugo5 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo5=' + Cast(@Drugo5 As Varchar(6)) + ' '
If @Drugo6 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo6=' + Cast(@Drugo6 As Varchar(6)) + ' '
If @Drugo7 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo7=' + Cast(@Drugo7 As Varchar(6)) + ' '
If @Sifra_Div Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Sifra_Div=' + Cast(@Sifra_Div As Varchar(6)) + ' '
If @ImeArtDel IS NOT NULL
If IsNumeric(@ImeArtDel)=1
Set @SSQLUsl = @SSQLUsl + ' And K.Sifra_Art Like ''' + @ImeArtDel + '%'' '
Else
Set @SSQLUsl = @SSQLUsl + ' And K.ImeArt Like ''' + @ImeArtDel + '%'' '
If @Posrednik Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And PM.Posrednik=' + Cast(@Posrednik As Varchar(6)) + ' '
----------------------------------------------------------------------------- T O P L I S T A ---------------------------------------------------------------------------------------------------
Create Table #TopLista
(
Sifra_Kup char(6),
Sifra_Obj smallint,
Sifra_Mest int,
Kolicina decimal(18,4),
BrendKolicina decimal(18,4),
Tezina decimal(18,4),
BTezina decimal(18,4),
Volumen decimal(18,4),
Paketi decimal(18,2),
Izlezi int,
Vr_Osnov decimal(18,4),
Vr_SoRabat decimal(18,4),
Vr_Krajna decimal(18,4),
Vk_NPS decimal(18,4),
Fakturi int,
Vr_NabBezDDV decimal(18,4),
Vr_NabSoDDV decimal(18,4),
Vr_PoGotCena decimal(18,4),
Vr_Rabat decimal(18,4) NULL,
Vr_kasa decimal(18,4) NULL,
Vr_Devizna decimal(18,4),
ProcentPoArt decimal(18,4),
Godina smallint,
Mesec smallint,
BrRazlPM smallint,
BrStornoF smallint
)
Set @SSQL = ' Select D.Sifra_Kup, '
If @Komint_KObj = 'K'
Set @SSQL = @SSQL + ' Null as sifra_obj, '
Else If @Komint_KObj = 'O'
Set @SSQL = @SSQL + ' D.Sifra_Obj, '
If @PoProdMesta = 'D'
Set @SSQL = @SSQL + ' D.Sifra_Mest, '
Else If @PoProdMesta = 'N'
Set @SSQL = @SSQL + ' Null as Sifra_Mest, '
Set @SSQL = @SSQL + '
Round(Sum(TS.Ima_Kolic*S.Kolic), 4) As Kolicina,
Round(Sum(TS.Ima_Kolic*S.Kolic*K.KolkuDrg), 4) As BrendKolicina,
Round(Sum(TS.Ima_Kolic*S.Kolic*K.Tezina/1000),4) As Tezina,
Round(Sum(TS.Ima_Kolic*S.Kolic*K.BTezina/1000),4) As BTezina,
Round(Sum(TS.Ima_Kolic*S.Kolic*K.Volumen/1000),4) As Volumen,
Round(Sum(TS.Ima_Kolic*S.Kolic/(Case When K.ImaKomerc>0 Then K.ImaKomerc Else 1 End)),2) As Paketi,
Count(S.Sifra_Art) As Izlezi,
Round(Sum(dbo.fn_vr_osnov (S.Kolic*TS.Ima_Kolic, S.DokCena*TS.Cena/TS.VkCena, S.DanDokCena, S.POsn)), 4) as Vr_Osnov,
Round(Sum(dbo.fn_vr_sorabat(S.Kolic*TS.Ima_Kolic, S.DokCena*TS.Cena/TS.VkCena, S.DanDokCena, S.POsn, S.Uces, D.Kasa)), 4) as Vr_SoRabat,
Round(Sum(dbo.fn_vr_krajna (S.Kolic*TS.Ima_Kolic, S.DokCena*TS.Cena/TS.VkCena, S.DanDokCena, S.POsn, S.Uces, D.Kasa)), 4) as Vr_Krajna,
Round(Sum(S.Kolic*TS.Ima_Kolic*K.GotCena), 4) Vk_NPS, Count(Distinct S.DokrID) As Fakturi,
Round(Sum(S.Kolic * S.NabCena), 4) As Vr_NabBezDDV, Round(Sum(S.Kolic * S.NabCena * (1+S.POsn/100)), 4) As Vr_NabSoDDV,
Round(Sum(S.Kolic * K.GotCena), 4) Vr_PoGotCena,
Round(Sum(dbo.fn_VratiRabatBezDDV(S.Kolic*TS.Ima_Kolic, S.DokCena*TS.Cena/TS.VkCena, S.DanDokCena, S.POsn, S.Uces)), 4) As Vr_Rabat,
Round(Sum(dbo.fn_VratiKasaBezDDV(S.Kolic*TS.Ima_Kolic, S.DokCena*TS.Cena/TS.VkCena, S.DanDokCena, S.POsn, S.Uces, D.Kasa)), 4) As Vr_Kasa, '
If @DevCena In ('D', 'B')
Set @SSQL = @SSQL + ' Round(Sum(S.Kolic * dbo.fn_VratiCena(S.DokCena, S.Posn, S.DanDokCena, ''' + (Case When @DevCena = 'B' Then 'N' Else 'D' End) + ''') / D.Kurs), 4) Vr_Devizna, '
Else
Set @SSQL = @SSQL + ' Null as Vr_Devizna, '
If @ProcPoArtikli = 'D' -- koga ke se gleda od dve bazi treba da se proveri kako ke raboti
Set @SSQL=@SSQL + ' (Count(Distinct S.Sifra_art)/ ' + cast(@VkArt as Varchar(10)) + ')*100 as ProcentPoArt, '
Else
Set @SSQL=@SSQL + ' 0 as ProcentPoArt, '
If @PoGodini = 'D'
Set @SSQL=@SSQL + ' Year(S.Datum_Dok) Godina, '
Else
Set @SSQL=@SSQL + ' Null as Godina, '
If @PoMeseci = 'D'
Set @SSQL=@SSQL + ' Month(S.Datum_Dok) Mesec '
Else
Set @SSQL=@SSQL + ' Null as Mesec '
set @SSQL = @SSQL + ', count(distinct (case when D.Sifra_Obj is null then 0 else D.Sifra_Obj end)),
count(case when TD.Plus_Minus = ''-'' then D.DokrId end) '
------- From Query
Set @SSQLFrom = ' From #tSostav TS
Inner Join Stavr S On TS.Sifra_Art=S.Sifra_Art
Inner Join KatArt K ON TS.Sifra_Sur=K.Sifra_Art
Inner Join Dokr D ON S.DokrID=D.DokrID And D.Sifra_Za=1
Left Outer Join Komint KUP ON D.Sifra_Kup=KUP.Sifra_Kup
Left Outer Join KObjekti KO ON D.Sifra_obj=KO.Sifra_obj and D.Sifra_kup=KO.Sifra_kup
Inner Join TipDok TD ON D.Sifra_Dok = TD.Sifra_Dok '
If @PoProdMesta = 'D' or @Posrednik is not null
Set @SSQLFrom = @SSQLFrom + ' Inner Join ProdMest PM ON D.Sifra_Mest=PM.Sifra_Mest ' --D.Sifra_obj=KO.Sifra_obj and D.Sifra_kup=KO.Sifra_kup and
If @Sifra_Gr Is Not Null
Set @SSQLFrom = @SSQLFrom + 'Inner Join PodGrupi P ON K.Sifra_Podg=P.Sifra_Podg '
If @Sifra_ZBrand Is Not Null
Set @SSQLFrom = @SSQLFrom + 'Inner Join DrgPodel B On K.Sifra_Drg=B.Sifra_Drg '
If @GrKup Is Not Null
Set @SSQLFrom = @SSQLFrom + ' Inner Join #KupObj GK On GK.Sifra_Kup=D.Sifra_Kup
And (Case When D.Sifra_Obj Is Not Null Then D.Sifra_Obj Else 1234 End) = (Case When GK.Sifra_Obj Is Not Null Then GK.Sifra_Obj Else 1234 End) '
If @GrArt Is Not Null
Set @SSQLFrom = @SSQLFrom + ' Inner Join #GrArt GA On GA.Sifra_Art=K.Sifra_Art '
Set @SSQLFrom = @SSQLFrom + 'Where K.Iskluci <> ''D'' '
--------- Group
If @Komint_KObj = 'K'
Set @SSQLGroup = @SSQLGroup + 'Group By D.Sifra_Kup '
Else If @Komint_KObj = 'O'
Set @SSQLGroup = @SSQLGroup + 'Group By D.Sifra_Kup, D.Sifra_Obj '
If @PoProdMesta = 'D'
Set @SSQLGroup = @SSQLGroup + ' ,D.Sifra_Mest, PM.Opis '
If @PoGodini = 'D'
Set @SSQLGroup=@SSQLGroup + ' ,Year(S.Datum_Dok) '
If @PoMeseci = 'D'
Set @SSQLGroup=@SSQLGroup + ' ,Month(S.Datum_Dok) '
--print @SSQL + @SSQLFrom + @SSQLUsl + @SSQLGroup
Insert Into #TopLista Exec(@SSQL + @SSQLFrom + @SSQLUsl + @SSQLGroup)
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_lkpsgrkup]'))
drop procedure [dbo].[sp_lkpsgrkup]
Go
CREATE PROCEDURE sp_lkpSGrKup
@Sif_GrKup Char(6)
AS
SELECT Sifra_Kup FROM SGrKup
WHERE Sif_GrKup = @Sif_GrKup
ORDER BY Sifra_Kup
RETURN @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_lkpsgrorg]'))
drop procedure [dbo].[sp_lkpsgrorg]
Go
CREATE PROCEDURE sp_lkpSGrOrg
@Sif_GrOrg Char(6)
AS
SELECT Sifra_OE FROM SGrOrg
WHERE Sif_GrOrg = @Sif_GrOrg
ORDER BY Sifra_OE
RETURN @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_lkpsgrpat]'))
drop procedure [dbo].[sp_lkpsgrpat]
Go
CREATE PROCEDURE sp_lkpSGrPat
@Sif_GrPat Char(6)
AS
SELECT Sifra_Pat FROM SGrPat
WHERE Sif_GrPat = @Sif_GrPat
ORDER BY Sifra_Pat
RETURN @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_lkpsleden]'))
drop procedure [dbo].[sp_lkpsleden]
Go
CREATE PROCEDURE [dbo].[sp_lkpSleden]
@Sifra VARCHAR(20),
@Tabela VARCHAR(20),
@Nacin VARCHAR(10),
@AlfaMoze char(1) = 'N',
@Sifra2 VARCHAR(20)=null,
@SlednaSifra VARCHAR(20) OUTPUT,
@SlednoIme nVARCHAR(70) OUTPUT,
@SlednoIme2 nVARCHAR(70) = Null OUTPUT,
@Filter nvarchar(20) = NULL
AS
Declare @Greska Int
Declare @IntSifra Int
Set @Tabela=Upper(@Tabela)
Set @Nacin=Upper(@Nacin)
If @AlfaMoze <> 'D' AND len(@Sifra)<10 AND @Tabela <> 'GTIPKUP' AND @Tabela <> 'GRORG' AND @Tabela <> 'SYSUSERS' AND @Tabela <> 'NIVO' AND @Tabela <> 'BANKSMETKI' AND @Tabela <> 'GRPIZBOR' AND @Tabela <> 'VIDVOZILA'
AND @Tabela <> 'MIKROLOK' AND @Tabela <> 'MAKROLOK' AND @Tabela <> 'AKCIIPROMO' AND @Tabela <> 'KONFSLAGANJE' AND @Tabela <> 'ANAL'
and @Tabela <> 'GRPAT' AND @Tabela <> 'VIDDOG' AND @Tabela <> 'TARMODEL' and @Tabela <> 'NGCOURSETYPE' and @Tabela <> 'NGSCHOOLYEAR'
and @Tabela <> 'NGBILLCODES' and @Tabela <> 'NGFAMILIJA' and @Tabela <> 'FORMULADEF' AND @Tabela<>'GRKUP' AND @Tabela <> 'DBUSERS' AND @Tabela <> 'VELICSKALA' AND @Tabela <> 'TIPAKTIVNOSTI' AND @Tabela<>'GRDOK' AND @Tabela<>'WHMLOKACIJA'
AND @Tabela <> 'GRPMASI'
Set @IntSifra = CONVERT(Int, @Sifra)
If @Tabela = 'KATART'
Begin
If @Nacin = 'SLEDEN'
SELECT Top 1 @SlednaSifra=Sifra_Art, @SlednoIme=ImeArt, @SlednoIme2=ImeArt2
FROM KatArt WITH(NOLOCK)
WHERE Sifra_Art>@Sifra
ORDER BY Sifra_Art ASC
Else If @Nacin = 'PRETHODEN'
SELECT Top 1 @SlednaSifra=Sifra_Art, @SlednoIme=ImeArt, @SlednoIme2=ImeArt2
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_lkpsleden_nacplak]'))
drop procedure [dbo].[sp_lkpsleden_nacplak]
Go
CREATE PROCEDURE [dbo].[sp_lkpSleden_NacPlak]
@Sifra VARCHAR(20),
@Tabela VARCHAR(20),
@Nacin VARCHAR(10),
@AlfaMoze char(1) = 'N',
@Sifra2 VARCHAR(20)=null,
@SlednaSifra VARCHAR(20) OUTPUT,
@SlednoIme nVARCHAR(70) OUTPUT,
@SlednoIme2 nVARCHAR(70) = Null OUTPUT,
@Filter nvarchar(20) = NULL
AS
Set @Nacin = Upper(@Nacin)
If @Nacin = 'SLEDEN'
SELECT Top 1 @SlednaSifra=Sifra_Nac, @SlednoIme=ImeNac
FROM NacPlak WITH(NOLOCK)
WHERE Sifra_Nac>@Sifra
ORDER BY Sifra_Nac ASC
Else If @Nacin = 'PRETHODEN'
SELECT Top 1 @SlednaSifra=Sifra_Nac, @SlednoIme=ImeNac
FROM NacPlak WITH(NOLOCK)
WHERE Sifra_Nac<@Sifra
ORDER BY Sifra_Nac DESC
Else If @Nacin = 'TOCEN'
SELECT @SlednaSifra=Sifra_Nac, @SlednoIme=ImeNac
FROM NacPlak WITH(NOLOCK)
WHERE Sifra_Nac=@Sifra
IF @@ERROR=0 AND @@ROWCOUNT=0
RETURN 77000
ELSE
RETURN @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_lkpsleden_ng]'))
drop procedure [dbo].[sp_lkpsleden_ng]
Go
CREATE PROCEDURE sp_lkpSleden_NG
@Sifra VARCHAR(20),
@Tabela VARCHAR(20),
@Nacin VARCHAR(10),
@AlfaMoze char(1) = 'N',
@Sifra2 VARCHAR(20)=null,
@SlednaSifra VARCHAR(20) OUTPUT,
@SlednoIme VARCHAR(70) OUTPUT,
@SlednoIme2 VARCHAR(70) = Null OUTPUT,
@Filter varchar(20) = NULL
AS
Declare @Greska Int
Declare @IntSifra Int
Set @Tabela=Upper(@Tabela)
Set @Nacin=Upper(@Nacin)
If @AlfaMoze <> 'D' AND len(@Sifra)<10 AND @Tabela <> 'GTIPKUP' AND @Tabela <> 'GRORG' AND @Tabela <> 'SYSUSERS' AND @Tabela <> 'NIVO' AND @Tabela <> 'BANKSMETKI' AND @Tabela <> 'GRPIZBOR' AND @Tabela <> 'VIDVOZILA'
AND @Tabela <> 'MIKROLOK' AND @Tabela <> 'MAKROLOK' AND @Tabela <> 'AKCIIPROMO' AND @Tabela <> 'KONFSLAGANJE' AND @Tabela <> 'ANAL'
and @Tabela <> 'GRPAT' AND @Tabela <> 'VIDDOG' AND @Tabela <> 'TARMODEL' and @Tabela <> 'NGCOURSETYPE' and @Tabela <> 'NGSCHOOLYEAR'
and @Tabela <> 'NGBILLCODES' and @Tabela <> 'NGFAMILIJA' and @Tabela <> 'FORMULADEF'
Set @IntSifra = CONVERT(Int, @Sifra)
If @Tabela = 'NGBILLCODES'
Begin
If @Nacin = 'SLEDEN'
SELECT Top 1 @SlednaSifra=Sifra_BillCode, @SlednoIme=ImeBillCode
FROM NGBillCodes WITH(NOLOCK)
WHERE Cast(Sifra_BillCode as varchar(20)) >@Sifra
ORDER BY Sifra_BillCode ASC
Else If @Nacin = 'PRETHODEN'
SELECT Top 1 @SlednaSifra=Sifra_BillCode, @SlednoIme=ImeBillCode
A.Sifra_Tar, S.POsn, CASE WHEN S.DanCena='D' THEN S.Cena ELSE Round(S.Cena*(1+S.POsn/100),4) END as Cena, -- Round(S.NNabCena*(1+S.POsn/100),4 ) Cena, bese do 11.06.08
SUM(P.Kolic) Kolicina, SUM(P.Paketi) Paketi FROM MagStavr P
INNER JOIN KatArt A ON A.Sifra_Art=P.Sifra_Art
LEFT OUTER JOIN SoArt S ON S.Sifra_Art=P.Sifra_Art AND S.Sifra_OE= @Sifra_OE
WHERE P.DokrID IN (SELECT DokrID FROM #TmpDokrID)
GROUP BY P.Sifra_Art, A.ImeArt, A.EdMera, A.ImaKomerc, A.Lokacija, A.Sifra_Tar, S.Cena, S.DanCena, S.POsn
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_mark_0_pec_dok]'))
drop procedure [dbo].[sp_mark_0_pec_dok]
Go
CREATE PROCEDURE sp_Mark_0_Pec_Dok
@Sifra_Oe smallint,
@Sifra_Dok smallint,
@Broj_Dok int
AS
update dokr
set Pec_Dok = null
Where Sifra_Oe = @Sifra_oe and Sifra_Dok = @Sifra_Dok and Broj_Dok = @Broj_Dok
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_mark_dokrlikvid]'))
drop procedure [dbo].[sp_mark_dokrlikvid]
Go
CREATE PROCEDURE sp_Mark_DokrLikvid
@Sifra_Oe smallint,
@Sifra_dok smallint,
@Broj_Dok int,
@DaliLikvid char(1)
AS
Update Dokr Set Likvid = @DaliLikvid
Where Sifra_Oe=@Sifra_Oe And Sifra_Dok=@Sifra_Dok And Broj_dok=@Broj_Dok
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_mark_odjaven]'))
drop procedure [dbo].[sp_mark_odjaven]
Go
CREATE PROCEDURE sp_Mark_Odjaven
@ListaDokrId varchar(7000)
AS
Declare @SSQL varchar(7500)
set @SSQL = '
Update Dokr
set Spck_Stat = ''F''
where dokrid in (' + @ListaDokrId + ') '
exec (@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_mark_scanlista]'))
drop procedure [dbo].[sp_mark_scanlista]
Go
CREATE PROCEDURE sp_Mark_ScanLista
@Sifra_OE smallint,
@Tip_Lista smallint,
@Broj_Lista int,
@DokrId int
AS
update ScanLista
set DokrId = @DokrId
WHERE Sifra_OE=@Sifra_OE AND Tip_Lista=@Tip_Lista AND Broj_Lista=@Broj_Lista
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_mark_storniran]'))
drop procedure [dbo].[sp_mark_storniran]
Go
CREATE PROCEDURE [dbo].[sp_Mark_Storniran]
@DokrId int
AS
Declare @SSQL varchar(7500)
Update Dokr
set Spck_Stat = 'S'
where dokrid = @DokrId
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_markblokirani]'))
drop procedure [dbo].[sp_markblokirani]
Go
CREATE PROCEDURE sp_MarkBlokirani
@KoiOE varchar(800),
@KoiTipDok varchar(100),
@Datum_Do smalldatetime,
@Sifra_Kup char(6) = NULL,
@Sifra_Obj smallint = NULL,
@Sifra_Pat smallint = NULL,
@IskluciMes char(1) = 'N'
AS
Declare @SSQL varchar(4000)
SET @SSQL = 'UPDATE Dokr SET Blokiran = ''T'' WHERE Sifra_OE IN (' + @KoiOE +
') AND Sifra_Dok IN (' + @KoiTipDok + ') AND Datum_Dok <= ''' +
Cast(@Datum_Do as varchar(35)) + ''' AND (Blokiran <> ''D'' OR Blokiran IS NULL) '
IF @Sifra_Kup IS NOT NULL
SET @SSQL = @SSQL + ' AND Sifra_Kup = ' + @Sifra_Kup
IF @Sifra_Obj IS NOT NULL
SET @SSQL = @SSQL + ' AND Sifra_Obj = ' + Cast(@Sifra_Obj as varchar(6))
IF @Sifra_Pat IS NOT NULL
SET @SSQL = @SSQL + ' AND Sifra_OE= ' + Cast(@Sifra_Pat as varchar(6))
IF @IskluciMes = 'D'
SET @SSQL = @SSQL + ' AND Sifra_Kup NOT IN (SELECT Sifra_Kup FROM Komint WHERE KDrugo5 IS NULL OR KDrugo5 <> 1)'
EXEC(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_material_export]'))
drop procedure [dbo].[sp_material_export]
Go
CREATE PROCEDURE sp_Material_Export
@Sifra_Oe smallint,
@Datum_Dok smalldatetime
AS
IF EXISTS ( SELECT * FROM tempdb..sysobjects WHERE name='##TmpMaterExp') DROP TABLE ##TmpMaterExp
CREATE TABLE ##TmpMaterExp
(
Sifra_Art CHAR(18),
PlivaMaterial CHAR(18) NULL,
EdMera CHAR(3),
ImeArt CHAR(40),
MaterialType CHAR(4),
StandardPrice CHAR(11) NULL,
CurrencyKey CHAR(3) NULL
)
CREATE TABLE #TmpNabVred
(Sifra_Art varchar(20),
NabVrednost decimal(18,2),
NabKolic decimal(18,2))
INSERT INTO #TmpNabVred (Sifra_Art, NabVrednost, NabKolic)
SELECT Sifra_Art, Round(Sum(Case VlIzl When 'V' Then Kolic*NabCena Else -1*Kolic*NabCena End),2), Sum(Case VlIzl When 'V' Then Kolic Else -1*Kolic End)
From Stavr
Where Sifra_Oe=101 And Datum_Dok<=@Datum_Dok
Group By Sifra_Art
Having Sum(Case VlIzl When 'V' Then Kolic Else -1*Kolic End) > 0
INSERT INTO #TmpNabVred (Sifra_Art, NabVrednost, NabKolic)
Select Sifra_Art, Sum(Case When VlIzl='V' Then Iznos_Razl Else -1*Iznos_Razl End), 0
From RazlFin
Where Sifra_Oe=101 And Datum_Dok<=@Datum_Dok
Group By Sifra_Art
Create Table #TmpPom
(Sifra_Art varchar(20),
NabVrednost decimal(18,2),
NabKolic decimal(18,2))
Insert Into #TmpPom
Select Sifra_Art, Sum(NabVrednost), Sum(NabKolic)
From #TmpNabVred
Group By Sifra_Art
CREATE TABLE #TmpNabC
(Sifra_Art varchar(20),
NabCena decimal(9,2))
INSERT INTO #TmpNabC (Sifra_Art, NabCena)
SELECT Sifra_Art, Round(Sum(Case When NabKolic > 0 Then NabVrednost/NabKolic Else 0 End),4)
From #TmpPom
Group By Sifra_Art
--UPDATE ##TmpMaterExp set StandardPrice = C.NabCena FROM #TmpNabC C WHERE ##TmpMaterExp.Sifra_Art = C.Sifra_Art
Set @SSQL=@SSQL + ' Sum(Case D.VlIzl When ''V'' Then (S.Kolic* dbo.fn_VratiCena(S.MagCena, S.Posn, S.DanMagCena, ''' + @CenaSoDanok + ''')) Else 0 End),
Sum(Case D.VlIzl When ''I'' Then (S.Kolic* dbo.fn_VratiCena(S.DokCena, S.Posn, S.DanDokCena, ''' + @CenaSoDanok + ''')) Else 0 End), '
End
Set @SSQL = @SSQL + ' Sum(dbo.fn_VratiRabatBezDDV(S.Kolic, S.DokCena, S.DanDokCena, S.Posn, S.Uces)) as Rabat '
Set @SSQL = @SSQL + ' From Dokr D
Inner Join Stavr S On S.DokrID=D.DokrID
Left Outer Join Nalozi N On N.Sifra_Nal = D.Sifra_Nal and N.Broj_Nal = D.Broj_Nal
INNER JOIN TipDok TD ON D.Sifra_Dok=TD.Sifra_Dok
INNER JOIN Katart K ON K.Sifra_Art=S.Sifra_Art
Inner Join Tarifi T On T.Sifra_Tar = K.Sifra_Tar
Left Outer Join DDVStapki DS On S.Datum_Dok >= DS.Datum_Od And S.Datum_Dok <= DS.Datum_Do
Where 1=1 '
If @Sifra_Nal Is Not Null
Set @SSQLUslMat = @SSQLUslMat + ' And D.Sifra_Nal = ''' + Cast(@Sifra_Nal as varchar(10)) + ''' '
If @Datum_Nal_Od Is Not Null
Begin
If @BezBrNal <> 'D' Or @BezBrNal Is Null
Set @SSQLUslMat = @SSQLUslMat + ' And N.Datum_Nal >= ''' + Cast(@Datum_Nal_Od as varchar(30)) + ''' '
Else
Set @SSQLUslMat = @SSQLUslMat + ' And (N.Datum_Nal >= ''' + Cast(@Datum_Nal_Od as varchar(30)) + ''' Or Datum_Nal Is Null)'
End
If @Datum_Nal_Do Is Not Null
Begin
If @BezBrNal <> 'D' Or @BezBrNal Is Null
Set @SSQLUslMat = @SSQLUslMat + ' And N.Datum_Nal <= ''' + Cast(@Datum_Nal_Do as varchar(30)) + ''' '
Else
Set @SSQLUslMat = @SSQLUslMat + ' And (N.Datum_Nal <= ''' + Cast(@Datum_Nal_Do as varchar(30)) + ''' Or Datum_Nal Is Null)'
End
If @BezBrNal = 'D' and @Datum_DokOd Is Not Null
Set @SSQLUslMat = @SSQLUslMat + ' And D.Datum_Dok >= ''' + Cast(@Datum_DokOd as varchar(30)) + ''' '
If @BezBrNal = 'D' and @Datum_DokDo Is Not Null
Set @SSQLUslMat = @SSQLUslMat + ' And D.Datum_Dok <= ''' + Cast(@Datum_DokDo as varchar(30)) + ''' '
/* If @BezBrNal<>'D' -- koga se bara izvestaj za onie stavki bez broj na nalog se isklucuvaat datumite
Begin
If @Datum_Nal_Od Is Not Null
Set @SSQL = @SSQL + ' And N.Datum_Nal >= ''' + Cast(@Datum_Nal_Od as varchar(30)) + ''' '
If @Datum_Nal_Do Is Not Null
Set @SSQL = @SSQL + ' And N.Datum_Nal <= ''' + Cast(@Datum_Nal_Do as varchar(30)) + ''' '
End
*/ If @Sifra_Oe Is Not Null
Set @SSQLUslMat = @SSQLUslMat + ' And D.Sifra_Oe = ''' + Cast(@Sifra_Oe as varchar(10)) + ''' '
If @Koi_OE Is Not NULL
Set @SSQLUslMat = @SSQLUslMat + ' And D.Sifra_OE IN (Select G.Sifra_Oe from SGrOrg G where G.sif_GrOrg = ''' + @Koi_Oe + ''') '
Set @SSQL = @SSQL + @SSQLUslMat
If @PoMeseci = 'D'
Set @SSQL = @SSQL + ' Group By D.Sifra_Nal, D.Broj_Nal, N.Datum_Nal '
Else
Set @SSQL = @SSQL + ' Group By D.Sifra_Nal, D.Broj_Nal, N.Datum_Nal '
Insert Into #Tab(Sifra_Nal, Broj_Nal, Datum_Nal, MatDolzi, MatPobaruva, Rabat) Exec(@SSQL)
Set @SSQL = ' Select Sifra_Nal, Broj_Nal, Datum_Nal, sum(Dolzi), Sum(pobaruva)
From GStav
Where 1=1 '
If @Kto Is Not Null
Set @SSQL = @SSQL + ' And Kto_Anal In ( ''' + @Kto + ''') '
If @Sifra_Nal Is Not Null
Set @SSQL = @SSQL + ' And Sifra_Nal = ''' + Cast(@Sifra_Nal as varchar(10)) + ''' '
If @Datum_Nal_Od Is Not Null
Set @SSQL = @SSQL + ' And Datum_Nal >= ''' + Cast(@Datum_Nal_Od as varchar(30)) + ''' '
If @Datum_Nal_Do Is Not Null
Set @SSQL = @SSQL + ' And Datum_Nal <= ''' + Cast(@Datum_Nal_Do as varchar(30)) + ''' '
If @SamoOdOrged = 'D'
Begin
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' And Sifra_Oe = ''' + Cast(@Sifra_Oe as varchar(10)) + ''' '
If @Koi_OE Is Not NULL
Set @SSQL = @SSQL + ' And Sifra_OE IN (Select G.Sifra_Oe from SGrOrg G where G.sif_GrOrg = ''' + @Koi_Oe + ''') '
End
Set @SSQL = @SSQL + ' Group By Sifra_Nal, Broj_Nal, Datum_Nal '
-- If @BezBrNal <> 'D' -- (='N' ili Null) Da ne se izvrsuva dzabe ako sakame da gi vidime samo dok. bez br.na nalog, zatoa sto vo GStav sekogas ima broj na nalog
Insert Into #Tab(Sifra_Nal, Broj_Nal, Datum_Nal, GkDolzi, GkPobaruva) Exec(@SSQL)
If @PrikRazlCeni = 'D'
Begin
If @PoKojaCena = 'D'
Begin
Set @SSQL = ' Select D.Sifra_Nal, D.Broj_Nal, N.Datum_Nal,
INNER JOIN Katart K ON S.Sifra_Art=K.Sifra_Art INNER JOIN Tarifi T ON K.Sifra_Tar=T.Sifra_Tar
LEFT OUTER JOIN Komint Kup ON S.Dobav=Kup.Sifra_Kup
WHERE S.DevFraID= @DevFraID
ORDER BY S.DevFraStID
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_matstavkioddevfra_mag]'))
drop procedure [dbo].[sp_matstavkioddevfra_mag]
Go
CREATE PROCEDURE sp_MatStavkiOdDevFra_Mag
@DevFraID integer
AS
Declare @DokrID integer
SELECT @DokrID=DokrID FROM Dokr D INNER JOIN DevFra DF ON D.Sifra_Oe=DF.Sifra_OE AND D.Sifra_Dok=DF.Sifra_Dok AND D.Broj_Dok=DF.Broj_DevF WHERE DF.DevFraID=@DevFraID
CREATE TABLE #TmpMagStavr
(Sifra_Art varchar(20),
Kolic decimal(18,6),
SpecOzn varchar(60),
Rbr smallint,
LotBr varchar(30),
Lokacija varchar(50),
Sifra_Boja smallint,
Sifra_Velic smallint)
INSERT INTO #TmpMagStavr (Sifra_Art, Kolic, SpecOzn, Rbr, LotBr, Lokacija) SELECT Sifra_Art, Kolic, SpecOzn, Rbr, LotBr, Lokacija FROM MagStavr WHERE DokrID=@DokrID
UPDATE #TmpMagStavr SET Sifra_Velic = Substring(LotBr, PatIndex('%:%', LotBr)+1, 5)
SELECT S.IDDevSt, S.Sifra_Oe, S.Broj_Kalk, S.Sifra_art, CASE WHEN MS.LotBr IS NULL THEN S.Kolic ELSE Ms.Kolic END AS Kolic, S.DevCena, S.Uces, S.CenaIznos, S.Ptar, S.Posn, S.CarBroj,
Inner Join DevKalk D On D.Sifra_Oe=S.Sifra_Oe and D.Broj_Kalk=S.Broj_Kalk AND D.Sifra_Dok=S.Sifra_Dok -- dod 20.10.2005
INNER JOIN Katart K ON S.Sifra_Art=K.Sifra_Art
INNER JOIN Tarifi T ON K.Sifra_Tar=T.Sifra_Tar
Left Outer Join KrsLista V
On V.SImeVal = D.KojaVal
WHERE 1 = 1 '
If @Sifra_Nal Is NOT Null
SET @SSQL = @SSQL + 'WHERE D.Sifra_Nal=''' + Cast(@Sifra_Nal As Varchar(10)) + ''' '
If @Sifra_Dok Is NOT NULL
SET @SSQL = @SSQL + 'AND D.Sifra_Dok=''' + Cast(@Sifra_Dok As Varchar(10)) + ''' '
If @Sifra_OE Is NOT Null
SET @SSQL = @SSQL + 'AND D.Sifra_OE=' + Cast(@Sifra_OE As Varchar(6)) + ' '
If @KoiOE Is NOT Null
SET @SSQL = @SSQL + 'AND D.Sifra_OE In (' + @KoiOE + ') '
If @Broj_Nal_Od Is NOT Null
SET @SSQL = @SSQL + 'AND D.Broj_Nal>=''' + Cast(@Broj_Nal_Od As Varchar(35)) + ''' '
If @Broj_Nal_Do Is NOT Null
SET @SSQL = @SSQL + 'AND D.Broj_Nal<=''' + Cast(@Broj_Nal_Do As Varchar(35)) + ''' '
If @Broj_Dok_Od Is NOT Null
SET @SSQL = @SSQL + 'AND D.Broj_Dok>=''' + Cast(@Broj_Dok_Od As Varchar(35)) + ''' '
If @Broj_Dok_Do Is NOT Null
SET @SSQL = @SSQL + 'AND D.Broj_Dok<=''' + Cast(@Broj_Dok_Do As Varchar(35)) + ''' '
If @PoKojDatum = 'V'
Begin
If @Datum_Dok_Od Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Vnes >= ''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
If @Datum_Dok_Do Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Vnes < ''' + Cast(@Datum_Dok_Do As Varchar(35)) + ''' '
End
Else
Begin
If @Datum_Dok_Od Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Dok>=''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
If @Datum_Dok_Do Is NOT Null
SET @SSQL = @SSQL + 'AND D.Datum_Dok<=''' + Cast(@Datum_Dok_Do As Varchar(35)) + ''' '
End
If @Sifra_Kup Is NOT Null
SET @SSQL = @SSQL + 'AND (Cast(S.Sifra_Oe as char(3)) + Cast(S.Broj_Kalk as char(8))) in (Select (Cast(A.Sifra_Oe as char(3)) + Cast(A.Broj_Kalk as char(8))) From AnFinDok A Where A.Sifra_Kup=''' + @Sifra_Kup + '''
And A.Sifra_Dok = ' + cast(@TipDokKonf as varchar(6)) + ') '
-- INNER Join Anfindok A On A.Sifra_Oe=D.Sifra_Oe and A.Broj_Kalk=D.Broj_Kalk and A.Sifra_Dok = ' + cast(@TipDokKonf as varchar(6)) + '
If @Uces_Od Is NOT Null
SET @SSQL = @SSQL + 'AND S.Uces >=''' + Cast(@Uces_Od As Varchar(10)) + ''' '
If @Uces_Do Is NOT Null
SET @SSQL = @SSQL + 'AND S.Uces <=''' + Cast(@Uces_Do As Varchar(10)) + ''' '
LEFT OUTER JOIN MCKatPozicija AS KP ON S.Sif_MCPozicija = KP.Sif_MCPozicija
LEFT OUTER JOIN Patnici P ON P.Sifra_Pat = S.Sifra_Pat
LEFT OUTER JOIN Komint K ON S.Sifra_Kup = K.Sifra_Kup
LEFT OUTER JOIN KObjekti KO ON KO.Sifra_Kup = S.Sifra_Kup and KO.SIfra_Obj = S.SIfra_Obj
WHERE 1 = 1 '
IF @Datum IS NOT NULL
SET @SSQL = @SSQL + ' AND CAST (''20''+ substring(S.cDatum_MC, 1, 2) + ''-'' + substring(S.cDatum_MC, 3, 2) + ''-'' + substring(S.cDatum_MC, 5, 2) AS SMALLDATETIME) < = '''+cast(@Datum as varchar(35))+''' '
IF @Sifra_Pat IS NOT NULL
SET @SSQL = @SSQL + ' AND S.Sifra_Pat = ' + cast(@Sifra_Pat as varchar(5))+ ' '
IF (@Sif_GrPat IS NOT NULL)
SET @SSQL = @SSQL + ' AND S.Sifra_Pat IN (SELECT Sifra_Pat FROM SGrPat WHERE Sif_GrPat = ''' + cast(@Sif_GrPat as varchar(15)) + ''') '
SET @SSQL = @SSQL + ' GROUP BY S.Sifra_Pat, P.ImePat, S.Sifra_Kup, K.ImeKup, S.Sifra_Obj, KO.IMeObj, S.Sif_MCPozicija, KP.ImeMCPozicija, S.Br_MCLista '
SET @SSQL = @SSQL + ' ORDER BY S.Sifra_Pat, P.ImePat, S.Sifra_Kup, S.Sifra_Obj, S.Sif_MCPozicija, S.Br_MCLista '
insert into #Tmp(Sifra_Pat, ImePat, Sifra_Kup, ImeKup,Sifra_Obj,ImeObj, cDatum_MC,Sif_MCPozicija,ImeMCPozicija, Br_MCLista)
EXEC(@SSQL)
update #Tmp set Datum = M.Datum, VrednostN = M.VrednostN, VrednostC = M.VrednostC from MCStavki M
where #Tmp.Sifra_Pat = M.Sifra_Pat and #Tmp.Sifra_Kup = M.Sifra_Kup and #Tmp.Sifra_Obj = M.Sifra_Obj and #Tmp.cDatum_MC = M.cDatum_MC and #Tmp.Sif_MCPozicija = M.Sif_MCPozicija and #Tmp.Br_MCLista = M.Br_MCLista
select * from #Tmp
return @@error
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_mesecizvreal]'))
drop procedure [dbo].[sp_mesecizvreal]
Go
CREATE PROCEDURE [dbo].[sp_MesecIzvReal]
@DatOd smalldatetime,
@DatDo smalldatetime,
@Sifra_Pat smallint = Null,
@Sif_GrPat char(6) = Null,
@Dev char(1),
@Kurs_EUR decimal(18,6),
@PrikaziPo char(1) = 'P', -- P - Patnik, A - Artikal, U - Upravnik, Z - Po Zemji (Drzavi), D - Podelba 1, K - Komintent
@TipDokProd varchar(200) = '1,3,6,7,16,131',
@Sifra_Kup char(6) = Null
AS
DECLARE @SSQL varchar(8000)
If @PrikaziPo = 'A'
Set @SSQL = ' SELECT Null Sifra_Oe, Null ImePat, '
Else If @PrikaziPo = 'U'
Set @SSQL = ' SELECT (Case When IsNumeric(K.Lokacija)=1 Then K.Lokacija Else Null End) as Sifra_Oe, U.ImeOrg as ImePat, '
Else If @PrikaziPo = 'Z'
Set @SSQL = ' SELECT Kup.KDrugo1 as Sifra_Oe, K1.Ime_1K as ImePat, '
Else If @PrikaziPo = 'K'
Set @SSQL = ' SELECT D.Sifra_Kup as Sifra_Oe, Kup.ImeKup as ImePat, '
Else
Set @SSQL = ' SELECT D.Sifra_Pat Sifra_Oe, PAT.ImePat, '
--Round(SUM(S.Kolic * (Case When S.DanDokCena = ''D'' Then S.DokCena / (1 + (S.POsn/100)) * (1-(S.Uces/100)) Else S.DokCena * (1-(S.Uces/100)) End) / ' + CAST(@Kurs_EUR as varchar(18)) + '), 4) NetoProd,
Set @SSQL = @SSQL + ' K.Drugo1, DR.Ime_1, S.Sifra_Art, K.ImeArt,
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_mozedelumenotpis]'))
drop procedure [dbo].[sp_mozedelumenotpis]
Go
CREATE PROCEDURE sp_MozeDelumenOtpis
@Inv_Broj char(10),
@Delov_God smallint
AS
Select (Osn_amor-Otpis_pret) VredPocGod
From PocSostOsn
Where Inv_Broj=@Inv_Broj and Godina=@Delov_GOd
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_nab_pooe]'))
drop procedure [dbo].[sp_nab_pooe]
Go
CREATE PROCEDURE [dbo].[sp_Nab_PoOE]
@Sifra_OE Smallint = Null,
@KoiOE Varchar(300) = Null,
@Pod1 Smallint = Null,
@Pod2 Smallint = Null,
@Pod3 Smallint = Null,
@Pod4 Smallint = Null,
@Pod5 Smallint = Null,
@Pod6 Smallint = Null,
@Pod7 Smallint = Null,
@Sifra_Tip Smallint = Null,
@Datum_Od Smalldatetime = Null,
@Datum_Do Smalldatetime = Null,
@Sifra_Art_Od Varchar(20) = Null,
@Sifra_Art_Do Varchar(20) = Null,
@Sifra_Kup_Od Char(6) = Null,
@Sifra_Kup_Do Char(6) = Null,
@Podred Char(1) = Null,
@Kto Char(6) = Null,
@Sifra_Gr varChar(6) = Null,
@Sifra_Podg Char(6) = Null,
@Lokacija Varchar(10) = Null,
@TipKup Char(11) = Null,
@Sifra_Brand Smallint = Null,
@RazbijSostav Char(1) = 'N',
@Koi_Gradovi Varchar(200) = Null,
@Koi_Regioni Varchar(200) = Null,
@PoKojDatum char(1) = 'D', -- D - Po Datum na Dokument, V - Po Datum Na Vnes
@Drugo1 smallint = Null,
@Drugo2 smallint = Null,
@Drugo3 smallint = Null,
@Drugo4 smallint = Null,
@Drugo5 smallint = Null,
@Drugo6 smallint = Null,
@Drugo7 smallint = Null,
@PocnuvaSo char(1) = 'N', -- Se Odnesuva na podgrupite D, N (Povrzano e so @Sifra_Podg)
@GrKup varchar(500) = Null,
@GrArt varchar(500) = Null,
@Sifra_Div smallint = Null
AS
If @PoKojDatum = 'V'
If @Datum_Do Is Not Null
Set @Datum_Do = @Datum_Do + 1
Set Nocount On
Declare @SSQL Varchar(8000)
CREATE Table #tSostav
( Sifra_Art Varchar(20),
Sifra_Sur Varchar(20),
Ima_Kolic Decimal(18,6),
Cena Decimal(18,6),
VkCena Decimal(18,6)
)
If @RazbijSostav = 'D'
Begin
Set @SSQL = 'Insert #tSostav
Select S.Sifra_Art, S.Sifra_Sur, S.Ima_Kolic, S.Cena, S.VkCena From Sostav S
Inner Join Katart K On S.Sifra_Art=K.Sifra_Art '
Set @SSQL = @SSQL + 'Where K.Iskluci <> ''D'' '
Exec(@SSQL)
End
Set @SSQL = 'Insert #tSostav
Select K.Sifra_Art, K.Sifra_Art, 1, 1, 1
From Katart K '
Set @SSQL = @SSQL + 'Where K.Iskluci <> ''D'' '
If @RazbijSostav = 'D'
Set @SSQL = @SSQL + 'And K.Sifra_Art Not In (Select Distinct Sifra_Art From Sostav) '
Exec(@SSQL)
--select * from #tsostav
-- Sega #tSostav e poln so Sostavnici i so fiktivni sostavnici
If @GrKup Is Not Null
Begin
CREATE Table #KupObj
(
Sifra_Kup char(6),
Sifra_Obj smallint
)
CREATE Table #KupObj1
(
Sifra_Kup char(6),
Sifra_Obj smallint
)
Set @SSQL = ' Insert Into #KupObj1 (Sifra_Kup, Sifra_Obj) Select Distinct Sifra_Kup, Sifra_Obj From SGrKupObj Where Sif_GrKup In (' + @GrKup + ') And Sifra_Obj Is Not Null '
Exec(@SSQL)
Set @SSQL = ' Insert Into #KupObj1 (Sifra_Kup, Sifra_Obj)
Select Distinct GK.Sifra_Kup, KO.Sifra_Obj
From SGrKupObj GK
Inner Join Kobjekti KO On GK.Sifra_Kup = KO.Sifra_Kup
Where GK.Sif_GrKup In (' + @GrKup + ') And GK.Sifra_Obj Is Null '
--Where GK.Sif_GrKup In (' + @GrKup + ') And GK.Sifra_Kup+Cast(KO.Sifra_Obj as char(4)) Not In (Select Sifra_Kup+Cast(Sifra_Obj as char(6)) From #KupObj) And GK.Sifra_Obj Is Null '
Exec(@SSQL)
Set @SSQL = ' Insert Into #KupObj1 (Sifra_Kup) Select Distinct Sifra_Kup From SGrKupObj Where Sif_GrKup In (' + @GrKup + ') And Sifra_Obj Is Null '
Exec(@SSQL)
INSERT INTO #KupObj SELECT DISTINCT Sifra_Kup, Sifra_Obj FROM #KupObj1
End
If @GrArt Is Not Null
Begin
Create Table #GrArt
(
Sifra_Art varchar(20)
)
Create NonClustered Index IX_Art On #GrArt (Sifra_Art)
Set @SSQL = 'Insert Into #GrArt Select DISTINCT Sifra_Art From SGrArt Where Sif_GrArt In (' + @GrArt + ') '
If @SoStavki = 'D' Set @SSQL = @SSQL + ' U.Sifra_Kup, KOM.ImeKup, '
Set @SSQL = @SSQL + ' Sum(Case When U.VkKolic<>0 Then (U.VkKolic*U.ProcZatv) Else 0 End) NaplateniKgr,
Sum(Case When U.VkKolic<>0 Then (U.VkKolic*U.ProcZatv*' + Cast(@DenariPoKgr as varchar(10)) + ') Else 0 End) NagradaZaKgr,
Sum(Case When U.VkKolic=0 And IznosUplata <> 0 Then (U.IznosUplata*U.ProcZatv) Else 0 End) NaplateniFakturi,
Sum(Case When U.VkKolic=0 And IznosUplata <> 0 Then (U.IznosUplata*U.ProcZatv*' + Cast(@ProcentNapl as varchar(10)) + '/100) Else 0 End) NagradaZaFakturi
From #UplPoDok U
Left Outer Join Patnici P On P.Sifra_Pat = U.Sifra_Pat '
If @SoStavki = 'D'
Set @SSQL = @SSQL + ' Left Outer Join Komint KOM On KOM.Sifra_Kup = U.Sifra_Kup
Group By U.Sifra_Pat, P.ImePat, U.Sifra_Kup, KOM.ImeKup, U.Sifra_Oe, U.Sifra_Dok, U.Broj_Dok'
ELSE
Set @SSQL = @SSQL + ' Group By U.Sifra_Pat, P.ImePat '
print (@ssql)
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_nagraduvanje_komerc_poart]'))
drop procedure [dbo].[sp_nagraduvanje_komerc_poart]
Go
CREATE PROCEDURE sp_Nagraduvanje_Komerc_PoArt
@Sifra_Pat int = Null,
@Datum_Dok_Od Smalldatetime = NULL,
@Datum_Dok_Do Smalldatetime = NULL,
@SoStavki char(1) = 'N',
@EkstraBonus3 char(1) = 'D', -- za SwissLion Mak - za komintentite koi ne spagaat vo podelba 3 sifra 1 treba da se dade ekstra rabat
@EkstraBonusProc smallint = 30, -- procent na ekstra bonus
@Sifra_OE Smallint = NULL,
@KoiOe varchar(10) = Null,
@Koi_Gradovi varchar(300) = Null
-- @VratiPod Char(1) = 'O', --U-po Uplata, D-Detalno po zatvoranja, P-po Patnici, K-po Komint, O-po Organizacioni edinici, I-Detalno po fakturi i zatvaranja, X-plateno pred/po rok+neplateno
Where Year(D.Datum_Dok) = ' + Cast(@Godina as varchar(4)) + '
And Month(D.Datum_Dok) = ' + Cast(@Mesec as varchar(2)) + '
And D.Sifra_Dok In (1, 71, 73, 81, 82, 83, 84, 19) '
If @Sifra_Pat Is Not Null
Set @SSQL=@SSQL + ' And D.Sifra_Pat = ' + cast(@Sifra_Pat as varchar(6)) + ' '
Set @SSQL = @SSQL + ' Group By D.Sifra_Pat, D.DokrID, D.Sifra_Oe, D.Sifra_Dok, D.Broj_Dok, D.Datum_Dok, D.Toc200, D.Sifra_Kup '
INSERT INTO #TmpRazlC EXEC(@SSQL)
UPDATE #TmpRazlC SET Izn_Naplat = Toc200 WHERE Sifra_Dok IN (71,73,82,74) --gotov.ne odat vo fin
UPDATE #TmpRazlC SET Izn_Naplat = F.Plateno_Dolzi FROM AnFinDok F WHERE #TmpRazlC.Sifra_OE=F.Sifra_OE AND #TmpRazlC.Sifra_Dok=F.Sifra_Dok AND #TmpRazlC.Broj_Dok=F.Broj_Dok
UPDATE #TmpRazlC SET Izn_Naplat = F.Plateno_Dolzi * #TmpRazlC.Toc200/F.Dolzi FROM AnFinDok F, DokrZb Z, DokrZbSta ZS WHERE ZS.DokrID=#TmpRazlC.DokrID AND ZS.DokrZbID=Z.DokrZbID
AND Z.Sifra_OE=F.Sifra_OE AND Z.Sifra_Dok=F.Sifra_Dok AND Z.Broj_Dok=F.Broj_Dok AND F.Dolzi<>0
If @SoStavki = 'N'
Begin
Insert Into #Tab SELECT Sifra_Pat, SUM(RazlCena * Izn_Naplat / Toc200) FROM #TmpRazlC WHERE Toc200<>0 GROUP BY Sifra_Pat
Update #Komerc
Set NaplRC = #Tab.Iznos
From #Tab
Where #Komerc.Sifra_Pat=#Tab.Sifra_Pat
Delete From #Tab
End
Else
Begin
Insert Into #Stavki Select 3 as Stavka, Sifra_Pat, Sifra_Oe, Sifra_Dok, Broj_Dok, Datum_Dok, RazlCena * Izn_Naplat / Toc200, Sifra_Kup From #TmpRazlC WHERE Toc200<>0
---- Ova e GLAVNATA LUPA ZA UPROSECCUVANJE VO NORMALNI USLOVI ZA EDEN ARTIKL
WHILE @VlIma = 'D' or @IzlIma = 'D'
BEGIN
-----IF @VlIma = 'N' AND @IzlIma = 'N' EXIT
SET @GledajVlez = 'N'
SET @GledajIzlez = 'N'
IF @VlIma = 'N'
SET @GledajIzlez = 'D'
Else IF @IzlIma = 'N'
SET @GledajVlez = 'D'
Else IF @VDatum_Dok <= @IDatum_Dok
SET @GledajVlez = 'D'
Else IF @ProsCena <= 0
SET @GledajVlez = 'D'
else if @IKolic > 0 and @Vlez - @Izlez < @IKolic
SET @GledajVlez = 'D'
Else
SET @GledajIzlez = 'D'
IF @GledajVlez = 'D'
Begin
IF @VTip = 'F' and @OrigVlIzl <> 'V' -- Ova <> 'V' e dodadeno Maj 3, 2009 za VLEZNI FIN.RAZLIKI koi vlijaat na cenata
begin
set @VrIzl_Kart = @VrIzl_Kart + (- @VVrednost)
end
ELSE
begin
if @VTip = 'F' and @OrigVlIzl = 'V'
set @ImaVlFinRazl = 1
else
set @ImaVlFinRazl = 0 -- DK Okt 7, 10 else-to
SET @Vr_Vlez = @Vr_Vlez + @VVrednost
SET @Vlez = @Vlez + @VKolic -- Ne e problem i kaj vlezni Fin.Razl, zassto se 0
-- Tekovno presmetuvaj ja MAX NAB i MIN NAB cena zaradi zasstita od
-- sindromot na mali-koliccini-ima-nekoj-vlez-imalo-finansiska-razlika-dava-ogromna-cena
-- Fev 21, 2010 DK
if @VTip <> 'F' -- Znacci normalen vlez e (ne e finansiska razilika)
begin
if @VNabCena >= 0 and @ImaVlFinRazl = 0 -- Nabavnata cena od STAVR
begin
if @VNabCena < @TekMinCena
set @TekMinCena = @VNabCena
if @VNabCena > @TekMaxCena
set @TekMaxCena = @VNabCena
end
end
IF @Vlez - @Izlez <> 0
Begin
SET @ProsCena = (@Vr_Vlez - @Vr_Izlez) / (@Vlez - @Izlez)
If @ProsCena < 0
SET @ProsCena = 0
else if @VTip = 'F' -- Ako e Fin.Razlika, ke mora Min/Max Cena da se smeni, nema da e greska
begin -- DK Okt 7, 10
if @ProsCena < @TekMinCena
set @TekMinCena = @ProsCena
if @ProsCena > @TekMaxCena
set @TekMaxCena = @ProsCena
end
else if @ProsCena < @TekMinCena
SET @ProsCena = @TekMinCena
else if @ProsCena > @TekMaxCena
SET @ProsCena = @TekMaxCena
End
ELSE
SET @ProsCena = 0
IF @ProsCena > 0
SET @PoslPros = @ProsCena
end
FETCH NEXT FROM Vlezovi
INTO @VDatum_Dok, @VTip, @VVlIzl, @VKolic, @VVrednost, @OrigVlIzl, @VNabCena
IF @@FETCH_STATUS <> 0
SET @VlIma = 'N'
End
ELSE
Begin
SET @VrIzl_Kart = @VrIzl_Kart + @IVrednost
SET @Vr_Izlez = @Vr_Izlez + @PoslPros * @IKolic
SET @Izlez = @Izlez + @IKolic
-- Dodadeno Okt 11, 2004
if @AzurNabCStavr = 'D' or @AzurNabCStavr = 'F'
begin
if dbo.fix_uproseci_izlez (@Sifra_Art, @Sifra_Oe, @Sifra_Dok, @Sifra_Prim) = 'N'
set @Gjubr = 0
else if (@Datum_Od is not null) and @IDatum_Dok < @Datum_Od
set @Gjubr = 0
else if @AzurNabCStavr = 'D' and (@IBroj_Nal is not null)
set @Gjubr = 0
else if @PoslPros <= 0
set @Gjubr = 0
else
begin
update stavr set NabCena = @PoslPros where DokId = @IDokId
if @Azur_DokMagCena = 'D'
begin
set @SpecSQL = 'update stavr set DokCena=' + cast(@PoslPros as varchar(18)) + ', MagCena=' + cast(@PoslPros as varchar(18)) + ', DanDokCena = ''N'', DanMagCena = ''N'' where DokId=' + cast(@IDokId as varchar(12)) + ' and Sifra_Dok in (' + cast(@Azur_DokMag_TipDok as varchar(50)) + ')'
EXEC(@SpecSQL)
end
if @Imadodatna = 'D'
begin
update stavr set NabCena = @PoslPros
where Sifra_art = @Sifra_art and Sifra_Oe = @Sifra_Prim and Sifra_Dok = @Sifra_Dok and Broj_dok = @Broj_dok and Sifra_Prim = @Sifra_oe and Imadodatna = 'P'
if @Azur_DokMagCena = 'D'
begin
--set @SpecSQL = 'q'
set @SpecSQL = 'update stavr set DokCena=' + cast(@PoslPros as varchar(18)) + ', MagCena=' + cast(@PoslPros as varchar(18)) + ', DanDokCena = ''N'', DanMagCena = ''N'' where Sifra_art=' + cast(@Sifra_art as varchar(20)) + ' and Sifra_Oe=' + cast(@Sifra_Prim as varchar(5)) + ' and Sifra_Dok=' + cast(@Sifra_Dok as varchar(5)) + ' and Broj_dok=' + cast(@Broj_dok as varchar(10)) + ' and Sifra_Prim=' + cast(@Sifra_oe as varchar(5)) + ' and Imadodatna = ''P'' and Sifra_Dok in (' + cast(@Azur_DokMag_TipDok as varchar(50)) + ')'
EXEC(@SpecSQL)
end
end
end
end
-- Gotovo so dodadeno Okt 11, 2004
FETCH NEXT FROM Izlezi
INTO @IDatum_Dok, @IKolic, @IVrednost, @IDokID, @IBroj_Nal,
@Sifra_Dok, @Broj_Dok, @Sifra_Prim, @Imadodatna
IF @@FETCH_STATUS <> 0
SET @IzlIma = 'N'
End
END --while
---- Gotovo so GLAVNATA LUPA ZA UPROSECCUVANJE VO NORMALNI USLOVI ZA EDEN ARTIKL
----set @Vr_Izlez = @Vr_Izlez + (- @VVrednost) -- Dodadeno Sept 27, 2006 DK, zasto toa e REALEN IZLEZ napraven
end
else
begin
SET @Vr_Vlez = @Vr_Vlez + @VVrednost
SET @Vlez = @Vlez + @VKolic
IF @Vlez - @Izlez <> 0
Begin
SET @ProsCena = (@Vr_Vlez - @Vr_Izlez) / (@Vlez - @Izlez)
If @ProsCena < 0 SET @ProsCena = 0
End
ELSE
SET @ProsCena = 0
IF @ProsCena > 0 SET @PoslPros = @ProsCena
end
FETCH NEXT FROM Vlezovi INTO @VDatum_Dok, @VTip, @VVlIzl, @VKolic, @VVrednost
IF @@FETCH_STATUS <> 0 SET @VlIma = 'N'
End
ELSE
Begin
SET @VrIzl_Kart = @VrIzl_Kart + @IVrednost
SET @Vr_Izlez = @Vr_Izlez + @PoslPros * @IKolic
SET @Izlez = @Izlez + @IKolic
-- Dodadeno Okt 11, 2004
if @AzurNabCStavr = 'D' or @AzurNabCStavr = 'F'
begin
if dbo.fix_uproseci_izlez (@Sifra_Art, @Sifra_Oe, @Sifra_Dok, @Sifra_Prim) = 'N'
set @Gjubr = 0
else if (@Datum_Od is not null) and @IDatum_Dok < @Datum_Od
set @Gjubr = 0
else if @AzurNabCStavr = 'D' and (@IBroj_Nal is not null)
set @Gjubr = 0
else if @PoslPros <= 0
set @Gjubr = 0
else
begin
update stavr set NabCena = @PoslPros where DokId = @IDokId
if @Azur_DokMagCena = 'D'
begin
set @SpecSQL = 'update stavr set DokCena=' + cast(@PoslPros as varchar(18)) + ', MagCena=' + cast(@PoslPros as varchar(18)) + ', DanDokCena = ''N'', DanMagCena = ''N'' where DokId=' + cast(@IDokId as varchar(12)) + ' and Sifra_Dok in (' + cast(@Azur_DokMag_TipDok as varchar(50)) + ')'
EXEC(@SpecSQL)
end
if @Imadodatna = 'D'
begin
update stavr set NabCena = @PoslPros
where Sifra_art = @Sifra_art and Sifra_Oe = @Sifra_Prim and Sifra_Dok = @Sifra_Dok and Broj_dok = @Broj_dok and Sifra_Prim = @Sifra_oe and Imadodatna = 'P'
if @Azur_DokMagCena = 'D'
begin
--set @SpecSQL = 'q'
set @SpecSQL = 'update stavr set DokCena=' + cast(@PoslPros as varchar(18)) + ', MagCena=' + cast(@PoslPros as varchar(18)) + ', DanDokCena = ''N'', DanMagCena = ''N'' where Sifra_art=' + cast(@Sifra_art as varchar(20)) + ' and Sifra_Oe=' + cast(@Sifra_Prim as varchar(5)) + ' and Sifra_Dok=' + cast(@Sifra_Dok as varchar(5)) + ' and Broj_dok=' + cast(@Broj_dok as varchar(10)) + ' and Sifra_Prim=' + cast(@Sifra_oe as varchar(5)) + ' and Imadodatna = ''P'' and Sifra_Dok in (' + cast(@Azur_DokMag_TipDok as varchar(50)) + ')'
EXEC(@SpecSQL)
end
end
end
end
-- Gotovo so dodadeno Okt 11, 2004
FETCH NEXT FROM Izlezi INTO @IDatum_Dok, @IKolic, @IVrednost, @IDokID, @IBroj_Nal, @Sifra_Dok, @Broj_Dok, @Sifra_Prim, @Imadodatna, @Sifra_Oe
IF @@FETCH_STATUS <> 0 SET @IzlIma = 'N'
End
END --while
CLOSE Vlezovi
DEALLOCATE Vlezovi
CLOSE Izlezi
DEALLOCATE Izlezi
--print @Vr_Vlez
--print @Vr_Izlez
--print @PoslPros
--print 'qwe'
--print @Vr_Vlez
--print @VrIzl_Kart
SET @Vr_Treba = (@Vlez - @Izlez) * @PoslPros
SET @Vr_Kartica = @Vr_Vlez - @VrIzl_Kart
set @Vr_Razl = @Vr_Treba - @Vr_Kartica
if dbo.fix_uproseci_izlez (@Sifra_Art, @Sifra_Oe_Baza, null, null) = 'N'
set @Gjubr = 0
else
begin
if abs(@vr_razl) > 0.009
begin
update #TmpArt
set Razlika = - @Vr_Razl
where sifrA_art = @sifra_art
end
if @AzurProsCena = 'D' and @PoslPros > 0
begin
-- ABC
update soart
set nnabcena = @PoslPRos
where Sifra_OE In (Select Sifra_Oe From SGrOrg Where Sif_GrOrg = @KoiOe)
and sifra_art = @sifrA_art
end
end
FETCH NEXT FROM Artikli INTO @Sifra_Art, @Razlika
End
CLOSE Artikli
DEALLOCATE Artikli
SELECT * FROM #TmpArt where abs(razlika) > 0.009
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_najdikolicrabat]'))
drop procedure [dbo].[sp_najdikolicrabat]
Go
CREATE PROCEDURE sp_NajdiKolicRabat
@Paketi decimal (18, 4),
@KolRabat Decimal(9,4) OUTPUT
AS
Select @KolRabat=Rabat From Usl_KolRab_Fra
Where Od_Kolic<@Paketi AND Do_Kolic>=@Paketi
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_najdikolicrabatsopodelart]'))
drop procedure [dbo].[sp_najdikolicrabatsopodelart]
Go
CREATE PROCEDURE sp_NajdiKolicRabatSoPodelArt
@Paketi decimal (18, 4),
@Sifra_Podelba varchar(20),
@Sifra_Tip smallint,
@KolRabat Decimal(9,4) OUTPUT
AS
Select @KolRabat=Rabat From Usl_KolRab_Fra
Where Od_Kolic<@Paketi AND Do_Kolic>=@Paketi AND Sifra_Podelba=@Sifra_Podelba AND Sifra_Tip=@Sifra_Tip
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_najdikomint]'))
drop procedure [dbo].[sp_najdikomint]
Go
CREATE PROCEDURE sp_NajdiKomint
@Smetka varchar(35) = NULL,
@Danocen varchar(15) = NULL,
@MatBr varchar(7) = NULL,
@Adresa varchar(40) = NULL,
@DelIme varchar(40)=NULL,
@Sifra_Grad smallint = NULL,
@Smesto varchar(30) = NULL,
@Zemja varchar(20) = NULL,
@KDrugo1 smallint = NULL
AS
Declare @SSQL varchar(1000)
SET @SSQL = 'SELECT Sifra_Kup, ImeKup, Adresa, SMesto, Danocen, MatBr
FROM Komint WHERE 1=1 '
IF @DelIme IS NOT NULL
SET @SSQL = @SSQL + ' AND ImeKup LIKE ''%' + @DelIme + '%'' '
IF @Danocen IS NOT NULL
SET @SSQL = @SSQL + ' AND Danocen LIKE ''%' + @Danocen + '%'' '
IF @MatBr IS NOT NULL
SET @SSQL = @SSQL + ' AND MatBr LIKE ''%' + @MatBr + '%'' '
IF @Adresa IS NOT NULL
SET @SSQL = @SSQL + ' AND Adresa LIKE ''%' + @Adresa + '%'' '
IF @Smesto IS NOT NULL
SET @SSQL = @SSQL + ' AND Smesto LIKE ''%' + @Smesto + '%'' '
IF @Smetka IS NOT NULL
SET @SSQL = @SSQL + ' AND (Ziro LIKE ''%' + @Smetka + '%'' OR Ziro2 LIKE ''%' + @Smetka +
'%'' OR Sifra_Kup IN (SELECT Sifra_Kup FROM KBanki WHERE ZiroSka LIKE ''%' + @Smetka + '%'' )) '
---OR Ziro2 LIKE ''%' + @Smetka + '%'' ))'
IF @Sifra_Grad IS NOT NULL
SET @SSQL = @SSQL + ' AND Sifra_Grad=' + cast(@Sifra_Grad as varchar(6))
IF @Zemja IS NOT NULL
SET @SSQL = @SSQL + ' AND Zemja LIKE ''%' + @Zemja + '%'' '
IF @KDrugo1 IS NOT NULL
SET @SSQL = @SSQL + ' AND KDrugo1=' + cast(@KDrugo1 as varchar(6))
EXEC(@SSQL)
select * from KDrugo1
select * From Komint
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_najdikomintposmetka]'))
drop procedure [dbo].[sp_najdikomintposmetka]
Go
CREATE PROCEDURE sp_NajdiKomintPoSmetka
@Smetka varchar(50),
@Sifra_Kup Char (6)='' OUTPUT,
@KlkZapisi int =0 OUTPUT
AS
SET @Smetka = Replace(@Smetka, '-', '')
SET @Smetka = Replace(@Smetka, ' ', '')
CREATE TABLE #TmpK
(Sifra_Kup char(6))
INSERT INTO #TmpK SELECT Sifra_Kup FROM KBanki WHERE Replace(Replace(ZiroSka, '-', ''), ' ', '')=@Smetka
INSERT INTO #TmpK SELECT Sifra_Kup FROM Komint WHERE Replace(Replace(Ziro, '-', ''), ' ', '')=@Smetka
INSERT INTO #TmpK SELECT Sifra_Kup FROM Komint WHERE Replace(Replace(Ziro2, '-', ''), ' ', '')=@Smetka
SELECT @KlkZapisi=COUNT(DISTINCT Sifra_Kup) FROM #TmpK
IF @KlkZapisi IS NULL SET @KlkZapisi=0
SELECT @Sifra_Kup = Sifra_Kup FROM #TmpK
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_najdikonfazurtros]'))
drop procedure [dbo].[sp_najdikonfazurtros]
Go
CREATE PROCEDURE sp_NajdiKonfAzurTros
@Sifra_Dok Smallint,
@Sifra_OE Smallint,
@Sifra_Pat Smallint,
@Sifra_TrosM smallint =NULL OUTPUT
AS
-- Prvo komvbinacija cela dali odgovara
SELECT @Sifra_TrosM = Sifra_TrosM FROM KonfAzurTros
WHERE Sifra_dok = @Sifra_Dok AND Sifra_OE = @Sifra_OE AND Sifra_Pat = @Sifra_Pat
IF @@RowCount = 1 RETURN
-- Potoa moznite kombinacii od 2 - po - 2
SELECT @Sifra_TrosM = Sifra_TrosM FROM KonfAzurTros
WHERE Sifra_dok = @Sifra_Dok AND Sifra_OE = 0 AND Sifra_Pat = @Sifra_Pat
IF @@RowCount = 1 RETURN
SELECT @Sifra_TrosM = Sifra_TrosM FROM KonfAzurTros
WHERE Sifra_dok = @Sifra_Dok AND Sifra_OE = @Sifra_OE AND Sifra_Pat = 0
IF @@RowCount = 1 RETURN
SELECT @Sifra_TrosM = Sifra_TrosM FROM KonfAzurTros
WHERE Sifra_dok = 0 AND Sifra_OE = @Sifra_OE AND Sifra_Pat = @Sifra_Pat
IF @@RowCount = 1 RETURN
-- I na kraj kombinaciite so samo eden podatok
IF @Sifra_dok <> 0
Begin
SELECT @Sifra_TrosM = Sifra_TrosM FROM KonfAzurTros
WHERE Sifra_dok = @Sifra_Dok AND Sifra_OE = 0 AND Sifra_Pat = 0
IF @@RowCount = 1 RETURN
End
IF @Sifra_Pat <> 0
Begin
SELECT @Sifra_TrosM = Sifra_TrosM FROM KonfAzurTros
WHERE Sifra_dok = 0 AND Sifra_OE = 0 AND Sifra_Pat = @Sifra_Pat
IF @@RowCount = 1 RETURN
End
IF @Sifra_OE <> 0
Begin
SELECT @Sifra_TrosM = Sifra_TrosM FROM KonfAzurTros
WHERE Sifra_dok = 0 AND Sifra_OE = @Sifra_OE AND Sifra_Pat = 0
IF @@RowCount = 1 RETURN
End
Set @Sifra_TrosM = NULL
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_najdikonfceni]'))
------------------------------------------------------------------------------------------------------------------ U S L O V -------------------------------------------------------------------------------------------------------------------
If @Sifra_Oe Is Not Null And @KojaFirma = 'ZL'
Begin
If @Sifra_oe = 1
Set @SSQL1 = @SSQL1 + ' And ltrim(rtrim(K.Lokacija)) = ''1'' '
Else
Set @SSQL1 = @SSQL1 + ' And (ltrim(rtrim(K.Lokacija)) <> ''1'' Or K.Lokacija is Null) '
End
If @Lokacija Is Not Null And (@Sifra_Oe <> 1 Or @Sifra_Oe Is Null)
If @KFLokacija = 'D'
Set @SSQL1 = @SSQL1 + ' And (ltrim(rtrim(K.Lokacija)) <> ''' + @Lokacija + ''' Or K.Lokacija Is Null) '
Else
Set @SSQL1 = @SSQL1 + ' And ltrim(rtrim(K.Lokacija)) = ''' + @Lokacija + ''' '
If @Sifra_Reg_Od Is Not Null
Begin
If @Sifra_Oe = 1 And @KojaFirma = 'ZL'
Set @SSQL1 = @SSQL1 + ' And ((KO.Kdrugo4 Is Not Null And KO.KDrugo4 >= ''' + cast(@Sifra_Reg_Od as varchar(6)) + ''')
OR ( KO.KDrugo4 Is Null and KUP.KDrugo4 >= ''' + cast(@Sifra_Reg_Od as varchar(6)) + ''')) '
Else
Set @SSQL1 = @SSQL1 + ' And ((KO.Sifra_Reg Is Not Null And KO.Sifra_Reg >= ''' + cast(@Sifra_Reg_Od as varchar(6)) + ''')
OR ( KO.Sifra_Reg Is Null and KUP.Sifra_Reg >= ''' + cast(@Sifra_Reg_Od as varchar(6)) + ''')) '
End
If @Sifra_Reg_Do Is Not Null
Begin
If @Sifra_Oe = 1 And @KojaFirma = 'ZL'
Set @SSQL1 = @SSQL1 + ' And ((KO.Kdrugo4 Is Not Null And KO.KDrugo4 <= ''' + cast(@Sifra_Reg_Do as varchar(6)) + ''')
OR ( KO.KDrugo4 Is Null and KUP.KDrugo4 <= ''' + cast(@Sifra_Reg_Do as varchar(6)) + ''')) '
Else
Set @SSQL1 = @SSQL1 + ' And ((KO.Sifra_Reg Is Not Null And KO.Sifra_Reg <= ''' + cast(@Sifra_Reg_Do as varchar(6)) + ''')
OR ( KO.Sifra_Reg Is Null and KUP.Sifra_Reg <= ''' + cast(@Sifra_Reg_Do as varchar(6)) + ''')) '
End
If @BezRelacija = 'D'
Begin
If @Sifra_Oe = 1 And @KojaFirma = 'ZL'
Set @SSQL1 = @SSQL1 + ' And (KO.Kdrugo4 Is Null And KUP.KDrugo4 is Null) '
Else
Set @SSQL1 = @SSQL1 + ' And (KO.Sifra_Reg Is Null And KUP.Sifra_Reg Is Null) '
End
If @Kto Is Not Null
Set @SSQL1 = @SSQL1 + ' AND K.Kto = ''' + @Kto + ''' '
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_napravipocnalglk]'))
drop procedure [dbo].[sp_napravipocnalglk]
Go
CREATE PROCEDURE sp_NapraviPocNalGLK
@Godina Smallint,
@DaliDivizii char(1)='N',
@KojaDrz varchar(2)='MK'
AS
CREATE TABLE #PomAnal
( Kto_Anal char(10),
DaliOrg char(1)
)
INSERT INTO #PomAnal (Kto_Anal, DaliOrg) SELECT Kto_Anal, 'N' FROM Anal WHERE DaliOrg IS NULL OR DaliOrg <>'D'
INSERT INTO #PomAnal (Kto_Anal, DaliOrg) SELECT Kto_Anal, 'D' FROM Anal WHERE DaliOrg ='D' AND (Prenos_PoOE IS NULL OR Prenos_PoOE=' ' OR Prenos_PoOE='D')
INSERT INTO #PomAnal (Kto_Anal, DaliOrg) SELECT Kto_Anal, 'N' FROM Anal WHERE DaliOrg ='D' AND Prenos_PoOE='N'
-- 5.1. Procedurata treba da TRCA PO DOKR za site IZLEZNI dokumenti (pazi i prenosnici se vklucceni), i za site stavki
-- koi gi zadovoluvaat uslovite od 4., a za koi Sifra_Oe_Nar ne e 0 nitu Null, gi bara naracckite i soodvetnite stavki vo Stavr i StaNarac.
-- 5.5. Zabelezi deka za nekoi stavki (artikli) mozze da ima zapis vo STAVR a da nema zapis vo STANARAC (ako raccno dodale vo centrala stavka vo f-rata).
Left Outer Join Patnici Pat On Pat.Sifra_Pat = N.Sifra_OeNar
Left Outer Join Komint Kup On Kup.Sifra_Kup = N.Sifra_Kup
Left Outer Join KObjekti KO On KO.Sifra_Kup = N.Sifra_Kup And KO.Sifra_Obj=N.Sifra_Obj
Left Outer Join Katart K On K.Sifra_Art = N.Sifra_Art
Left Outer Join #Poseti BP On BP.Sifra_Kup = N.Sifra_Kup And BP.Sifra_Obj=N.Sifra_Obj '
If @PoKomintArt = 'K'
Set @SSQL = @SSQL + ' Left Outer Join #BrNarObj BR On BR.Sifra_Pat=N.Sifra_OeNar And BR.Sifra_Kup=N.Sifra_Kup And (Case When BR.Sifra_Obj Is Not Null Then BR.Sifra_Obj Else 1234 End)=(Case When N.Sifra_Obj Is Not Null Then N.Sifra_Obj Else 1234 End) '
Else If @PoKomintArt = 'A'
Set @SSQL = @SSQL + ' Left Outer Join #BrNarObj BR On BR.Sifra_Pat=N.Sifra_OeNar And BR.Sifra_Art=N.Sifra_Art '
Else
Set @SSQL = @SSQL + ' Left Outer Join #BrNarObj BR On BR.Sifra_Pat=N.Sifra_OeNar ' -- Ovde nema Join - samo taka e staveno
Set @SSQL = @SSQL + ' Group By N.Sifra_OeNar, Pat.ImePat, '
(Case When (S.Vlez-S.Izlez) <= O.MinZal Then O.MaxZal Else 0 End) Nar1
FROM Soart S
Inner Join OptZalPoOe O On O.Sifra_Oe=S.Sifra_Oe And O.Sifra_Art=S.Sifra_Art
INNER JOIN Katart K ON S.Sifra_Art=K.Sifra_Art
INNER JOIN Tarifi T ON K.Sifra_Tar=T.Sifra_Tar '
If @Sifra_ZBrand Is Not Null
Set @SSQL = @SSQL + ' INNER JOIN DrgPodel B ON K.Sifra_Drg=B.Sifra_Drg '
Set @SSQL = @SSQL + ' Where S.Sifra_Art In (Select Distinct Sifra_Art From Stavr Where VlIzl = ''V'' And Sifra_Oe = ' + cast(@Sifra_Oe as varchar(6)) + ') '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' AND (S.Sifra_Oe=' + Cast(@Sifra_Oe As Varchar(6)) + ') '
If @Sifra_Od IS NOT NULL
Set @SSQL = @SSQL + ' AND S.Sifra_Art>=''' + @Sifra_Od + ''' '
If @Sifra_Do IS NOT NULL
Set @SSQL = @SSQL + ' AND S.Sifra_Art<=''' + @Sifra_Do + ''' '
If @Sifra_Brand Is Not Null
Set @SSQL = @SSQL + ' AND (K.Sifra_Drg=' + Cast(@Sifra_Brand As Varchar(6)) + ') '
If @Sifra_ZBrand Is Not Null
Set @SSQL = @SSQL + ' AND (B.Sifra_Drg1=' + Cast(@Sifra_ZBrand As Varchar(6)) + ') '
If @Kto IS NOT NULL
Set @SSQL = @SSQL + ' AND (K.Kto='''+@Kto+''') '
If @Sifra_Gr IS NOT NULL
Set @SSQL = @SSQL + ' AND (G.Sifra_Gr='''+@Sifra_Gr+''') '
If @Sifra_Podg IS NOT NULL
Set @SSQL = @SSQL + ' AND (K.Sifra_Podg='''+@Sifra_Podg+''') '
If @Lokacija IS NOT NULL
Set @SSQL = @SSQL + ' AND (K.Lokacija='''+lTrim(rTrim(@Lokacija))+''') '
If @Drugo1 Is Not NULL
Set @SSQL = @SSQL + ' And K.Drugo1=' + Cast(@Drugo1 As Varchar(6)) + ' '
If @Drugo2 Is Not NULL
Set @SSQL = @SSQL + ' And K.Drugo2=' + Cast(@Drugo2 As Varchar(6)) + ' '
If @Drugo3 Is Not NULL
Set @SSQL = @SSQL + ' And K.Drugo3=' + Cast(@Drugo3 As Varchar(6)) + ' '
If @Drugo4 Is Not NULL
Set @SSQL = @SSQL + ' And K.Drugo4=' + Cast(@Drugo4 As Varchar(6)) + ' '
If @Drugo5 Is Not NULL
Set @SSQL = @SSQL + ' And K.Drugo5=' + Cast(@Drugo5 As Varchar(6)) + ' '
If @PodNadEdn = 'P' --Pod Min Zaliha
Set @SSQL = @SSQL + ' And O.MinZal > (Vlez-Izlez) '
Else If @PodNadEdn = 'PN' --Pod ili Nad Min Zaliha
Set @SSQL = @SSQL + ' And (O.MinZal > (Vlez-Izlez) Or O.MinZal < (Vlez-Izlez)) '
Else If @PodNadEdn = 'PE' --Pod ili Ednakvo so Min Zaliha
Set @SSQL = @SSQL + ' And (O.MinZal > (Vlez-Izlez) Or O.MinZal = (Vlez-Izlez)) '
Else If @PodNadEdn = 'N' --Nad Min Zaliha
Set @SSQL = @SSQL + ' And O.MinZal < (Vlez-Izlez) '
Else If @PodNadEdn = 'NE' --Nad ili ednakvo so Min Zaliha
Set @SSQL = @SSQL + ' And (O.MinZal < (Vlez-Izlez) Or O.MinZal = (Vlez-Izlez)) '
Else If @PodNadEdn = 'E' --Ednakvo so Min Zaliha
Set @SSQL = @SSQL + ' And O.MinZal = (Vlez-Izlez) And O.MinZal <> 0 '
If @Tip_Podr='S'
Set @SSQL=@SSQL+' Order By S.Sifra_Art'
Else If @Tip_Podr='A'
Set @SSQL=@SSQL+' Order By K.ImeArt'
Exec(@SSQL)
Set Nocount Off
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_narrealdok_zapecatenje]'))
Inner Join KSPromet S On S.Sifra_Oe=P.Sifra_Oe And S.Grp_Kasa=P.Grp_Kasa And S.BrKasa=P.BrKasa And S.Broj_Ska=P.Broj_Ska
Inner Join Katart K On K.Sifra_Art=S.Sifra_Art
Left Outer Join Orged O On O.Sifra_Oe=S.Sifra_Oe
Where (S.Kolic<>S.RKolic Or S.RKolic Is Null) '
If @Sifra_ArtOd Is Not Null
Set @SSQL=@SSQL + ' And S.Sifra_Art >= ''' + @Sifra_ArtOd + ''' '
If @Sifra_ArtDo Is Not Null
Set @SSQL=@SSQL + ' And S.Sifra_Art <= ''' + @Sifra_ArtDo + ''' '
If @Gr_Org Is Not Null
Set @SSQL=@SSQL + ' And P.Sifra_Oe In (Select Sifra_Oe From SGrOrg Where Sif_GrOrg = ''' + @Gr_Org + ''') '
If @Sifra_Oe Is Not Null
Set @SSQL=@SSQL + ' And P.Sifra_Oe = ' + Cast(@Sifra_Oe as Varchar(6)) + ' '
If @Datum_EvidOd Is Not Null
Set @SSQL=@SSQL + ' And P.Datum_Evid >= ''' + Cast(@Datum_EvidOd as Varchar(30)) + ''' '
If @Datum_EvidDo Is Not Null
Set @SSQL=@SSQL + ' And P.Datum_Evid <= ''' + Cast(@Datum_EvidDo as Varchar(30)) + ''' '
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_nerealnarac]'))
drop procedure [dbo].[sp_nerealnarac]
Go
CREATE PROCEDURE sp_NeRealNarac
@Sifra_OE smallint = NULL,
@Sifra_Nar smallint,
@Broj_Nar_Od int = NULL,
@Broj_Nar_Do int = NULL,
@Datum_Od SmallDateTime = NULL,
@Datum_Do SmallDateTime = NULL
AS
Declare @SSQL varchar(2000)
SET @SSQL = 'SELECT Sifra_OE, Sifra_Nar, Broj_Nar FROM Naracki WHERE (Realiziran is null or Realiziran = ''N'') and Sifra_Nar = ' + cast(@Sifra_Nar as varchar(5))
IF @Sifra_OE IS NOT NULL
SET @SSQL = @SSQL + ' AND Sifra_OE = ' + Cast(@Sifra_OE as varchar(4))
IF @Broj_Nar_Od IS NOT NULL
SET @SSQL = @SSQL + ' AND Broj_Nar >= ' + Cast(@Broj_Nar_Od as varchar(9))
IF @Broj_Nar_Do IS NOT NULL
SET @SSQL = @SSQL + ' AND Broj_Nar <= ' + Cast(@Broj_Nar_Do as varchar(9))
IF @Datum_Od IS NOT NULL
SET @SSQL = @SSQL + ' AND Datum_Nar >= ''' + Cast(@Datum_Od as varchar(35)) + ''' '
IF @Datum_Do IS NOT NULL
SET @SSQL = @SSQL + ' AND Datum_Nar <= ''' + Cast(@Datum_Do as varchar(35)) + ''' '
EXEC(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_neuspesnaprodazba]'))
drop procedure [dbo].[sp_neuspesnaprodazba]
Go
CREATE PROCEDURE sp_NeuspesnaProdazba
@Sifra_OE Smallint = Null,
@KoiOE Varchar(500) = Null,
@KPod1 Smallint = Null,
@KPod2 Smallint = Null,
@KPod3 Smallint = Null,
@KPod4 Smallint = Null,
@KPod5 Smallint = Null,
@Sifra_Tip Smallint = Null,
@Datum_Od Smalldatetime = Null,
@Datum_Do Smalldatetime = Null,
@Sifra_Brand Smallint = Null,
@Sifra_Art_Od Varchar(20) = Null,
@Sifra_Art_Do Varchar(20) = Null,
@Sifra_Kup_Od Char(6) = Null,
@Sifra_Kup_Do Char(6) = Null,
@Kto Char(6) = Null,
@Sifra_Gr varChar(6) = Null,
@Sifra_Podg Char(6) = Null,
@Lokacija Varchar(10) = Null,
@TipKup Char(11) = Null,
@Koi_Gradovi varchar(200) = Null,
@Koi_Regioni varchar(200) = Null,
@PoKojDatum char(1) = 'D', -- D - Po Datum na Dokument, V - Po Datum Na Vnes
@ADrugo1 smallint = Null,
@ADrugo2 smallint = Null,
@ADrugo3 smallint = Null,
@ADrugo4 smallint = Null,
@ADrugo5 smallint = Null,
@Sifra_Dok varchar(500) = Null
AS
Declare @SSQL as varchar(8000)
Declare @SSQLUsl as varchar(8000)
Declare @SSQLGr as varchar(8000)
Set @SSQL = ' '
Set @SSQLUsl = ' '
Set @SSQLGr = ' '
If @PoKojDatum = 'V'
If @Datum_Do Is Not Null
Set @Datum_Do = @Datum_Do + 1
Create Table #Tab
(
Sifra_Oe smallint,
Sifra_art varchar(20),
Sifra_Dok smallint,
Broj_Dok int,
Sifra_Kup char(6),
Sifra_Obj smallint,
Sifra_Mest int,
Kolic decimal(18,6)
)
----------------------------------------------------------- P R O D A Z B A --------------------------------------------------------------------------------
Left Outer Join Komint Kup On Kup.Sifra_Kup=A.Sifra_Kup
Left Outer Join KObjekti KO ON A.Sifra_obj=KO.Sifra_obj and A.Sifra_kup=KO.Sifra_kup
Where A.Sifra_Obj Is Not Null
And Cast(A.Sifra_Oe as Varchar(6))+''$$$''+A.Sifra_Kup+''$$$''+Cast(A.Sifra_Obj as varchar(6)) Not in (Select Distinct Cast(Sifra_Oe as Varchar(6)) +''$$$''+Sifra_Kup+''$$$''+Cast(Sifra_Obj as varchar(6)) From #Tab) '
Set @SSQL = @SSQL + ' (FS.Iznos_Stavka * ' + Cast(@Kurs as varchar(20)) + ') Iznos_Stavka '
Else
Set @SSQL = @SSQL + ' FS.Iznos_Stavka '
Set @SSQL = @SSQL + ' From NGInvoice F
Inner Join NGInvoiceSta FS On FS.Sifra_Oe=F.Sifra_Oe And FS.Broj_Inv=F.Broj_Inv
Inner Join NGStudents S ON S.Sifra_Student=F.Sifra_Student
Inner Join NGBillCodes BC On BC.Sifra_BillCode=FS.Sifra_BillCode '
If @NivoCourseType Is Not Null
Set @SSQL = @SSQL + ' Inner Join NGCourseType CT On CT.Sifra_CourseType = S.Sifra_CourseType '
Set @SSQL = @SSQL + ' Where BC.Tip_BillCode = ''P'' '
If @Sifra_Student Is Not Null
Set @SSQL = @SSQL + ' And F.Sifra_Student = ''' + @Sifra_Student + ''' '
If @Sifra_Famil Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_Famil = ''' + @Sifra_Famil + ''' '
If @Datum_Fra_Od Is Not Null
Set @SSQL = @SSQL + ' And F.Datum_Inv >= ''' + Cast(@Datum_Fra_Od as varchar(30)) + ''' '
If @Datum_Fra_Do Is Not Null
Set @SSQL = @SSQL + ' And F.Datum_Inv <= ''' + Cast(@Datum_Fra_Do as varchar(30)) + ''' '
If @Datum_Stavka_Od Is Not Null
Set @SSQL = @SSQL + ' And FS.Datum_Stavka >= ''' + Cast(@Datum_Stavka_Od as varchar(30)) + ''' '
If @Datum_Stavka_Do Is Not Null
Set @SSQL = @SSQL + ' And FS.Datum_Stavka <= ''' + Cast(@Datum_Stavka_Do as varchar(30)) + ''' '
If @Sifra_CourseType Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_CourseType = ''' + @Sifra_CourseType + ''' '
If @Godina Is Not Null
Set @SSQL = @SSQL + ' And S.Godina = ''' + @Godina + ''' '
If @Aktiven Is Not Null
Set @SSQL = @SSQL + ' And S.Aktiven = ''' + @Aktiven + ''' '
If @Sifra_BillCode Is Not Null
Set @SSQL = @SSQL + ' And FS.Sifra_BillCode = ''' + @Sifra_BillCode + ''' '
If @NivoCourseType Is Not Null
Set @SSQL = @SSQL + ' And CT.NivoCourseType = ''' + Cast(@NivoCourseType as varchar(10)) + ''' '
Set @SSQL = @SSQL + ' Order By FS.Datum_Stavka, F.Broj_Inv '
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_ng_pismopotsetuvanje]'))
drop procedure [dbo].[sp_ng_pismopotsetuvanje]
Go
CREATE PROCEDURE sp_NG_PismoPotsetuvanje
@Sifra_Student char(6) = Null,
@Sifra_Famil char(20) = Null,
@Datum_Presm smalldatetime,
@Sifra_CourseType char(10) = Null,
@Godina char(10) = Null,
@Aktiven char(1) = Null,
@Sifra_BillCode char(10) = Null,
@NivoCourseType smallint = Null,
@Kurs decimal(18,4) = 1
AS
If @Datum_Presm Is Null
Set @Datum_Presm = GetDate()
Declare @SSQL as varchar(8000)
Create Table #Rez
(
TotalCharges decimal(18,4),
FutureCharges decimal(18,4),
CurrentCharges decimal(18,4),
CurrentPayments decimal(18,4),
CurrentAmountDue decimal(18,4),
PastDue decimal(18,4)
)
Set @SSQL = ' Select Sum(Case When BC.Tip_BillCode In (''B'',''D'',''I'') Then FS.Iznos_Stavka Else 0 End) TotalCharges,
Sum(Case When FS.Datum_Stavka > ''' + Cast(@Datum_Presm as varchar(30)) + ''' And BC.Tip_BillCode In (''B'',''D'',''I'') Then FS.Iznos_Stavka Else 0 End) FutureCharges,
Sum(Case When FS.Datum_Stavka <= ''' + Cast(@Datum_Presm as varchar(30)) + ''' And BC.Tip_BillCode In (''B'',''D'',''I'') Then FS.Iznos_Stavka Else 0 End) CurrentCharges,
Sum(Case When BC.Tip_BillCode In (''P'', ''C'') Then FS.Iznos_Stavka Else 0 End) CurrentPayments,
Sum(Case When FS.Datum_Stavka <= ''' + Cast(@Datum_Presm as varchar(30)) + ''' And BC.Tip_BillCode In (''B'',''D'',''I'') Then FS.Iznos_Stavka
When BC.Tip_BillCode In (''P'', ''C'') Then (- 1* FS.Iznos_Stavka) Else 0 End) CurrentAmountDue,
Sum(Case When FS.Datum_Dosp_Stavka < ''' + Cast(@Datum_Presm as varchar(30)) + ''' And BC.Tip_BillCode In (''B'',''D'',''I'') Then FS.Iznos_Stavka
When BC.Tip_BillCode In (''P'', ''C'') Then (- 1* FS.Iznos_Stavka) Else 0 End) PastDue
From NGInvoice F
Inner Join NGInvoiceSta FS On FS.Sifra_Oe=F.Sifra_Oe And FS.Broj_Inv=F.Broj_Inv
Inner Join NGStudents S ON S.Sifra_Student=F.Sifra_Student
Left Outer Join NGBillCodes BC On BC.Sifra_BillCode=FS.Sifra_BillCode '
If @NivoCourseType Is Not Null
Set @SSQL = @SSQL + ' Inner Join NGCourseType CT On CT.Sifra_CourseType = S.Sifra_CourseType '
Set @SSQL = @SSQL + ' Where 1=1 '
If @Sifra_Student Is Not Null
Set @SSQL = @SSQL + ' And F.Sifra_Student = ''' + @Sifra_Student + ''' '
If @Sifra_Famil Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_Famil = ''' + @Sifra_Famil + ''' '
If @Sifra_CourseType Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_CourseType = ''' + @Sifra_CourseType + ''' '
If @Godina Is Not Null
Set @SSQL = @SSQL + ' And S.Godina = ''' + @Godina + ''' '
If @Aktiven Is Not Null
Set @SSQL = @SSQL + ' And S.Aktiven = ''' + @Aktiven + ''' '
If @Sifra_BillCode Is Not Null
Set @SSQL = @SSQL + ' And FS.Sifra_BillCode = ''' + @Sifra_BillCode + ''' '
If @NivoCourseType Is Not Null
Set @SSQL = @SSQL + ' And CT.NivoCourseType = ''' + Cast(@NivoCourseType as varchar(10)) + ''' '
Insert Into #Rez Exec(@SSQL)
If @Kurs > 1
Update #Rez
Set TotalCharges=TotalCharges*@Kurs, FutureCharges=FutureCharges*@Kurs, CurrentCharges=CurrentCharges*@Kurs,
Sum(Case When FS.Datum_Stavka > ''' + Cast(@Datum_Presm as varchar(30)) + ''' And BC.Tip_BillCode In (''B'',''D'',''I'') Then FS.Iznos_Stavka Else 0 End) FutureCharges,
Sum(Case When FS.Datum_Stavka <= ''' + Cast(@Datum_Presm as varchar(30)) + ''' And BC.Tip_BillCode In (''B'',''D'',''I'') Then FS.Iznos_Stavka Else 0 End) CurrentCharges,
Sum(Case When BC.Tip_BillCode In (''P'', ''C'') Then FS.Iznos_Stavka Else 0 End) CurrentPayments,
Sum(Case When FS.Datum_Dosp_Stavka < ''' + Cast(@Datum_Presm as varchar(30)) + ''' And BC.Tip_BillCode In (''B'',''D'',''I'') Then FS.Iznos_Stavka
When BC.Tip_BillCode In (''P'', ''C'') Then (- 1* FS.Iznos_Stavka) Else 0 End) PastDue
From NGInvoice F
Inner Join NGInvoiceSta FS On FS.Sifra_Oe=F.Sifra_Oe And FS.Broj_Inv=F.Broj_Inv
Inner Join NGStudents S ON S.Sifra_Student=F.Sifra_Student
Left Outer Join NGBillCodes BC On BC.Sifra_BillCode=FS.Sifra_BillCode '
If @NivoCourseType Is Not Null
Set @SSQL = @SSQL + ' Inner Join NGCourseType CT On CT.Sifra_CourseType = S.Sifra_CourseType '
Set @SSQL = @SSQL + ' Where 1=1 '
If @Sifra_Student Is Not Null
Set @SSQL = @SSQL + ' And F.Sifra_Student = ''' + @Sifra_Student + ''' '
If @Sifra_Famil Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_Famil = ''' + @Sifra_Famil + ''' '
If @Datum_Fra_Od Is Not Null
Set @SSQL = @SSQL + ' And F.Datum_Inv >= ''' + Cast(@Datum_Fra_Od as varchar(30)) + ''' '
If @Datum_Fra_Do Is Not Null
Set @SSQL = @SSQL + ' And F.Datum_Inv <= ''' + Cast(@Datum_Fra_Do as varchar(30)) + ''' '
If @Broj_Inv_Od Is Not Null
Set @SSQL = @SSQL + ' And F.Broj_Inv_Od >= ' + Cast(@Broj_Inv_Od as varchar(10))
If @Broj_Inv_Do Is Not Null
Set @SSQL = @SSQL + ' And F.Broj_Inv_Do <= ' + Cast(@Broj_Inv_Do as varchar(10))
If @Sifra_CourseType Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_CourseType = ''' + @Sifra_CourseType + ''' '
If @Godina Is Not Null
Set @SSQL = @SSQL + ' And S.Godina = ''' + @Godina + ''' '
If @Aktiven Is Not Null
Set @SSQL = @SSQL + ' And S.Aktiven = ''' + @Aktiven + ''' '
If @Sifra_BillCode Is Not Null
Set @SSQL = @SSQL + ' And FS.Sifra_BillCode = ''' + @Sifra_BillCode + ''' '
If @NivoCourseType Is Not Null
Set @SSQL = @SSQL + ' And CT.NivoCourseType = ''' + Cast(@NivoCourseType as varchar(10)) + ''' '
Set @SSQL = @SSQL + ' Group By F.Broj_Inv, F.Datum_Inv, F.Opis_Invoice, F.DodadenOd, F.DodadenNa, F.Sifra_Student, S.Sifra_Famil '
Insert Into #Rez Exec(@SSQL)
If @Kurs > 1
Update #Rez
Set FutureCharges=FutureCharges*@Kurs, CurrentCharges=CurrentCharges*@Kurs, CurrentPayments=CurrentPayments*@Kurs, PastDue=PastDue*@Kurs
Set @SSQL = ' Select F.Broj_Inv, F.Datum_Inv, FS.Datum_Dosp_Stavka,
Sum(Case When FS.Datum_Stavka > ''' + Cast(@Datum_Presm as varchar(30)) + ''' And BC.Tip_BillCode In (''B'',''D'',''I'') Then FS.Iznos_Stavka Else 0 End) FutureCharges,
Sum(Case When FS.Datum_Stavka <= ''' + Cast(@Datum_Presm as varchar(30)) + ''' And BC.Tip_BillCode In (''B'',''D'',''I'') Then FS.Iznos_Stavka Else 0 End) CurrentCharges,
Sum(Case When BC.Tip_BillCode In (''P'', ''C'') Then FS.Iznos_Stavka Else 0 End) CurrentPayments,
Sum(Case When FS.Datum_Stavka <= ''' + Cast(@Datum_Presm as varchar(30)) + ''' And BC.Tip_BillCode In (''B'',''D'',''I'') Then FS.Iznos_Stavka
When BC.Tip_BillCode In (''P'', ''C'') Then (-1 * FS.Iznos_Stavka) Else 0 End) CurrentAmountDue,
Sum(Case When FS.Datum_Dosp_Stavka < ''' + Cast(@Datum_Presm as varchar(30)) + ''' And BC.Tip_BillCode In (''B'',''D'',''I'') Then FS.Iznos_Stavka
When BC.Tip_BillCode In (''P'', ''C'') Then (- 1* FS.Iznos_Stavka) Else 0 End) PastDue
From NGInvoice F
Inner Join NGInvoiceSta FS On FS.Sifra_Oe=F.Sifra_Oe And FS.Broj_Inv=F.Broj_Inv
Inner Join NGStudents S ON S.Sifra_Student=F.Sifra_Student
Left Outer Join NGBillCodes BC On BC.Sifra_BillCode=FS.Sifra_BillCode '
If @NivoCourseType Is Not Null
Set @SSQL = @SSQL + ' Inner Join NGCourseType CT On CT.Sifra_CourseType = S.Sifra_CourseType '
Set @SSQL = @SSQL + ' Where 1=1 '
If @Sifra_Student Is Not Null
Set @SSQL = @SSQL + ' And F.Sifra_Student = ''' + @Sifra_Student + ''' '
If @Sifra_Famil Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_Famil = ''' + @Sifra_Famil + ''' '
If @Datum_Fra_Od Is Not Null
Set @SSQL = @SSQL + ' And F.Datum_Inv >= ''' + Cast(@Datum_Fra_Od as varchar(30)) + ''' '
If @Datum_Fra_Do Is Not Null
Set @SSQL = @SSQL + ' And F.Datum_Inv <= ''' + Cast(@Datum_Fra_Do as varchar(30)) + ''' '
If @Sifra_CourseType Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_CourseType = ''' + @Sifra_CourseType + ''' '
If @Godina Is Not Null
Set @SSQL = @SSQL + ' And S.Godina = ''' + @Godina + ''' '
If @Aktiven Is Not Null
Set @SSQL = @SSQL + ' And S.Aktiven = ''' + @Aktiven + ''' '
If @Sifra_BillCode Is Not Null
Set @SSQL = @SSQL + ' And FS.Sifra_BillCode = ''' + @Sifra_BillCode + ''' '
If @NivoCourseType Is Not Null
Set @SSQL = @SSQL + ' And CT.NivoCourseType = ''' + Cast(@NivoCourseType as varchar(10)) + ''' '
Set @SSQL = @SSQL + ' Group By F.Broj_Inv, F.Datum_Inv, FS.Datum_Dosp_Stavka '
Insert Into #Rez Exec(@SSQL)
If @Kurs > 1
Update #Rez
Set FutureCharges=FutureCharges*@Kurs, CurrentCharges=CurrentCharges*@Kurs, CurrentPayments=CurrentPayments*@Kurs, CurrentAmountDue=CurrentAmountDue*@Kurs, PastDue=PastDue*@Kurs
-- Select * from #Rez
Create Table #NG
(
Broj_Inv int,
Datum_Inv smalldatetime,
FutureCharges decimal(18,4),
CurrentCharges decimal(18,4),
CurrentPayments decimal(18,4),
CurrentAmountDue decimal(18,4),
PastDue decimal(18,4),
PastDue_1_29 decimal(18,4),
PastDue_30_59 decimal(18,4),
PastDue_60_89 decimal(18,4),
PastDue_90 decimal(18,4)
)
Insert Into #NG
Select R.Broj_Inv, R.Datum_Inv,
Sum(FutureCharges) FutureCharges,
Sum(CurrentCharges) CurrentCharges,
Sum(CurrentPayments) CurrentPayments,
Sum(CurrentAmountDue) CurrentAmountDue,
Sum(PastDue) PastDue,
Sum(Case When R.Datum_Dosp_Stavka >= DateAdd(Day, -29, @Datum_Presm) And R.Datum_Dosp_Stavka <= @Datum_Presm Then PastDue Else 0 End) PastDue_1_29,
Sum(Case When R.Datum_Dosp_Stavka >= DateAdd(Day, -59, @Datum_Presm) And R.Datum_Dosp_Stavka <= DateAdd(Day, -30, @Datum_Presm) Then PastDue Else 0 End) PastDue_30_59,
Sum(Case When R.Datum_Dosp_Stavka >= DateAdd(Day, -89, @Datum_Presm) And R.Datum_Dosp_Stavka <= DateAdd(Day, -60, @Datum_Presm) Then PastDue Else 0 End) PastDue_60_89,
Sum(Case When R.Datum_Dosp_Stavka <= DateAdd(Day, -90, @Datum_Presm) Then PastDue Else 0 End) PastDue_90
ORDER BY K.Sifra_Podg, G.Ime_Gr, P.Ime_Podg, T.Sifra_Art, K.ImeArt'
print(@SSQL)
EXEC(@SSQL)
Return @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_obrt_na_zaliha]'))
drop procedure [dbo].[sp_obrt_na_zaliha]
Go
CREATE PROCEDURE sp_Obrt_Na_Zaliha
@Sifra_OE Smallint,
@KoiOE Varchar(700),
@Datum_Od Smalldatetime,
@Datum_Do Smalldatetime,
@Sifra_Art_Od Varchar(20) = Null,
@Sifra_Art_Do Varchar(20) = Null,
@Kto Char(6) = Null,
@Sifra_Gr varChar(6) = Null,
@Sifra_Podg Char(6) = Null,
@Lokacija Varchar(10) = Null,
@Sifra_Brand Smallint = Null,
@Sifra_Zbiren Smallint = Null,
@Drugo1 smallint = Null,
@Drugo2 smallint = Null,
@Drugo3 smallint = Null,
@Drugo4 smallint = Null,
@Drugo5 smallint = Null,
@Drugo6 smallint = Null,
@Drugo7 smallint = Null,
@Sifra_Div smallint = Null,
@CenaOd char(1) = 'S' -- S - DokCena od Soart, K - Nabavna od Katart
AS
Declare @SSQL Varchar(8000)
Declare @SSQLUsl Varchar(8000)
Set @SSQLUsl = ' '
If @Sifra_Brand Is Not NULL-- And @Sifra_Zbiren Is Null
Set @SSQLUsl = @SSQLUsl + ' And K.Sifra_Drg=''' + Cast(@Sifra_Brand As Varchar(5)) + ''' '
If @Sifra_Zbiren Is Not Null --@Sifra_Brand Is NUll And
Set @SSQLUsl = @SSQLUsl + ' And B.Sifra_Drg1=''' + Cast(@Sifra_Zbiren As Varchar(5)) + ''' '
If @Lokacija Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Lokacija=''' + @Lokacija + ''' '
If @Kto Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Kto=' + @Kto + ' '
If @Sifra_Podg Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Sifra_Podg=' + @Sifra_Podg + ' '
If @Sifra_Gr Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Gr=' + @Sifra_Gr + ' '
If @Drugo1 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo1=' + Cast(@Drugo1 As Varchar(6)) + ' '
If @Drugo2 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo2=' + Cast(@Drugo2 As Varchar(6)) + ' '
If @Drugo3 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo3=' + Cast(@Drugo3 As Varchar(6)) + ' '
If @Drugo4 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo4=' + Cast(@Drugo4 As Varchar(6)) + ' '
If @Drugo5 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo5=' + Cast(@Drugo5 As Varchar(6)) + ' '
If @Drugo6 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo6=' + Cast(@Drugo6 As Varchar(6)) + ' '
If @Drugo7 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Drugo7=' + Cast(@Drugo7 As Varchar(6)) + ' '
If @Sifra_Div Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Sifra_Div=' + Cast(@Sifra_Div As Varchar(6)) + ' '
If @Sifra_Art_Od Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_Art>=''' + @Sifra_Art_Od + ''' '
If @Sifra_Art_Do Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_Art<=''' + @Sifra_Art_Do + ''' '
If @Sifra_OE Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_OE=' + Cast(@Sifra_OE As Varchar(5)) + ' '
If @KoiOE Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_OE IN (' + @KoiOE + ') '
Create Table #ZalPoc1
(
Sifra_Art varchar(20),
PocZaliha decimal(18,6),
VredPocZal decimal(18,6),
KrajZaliha decimal(18,6),
VredKrajZal decimal(18,6),
IzlezZaPeriod decimal(18,6),
VredIzlZaPer decimal(18,6)
-- Nabavna decimal(18,6)
)
-- Pocetna zaliha, Krajna zaliha i Izlez vo periodot
Set @SSQL = ' Select S.Sifra_Art,
Sum(Case When S.Datum_Dok < ''' + Cast (@Datum_Od as varchar(30)) + ''' Then (Case When S.VlIzl = ''V'' Then S.Kolic Else -1*S.Kolic End) Else 0 End) PocZaliha,
Sum(Case When S.Datum_Dok < ''' + Cast (@Datum_Od as varchar(30)) + ''' Then (Case When S.VlIzl = ''V'' Then (S.Kolic*S.NabCena) Else (-1*S.Kolic*S.NabCena) End) Else 0 End) VredPocZal,
Sum(Case When S.Datum_Dok <= ''' + Cast (@Datum_Do as varchar(30)) + ''' Then (Case When S.VlIzl = ''V'' Then S.Kolic Else -1*S.Kolic End) Else 0 End) KrajZaliha,
Sum(Case When S.Datum_Dok <= ''' + Cast (@Datum_Do as varchar(30)) + ''' Then (Case When S.VlIzl = ''V'' Then (S.Kolic*S.NabCena) Else (-1*S.Kolic*S.NabCena) End) Else 0 End) VredKrajZal,
Sum(Case When S.Datum_Dok >= ''' + Cast (@Datum_Od as varchar(30)) + ''' And S.Datum_Dok <= ''' + Cast (@Datum_Do as varchar(30)) + ''' And S.Vlizl = ''I'' And (S.ImaDodatna Is Null Or S.ImaDodatna='''') Then S.Kolic Else 0 End) IzlezZaPeriod,
Sum(Case When S.Datum_Dok >= ''' + Cast (@Datum_Od as varchar(30)) + ''' And S.Datum_Dok <= ''' + Cast (@Datum_Do as varchar(30)) + ''' And S.Vlizl = ''I'' And (S.ImaDodatna Is Null Or S.ImaDodatna='''') Then S.Kolic*S.NabCena Else 0 End) VredIzlZaPer '
Set @SSQL = @SSQL + ' From Stavr S
Inner Join Katart K On K.Sifra_Art = S.Sifra_Art '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + ' Inner Join Podgrupi P On P.Sifra_Podg=K.Sifra_Podg '
If @Sifra_Zbiren Is Not Null
Set @SSQL = @SSQL + ' Left Outer Join DrgPodel B On B.Sifra_Drg=K.Sifra_Drg '
Set @SSQL = @SSQL + ' Where S.Datum_Dok <= ''' + Cast(@Datum_Do as varchar(30)) + ''' And K.SMatUsl = ''M'' '
Set @SSQL = @SSQL + @SSQLUsl + ' Group By S.Sifra_Art '
Insert Into #ZalPoc1 Exec(@SSQL)
-- Finansiski razliki
Set @SSQL = ' Select S.Sifra_Art,
0 PocZaliha,
Sum(Case When S.Datum_Dok < ''' + Cast (@Datum_Od as varchar(30)) + ''' Then (Case VlIzl When ''V'' Then Iznos_Razl When ''I'' Then (-1*Iznos_Razl) End) Else 0 End) PocVredZal,
0 KrajZaliha,
Sum(Case When S.Datum_Dok <= ''' + Cast (@Datum_Do as varchar(30)) + ''' Then (Case VlIzl When ''V'' Then Iznos_Razl When ''I'' Then (-1*Iznos_Razl) End) Else 0 End) KrajVredZal,
0 IzlezZaPeriod,
0 VredIzlezZaPer
From RazlFin S
Inner Join Katart K On K.Sifra_Art = S.Sifra_Art '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + ' Inner Join Podgrupi P On P.Sifra_Podg=K.Sifra_Podg '
If @Sifra_Zbiren Is Not Null
Set @SSQL = @SSQL + ' Left Outer Join DrgPodel B On B.Sifra_Drg=K.Sifra_Drg '
Set @SSQL = @SSQL + ' Where S.Datum_Dok <= ''' + Cast(@Datum_Do as varchar(30)) + ''' And K.SMatUsl = ''M'' '
Set @SSQL = @SSQL + @SSQLUsl + ' Group By S.Sifra_Art '
SET @SSQL = @SSQL + ' And Sifra_Oe = ' + Cast(@Za_OrgEd as varchar(6)) + ' '
IF @Za_GrOrgEd Is Not Null
Set @SSQL = @SSQL + ' And Sifra_OE IN (Select Sifra_Oe from SGrOrg G where Sif_GrOrg = ''' + @Za_GrOrgEd + ''') '
End
EXEC (@SSQL)
SELECT @PomIzn = SUM(Iznos) FRom #Tmp1
DROP TABLE #Tmp1
End
ELSE IF @Sifra_Rsp IS NOT NULL AND @Za_Divizija IS NOT NULL
Begin
Declare @Procent as decimal(6,2)
SET @Procent=0 --ova da se ostavi, pravese golemi problemi ako nema zapis dolu, ne se nulira, mi zede 2 sati
SELECT @Procent = Procent FROM FiRaspredelba WHERE Sifra_FiRsp=@Sifra_Rsp AND Sifra_Div=@Za_Divizija
IF @Procent IS NULL SET @Procent=0
SELECT @PomIzn = Round(SUM(Iznos) * @Procent/100,2) FRom #TmpIzn
--print 'rasp ' +cast(@Sifra_Rsp as varchar(2))+' proc '+cast(@Procent as varchar(8))+' div '+cast(@Za_Divizija as varchar(3))+' izn ' +cast(@PomIzn as varchar(14))
End
ELSE
SELECT @PomIzn = SUM(Iznos) FRom #TmpIzn
SET @Iznos = @Iznos + @PomIzn
--print 'sega @iznos'
--print @Iznos
Fetch Next From Tabela1 Into @Kto_Anal, @Egzaktno_Kto, @TekPocVk, @D_P_SD_SP, @Raspredelba, @Znak, @Sifra_Div, @Sifra_TrosM, @Sifra_Rsp
End
Close Tabela1
Deallocate Tabela1
Set Nocount Off
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_odfimnabavka]'))
drop procedure [dbo].[sp_odfimnabavka]
Go
CREATE PROCEDURE sp_OdFiMNabavka
@Datum_Od smalldatetime,
@Datum_Do smalldatetime,
@Sifra_OE smallint,
@Sifra_GrOrg char(6),
@Za_OrgEd smallint,
@Za_GrOrgEd char(6),
@Nab_VredNab char(1) = 'N',
@Iznos decimal(18,6) OUTPUT
AS
Declare @SSQL Varchar(4000)
Create Table #Tab
(
Nabavka decimal(18,6)
)
Set @SSQL = ' Insert Into #Tab (Nabavka)
Select Round(Sum(dbo.fn_vr_sorabat(S.Kolic, S.DokCena, S.DanDokCena, S.POsn, S.Uces, D.Kasa)), 4) as Vr_SoRabat
From Stavr S
Inner Join Dokr D On D. DokrId = S.DokrId
Inner Join Katart K On S.Sifra_Art=K.Sifra_Art
Where S.Datum_Dok >= ''' + Cast(@Datum_Od As Varchar(30)) + '''
And S.Datum_Dok <= ''' + Cast(@Datum_Do As Varchar(30)) + ''' '
If @Nab_VredNab = 'N'
Set @SSQL =@SSQL + ' And D.Sifra_Za = 2 and D.VlIzl = ''V'' '
Else
Set @SSQL= @SSQL + ' And D.Sifra_Za In (2,3) and D.VlIzl = ''V'' '
IF @Sifra_Oe Is Not Null
SET @SSQL = @SSQL + ' And S.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
IF @Za_OrgEd Is Not Null
SET @SSQL = @SSQL + ' And S.Sifra_Oe = ' + Cast(@Za_OrgEd as varchar(6)) + ' '
IF @Sifra_GrOrg Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_OE IN (Select Sifra_Oe from SGrOrg G where Sif_GrOrg = ''' + @Sifra_GrOrg + ''') '
IF @Za_GrOrgEd Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_OE IN (Select Sifra_Oe from SGrOrg G where Sif_GrOrg = ''' + @Za_GrOrgEd + ''') '
Exec(@SSQL)
-- Ne se slozuva so nekoi proceduri od prodaza zaradi toa sto tvddo e staveno da gi isklucuva tie artikli kada K.Iskluci = 'D'
Set @Iznos = (Select Sum(Nabavka) From #Tab)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_odfimprodazba]'))
drop procedure [dbo].[sp_odfimprodazba]
Go
CREATE PROCEDURE sp_OdFiMProdazba
@Datum_Od smalldatetime,
@Datum_Do smalldatetime,
@Sifra_OE smallint,
@Sifra_GrOrg char(6),
@Za_OrgEd smallint,
@Za_GrOrgEd char(6),
@Prod_VredProd char(1),
@Sifra varchar(20)=NULL,
@KojaSifra char(2) = NULL, --PG-PodGrupa
@Iznos decimal(18,2) OUTPUT
AS
Declare @SSQL Varchar(4000)
Create Table #Tab
(
Prodazba decimal(18,2)
)
Set @SSQL = ' Insert Into #Tab (Prodazba)
Select Round(Sum(dbo.fn_vr_sorabat(S.Kolic, S.DokCena, S.DanDokCena, S.POsn, S.Uces, D.Kasa)), 2) as Vr_SoRabat
From Stavr S
Inner Join Dokr D On D. DokrId = S.DokrId '
IF @Sifra IS NOT NULL
Begin
IF @KojaSifra = 'PG'
Set @SSQL = @SSQL + ' Inner Join Katart K On S.Sifra_Art=K.Sifra_Art '
End
Set @SSQL = @SSQL + ' Where S.Datum_Dok >= ''' + Cast(@Datum_Od As Varchar(30)) + '''
And S.Datum_Dok <= ''' + Cast(@Datum_Do As Varchar(30)) + ''' '
If @Prod_VredProd = 'P'
Set @SSQL = @SSQL + ' And D.Sifra_Za = 1 and D.VlIzl = ''I'' '
Else
Set @SSQL = @SSQL + ' And D.Sifra_Za In (1,3) and D.VlIzl = ''I'' '
IF @Sifra_Oe Is Not Null
SET @SSQL = @SSQL + ' And S.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
IF @Za_OrgEd Is Not Null
SET @SSQL = @SSQL + ' And S.Sifra_Oe = ' + Cast(@Za_OrgEd as varchar(6)) + ' '
IF @Sifra_GrOrg Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_OE IN (Select Sifra_Oe from SGrOrg G where Sif_GrOrg = ''' + @Sifra_GrOrg + ''') '
IF @Za_GrOrgEd Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_OE IN (Select Sifra_Oe from SGrOrg G where Sif_GrOrg = ''' + @Za_GrOrgEd + ''') '
IF @Sifra IS NOT NULL
Begin
IF @KojaSifra='PG'
Set @SSQL = @SSQL + ' And K.Sifra_Podg = ''' + @Sifra + ''' '
End
Exec(@SSQL)
-- Ne se slozuva so nekoi proceduri od prodaza zaradi toa sto tvddo e staveno da gi isklucuva tie artikli kada K.Iskluci = 'D'
Set @Iznos = (Select Sum(Prodazba) From #Tab)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_odfimrazlcena]'))
drop procedure [dbo].[sp_odfimrazlcena]
Go
CREATE PROCEDURE sp_OdFiMRazlCena
@Datum_Od smalldatetime,
@Datum_Do smalldatetime,
@Sifra_OE smallint,
@Sifra_GrOrg char(6),
@Za_OrgEd smallint,
@Za_GrOrgEd char(6),
@Sifra varchar(20) = NULL,
@KojaSifra char(2) = NULL, --PG-PodGrupa
@Iznos decimal(18,2) OUTPUT
AS
Declare @SSQL Varchar(4000)
Create Table #Tab
(
RazlCena decimal(18,6)
)
Set @SSQL = ' Insert Into #Tab Select Round(sum(Kolic*dbo.fn_VratiCenaOsnov(S.DokCena, S.DanDokCena, S.Posn, S.Uces, D.Kasa)
- S.Kolic*S.NabCena),2)
From Stavr S
Inner Join Dokr D On D.DokrId = S.DokrId '
IF @Sifra IS NOT NULL
Begin
IF @KojaSifra = 'PG'
Set @SSQL = @SSQL + ' Inner Join KatArt K ON S.Sifra_Art=K.Sifra_Art '
End
SET @SSQL = @SSQL + ' Where S.Datum_Dok >= ''' + Cast(@Datum_Od As Varchar(30)) + '''
And S.Datum_Dok <= ''' + Cast(@Datum_Do As Varchar(30)) + '''
And S.VlIzl = ''I'' and D.Sifra_Za = 1 '
IF @Sifra_Oe Is Not Null
SET @SSQL = @SSQL + ' And S.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
IF @Za_OrgEd Is Not Null
SET @SSQL = @SSQL + ' And S.Sifra_Oe = ' + Cast(@Za_OrgEd as varchar(6)) + ' '
IF @Sifra_GrOrg Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_OE IN (Select Sifra_Oe from SGrOrg G where Sif_GrOrg = ''' + @Sifra_GrOrg + ''') '
IF @Za_GrOrgEd Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_OE IN (Select Sifra_Oe from SGrOrg G where Sif_GrOrg = ''' + @Za_GrOrgEd + ''') '
IF @Sifra IS NOT NULL
Begin
IF @KojaSifra='PG'
Set @SSQL = @SSQL + ' And K.Sifra_Podg = ''' + @Sifra + ''' '
End
Exec(@SSQL)
-- Ne se slozuva so nekoi proceduri od prodaza zaradi toa sto tvddo e staveno da gi isklucuva tie artikli kada K.Iskluci = 'D'
Set @Iznos = (Select Sum(RazlCena) From #Tab)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_odfimzaliha]'))
drop procedure [dbo].[sp_odfimzaliha]
Go
CREATE PROCEDURE sp_OdFiMZaliha
@Datum_Do smalldatetime,
@Sifra_OE smallint,
@Sifra_GrOrg char(6),
@Za_OrgEd smallint,
@Za_GrOrgEd char(6),
@Iznos decimal(18,6) OUTPUT
AS
Declare @SSQL Varchar(4000)
Create Table #Tab
(
Vlez decimal(18,6),
Izlez decimal(18,6),
Cena decimal(18,6)
)
Set @SSQL = ' Insert Into #Tab
Select Vlez = Sum(Case S.VlIzl
When ''V'' Then S.Kolic
When ''I'' Then 0
End),
Izlez = Sum(Case S.VlIzl
When ''V'' Then 0
When ''I'' Then Kolic
End),
dbo.fn_CenaDatum(S.Sifra_OE, S.Sifra_Art, ''' + Cast(@Datum_Do As Varchar(30)) + ''', ''N'')
From Stavr S
Inner Join Dokr D On D. DokrId = S.DokrId
Inner Join Katart K On S.Sifra_Art=K.Sifra_Art And K.SMatUsl=''M''
Where S.Datum_Dok <= ''' + Cast(@Datum_Do As Varchar(30)) + ''' '
IF @Sifra_Oe Is Not Null
SET @SSQL = @SSQL + ' And S.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
IF @Za_OrgEd Is Not Null
SET @SSQL = @SSQL + ' And S.Sifra_Oe = ' + Cast(@Za_OrgEd as varchar(6)) + ' '
IF @Sifra_GrOrg Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_OE IN (Select Sifra_Oe from SGrOrg G where Sif_GrOrg = ''' + @Sifra_GrOrg + ''') '
IF @Za_GrOrgEd Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_OE IN (Select Sifra_Oe from SGrOrg G where Sif_GrOrg = ''' + @Za_GrOrgEd + ''') '
Set @SSQL = @SSQL + ' Group By dbo.fn_CenaDatum(S.Sifra_OE, S.Sifra_Art, ''' + Cast(@Datum_Do As Varchar(30)) + ''', ''N'') '
Exec(@SSQL)
Set @Iznos = (Select Sum((Vlez-Izlez)*Cena) From #Tab)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_odfispeckuppat]'))
drop procedure [dbo].[sp_odfispeckuppat]
Go
CREATE PROCEDURE sp_OdFiSpecKupPat
@Datum_Od smalldatetime,
@Datum_Do smalldatetime,
@Sifra_OE smallint=NULL,
@Sif_GrOrg char(6),
@Kto_Anal char(10),
@BezOrgEd char(1) = 'N',
@Iznos decimal(18,6) OUTPUT
AS
Declare @SSQL Varchar(4000)
Create Table #Tab
(Iznos decimal(18,4) )
Set @SSQL = ' Insert Into #Tab Select Sum(F.Dolzi-F.Pobaruva) From AnFinDok F
INNER JOIN Komint K ON F.Sifra_Kup=K.Sifra_Kup
Where F.Kto=' +@Kto_anal+ ' AND F.Datum_Dok <= ''' + Cast(@Datum_Do As Varchar(30)) + ''' '
IF @Datum_Od Is Not Null
SET @SSQL = @SSQL + ' And F.Datum_Dok >= ''' + Cast(@Datum_Od As Varchar(30)) + ''' '
IF @BezOrgEd='N'
Begin
IF @Sif_GrOrg IS NOT NULL
SET @SSQL = @SSQL + ' AND K.Sifra_Pat IN (SELECT Sifra_Pat FROM Patnici WHERE Sif_GrOrg=''' + @Sif_GrOrg + ''') '
End
ELSE
SET @SSQL = @SSQL + ' AND K.Sifra_Pat IS NULL '
Exec(@SSQL)
Select @Iznos=Iznos From #Tab
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_odfitabela]'))
drop procedure [dbo].[sp_odfitabela]
Go
CREATE PROCEDURE sp_OdFiTabela
@FiID int,
@Datum_Od smalldatetime,
@Datum_Do smalldatetime,
@Za_OrgEd smallint = NULL,
@Za_GrOrgEd char(6) = NULL,
@Konto_Raspr varchar(10) = NULL,
@PoOrgEd char(1) = NULL, --na D koga se pusta od sp_odFiTabelaPoOrged
@BezOrgEd char(1) = 'N',
@DivizijaOd char(1) = 'G', -- G - od GStav D - od GstAnDiv
@Za_Divizija smallint = NULL
AS
CREATE TABLE ##TmpProc
( Sifra_OE smallint,
Iznos decimal(18,2),
Procent decimal(18,9)
)
Declare @TocnoKtoRaspr char(1)
Declare @VkIznRaspr decimal(18,2) --najdi % za raspredelba
SELECT @Konto_Raspr = rtrim(ltrim(Kto_Anal_Raspr)), @TocnoKtoRaspr = Egzaktno_KtoRaspr FROM FiTabela WHERE FiId = @FiID
if @Konto_Raspr='' SET @Konto_Raspr = null
IF @Konto_Raspr IS NOT NULL
Begin
IF @TocnoKtoRaspr = 'N'
Begin
SELECT @VkIznRaspr = round(SUM(Dolzi - Pobaruva),2) FROM GStav
WHERE Datum_Nal >= @Datum_Od AND Datum_Nal <= @Datum_Do AND Kto_Anal LIKE @Konto_Raspr + '%'
INSERT INTO ##TmpProc (Sifra_OE, Iznos)
SELECT Sifra_OE, round(SUM(Dolzi - Pobaruva),2) FROM GStav
WHERE Datum_Nal >= @Datum_Od AND Datum_Nal <= @Datum_Do AND Kto_Anal LIKE @Konto_Raspr + '%'
GROUP BY Sifra_OE
End
Else
Begin
SELECT @VkIznRaspr = Round(SUM(Dolzi - Pobaruva),2) FROM GStav
WHERE Datum_Nal >= @Datum_Od AND Datum_Nal <= @Datum_Do AND Kto_Anal = @Konto_Raspr
INSERT INTO ##TmpProc (Sifra_OE, Iznos)
SELECT Sifra_OE, Round(SUM(Dolzi - Pobaruva),2) FROM GStav WHERE Datum_Nal >= @Datum_Od AND Datum_Nal <= @Datum_Do AND Kto_Anal = @Konto_Raspr
INSERT INTO #TmpPoPerKL SELECT RbrFi, Iznos FROM ##TmpTab WHERE Iznos <> 0
DROP TABLE ##TmpTab
SELECT S.*, ML.IznosML, MG.IznosMG,KL.IznosKL,KG.IznosKG from #TmpStavki S
LEFT OUTER JOIN #TmpPoPerML ML ON ML.RbrFi = s.RbrFi
LEFT OUTER JOIN #TmpPoPerMG MG ON MG.RbrFi = s.RbrFi
LEFT OUTER JOIN #TmpPoPerKL KL ON KL.RbrFi = s.RbrFi
LEFT OUTER JOIN #TmpPoPerKG KG ON KG.RbrFi = s.RbrFi
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_odfizbir]'))
drop procedure [dbo].[sp_odfizbir]
Go
CREATE PROCEDURE sp_OdFiZbir
@FiID int,
@RbrFi smallint,
@Iznos decimal(18,6) OUTPUT,
@Razresen char(1) OUTPUT
AS
Declare @SSQL varchar(1000)
Declare @Znak char(1)
Declare @OdRbrFi int
Declare @IznOdStav decimal(18,6)
Declare @RazrSt char(1)
SET @Iznos = 0
SET @Razresen='D'
Declare Tabela2 Cursor Fast_Forward For
Select Znak , OdRbrFi
From FiZbir WHERE FiId = @FiId AND RbrFi = @RbrFi
Open Tabela2
Fetch Next From Tabela2 Into @Znak, @OdRbrFi
While @@Fetch_Status = 0
Begin
Select @IznOdStav = Iznos, @RazrSt = Razresen From ##TmpTab Where RbrFi = @OdRbrFi
IF @RazrSt = 'N'
Begin
SET @Razresen='N'
SET @Iznos=0
Close Tabela2
Deallocate Tabela2
RETURN
End
If @Znak = '+'
Set @Iznos = @Iznos + @IznOdStav
If @Znak = '-'
Set @Iznos = @Iznos - @IznOdStav
If @Znak = '/' AND @IznOdStav <> 0
Set @Iznos = @Iznos / @IznOdStav
If @Znak = '*'
Set @Iznos = @Iznos * @IznOdStav
If @Znak = '%' AND @IznOdStav <> 0 --Set @Iznos = @Iznos * 100 / @IznOdStav 25.11.09
Set @Iznos = @Iznos * 100 / @IznOdStav
Fetch Next From Tabela2 Into @Znak, @OdRbrFi
End
Close Tabela2
Deallocate Tabela2
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_odjava]'))
drop procedure [dbo].[sp_odjava]
Go
CREATE PROCEDURE sp_Odjava
@Sifra_OE smallint = NULL,
@KoiOE Varchar(6) = NULL,
@Sifra_Art_Od varchar(20) = NULL,
@Sifra_Art_Do varchar(20) = NULL,
-- @Datum_Nal_Od Smalldatetime = NULL, -- nema potreba
-- @Datum_Nal_Do Smalldatetime = NULL, -- nema potreba
@Datum_Dok_Od Smalldatetime = NULL,
-- @Datum_Dok_Do Smalldatetime = NULL, -- nema da treba
@SoDDV char(1) = 'D', -- D/N -- predlagam sekogass da e D
@Sifra_Kup varchar(8) = NULL,
@Sifra_Gr varchar(300) = NULL,
@Sifra_Podg varchar(300) = NULL,
@Sifra_Drg smallint = Null,
@Lokacija varchar(10) = NULL,
@Sifra_Brand smallint = NULL,
@Aktiven char(1) = Null, -- D - Aktivni N - Neaktivni
-- @KontrSer varchar(25) = Null, -- nema potreba
-- @PrikKontrSer char(1) = 'N', -- nema potreba
-- @SoRazlCeni char(1) = 'D', -- so razliki vo ceni -- Ne treba
@BezPromOdPren char(1) = 'N',
@SiteArt char(1) = 'N',
@SoDozvArt char(1) = 'N',
@TipDok varchar(300) = Null,
@DobavOd char(1) = 'K', -- K - od Katart, S - od Stavr
@Sifra_Drg1 smallint = Null,
-- @KojaCena char(1) = Null, -- da fiksirame na tekovna cena od soart M - MagCena, N - Nabavna od Katart, P - Prosecna nabavna, D - DokCena (Nabavna na vlez, Prodazna na izlez)
@KoiArt char(1) = Null, -- I - artikli so izlez vo tekovniot period, N - artikli bez prodazba vo tek.period, P - artikli so promet vo tekovniot period
@DozvArt char(1) = Null,
@Drugo1 smallint= null,
@Drugo2 smallint= null,
@Drugo3 smallint= null,
@Drugo4 smallint= null,
@Drugo5 smallint= null,
@Drugo6 smallint= null,
@Drugo7 smallint= null,
@BezPromOdPopis char(1) = 'N', -- bez promet od popis (tip dok 991,992)
@Sifra_Div smallint = NULL --24.02.2012
AS
Declare @SSQL As Varchar(4000)
Declare @SSQLUsl As Varchar(4000)
Declare @SSQLUslArt As Varchar(4000)
Set @SSQL = ' '
Set @SSQLUsl = ' '
Set @SSQLUslArt = ' '
CREATE TABLE #Promet
(
Sifra_OE Smallint,
Sifra_Art Varchar(20),
TVlez Numeric(18, 4),
TIzlez Numeric(18, 4),
TVlezBezPren Numeric(18, 4),
TIzlezBezPren Numeric(18, 4),
Sostojba decimal(18,6),
Cena decimal(18,6)
)
Create NonClustered Index IX_OeArt On #Promet (Sifra_Oe, Sifra_Art)
Create Table #Art
(
Sifra_Art varchar(20)
)
Create NonClustered Index IX_Art On #Art (Sifra_Art)
Set Nocount On
------------------------------------------------------------------------------------------------- U S L O V -------------------------------------------------------------------------------------------------------------
If @Sifra_OE Is Not Null
SET @SSQLUsl = @SSQLUsl + ' And S.Sifra_OE=' + Cast(@Sifra_OE As Varchar(10)) + ' '
If @KoiOE Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_OE In (Select Sifra_OE From SGrOrg Where Sif_GrOrg=''' + @KoiOE + ''') '
If @TipDok Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_Dok In (' + @TipDok + ') '
If @Sifra_Kup Is NOT NULL
If @DobavOd = 'S'
SET @SSQLUslArt = @SSQLUslArt + ' ' --AND K.Sifra_Art In (Select Distinct S.Sifra_Art From Dokr D Inner Join Stavr S On S.DokrID = D.DokrID
--Where D.VlIzl=''V'' And D.Sifra_Za = ''2'' And D.Sifra_Kup = ''' + @Sifra_Kup + ''') '
Else
SET @SSQLUslArt = @SSQLUslArt + ' AND K.Kto = ''' + @Sifra_Kup + ''' '
If @Sifra_Art_Od Is NOT Null
SET @SSQLUslArt = @SSQLUslArt + ' AND K.Sifra_Art>=''' + Cast(@Sifra_Art_Od As Varchar(35)) + ''' '
If @Sifra_Art_Do Is NOT Null
SET @SSQLUslArt = @SSQLUslArt + ' AND K.Sifra_Art<=''' + Cast(@Sifra_Art_Do As Varchar(35)) + ''' '
If @Sifra_Gr IS NOT NULL
SET @SSQLUslArt = @SSQLUslArt + ' AND G.Sifra_Gr In ('+@Sifra_Gr+') '
If @Sifra_Podg IS NOT NULL
SET @SSQLUslArt = @SSQLUslArt + ' AND K.Sifra_Podg In ('+@Sifra_Podg+') '
If @Sifra_Brand Is NOT NULL
SET @SSQLUslArt = @SSQLUslArt + ' AND K.Sifra_Drg = ' + Cast(@Sifra_Brand as varchar(6)) + ' '
If @Lokacija IS NOT NULL
SET @SSQLUslArt = @SSQLUslArt + ' AND (K.Lokacija='''+lTrim(rtrim(@Lokacija))+''') '
If @Sifra_Drg Is Not Null
SET @SSQLUslArt = @SSQLUslArt + ' AND K.Sifra_Drg=' + Cast(@Sifra_Drg As Varchar(10)) + ' '
If @Sifra_Drg1 Is Not Null
SET @SSQLUslArt = @SSQLUslArt + ' AND B.Sifra_Drg1=' + Cast(@Sifra_Drg1 As Varchar(10)) + ' '
If @Aktiven = 'D'
SET @SSQLUslArt = @SSQLUslArt + ' AND (K.Aktiven <> ''N'' Or K.Aktiven Is Null) '
Else If @Aktiven = 'N'
SET @SSQLUslArt = @SSQLUslArt + ' AND (K.Aktiven = ''N'') '
If @DozvArt = 'D' And @Sifra_Oe Is Not Null
SET @SSQLUslArt = @SSQLUslArt + ' AND (OZ.Dozvoleno <> ''N'' Or OZ.Dozvoleno Is Null) '
Else If @DozvArt = 'N' And @Sifra_Oe Is Not Null
SET @SSQLUslArt = @SSQLUslArt + ' AND (OZ.Dozvoleno = ''N'') '
--16.09.2010
If @Drugo1 Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND K.Drugo1 =''' + Cast(@Drugo1 As Varchar(6)) + ''' '
If @Drugo2 Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND K.Drugo2 =''' + Cast(@Drugo2 As Varchar(6)) + ''' '
If @Drugo3 Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND K.Drugo3 =''' + Cast(@Drugo3 As Varchar(6)) + ''' '
If @Drugo4 Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND K.Drugo4 =''' + Cast(@Drugo4 As Varchar(6)) + ''' '
If @Drugo5 Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND K.Drugo5 =''' + Cast(@Drugo5 As Varchar(6)) + ''' '
If @Drugo6 Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND K.Drugo6 =''' + Cast(@Drugo6 As Varchar(6)) + ''' '
If @Drugo7 Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND K.Drugo7 =''' + Cast(@Drugo7 As Varchar(6)) + ''' '
--24.02.2012
If @Sifra_Div IS NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND K.Sifra_Div = ''' + Cast(@Sifra_Div As Varchar(6)) + ''' '
Vlez = Sum(Case S.VlIzl When ''V'' Then S.Kolic Else 0 End),
Izlez = Sum(Case S.VlIzl When ''I'' Then S.Kolic Else 0 End), '
If @BezPromOdPren = 'D' And (@BezPromOdPopis Is Null Or @BezPromOdPopis <> 'D')
Set @SSQL = @SSQL + ' VlezBezPren = Sum(Case S.VlIzl When ''V'' Then (Case When S.ImaDodatna = ''D'' Then 0 Else S.Kolic End) Else 0 End),
IzlezBezPren = Sum(Case S.VlIzl When ''I'' Then (Case When S.ImaDodatna = ''D'' Then 0 Else S.Kolic End) Else 0 End), '
Else If @BezPromOdPren = 'D' And @BezPromOdPopis = 'D'
Set @SSQL = @SSQL + ' VlezBezPren = Sum(Case When S.VlIzl=''V'' And S.Sifra_Dok Not In (991,992) Then (Case When S.ImaDodatna = ''P'' Then 0 Else S.Kolic End) Else 0 End),
IzlezBezPren = Sum(Case When S.VlIzl=''I'' And S.Sifra_Dok Not In (991,992) Then (Case When S.ImaDodatna = ''D'' Then 0 Else S.Kolic End) Else 0 End), '
Else If (@BezPromOdPren Is Null Or @BezPromOdPren<>'D') And @BezPromOdPopis = 'D'
Set @SSQL = @SSQL + ' VlezBezPren = Sum(Case When S.VlIzl=''V'' And S.Sifra_Dok Not In (991,992) Then S.Kolic Else 0 End),
IzlezBezPren = Sum(Case When S.VlIzl=''I'' And S.Sifra_Dok Not In (991,992) Then S.Kolic Else 0 End), '
Else
Set @SSQL = @SSQL + ' 0 as TVlezBezPren, 0 as TIzlezBezPren, '
Set @SSQL = @SSQL + ' 0 as Sostojba, 0 as Cena
FROM Stavr S
INNER JOIN Katart K ON S.Sifra_Art = K.Sifra_Art AND K.SMatUsl=''M'' '
If @DobavOd = 'S' And @Sifra_Kup Is Not Null
Set @SSQL = @SSQL + ' Inner Join #Art A On A.Sifra_Art=S.Sifra_Art '
If @Sifra_Gr IS NOT NULL
Set @SSQL=@SSQL+' INNER JOIN Podgrupi PG ON K.Sifra_Podg=PG.Sifra_Podg
INNER JOIN Grupi G ON PG.Sifra_Gr=G.Sifra_Gr '
If @Sifra_Drg1 Is Not Null
Set @SSQL=@SSQL+' INNER JOIN DrgPodel B ON B.Sifra_Drg=K.Sifra_Drg '
If @DozvArt In ('D','N') And @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' Left Outer Join OptZalPoOe OZ On OZ.Sifra_Art = S.Sifra_Art And OZ.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(5)) + ' '
Set @SSQL = @SSQL + ' Where 1=1 '
If @Datum_Dok_Od Is NOT Null
SET @SSQL = @SSQL + 'AND S.Datum_Dok>=''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
-- If @Datum_Dok_Do Is NOT Null
-- SET @SSQL = @SSQL + 'AND S.Datum_Dok<=''' + Cast(@Datum_Dok_Do As Varchar(35)) + ''' '
--print @SSQL+@SSQLUsl
Set @SSQL = @SSQL+@SSQLUsl+@SSQLUslArt
Set @SSQL = @SSQL + ' Group By S.Sifra_Oe, S.Sifra_Art '
print @SSQL
INSERT #Promet EXEC(@SSQL)
----------------- Artiklite koi imaat prethoden promet, a nemaat promet vo periodot
If @SoDozvArt = 'D' And @Sifra_Oe Is Not Null And @KoiOe Is Null
Set @SSQL = @SSQL + ', OZ.Dozvoleno '
Else
Set @SSQL = @SSQL + ', Null as Dozvoleno '
Set @SSQL = @SSQL + ' From Katart K
Inner Join Podgrupi PG On PG.Sifra_Podg=K.Sifra_Podg
Inner Join Grupi G On G.Sifra_Gr=PG.Sifra_Gr
Left Outer Join Komint Dob On Dob.Sifra_Kup=K.Kto '
If @DobavOd = 'S' And @Sifra_Kup Is Not Null
Set @SSQL = @SSQL + ' Inner Join #Art A On A.Sifra_Art=K.Sifra_Art '
If @Sifra_Drg1 Is Not Null
Set @SSQL=@SSQL+'INNER JOIN DrgPodel B ON B.Sifra_Drg=K.Sifra_Drg '
If (@SoDozvArt = 'D' And @Sifra_Oe Is Not Null And @KoiOe Is Null) Or (@DozvArt In ('D','N') And @Sifra_Oe Is Not Null And @KoiOe Is Null)
Set @SSQL = @SSQL + ' Left Outer Join OptZalPoOe OZ On OZ.Sifra_Art = K.Sifra_Art And OZ.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
Set @SSQL = @SSQL + ' Where K.Sifra_Art Not In (Select Distinct Sifra_Art From #Promet) '
Set @SSQL = @SSQL + @SSQLUslArt
End
-------------------------------------------
Set @SSQL = @SSQL + 'Order By P.Sifra_Art, P.Sifra_OE '
print @SSQL
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_odjava_view]'))
drop procedure [dbo].[sp_odjava_view]
Go
CREATE PROCEDURE sp_Odjava_View
@Sifra_OE smallint = NULL,
@KoiOE Varchar(6) = NULL,
@Sifra_Art_Od varchar(20) = NULL,
@Sifra_Art_Do varchar(20) = NULL,
-- @Datum_Nal_Od Smalldatetime = NULL, -- nema potreba
-- @Datum_Nal_Do Smalldatetime = NULL, -- nema potreba
@Datum_Dok_Od Smalldatetime = NULL,
-- @Datum_Dok_Do Smalldatetime = NULL, -- nema da treba
@SoDDV char(1) = 'D', -- D/N -- predlagam sekogass da e D
@Sifra_Kup varchar(8) = NULL,
@Sifra_Gr varchar(300) = NULL,
@Sifra_Podg varchar(300) = NULL,
@Sifra_Drg smallint = Null,
@Lokacija varchar(10) = NULL,
@Sifra_Brand smallint = NULL,
@Aktiven char(1) = Null, -- D - Aktivni N - Neaktivni
-- @KontrSer varchar(25) = Null, -- nema potreba
-- @PrikKontrSer char(1) = 'N', -- nema potreba
-- @SoRazlCeni char(1) = 'D', -- so razliki vo ceni -- Ne treba
@BezPromOdPren char(1) = 'N',
@SiteArt char(1) = 'N',
@SoDozvArt char(1) = 'N',
@TipDok varchar(300) = Null,
@DobavOd char(1) = 'K', -- K - od Katart, S - od Stavr
@Sifra_Drg1 smallint = Null,
-- @KojaCena char(1) = Null, -- da fiksirame na tekovna cena od soart M - MagCena, N - Nabavna od Katart, P - Prosecna nabavna, D - DokCena (Nabavna na vlez, Prodazna na izlez)
@KoiArt char(1) = Null, -- I - artikli so izlez vo tekovniot period, N - artikli bez prodazba vo tek.period, P - artikli so promet vo tekovniot period
@Drugo1 smallint= null,
@Drugo2 smallint= null,
@Drugo3 smallint= null,
@Drugo4 smallint= null,
@Drugo5 smallint= null,
@Drugo6 smallint= null,
@Drugo7 smallint= null,
@BezPromOdPopis char(1) = 'N', -- bez promet od popis (tip dok 991,992)
@DozvArt char(1) = Null,
@Sifra_Div smallint
AS
Declare @SSQL As Varchar(4000)
Declare @SSQLUsl As Varchar(4000)
Declare @SSQLUslArt As Varchar(4000)
Set @SSQL = ' '
Set @SSQLUsl = ' '
Set @SSQLUslArt = ' '
CREATE TABLE #Promet
(
Sifra_OE Smallint,
Sifra_Art Varchar(20),
TVlez Numeric(18, 4),
TIzlez Numeric(18, 4),
TVlezBezPren Numeric(18, 4),
TIzlezBezPren Numeric(18, 4),
Sostojba decimal(18,6),
Cena decimal(18,6)
)
Set Nocount On
------------------------------------------------------------------------------------------------- U S L O V -------------------------------------------------------------------------------------------------------------
If @Sifra_OE Is Not Null
SET @SSQLUsl = @SSQLUsl + ' And S.Sifra_OE=' + Cast(@Sifra_OE As Varchar(10)) + ' '
If @KoiOE Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_OE In (Select Sifra_OE From SGrOrg Where Sif_GrOrg=''' + @KoiOE + ''') '
If @TipDok Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_Dok In (' + @TipDok + ') '
If @Sifra_Kup Is NOT NULL
If @DobavOd = 'S'
SET @SSQLUslArt = @SSQLUslArt + ' AND K.Sifra_Art In (Select Distinct S.Sifra_Art From Dokr D Inner Join Stavr S On S.DokrID = D.DokrID
Where D.VlIzl=''V'' And D.Sifra_Za = ''2'' And D.Sifra_Kup = ''' + @Sifra_Kup + ''') '
Else
SET @SSQLUslArt = @SSQLUslArt + ' AND K.Kto = ''' + @Sifra_Kup + ''' '
If @Sifra_Art_Od Is NOT Null
SET @SSQLUslArt = @SSQLUslArt + ' AND K.Sifra_Art>=''' + Cast(@Sifra_Art_Od As Varchar(35)) + ''' '
If @Sifra_Art_Do Is NOT Null
SET @SSQLUslArt = @SSQLUslArt + ' AND K.Sifra_Art<=''' + Cast(@Sifra_Art_Do As Varchar(35)) + ''' '
If @Sifra_Gr IS NOT NULL
SET @SSQLUslArt = @SSQLUslArt + ' AND G.Sifra_Gr In ('+@Sifra_Gr+') '
If @Sifra_Podg IS NOT NULL
SET @SSQLUslArt = @SSQLUslArt + ' AND K.Sifra_Podg In ('+@Sifra_Podg+') '
If @Sifra_Brand Is NOT NULL
SET @SSQLUslArt = @SSQLUslArt + ' AND K.Sifra_Drg = ' + Cast(@Sifra_Brand as varchar(6)) + ' '
If @Lokacija IS NOT NULL
SET @SSQLUslArt = @SSQLUslArt + ' AND (K.Lokacija='''+lTrim(rtrim(@Lokacija))+''') '
If @Sifra_Drg Is Not Null
SET @SSQLUslArt = @SSQLUslArt + ' AND K.Sifra_Drg=' + Cast(@Sifra_Drg As Varchar(10)) + ' '
If @Sifra_Drg1 Is Not Null
SET @SSQLUslArt = @SSQLUslArt + ' AND B.Sifra_Drg1=' + Cast(@Sifra_Drg1 As Varchar(10)) + ' '
If @Aktiven = 'D'
SET @SSQLUslArt = @SSQLUslArt + ' AND (K.Aktiven <> ''N'' Or K.Aktiven Is Null) '
Else If @Aktiven = 'N'
SET @SSQLUslArt = @SSQLUslArt + ' AND (K.Aktiven = ''N'') '
If @DozvArt = 'D' And @Sifra_Oe Is Not Null
SET @SSQLUslArt = @SSQLUslArt + ' AND (OZ.Dozvoleno <> ''N'' Or OZ.Dozvoleno Is Null) '
Else If @DozvArt = 'N' And @Sifra_Oe Is Not Null
SET @SSQLUslArt = @SSQLUslArt + ' AND (OZ.Dozvoleno = ''N'') '
--16.09.2010
If @Drugo1 Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND K.Drugo1 =''' + Cast(@Drugo1 As Varchar(6)) + ''' '
If @Drugo2 Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND K.Drugo2 =''' + Cast(@Drugo2 As Varchar(6)) + ''' '
If @Drugo3 Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND K.Drugo3 =''' + Cast(@Drugo3 As Varchar(6)) + ''' '
If @Drugo4 Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND K.Drugo4 =''' + Cast(@Drugo4 As Varchar(6)) + ''' '
If @Drugo5 Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND K.Drugo5 =''' + Cast(@Drugo5 As Varchar(6)) + ''' '
If @Drugo6 Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND K.Drugo6 =''' + Cast(@Drugo6 As Varchar(6)) + ''' '
If @Drugo7 Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND K.Drugo7 =''' + Cast(@Drugo7 As Varchar(6)) + ''' '
--24.02.2012
If @Sifra_Div Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND K.Sifra_Div =''' + Cast(@Sifra_Div As Varchar(6)) + ''' '
Vlez = Sum(Case S.VlIzl When ''V'' Then S.Kolic Else 0 End),
Izlez = Sum(Case S.VlIzl When ''I'' Then S.Kolic Else 0 End), '
If @BezPromOdPren = 'D'
Set @SSQL = @SSQL + ' VlezBezPren = Sum(Case S.VlIzl When ''V'' Then (Case When S.ImaDodatna = ''D'' Then 0 Else S.Kolic End) Else 0 End),
IzlezBezPren = Sum(Case S.VlIzl When ''I'' Then (Case When S.ImaDodatna = ''D'' Then 0 Else S.Kolic End) Else 0 End), '
Else If @BezPromOdPren = 'D' And @BezPromOdPopis = 'D'
Set @SSQL = @SSQL + ' VlezBezPren = Sum(Case When S.VlIzl=''V'' And S.Sifra_Dok Not In (991,992) Then (Case When S.ImaDodatna = ''P'' Then 0 Else S.Kolic End) Else 0 End),
IzlezBezPren = Sum(Case When S.VlIzl=''I'' And S.Sifra_Dok Not In (991,992) Then (Case When S.ImaDodatna = ''D'' Then 0 Else S.Kolic End) Else 0 End), '
Else If (@BezPromOdPren Is Null Or @BezPromOdPren<>'D') And @BezPromOdPopis = 'D'
Set @SSQL = @SSQL + ' VlezBezPren = Sum(Case When S.VlIzl=''V'' And S.Sifra_Dok Not In (991,992) Then S.Kolic Else 0 End),
IzlezBezPren = Sum(Case When S.VlIzl=''I'' And S.Sifra_Dok Not In (991,992) Then S.Kolic Else 0 End), '
Else
Set @SSQL = @SSQL + ' 0 as TVlezBezPren, 0 as TIzlezBezPren, '
Set @SSQL = @SSQL + ' 0 as Sostojba, 0 as Cena
FROM Stavr S
INNER JOIN Katart K ON S.Sifra_Art = K.Sifra_Art AND K.SMatUsl=''M'' '
If @Sifra_Gr IS NOT NULL
Set @SSQL=@SSQL+' INNER JOIN Podgrupi PG ON K.Sifra_Podg=PG.Sifra_Podg
INNER JOIN Grupi G ON PG.Sifra_Gr=G.Sifra_Gr '
If @Sifra_Drg1 Is Not Null
Set @SSQL=@SSQL+' INNER JOIN DrgPodel B ON B.Sifra_Drg=K.Sifra_Drg '
If @DozvArt In ('D','N') And @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' Left Outer Join OptZalPoOe OZ On OZ.Sifra_Art = S.Sifra_Art And OZ.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(5)) + ' '
Set @SSQL = @SSQL + ' Where 1=1 '
If @Datum_Dok_Od Is NOT Null
SET @SSQL = @SSQL + 'AND S.Datum_Dok>=''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
-- If @Datum_Dok_Do Is NOT Null
-- SET @SSQL = @SSQL + 'AND S.Datum_Dok<=''' + Cast(@Datum_Dok_Do As Varchar(35)) + ''' '
--print @SSQL+@SSQLUsl
Set @SSQL = @SSQL+@SSQLUsl+@SSQLUslArt
Set @SSQL = @SSQL + ' Group By S.Sifra_Oe, S.Sifra_Art '
print @SSQL
INSERT #Promet EXEC(@SSQL)
----------------- Artiklite koi imaat prethoden promet, a nemaat promet vo periodot
Declare @Sifra_Pat smallint, @Sifra_Kup char(6), @Sifra_Obj as smallint, @Dat_Isporaka smalldatetime
SET @DatIspOd = dbo.fn_VratiDatum(GetDate())
SET @DatIspDo = dbo.fn_VratiDatum(DateAdd(day, 20, GetDate()))
SET @DatZaklZaUtre = DateAdd(hour, 15, @DatIspOd) -- 15h denes - da se parameterizira
SELECT @Sifra_Pat=Sifra_Pat, @Sifra_Kup=Sifra_Kup, @Sifra_Obj=Sifra_Obj FROM Naracki WHERE Sifra_OE=@Sifra_OE AND Sifra_Nar=@Sifra_Nar AND Broj_Nar=@Broj_Nar
IF @Sifra_Pat IS NULL OR @Sifra_Kup IS NULL RETURN
CREATE TABLE #TmpRuta
(Sifra_Pat smallint,
DenOdNedela char(1),
Sifra_Kup char(6),
Sifra_Obj smallint,
Datum smalldatetime )
CREATE TABLE #TmpPR
(Sifra_Pat smallint,
Datum smalldatetime)
Declare @Datum smalldatetime
Declare @Praznik as char(1)
SET @Datum=@DatIspOd
WHILE @Datum<=@DatIspDo
BEGIN
-- Specijalni ruti za fiksiran apsoluten datum
INSERT INTO #TmpRuta (Sifra_Pat, Datum, Sifra_Kup, Sifra_Obj)
SELECT Sifra_Pat, Datum, Sifra_Kup, Sifra_Obj
FROM RutiZaDatum
WHERE Datum=@Datum AND Sifra_Pat =@Sifra_Pat AND Sifra_Kup=@Sifra_Kup
-- Pazi na PRAZNICITE
SELECT @Praznik=Sto FROM RabKalendar WHERE Datum=@Datum AND Sto='P'
IF @Praznik IS NULL
BEGIN
DELETE FROM #TmpPR
INSERT INTO #TmpPR
SELECT Sifra_Pat, MAX(Datum_Od)
FROM RutiPlan
WHERE Sifra_Pat =@Sifra_Pat AND Datum_Od<=@Datum AND DenOdNedela=dbo.fn_DenOdNedela(@Datum)
GROUP BY Sifra_Pat
INSERT INTO #TmpRuta(Sifra_Pat, Datum, Sifra_Kup, Sifra_Obj)
@DatumKniz smalldatetime -- D - samo markirani, N - samo nemarkirani S - site
AS
Create table #Tmp
(
Rbr int identity(1,1),
SmetkaNal char(15),
IznosNal char(10),
Smetka char(15),
ImeKup char(72),
SifPlak char(3),
CelPlak varchar(50),
PovikDolzi char(24),
PovikPobaruva char(24),
DatumValuta char(8),
DatumUplata char(8),
NacPlak char(1),
NacPrior char(2),
TipNal char(1)
)-- Izn decimal(18,2), NacProc char(1)
Declare @DatOd as char(8)
Set @DatOd = (Case When Day(@DatumKniz) < 10 Then '0' Else '' End)+cast(Day(@DatumKniz) as varchar(2))
+(Case When Month(@DatumKniz) < 10 Then '0' Else '' End)+cast(Month(@DatumKniz) as varchar(2))+
cast(Year(@DatumKniz) as char(4))
Declare @SSQL varchar(5000)
-- Declare @Vk as decimal(12,2)
-- Select @Vk= Sum(Toc200 + Plat_PerDan)
--from Dokr
--where sifra_kup in (select Sifra_kup from dokr)
Set @SSQL=' SELECT ''200000004496136'',substring(dbo.fn_LevoNuliStr(cast(Sum(D.Toc200 + D.Plat_PerDan) as varchar(12)), 12), 1,10) , cast(K.Ziro as char(15)), cast(K.ImeKup as varchar(72)),
CASE substring(K.Ziro,1, 3) when ''200'' then ''3'' else ''2'' end , ''11'', ''0''
FROM Dokr D
Inner join anFINDOK F on D.Sifra_Oe = F.Sifra_Oe and D.Sifra_Dok = F.Sifra_Dok and D.Broj_dok = F.Broj_Dok
LEFT OUTER JOIN Komint K ON K.Sifra_Kup=D.Sifra_Kup
WHERE K.sifra_kup in (select Sifra_kup from dokr)'
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_OE=' + cast(@Sifra_OE as varchar(6)) + ' '
If @Datum_Dok_Od Is Not Null
Set @SSQL = @SSQL + ' And D.Datum_Dok>=''' + Cast(@Datum_Dok_Od as varchar(35)) + ''' '
If @Datum_Dok_Do Is Not Null
Set @SSQL = @SSQL + ' And D.Datum_Dok<=''' + Cast(@Datum_Dok_Do as varchar(35)) + ''' '
If @Sifra_Dok Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Dok=' + cast(@Sifra_Dok as varchar(6)) + ' '
If @Sifra_Kup Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Kup=' + @Sifra_Kup + ' '
If @BrojLista Is Not Null
Set @SSQL = @SSQL + ' And D.Identif_Br=' + @BrojLista + ' '
If @SamoMark = 'N'
Set @SSQL = @SSQL + ' And (D.Identif_Br Is Null Or D.Identif_Br = '' '') '
Else If @SamoMark = 'D'
Set @SSQL = @SSQL + ' And (D.Identif_Br Is Not Null And D.Identif_Br <> '' '') '
set @ssql= @ssql+'group by K.ziro, K.ImeKUp'
print @ssql
INSERT INTO #Tmp (SmetkaNal, IznosNal, Smetka,ImeKup,SifPlak,CelPlak,PovikDolzi,PovikPobaruva,DatumValuta, DatumUplata, NAcPLak, NacPrior, TipNal)
EXEC (@SSQL)
-- print(@ssql)
--exec (@ssql)
select * from #Tmp
--update #tmp set povikdolzi=@BrojLista
--update #tmp set povikpobaruva=@BrojLista
/*
create table #Tmp1
( Ozn char(1),
Rbr char(5),
Izn char(19),
Smetka char(15),
ImeKup char(72),
SifPlak char(3),
CelPlak varchar(70),
PovikDolzi char(24),
PovikPobaruva char(24),
NacProc char(1)
)
INSERT INTO #Tmp1 (Ozn,RBR, Izn,Smetka,ImeKup,SifPlak,CelPlak,PovikDolzi,PovikPobaruva,NacProc)
select Ozn,dbo.fn_LevoNuli(RBR,5),dbo.fn_LevoNuliStr(cast(Izn as char(19)), 18),cast(Smetka as char(15)),rtrim(cast(ImeKup as char(72))),rtrim(SifPlak),
cast(CelPlak as char(70)), cast(PovikDolzi as char(24)),cast(povikpobaruva as char(24)),rtrim(NacProc) from #Tmp
create table #Tmp2
( Ozn char(1),
Smetka char(15),
Izn char(19),--decimal(18,2),
BrNal char(6),
DatKniz char(8),
DatVal char(8)
)
Declare @DatOd as char(8)
Set @DatOd = cast(Year(@DatumKniz) as char(4))
+(Case When Month(@DatumKniz) < 10 Then '0' Else '' End)+cast(Month(@DatumKniz) as varchar(2))
+(Case When Day(@DatumKniz) < 10 Then '0' Else '' End)+cast(Day(@DatumKniz) as varchar(2))
INSERT INTO #Tmp2 (Ozn,Smetka,Izn,BrNal,DatKniz,DatVal)
SUM(P.Kolicina) Kolicina, COUNT(P.Sifra_Art) Paketi FROM PakListaStav P
INNER JOIN KatArt A ON A.Sifra_Art=P.Sifra_Art
LEFT OUTER JOIN SoArt S ON S.Sifra_Art=P.Sifra_Art AND S.Sifra_OE=' +cast(@Sifra_OE as varchar(5))+
' WHERE P.Sifra_OE='+cast(@Sifra_OE as varchar(5))+' AND P.Mesto_Pak='+cast(@Mesto_Pak as varchar(5))+' AND P.Sifra_Pak='+cast(@Sifra_Pak as varchar(5))+' AND P.Broj_Pak IN ('+ @Broj_Pak +')
GROUP BY P.Sifra_Art, A.ImeArt, A.EdMera, A.ImaKomerc, A.Lokacija, A.Sifra_Tar, S.NNabCena, S.POsn '
exec (@ssql)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_payturn]'))
drop procedure [dbo].[sp_payturn]
Go
CREATE PROCEDURE sp_PayTurn
@Sifra_OE Smallint,
@KoiOE Varchar(300),
@Pod1 Smallint,
@Pod2 Smallint,
@Pod3 Smallint = Null,
@Pod4 Smallint = Null,
@Pod5 Smallint = Null,
@Sifra_Tip Smallint = Null,
@Datum_Od Smalldatetime,
@Datum_Do Smalldatetime,
@Sifra_Kup_Od Char(6),
@Sifra_Kup_Do Char(6),
@Podred Char(1),
@TipKup Char(11),
@Sifra_Pat Smallint = Null,
@KomercKako char(1) = 'T'
AS
Declare @SSQL Varchar(8000)
SET @SSQL = 'SELECT A.Sifra_Kup, K.ImeKup,
Round(Sum(A.Dolzi), 4) As Prodazba,
Round(Sum(A.Pobaruva), 4) As Naplata,
Month(A.Datum_Dok) As Mesec,
Year(A.Datum_Dok) As Godina
FROM AnFinDok A
INNER JOIN Komint K ON A.Sifra_Kup=K.Sifra_Kup
INNER JOIN TipDok TD ON A.Sifra_Dok=TD.Sifra_Dok AND TD.Dev=''N''
0 Zadolz, Sum(F.Pobaruva-F.Plateno_Pobar) as NaplatenIznos
From AnFinDok F
Inner Join Komint Kup On Kup.Sifra_Kup = F.Sifra_Kup
Where F.Sifra_Kup In (Select Sifra_Kup From #Popis)
And F.BrojDok = ''' + (Case When Month(@Datum_Od) < 10 Then '0' End) + Cast(Month(@Datum_Od) as varchar(2)) + '/' + Cast(Year(@Datum_Od) as varchar(4)) + '''
Group By F.Sifra_Kup, Kup.ImeKup, Kup.Uces '
*/
If @DaliZbirno = 'D'
Set @SSQL = @SSQL + ' Order By Kup.ImeKup '
Else
Begin
If @Podred = 'K'
Set @SSQL = @SSQL + ' Order By Kup.ImeKup, P.Datum_Dok '
Else If @Podred = 'B'
Set @SSQL = @SSQL + ' Order By P.Sifra_Oe, P.Sifra_Dok, P.Broj_Dok '
End
print @SSQL
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pecat_art_po_popisdok]'))
drop procedure [dbo].[sp_pecat_art_po_popisdok]
Go
CREATE PROCEDURE sp_Pecat_Art_Po_PopisDok
@RbrPopis smallint,
@Sifra_Oe smallint,
@Sifra_Dok smallint,
@Dat_PopisDok_Od smalldatetime,
@Dat_PopisDok_Do smalldatetime,
@Sifra_Kup char(6),
@Sifra_Obj smallint = Null
AS
If @Sifra_Obj Is Not Null
Select Sifra_Art, Kolic, Popis, Ostaveno
From PopisDok
Where RbrPopis=@RbrPopis And Sifra_Oe=@Sifra_Oe And Sifra_Dok=@Sifra_Dok
And Datum_PopisDok >= @Dat_PopisDok_Od And Datum_PopisDok <= @Dat_PopisDok_Do
And Sifra_Kup=@Sifra_Kup And Sifra_Obj=@Sifra_Obj
Order By Datum_PopisDok, Rbr
Else
Select Sifra_Art, Kolic, Popis, Ostaveno
From PopisDok
Where RbrPopis=@RbrPopis And Sifra_Oe=@Sifra_Oe And Sifra_Dok=@Sifra_Dok
And Datum_PopisDok >= @Dat_PopisDok_Od And Datum_PopisDok <= @Dat_PopisDok_Do
And Sifra_Kup=@Sifra_Kup
Order By Datum_PopisDok, Rbr
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pecat_izvestajprodvrat]'))
drop procedure [dbo].[sp_pecat_izvestajprodvrat]
Go
CREATE PROCEDURE sp_Pecat_IzvestajProdVrat
@Sifra_Oe smallint = Null,
@KoiOe varchar(6) = Null,
@Datum_Od smalldatetime = Null,
@Datum_Do smalldatetime = Null,
@Sifra_Art_Od varchar(20) = Null,
@Sifra_Art_Do varchar(20) = Null,
@Sifra_Podg char(6) = Null,
@Sifra_Gr varchar(6) = Null,
@Sifra_Kup char(6) = Null,
@Sifra_Reg smallint = Null,
@Sifra_Grad smallint = Null,
@VoTojGrad char(1) = 'D', -- D - Komintenti koi se vo toj grad N - Nadvor od toj grad X - Neraspredeleni
@OdKojaTab char(1) = 'P', -- P - od PopisDok R - od RasporedIsp
Set @SSQL =' Insert Into #Plan1 Select PM.RbrVoPlan, PM.ImePlan, PM.Sifra_Oe, PM.Sifra_Art, K.Sifra_Podg
From PlanMes PM
Inner Join Katart K On K.Sifra_art = PM.Sifra_Art
Where 1=1 '
If @Sifra_art_Od Is Not Null
Set @SSQL = @SSQL + ' And PM.Sifra_Art >= ' + @Sifra_art_Od + ' '
If @Sifra_art_Do Is Not Null
Set @SSQL = @SSQL + ' And PM.Sifra_Art <= ' + @Sifra_art_Do + ' '
If @KoiOe Is Not Null
Set @SSQL = @SSQL + ' And PM.Sifra_Oe =' + cast(@Sifra_OEPlan as varchar(5)) + ' '
Set @SSQL = @SSQL + ' And PM.Godina In (''' + cast(year(@Datum_Od) as varchar(4)) +''',''' + cast(Year(@Datum_Do) as Varchar(4)) + ''') '
If @ImePlan Is Not Null
Set @SSQL = @SSQL + ' And PM.ImePlan = ''' +@ImePlan + ''' '
--If Sifra PM.Sifra_Art >= @Sifra_Art_Od and PM.Sifra_Art <= @Sifra_Art_Do and PM.Sifra_Oe In (@KoiOe) and PM.Godina In (cast(year(@Datum_Od) as varchar(4)), cast(Year(@Datum_Do) as Varchar(4)))
Print @SSQL
Exec (@SSQL)
Insert Into #Plan Select PM.RbrVoPlan, 0 as RbrPodg, PM.Sifra_podg, PM.Sifra_Art, @Godina , M.Mesec, P.Period, Sum(0) as PlanVkup, Sum(0) as PlanKol ,Sum(0) as RezlizKol, Sum(0) as MesRealiz
From #Plan1 PM, #Meseci M, #Periodi P
-- Where PM.Sifra_Art > @Sifra_Art_Od and PM.Sifra_Art < @Sifra_Art_Do and PM.Sifra_Oe In (@KoiOe)
Group By PM.RbrVoPlan, PM.Sifra_podg, PM.ImePlan, PM.Sifra_Oe, PM.Sifra_Art, M.Mesec, P.Period
Update #Plan
Set PlanKol = (PlanMes.Plan_Kol/@BrPeriodi), PlanVkup = PlanMes.Plan_Kol
From PlanMes
Where #Plan.RbrVoPlan=PlanMes.RbrVoPlan and #Plan.Sifra_art=PlanMes.Sifra_Art and #Plan.Godina=PlanMes.Godina
and #Plan.Mesec=PlanMes.Mesec and PlanMes.ImePlan=@ImePlan
Create Table #Podgrupi
(
Sifra_Podg char(6),
RbrPodg smallint
)
Insert Into #Podgrupi
Select Distinct Sifra_Podg, Min(RbrVoPlan)
From #Plan
Group By Sifra_Podg
Update #Plan
Set #Plan.RbrPodg=#Podgrupi.RbrPodg
From #Podgrupi
Where #Plan.Sifra_Podg=#Podgrupi.Sifra_Podg
Create Table #Realizacija
(
Sifra_Art varchar(20),
Godina smallint,
Mesec smallint,
Period Smallint,
RealizKol decimal(18,6)
)
Set @SSQL = ' Insert Into #Realizacija Select S.Sifra_Art, Year(S.Datum_Dok) as Godina, Month(S.Datum_Dok) as Mesec,
dbo.fn_VratiPeriod(S.Datum_Dok, ' + cast(@Period as varchar(2))+ ',' + cast(@BrPeriodi as varchar(2)) + ') as Period, '
If @Prikazi = 'B'
Set @SSQL = @SSQL + ' Sum(S.Kolic * (Case When K.KolkuDrg <> 0 Then K.KolkuDrg Else 1 End)) '
Else
Set @SSQL = @SSQL + ' Sum(S.Kolic) '
Set @SSQL = @SSQL + ' From Stavr S
Inner Join Dokr D On D.DokrID=S.DokrID
Inner Join Katart K on K.Sifra_art = S.Sifra_art
Inner Join Podgrupi P on P.Sifra_Podg = K.Sifra_Podg
Inner join Grupi G On G.Sifra_Gr = P.Sifra_Gr
Where S.VlIzl ='''+ 'I' +''' '+ ' and D.Sifra_Za=1 and S.Datum_Dok >=''' + cast(@Datum_Od as varchar(35)) + ''' ' + ' and S.Datum_Dok <=''' + cast(@Datum_Do as varchar(35)) + '''
And S.sifra_art in (select distinct sifra_art from #Plan) '
If @Sifra_art_Od Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_Art >= ' + @Sifra_art_Od + ' '
If @Sifra_art_Do Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_Art <= ' + @Sifra_art_Do + ' '
If @KoiOe Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_Oe In (' + @KoiOe + ') '
If @Sifra_Podg Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_Podg=''' + @Sifra_Podg + ''' '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + ' And P.Sifra_Gr=''' + @Sifra_Gr + ''' '
If @Sifra_Brand Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_Drg=' + Cast(@Sifra_Brand As Varchar(6)) + ' '
If @Komint is Not Null
Set @SSQL = @SSQL + ' And K.Kto = ' + @Komint + ' '
Set @SSQL =@SSQL + ' Group By S.Sifra_Art, Year(S.Datum_Dok), Month(S.Datum_Dok),
dbo.fn_VratiPeriod(S.Datum_Dok, ' + cast(@Period as varchar(2))+ ',' + cast(@BrPeriodi as varchar(2)) + ') '
Exec(@SSQL)
Update #Plan
Set #Plan.RealizKol=#Realizacija.RealizKol
From #Realizacija
Where #Plan.Sifra_Art=#Realizacija.Sifra_art and #Plan.Godina=#Realizacija.Godina And #Plan.Mesec=#Realizacija.Mesec and #Plan.Period=#Realizacija.Period
Create Table #SumRealiz
(
Sifra_art varchar(20),
Godina smallint,
Mesec smallint,
VkReal decimal(18,6)
)
Insert Into #SumRealiz Select Sifra_art, Godina, Mesec, Sum(RealizKol)
From #Realizacija
Group By Sifra_Art, Godina, Mesec
Update #Plan
Set #Plan.MesRealiz=#SumRealiz.VkReal
From #SumRealiz
Where #Plan.Sifra_Art=#SumRealiz.Sifra_art and #Plan.Godina=#SumRealiz.Godina And #Plan.Mesec=#SumRealiz.Mesec
Set @SSQL1 = @SSQL1 + 'And K.Sifra_Podg IN (' + @Sifra_Podg + ') '
If @Sifra_Gr Is Not NULL
Set @SSQL1 = @SSQL1 + 'And P.Sifra_Gr IN (' + @Sifra_Gr + ') '
If @Kto Is Not NULL
Set @SSQL1 = @SSQL1 + 'And K.Kto IN (' + @Kto + ') '
If @Sifra_Brand Is Not NULL
Set @SSQL1 = @SSQL1 + 'And K.Sifra_Drg IN (' + @Sifra_Brand + ') '
If @RazbijSostav = 'D'
Begin
Set @SSQL = 'Insert #tSostav
Select S.Sifra_Art, S.Sifra_Sur, S.Ima_Kolic, S.Cena, S.VkCena From Sostav S
Inner Join Katart K On S.Sifra_Art=K.Sifra_Art '
If @Sifra_Gr Is Not NULL
Set @SSQL = @SSQL + ' Inner Join Podgrupi P ON K.Sifra_Podg=P.Sifra_Podg '
Set @SSQL = @SSQL + ' Where K.Iskluci <> ''D'' '
EXEC(@SSQL + @SSQL1)
End
Set @SSQL = 'Insert #tSostav
Select K.Sifra_Art, K.Sifra_Art,1, 1, 1
From Katart K '
If @Sifra_Gr Is Not NULL
Set @SSQL = @SSQL + ' Inner Join Podgrupi P ON K.Sifra_Podg=P.Sifra_Podg '
Set @SSQL = @SSQL + ' Where K.Iskluci <> ''D'' '
If @RazbijSostav = 'D'
Set @SSQL = @SSQL + 'And K.Sifra_Art Not In (Select Distinct Sifra_Art From Sostav) '
Exec(@SSQL+@SSQL1)
Create Table #Prod
(
Godina smallint,
Mesec smallint,
Sifra_Art varchar(20),
Plan_Kol decimal(18,4),
Ostv_Kol decimal(18,4),
Plan_Proc decimal(6,2),
Plan_Cena decimal(12,4),
-- DogCena decimal(12,4),
Plan_Vrednost decimal(18,6),
Realiz_Vrednost decimal(18,6)
)
Insert Into #Prod Select 0 as Godina, 0 as Mesec, S.Sifra_Art as Sifra_Art, 0 as Plan_Kol, 0 as Ostv_Kol, 0 as Plan_Pros, 0 as Plan_Cena, 0 as Plan_Vrednost, 0 as Plan_Realizacija
from #tSostav S
Set @SSQL = 'INSERT INTO #Prod Select Year(S.Datum_Dok) as Godina, Month(S.Datum_Dok) As Mesec, S.Sifra_Art As Sifra_Art, 0 as Plan_Kol,
Round(Sum(S.Kolic), 4) Ostv_Kol, 0 as Plan_Proc, 0 as Plan_Cena, 0 as Plan_Vrednost,
Set @SSQL1 = @SSQL1 + 'And K.Sifra_Podg IN (' + @Sifra_Podg + ') '
If @Sifra_Gr Is Not NULL
Set @SSQL1 = @SSQL1 + 'And P.Sifra_Gr IN (' + @Sifra_Gr + ') '
If @Kto Is Not NULL
Set @SSQL1 = @SSQL1 + 'And K.Kto IN (' + @Kto + ') '
If @Sifra_Brand Is Not NULL
Set @SSQL1 = @SSQL1 + 'And K.Sifra_Drg IN (' + @Sifra_Brand + ') '
If @RazbijSostav = 'D'
Begin
Set @SSQL = 'Insert #tSostav
Select S.Sifra_Art, S.Sifra_Sur, S.Ima_Kolic, S.Cena, S.VkCena From Sostav S
Inner Join Katart K On S.Sifra_Art=K.Sifra_Art '
If @Sifra_Gr Is Not NULL
Set @SSQL = @SSQL + ' Inner Join Podgrupi P ON K.Sifra_Podg=P.Sifra_Podg '
Set @SSQL = @SSQL + ' Where K.Iskluci <> ''D'' '
EXEC(@SSQL + @SSQL1)
End
Set @SSQL = 'Insert #tSostav
Select K.Sifra_Art, K.Sifra_Art,1, 1, 1
From Katart K '
If @Sifra_Gr Is Not NULL
Set @SSQL = @SSQL + ' Inner Join Podgrupi P ON K.Sifra_Podg=P.Sifra_Podg '
Set @SSQL = @SSQL + ' Where K.Iskluci <> ''D'' '
If @RazbijSostav = 'D'
Set @SSQL = @SSQL + 'And K.Sifra_Art Not In (Select Distinct Sifra_Art From Sostav) '
Exec(@SSQL+@SSQL1)
Create Table #Prod
(
Godina smallint,
Mesec smallint,
Dekada smallint,
Sifra_Art varchar(20),
Plan_Kol decimal(18,4),
Ostv_Kol decimal(18,4),
Plan_Proc decimal(6,2),
Plan_Cena decimal(12,4),
-- DogCena decimal(12,4),
Plan_Vrednost decimal(18,6),
Realiz_Vrednost decimal(18,6)
)
Insert Into #Prod Select 0 as Godina, 0 as Mesec, 0 as Dekada, S.Sifra_Art as Sifra_Art, 0 as Plan_Kol, 0 as Ostv_Kol, 0 as Plan_Pros, 0 as Plan_Cena, 0 as Plan_Vrednost, 0 as Plan_Realizacija
from #tSostav S
Set @SSQL = 'INSERT INTO #Prod Select Year(S.Datum_Dok) as Godina, Month(S.Datum_Dok) As Mesec,
dbo.fn_dekada(''' + Cast(@Datum_Od As Varchar(30)) + ''', ' + 'S.Datum_Dok, ' + Cast(@Denovi As Varchar(3)) + ') As Dekada,
S.Sifra_Art As Sifra_Art, 0 as Plan_Kol,
Round(Sum(S.Kolic), 4) Ostv_Kol, 0 as Plan_Proc, 0 as Plan_Cena, 0 as Plan_Vrednost,
--SELECT F.Sifra_Kup, SUM(Case When F.Dolzi>0 OR F.Pobaruva<0 Then abs(Z.Iznos) Else 0 End), SUM(Case When F.Pobaruva>0 OR F.Dolzi<0 Then abs(Z.Iznos) Else 0 End)
--FROM AnZatv Z INNER JOIN AnFinDok F ON Z.AnID1=F.AnID
--WHERE F.Sifra_Za=@Sifra_Za AND F.Kto=@Kto AND F.Datum_Dok<=@Datum_Do AND
--Z.AnID2 IN (SELECT AnID FROM AnFinDok WHERE Sifra_Za=@Sifra_Za AND Kto=@Kto AND Datum_Dok>@Datum_Do)
--GROUP BY F.Sifra_Kup
INSERT INTO #TmpPlat (Sifra_Kup, Plat_Dolzi, Plat_Pobaruva)
SELECT F.Sifra_Kup, SUM(Case When F.Dolzi>0 OR F.Pobaruva<0 Then abs(Z.Iznos) Else 0 End), SUM(Case When F.Pobaruva>0 OR F.Dolzi<0 Then abs(Z.Iznos) Else 0 End)
FROM AnZatv Z INNER JOIN AnFinDok F ON Z.AnID1=F.AnID
INNER JOIN AnFinDok F1 ON Z.AnID2=F1.AnID
WHERE F.Sifra_Za=@Sifra_Za AND F.Kto=@Kto AND F.Datum_Dok<=@Datum_Do AND F1.Sifra_Za=@Sifra_Za AND F1.Kto=@Kto AND F1.Datum_Dok>@Datum_Do
GROUP BY F.Sifra_Kup
--Z.AnID2 IN (SELECT AnID FROM AnFinDok WHERE Sifra_Za=@Sifra_Za AND Kto=@Kto AND Datum_Dok>@Datum_Do)
INSERT INTO #TmpPlat (Sifra_Kup, Plat_Dolzi, Plat_Pobaruva)
SELECT F.Sifra_Kup, SUM(Case When F.Dolzi>0 OR F.Pobaruva<0 Then abs(Z.Iznos) Else 0 End), SUM(Case When F.Pobaruva>0 OR F.Dolzi<0 Then abs(Z.Iznos) Else 0 End)
FROM AnZatv Z INNER JOIN AnFinDok F ON Z.AnID2=F.AnID
INNER JOIN AnFinDok F1 ON Z.AnID1=F1.AnId
WHERE F.Sifra_Za=@Sifra_Za AND F.Kto=@Kto AND F.Datum_Dok<=@Datum_Do AND F1.Sifra_Za=@Sifra_Za AND F1.Kto=@Kto AND F1.Datum_Dok>@Datum_Do
GROUP BY F.Sifra_Kup
--Z.AnID1 IN (SELECT AnID FROM AnFinDok WHERE Sifra_Za=@Sifra_Za AND Kto=@Kto AND Datum_Dok>@Datum_Do)
CREATE TABLE #TmpPlatSum
(Sifra_Kup char(6),
Plat_Dolzi decimal(18,2),
Plat_Pobaruva decimal(18,2) )
INSERT INTO #TmpPlatSum SELECT Sifra_Kup, Sum(Plat_Dolzi), Sum(Plat_Pobaruva) FROM #TmpPlat GROUP BY Sifra_Kup
UPDATE #TmpPocSost SET Plat_Dolzi = P.Plat_Dolzi, Plat_Pobaruva = P.Plat_Pobaruva FROM #TmpPlatSum P
WHERE #TmpPocSost.Sifra_Kup = P.Sifra_Kup
SELECT * FROM #TmpPocSost ORDER BY Sifra_Kup
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pocsostfinnadatdev]'))
drop procedure [dbo].[sp_pocsostfinnadatdev]
Go
CREATE PROCEDURE sp_PocSostFinNaDatDev
@Sifra_Za char(1),
@Kto char(10),
@Datum_Do smalldatetime
AS
CREATE TABLE #TmpPocSost
(Sifra_Kup char(6),
KojaVal char(3),
Dev_Dolzi decimal(18,2),
Dev_Pobaruva decimal(18,2),
Dev_Plat_Dolzi decimal(18,2),
Dev_Plat_Pobar decimal(18,2),
Dolzi decimal(18,2),
Pobaruva decimal(18,2),
Plat_Dolzi decimal(18,2),
Plat_Pobaruva decimal(18,2),
Kurs decimal(18,6) )
INSERT INTO #TmpPocSost (Sifra_Kup, KojaVal, Dev_Dolzi, Dev_pobaruva, Dolzi, Pobaruva, Kurs)
SELECT Sifra_Kup, KojaVal, Sum(Dev_Dolzi), Sum(Dev_pobaruva), Sum(Dolzi), Sum(Pobaruva), 0 FROM AnFinDok
WHERE Sifra_Za=@Sifra_Za AND Kto=@Kto AND Datum_Dok <= @Datum_Do GROUP BY Sifra_Kup, KojaVal
UPDATE #TmpPocSost SET Kurs = (Dolzi - Pobaruva)/(Dev_Dolzi - Dev_Pobaruva) WHERE Dev_Dolzi-Dev_Pobaruva<>0 --??!
UPDATE #TmpPocSost SET Kurs=KrsVaznost.KursSreden FROM KrsVaznost WHERE Kurs=0 AND KrsVaznost.SImeVal=#TmpPocSost.KojaVal And KrsVaznost.Datum=@Datum_Do
CREATE TABLE #TmpPlat
(Sifra_Kup char(6),
KojaVal char(3),
Dev_Plat_Dolzi decimal(18,2),
Dev_Plat_Pobar decimal(18,2),
Plat_Dolzi decimal(18,2),
Plat_Pobaruva decimal(18,2) )
INSERT INTO #TmpPlat (Sifra_Kup, KojaVal, Dev_Plat_Dolzi, Dev_Plat_Pobar)
SELECT F.Sifra_Kup, KojaVal, SUM(Case When F.Dev_Dolzi>0 OR F.Dev_Pobaruva<0 Then abs(Z.Iznos_Dev) Else 0 End), SUM(Case When F.Dev_Pobaruva>0 OR F.Dev_Dolzi<0 Then abs(Z.Iznos_Dev) Else 0 End)
FROM AnZatv Z INNER JOIN AnFinDok F ON Z.AnID1=F.AnID
WHERE F.Sifra_Za=@Sifra_Za AND F.Kto=@Kto AND F.Datum_Dok<=@Datum_Do AND
Z.AnID2 IN (SELECT AnID FROM AnFinDok WHERE Sifra_Za=@Sifra_Za AND Kto=@Kto AND Datum_Dok>@Datum_Do)
GROUP BY F.Sifra_Kup, KojaVal
INSERT INTO #TmpPlat (Sifra_Kup, KojaVal, Dev_Plat_Dolzi, Dev_Plat_Pobar)
SELECT F.Sifra_Kup, KojaVal, SUM(Case When F.Dev_Dolzi>0 OR F.Dev_Pobaruva<0 Then abs(Z.Iznos) Else 0 End), SUM(Case When F.Dev_Pobaruva>0 OR F.Dev_Dolzi<0 Then abs(Z.Iznos) Else 0 End)
FROM AnZatv Z INNER JOIN AnFinDok F ON Z.AnID2=F.AnID
WHERE F.Sifra_Za=@Sifra_Za AND F.Kto=@Kto AND F.Datum_Dok<=@Datum_Do AND
Z.AnID1 IN (SELECT AnID FROM AnFinDok WHERE Sifra_Za=@Sifra_Za AND Kto=@Kto AND Datum_Dok>@Datum_Do)
GROUP BY F.Sifra_Kup, KojaVal
CREATE TABLE #TmpPlatSum
(Sifra_Kup char(6),
KojaVal char(3),
Dev_Plat_Dolzi decimal(18,2),
Dev_Plat_Pobar decimal(18,2) )
INSERT INTO #TmpPlatSum SELECT Sifra_Kup, KojaVal, Sum(Dev_Plat_Dolzi), Sum(Dev_Plat_Pobar) FROM #TmpPlat GROUP BY Sifra_Kup, KojaVal
UPDATE #TmpPocSost SET Dev_Plat_Dolzi = P.Dev_Plat_Dolzi, Dev_Plat_Pobar = P.Dev_Plat_Pobar,
FROM #TmpPlatSum P WHERE #TmpPocSost.Sifra_Kup = P.Sifra_Kup
SELECT * FROM #TmpPocSost ORDER BY Sifra_Kup
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pocsostfinnadatoe]'))
drop procedure [dbo].[sp_pocsostfinnadatoe]
Go
CREATE PROCEDURE sp_PocSostFinNaDatOE
@Sifra_Za char(1),
@Kto char(10),
@Datum_Do smalldatetime,
@ORGiliPAT char(1)='O',
@DaliDiv char(1)='N'
AS
CREATE TABLE #TmpPocSost
(Sifra_Kup char(6),
Sifra_OE smallint,
Dolzi decimal(18,2),
Pobaruva decimal(18,2),
Plat_Dolzi decimal(18,2),
Plat_Pobaruva decimal(18,2),
Sifra_Div smallint )
IF @ORGiliPAT='P'
BEGIN
IF @DaliDiv='D'
Begin
INSERT INTO #TmpPocSost (Sifra_Kup, Sifra_OE, Sifra_Div, Dolzi, Pobaruva) SELECT Sifra_Kup, Sifra_Pat, Sifra_Div, Sum(Dolzi), Sum(Pobaruva) FROM AnFinDok
WHERE Sifra_Za=@Sifra_Za AND Kto=@Kto AND Datum_Dok <= @Datum_Do AND Sifra_Pat IS NOT NULL GROUP BY Sifra_Kup, Sifra_Pat, Sifra_Div
INSERT INTO #TmpPocSost (Sifra_Kup, Sifra_OE, Sifra_Div, Dolzi, Pobaruva) SELECT Sifra_Kup, Sifra_OE, Sifra_Div, Sum(Dolzi), Sum(Pobaruva) FROM AnFinDok
WHERE Sifra_Za=@Sifra_Za AND Kto=@Kto AND Datum_Dok <= @Datum_Do AND Sifra_Pat IS NULL GROUP BY Sifra_Kup, Sifra_OE, Sifra_Div
CREATE TABLE #TmpPocSost1
(Sifra_Kup char(6),
Sifra_OE smallint,
Dolzi decimal(18,2),
Pobaruva decimal(18,2),
Plat_Dolzi decimal(18,2),
Plat_Pobaruva decimal(18,2),
Sifra_Div smallint )
INSERT INTO #TmpPocSost1
SELECT Sifra_Kup, Sifra_OE, SUM(Dolzi) Dolzi, SUM(Pobaruva) Pobaruva, 0,0, Sifra_Div FROM #TmpPocSost GROUP BY Sifra_Kup, Sifra_OE, Sifra_Div
DELETE FROM #TmpPocSost
INSERT INTO #TmpPocSost SELECT * FROM #TmpPocSost1
End
ELSE
INSERT INTO #TmpPocSost (Sifra_Kup, Sifra_OE, Dolzi, Pobaruva) SELECT Sifra_Kup, Sifra_Pat, Sum(Dolzi), Sum(Pobaruva) FROM AnFinDok
WHERE Sifra_Za=@Sifra_Za AND Kto=@Kto AND Datum_Dok <= @Datum_Do GROUP BY Sifra_Kup, Sifra_Pat
END
ELSE
BEGIN
IF @DaliDiv='D'
INSERT INTO #TmpPocSost (Sifra_Kup, Sifra_OE, Sifra_Div, Dolzi, Pobaruva) SELECT Sifra_Kup, Sifra_OE, Sifra_Div, Sum(Dolzi), Sum(Pobaruva) FROM AnFinDok
WHERE Sifra_Za=@Sifra_Za AND Kto=@Kto AND Datum_Dok <= @Datum_Do GROUP BY Sifra_Kup, Sifra_OE, Sifra_Div
ELSE
INSERT INTO #TmpPocSost (Sifra_Kup, Sifra_OE, Dolzi, Pobaruva) SELECT Sifra_Kup, Sifra_OE, Sum(Dolzi), Sum(Pobaruva) FROM AnFinDok
WHERE Sifra_Za=@Sifra_Za AND Kto=@Kto AND Datum_Dok <= @Datum_Do GROUP BY Sifra_Kup, Sifra_OE
END
IF @DaliDiv<>'D' AND @ORGiliPAT<>'P' --da se doraboti
BEGIN
CREATE TABLE #TmpPlat
(Sifra_Kup char(6),
Sifra_OE smallint,
Plat_Dolzi decimal(18,2),
Plat_Pobaruva decimal(18,2) )
INSERT INTO #TmpPlat (Sifra_Kup, Sifra_OE, Plat_Dolzi, Plat_Pobaruva)
SELECT F.Sifra_Kup, Sifra_OE, SUM(Case When F.Dolzi>0 OR F.Pobaruva<0 Then abs(Z.Iznos) Else 0 End), SUM(Case When F.Pobaruva>0 OR F.Dolzi<0 Then abs(Z.Iznos) Else 0 End)
FROM AnZatv Z INNER JOIN AnFinDok F ON Z.AnID1=F.AnID
WHERE F.Sifra_Za=@Sifra_Za AND F.Kto=@Kto AND F.Datum_Dok<=@Datum_Do AND
Z.AnID2 IN (SELECT AnID FROM AnFinDok WHERE Sifra_Za=@Sifra_Za AND Kto=@Kto AND Datum_Dok>@Datum_Do)
GROUP BY F.Sifra_Kup, Sifra_OE
INSERT INTO #TmpPlat (Sifra_Kup, Sifra_OE, Plat_Dolzi, Plat_Pobaruva)
SELECT F.Sifra_Kup, Sifra_OE, SUM(Case When F.Dolzi>0 OR F.Pobaruva<0 Then abs(Z.Iznos) Else 0 End), SUM(Case When F.Pobaruva>0 OR F.Dolzi<0 Then abs(Z.Iznos) Else 0 End)
FROM AnZatv Z INNER JOIN AnFinDok F ON Z.AnID2=F.AnID
WHERE F.Sifra_Za=@Sifra_Za AND F.Kto=@Kto AND F.Datum_Dok<=@Datum_Do AND
Z.AnID1 IN (SELECT AnID FROM AnFinDok WHERE Sifra_Za=@Sifra_Za AND Kto=@Kto AND Datum_Dok>@Datum_Do)
GROUP BY F.Sifra_Kup, Sifra_OE
CREATE TABLE #TmpPlatSum
(Sifra_Kup char(6),
Sifra_OE smallint,
Plat_Dolzi decimal(18,2),
Plat_Pobaruva decimal(18,2) )
INSERT INTO #TmpPlatSum SELECT Sifra_Kup, Sifra_OE, Sum(Plat_Dolzi), Sum(Plat_Pobaruva) FROM #TmpPlat GROUP BY Sifra_Kup, Sifra_OE
UPDATE #TmpPocSost SET Plat_Dolzi = P.Plat_Dolzi, Plat_Pobaruva = P.Plat_Pobaruva FROM #TmpPlatSum P
WHERE #TmpPocSost.Sifra_Kup = P.Sifra_Kup AND #TmpPocSost.Sifra_OE = P.Sifra_OE
END
SELECT * FROM #TmpPocSost ORDER BY Sifra_Kup
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_podg_odjavanakarticki]'))
drop procedure [dbo].[sp_podg_odjavanakarticki]
Go
CREATE PROCEDURE sp_Podg_OdjavaNaKarticki
@Sifra_Oe smallint = Null,
@Koi_Oe varchar(10) = Null,
@Datum_Od_Novi smalldatetime = Null,
@Datum_Do_Novi smalldatetime = Null,
@Datum_Od_Odjava smalldatetime = Null,
@Datum_Do_Odjava smalldatetime = Null
AS
Declare @SSQL as varchar(8000)
------------------------------------------------------- NOVI DOKUMENTI ZA KOI KARTICKITE NE SE ODJAVUVAAT ------------------------------------------------------
Create Table #TabNoviDok
(
Datum_Dok smalldatetime,
-- DokID int,
-- DokrID int,
Sifra_Kup char(6),
Sifra_Obj smallint,
Sifra_Art varchar(20)
)
Set @SSQL = ' Select Max(D.Datum_Dok), D.Sifra_Kup, D.Sifra_Obj, S.Sifra_Art
From Dokr D
Inner Join Stavr S On S.DokrId = D.DokrId
Where S.Sifra_Art >=''000700'' and S.Sifra_Art <= ''000750''
And D.Sifra_Za = ''1'' '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' and D.Sifra_Oe = ''' + cast(@Sifra_Oe as varchar(6)) + ''' '
If @Koi_OE Is Not NULL
Set @SSQL = @SSQL + ' And D.Sifra_OE IN (Select G.Sifra_Oe from SGrOrg G where G.sif_GrOrg = ''' + @Koi_Oe + ''') '
If @Datum_Od_Novi Is Not Null
Set @SSQL = @SSQL + ' And D.Datum_Dok >= ''' + Cast(@Datum_Od_Novi as varchar(30)) + ''' '
If @Datum_Do_Novi Is Not Null
Set @SSQL = @SSQL + ' And D.Datum_Dok <= ''' + Cast(@Datum_Do_Novi as varchar(30)) + ''' '
Set @SSQL=@SSQL + ' Group By D.Sifra_Kup, D.Sifra_Obj, S.Sifra_Art '
Inner Join #Komint N On N.Sifra_kup = D.Sifra_Kup and N.Sifra_Obj = D.Sifra_Obj and N.Sifra_Art = S.Sifra_Art
Where D.Sifra_Za = ''1'' and N.Sifra_Obj Is Not Null and D.Sifra_Obj Is Not Null
And S.Sifra_Art+''&&&''+B.SeriskiBr Not In (Select SN.Sifra_Art+''&&&''+BN.SeriskiBr From StaNarac SN Inner Join BrStaNarac BN On BN.StaNarID=SN.StaNarID Where SN.Sifra_Nar In (18,88,98) )
And S.DokID Not In (Select DokID From #NoviDok) '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' and D.Sifra_Oe = ''' + cast(@Sifra_Oe as varchar(6)) + ''' '
If @Koi_OE Is Not NULL
Set @SSQL = @SSQL + ' And D.Sifra_OE IN (Select G.Sifra_Oe from SGrOrg G where G.sif_GrOrg = ''' + @Koi_Oe + ''') '
If @Datum_Od_Odjava Is Not Null
Set @SSQL = @SSQL + ' And D.Datum_Dok >= ''' + Cast(@Datum_Od_Odjava as varchar(30)) + ''' '
If @Datum_Do_Odjava Is Not Null Set @SSQL = @SSQL + ' And D.Datum_Dok <= ''' + Cast(@Datum_Do_Odjava as varchar(30)) + ''' '
Inner Join #Komint N On N.Sifra_kup = D.Sifra_Kup and N.Sifra_Art = S.Sifra_Art
Where D.Sifra_Za = ''1'' and N.Sifra_obj Is Null and D.Sifra_obj Is Null
And S.Sifra_Art+''&&&''+B.SeriskiBr Not In (Select SN.Sifra_Art+''&&&''+BN.SeriskiBr From StaNarac SN Inner Join BrStaNarac BN On BN.StaNarID=SN.StaNarID Where SN.Sifra_Nar In (18,88,98) )
And S.DokID Not In (Select DokID From #NoviDok) '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' and D.Sifra_Oe = ''' + cast(@Sifra_Oe as varchar(6)) + ''' '
If @Koi_OE Is Not NULL
Set @SSQL = @SSQL + ' And D.Sifra_OE IN (Select G.Sifra_Oe from SGrOrg G where G.sif_GrOrg = ''' + @Koi_Oe + ''') '
If @Datum_Od_Odjava Is Not Null
Set @SSQL = @SSQL + ' And D.Datum_Dok >= ''' + Cast(@Datum_Od_Odjava as varchar(30)) + ''' '
If @Datum_Do_Odjava Is Not Null
Set @SSQL = @SSQL + ' And D.Datum_Dok <= ''' + Cast(@Datum_Do_Odjava as varchar(30)) + ''' '