------------------------------------------------ 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_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_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_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 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
)
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+''' '
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_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]'))
(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 @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)) + ' '
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'
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 Podgrupi P ON K.Sifra_Podg=P.Sifra_Podg
INNER JOIN KatAsortLista L ON L.Sifra1=P.Sifra_Gr
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 @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,
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')
SET @SSQL = @SSQL + ' AND (S.Kolic_BO > 0 OR S.PrifPredlog =''N'' )'
IF (@SamoPregled = 'M')
SET @SSQL = @SSQL + ' AND (S.Kolic_BO > 0 OR S.PrifPredlog =''N'') AND S.Odobril IS NULL '
IF (@SamoPregled = 'N')
SET @SSQL = @SSQL + ' AND (S.Kolic_BO IS NULL OR S.Kolic_BO=0) AND (S.PrifPredlog IS NULL OR S.PrifPredlog<>''N'')'
IF (@KojOdob = 'P')
SET @SSQL = @SSQL + ' AND Kutija_Br = SUBSTRING(SUSER_SNAME(),1,10) AND Odobril IS NULL '
ELSE
SET @SSQL = @SSQL + ' AND Odobril = SUBSTRING(SUSER_SNAME(),1,10) '
-- 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 + ' )'
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
-- 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
Inner Join Katart K On K.Sifra_Art=S.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
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)
@Faktura=Ispr_Fix_Fri_plus, @StornoFak=Ispr_Fix_Fri_Minus, @Faktura1=Ispr_Fix_Isp_plus, @StornoFak1=Ispr_Fix_Isp_Minus FROM Konfig
CREATE TABLE #TmpDist
( Sifra_Art varchar(20),
ImeArt varchar(40),
PocSost decimal(18,6),
Vlez decimal(18,6),
Izl_Distr decimal(18,6),
Vrat_Distr decimal(18,6),
Izl_FaktRep decimal(18,6),
Vrat_Fakt decimal(18,6),
Izl_Zap decimal(18,6),
Kalo decimal(18,6),
OdRabNal decimal(18,6) --dodadeno na 06.07.2011 MILAN
)
CREATE TABLE #TmpPocS
( Sifra_Art varchar(20),
PocSost decimal(18,6)
)
INSERT INTO #TmpDist (Sifra_Art, ImeArt) SELECT Sifra_Art, ImeArt FROM KatArt
WHERE Sifra_Art IN (SELECT DISTINCT Sifra_Art FROM Stavr WHERE Datum_Dok <= @Datum_Do)
If @SoPocSost = 'D'
INSERT INTO #TmpPocS (Sifra_Art, PocSost) SELECT DISTINCT Sifra_Art, 0 FROM Stavr WHERE Datum_Dok <= @Datum_Od
CREATE TABLE #TmpKolic
( Sifra_Art varchar(20),
Kolic decimal(18,6)
)
INSERT INTO #TmpKolic SELECT Sifra_Art, SUM(Kolic) --VLEZ
FROM Stavr WHERE Datum_Dok >= @Datum_Od AND Datum_Dok <= @Datum_Do
AND Sifra_OE = @Sifra_OE AND VlIzl='V' AND (Sifra_Dok<>192 OR Sifra_Art<'001000') --(Sifra_Dok<>192 OR Sifra_Art<'001000') dod.06.07.11 za ZL Ohr. Moze ke smeta na dr.mesto
GROUP BY Sifra_Art
UPDATE #TmpDist SET Vlez = S.Kolic
FROM #TmpKolic S
WHERE #TmpDist.Sifra_Art = S.Sifra_Art
DELETE FROM #TmpKolic
INSERT INTO #TmpKolic SELECT Sifra_Art, SUM(Kolic) --Izlez po distr.
FROM Stavr WHERE Datum_Dok >= @Datum_Od AND Datum_Dok <= @Datum_Do
AND Sifra_OE = @Sifra_OE AND VlIzl = 'I' AND ImaDodatna='D' AND Kolic > 0
GROUP BY Sifra_Art
UPDATE #TmpDist SET Izl_Distr = S.Kolic
FROM #TmpKolic S
WHERE #TmpDist.Sifra_Art = S.Sifra_Art
DELETE FROM #TmpKolic
INSERT INTO #TmpKolic SELECT Sifra_Art, SUM(Kolic) --Vrateno od distr.
FROM Stavr WHERE (Datum_Dok >= @Datum_Od AND Datum_Dok <= @Datum_Do
AND Sifra_OE = @Sifra_OE AND VlIzl = 'I' AND ImaDodatna='D' AND Kolic < 0) OR
(Sifra_Dok=192 AND Sifra_Art>'001000' AND Datum_Dok >= @Datum_Od AND Datum_Dok <= @Datum_Do AND Sifra_OE = @Sifra_OE)
GROUP BY Sifra_Art
UPDATE #TmpDist SET Vrat_Distr = S.Kolic
FROM #TmpKolic S
WHERE #TmpDist.Sifra_Art = S.Sifra_Art
DELETE FROM #TmpKolic
INSERT INTO #TmpKolic SELECT Sifra_Art, SUM(Kolic) --Izl. na faktura/reprez.
FROM Stavr WHERE Datum_Dok >= @Datum_Od AND Datum_Dok <= @Datum_Do --PAZI FIKSIRANO
AND Sifra_OE = @Sifra_OE AND (Sifra_Dok = @Faktura OR Sifra_Dok = @Faktura1 OR Sifra_Dok = @Reprez OR Sifra_Dok In (73, 93))
GROUP BY Sifra_Art
UPDATE #TmpDist SET Izl_FaktRep = S.Kolic
FROM #TmpKolic S
WHERE #TmpDist.Sifra_Art = S.Sifra_Art
DELETE FROM #TmpKolic
INSERT INTO #TmpKolic SELECT Sifra_Art, SUM(Kolic) --Vrat. na faktura
FROM Stavr WHERE Datum_Dok >= @Datum_Od AND Datum_Dok <= @Datum_Do --PAZI FIKSIRANO
AND Sifra_OE = @Sifra_OE AND (Sifra_Dok = @StornoFak OR Sifra_Dok = @StornoFak1 OR Sifra_Dok = 94)
GROUP BY Sifra_Art
UPDATE #TmpDist SET Vrat_Fakt = S.Kolic
FROM #TmpKolic S
WHERE #TmpDist.Sifra_Art = S.Sifra_Art
DELETE FROM #TmpKolic
INSERT INTO #TmpKolic SELECT Sifra_Art, SUM(Kolic) --Izlez po zapisnik
FROM Stavr WHERE Datum_Dok >= @Datum_Od AND Datum_Dok <= @Datum_Do
AND Sifra_OE = @Sifra_OE AND Sifra_Dok = @ZapIzl
GROUP BY Sifra_Art
UPDATE #TmpDist SET Izl_Zap = S.Kolic
FROM #TmpKolic S
WHERE #TmpDist.Sifra_Art = S.Sifra_Art
DELETE FROM #TmpKolic
INSERT INTO #TmpKolic SELECT Sifra_Art, SUM(Kolic) --KALO
FROM Stavr WHERE Datum_Dok >= @Datum_Od AND Datum_Dok <= @Datum_Do
AND Sifra_OE = @Sifra_OE AND (Sifra_Dok = @Kalo OR Sifra_Dok = @Kalo2)
GROUP BY Sifra_Art
UPDATE #TmpDist SET Kalo = S.Kolic
FROM #TmpKolic S
WHERE #TmpDist.Sifra_Art = S.Sifra_Art
DELETE FROM #TmpKolic
INSERT INTO #TmpKolic --RabNal
SELECT Sifra_Art, SUM(Kolic)
FROM RabNal R INNER JOIN
StaRabNal S ON R.RabNalID = S.RabNalID
WHERE Datum_Otv >= @Datum_Od AND Datum_Otv <= @Datum_Do AND Sifra_OEPrim = @Sifra_OE
GROUP BY Sifra_Art
UPDATE #TmpDist SET OdRabNal = S.Kolic
FROM #TmpKolic S
WHERE #TmpDist.Sifra_Art = S.Sifra_Art
DELETE FROM #TmpKolic
-- SEGA ZA POCETNA SOSTOJBA
If @SoPocSost = 'D'
Begin
INSERT INTO #TmpKolic SELECT Sifra_Art, SUM(Kolic) --VLEZ
FROM Stavr WHERE Datum_Dok < @Datum_Od AND Sifra_OE = @Sifra_OE AND VlIzl='V'
GROUP BY Sifra_Art
UPDATE #TmpPocS SET PocSost = ABS(S.Kolic)
FROM #TmpKolic S WHERE #TmpPocS.Sifra_Art = S.Sifra_Art
DELETE FROM #TmpKolic
INSERT INTO #TmpKolic SELECT Sifra_Art, SUM(Kolic) --Izlez po distr.
FROM Stavr WHERE Datum_Dok < @Datum_Od AND Sifra_OE = @Sifra_OE AND VlIzl = 'I' AND ImaDodatna='D' AND Kolic > 0
GROUP BY Sifra_Art
UPDATE #TmpPocS SET PocSost = PocSost - ABS(S.Kolic)
FROM #TmpKolic S WHERE #TmpPocS.Sifra_Art = S.Sifra_Art
DELETE FROM #TmpKolic
INSERT INTO #TmpKolic SELECT Sifra_Art, SUM(Kolic) --Vrateno od distr.
FROM Stavr WHERE Datum_Dok < @Datum_Od AND Sifra_OE = @Sifra_OE AND VlIzl = 'I' AND ImaDodatna='D' AND Kolic < 0
GROUP BY Sifra_Art
UPDATE #TmpPocS SET PocSost = PocSost + ABS(S.Kolic)
FROM #TmpKolic S WHERE #TmpPocS.Sifra_Art = S.Sifra_Art
DELETE FROM #TmpKolic
INSERT INTO #TmpKolic SELECT Sifra_Art, SUM(Kolic) --Izl. na faktura/reprez.
FROM Stavr WHERE Datum_Dok < @Datum_Od AND Sifra_OE = @Sifra_OE AND (Sifra_Dok=@Faktura OR Sifra_Dok=@Faktura1 OR Sifra_Dok=@Reprez OR Sifra_Dok = 93)
GROUP BY Sifra_Art
UPDATE #TmpPocS SET PocSost = PocSost - ABS(S.Kolic)
FROM #TmpKolic S WHERE #TmpPocS.Sifra_Art = S.Sifra_Art
DELETE FROM #TmpKolic
INSERT INTO #TmpKolic SELECT Sifra_Art, SUM(Kolic) --Vrat. na faktura
FROM Stavr WHERE Datum_Dok < @Datum_Od AND Sifra_OE = @Sifra_OE AND (Sifra_Dok = @StornoFak OR Sifra_Dok = @StornoFak1 OR Sifra_Dok = 94)
GROUP BY Sifra_Art
UPDATE #TmpPocS SET PocSost = PocSost + ABS(S.Kolic)
FROM #TmpKolic S WHERE #TmpPocS.Sifra_Art = S.Sifra_Art
DELETE FROM #TmpKolic
INSERT INTO #TmpKolic SELECT Sifra_Art, SUM(Kolic) --Izlez po zapisnik
FROM Stavr WHERE Datum_Dok < @Datum_Od AND Sifra_OE = @Sifra_OE AND Sifra_Dok = @ZapIzl
GROUP BY Sifra_Art
UPDATE #TmpPocS SET PocSost = PocSost - ABS(S.Kolic)
FROM #TmpKolic S WHERE #TmpPocS.Sifra_Art = S.Sifra_Art
DELETE FROM #TmpKolic
INSERT INTO #TmpKolic SELECT Sifra_Art, SUM(Kolic) --KALO
FROM Stavr WHERE Datum_Dok < @Datum_Od AND Sifra_OE = @Sifra_OE AND (Sifra_Dok = @Kalo OR Sifra_Dok = @Kalo2)
GROUP BY Sifra_Art
UPDATE #TmpPocS SET PocSost = PocSost - ABS(S.Kolic)
FROM #TmpKolic S WHERE #TmpPocS.Sifra_Art = S.Sifra_Art
DELETE FROM #TmpKolic
INSERT INTO #TmpKolic SELECT Sifra_Art, SUM(Kolic) --OdRabNal
FROM RabNal R INNER JOIN
StaRabNal S ON R.RabNalID = S.RabNalID
WHERE Datum_Otv < @Datum_Od AND Sifra_OEPrim = @Sifra_OE
GROUP BY Sifra_Art
UPDATE #TmpPocS SET PocSost = PocSost - ABS(S.Kolic)
FROM #TmpKolic S WHERE #TmpPocS.Sifra_Art = S.Sifra_Art
DELETE FROM #TmpKolic
UPDATE #TmpDist SET PocSost = #TmpPocS.PocSost
FROM #TmpPocS WHERE #TmpPocS.Sifra_Art = #TmpDist.Sifra_Art
End
--KRAJ POC. SOST.
UPDATE #TmpDist SET PocSost = 0 WHERE #TmpDist.PocSost IS NULL
UPDATE #TmpDist SET Vlez =0 WHERE Vlez IS NULL
UPDATE #TmpDist SET Izl_Distr =0 WHERE Izl_Distr IS NULL
UPDATE #TmpDist SET Vrat_Distr =0 WHERE Vrat_Distr IS NULL
UPDATE #TmpDist SET Izl_FaktRep =0 WHERE Izl_FaktRep IS NULL
UPDATE #TmpDist SET Vrat_Fakt =0 WHERE Vrat_Fakt IS NULL
UPDATE #TmpDist SET Izl_Zap =0 WHERE Izl_Zap IS NULL
UPDATE #TmpDist SET Kalo =0 WHERE Kalo IS NULL
UPDATE #TmpDist SET OdRabNal = 0 WHERE OdRabNal IS NULL
(Case when K.Drugo2 is null then '' else K.Drugo2 end) Drugo2, D2.Ime_2
FROM #TmpDist T
Left Outer Join Katart K On K.Sifra_Art = T.Sifra_Art
Left Outer Join Drugo2 D2 On D2.Sifra_2 = K.Drugo2
WHERE T.Vlez <> 0 OR T.Izl_Distr <> 0 OR T.Vrat_Distr <> 0 OR T.Izl_FaktRep <> 0 OR T.Vrat_Fakt <> 0 OR T.Izl_Zap <> 0 OR T.Kalo <> 0 OR T.PocSost <> 0
ORDER BY T.Sifra_Art
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_izvzanaplata]'))
drop procedure [dbo].[sp_izvzanaplata]
Go
CREATE PROCEDURE sp_IzvZaNaplata
@Sifra_Za Char(1) = '1',
@Datum_Nal_Od Smalldatetime = NULL,
@Datum_Nal_Do Smalldatetime = NULL,
@Datum_Dok_Od Smalldatetime = NULL,
@Datum_Dok_Do Smalldatetime = NULL,
@Sifra_Nal Smallint = NULL,
@Sifra_OE Smallint = NULL,
@Kto Char(6) = NULL,
@Sifra_Pat varchar(300) = NULL,
@Sifra_Kup_Od Char(6) = NULL,
@Sifra_Kup_Do Char(6) = NULL,
@TipKup Varchar(11) = NULL,
@Pod1 Smallint = NULL,
@Pod2 Smallint = NULL,
@Pod3 Smallint = NULL,
@Pod4 Smallint = NULL,
@Pod5 Smallint = NULL,
@Sifra_Tip Smallint = Null,
@KFSifra_Kup_Od Char(1) = NULL,
@KFTipKup Char(1) = NULL,
@KFPod1 Char(1) = NULL,
@KFPod2 Char(1) = NULL,
@KFPod3 Char(1) = NULL,
@KFPod4 Char(1) = NULL,
@KFPod5 Char(1) = 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
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 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 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]'))
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',
@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,
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,
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)) + '
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,
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,
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''
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,
(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),
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'
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
INNER JOIN Dokr DO On DO.Sifra_Oe=S.Sifra_Oe and DO.Broj_Dok=S.Broj_Kalk AND DO.Sifra_Dok=S.Sifra_Dok
Inner Join Katart K On K.Sifra_Art = S.Sifra_Art
Left Outer Join KrsLista V On V.SImeVal = D.KojaVal
Left Outer Join Komint Kom On Kom.Sifra_Kup = DO.Sifra_Kup '
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_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)) + ''' '
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
INNER JOIN Dokr DO On DO.Sifra_Oe=S.Sifra_Oe and DO.Broj_Dok=S.Broj_Kalk AND DO.Sifra_Dok=S.Sifra_Dok
Left Outer Join Komint K On K.Sifra_Kup = DO.Sifra_Kup
Left Outer Join KrsLista V On V.SImeVal = D.KojaVal '
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_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 @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 (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)) + ''' '
Set @SSQL = @SSQL + ' GROUP BY S.Sifra_Oe, D.Sifra_Dok, S.Broj_Kalk, D.KojaVal, V.ImeVal, D.Datum_Dok, D.Kurs, D.ECD,
D.Opis, D.Akciza, DO.Sifra_Kup, K.ImeKup
ORDER BY D.Datum_Dok, S.Sifra_Oe '
print @SSQL
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_matstavkioddevkons]'))
drop procedure [dbo].[sp_matstavkioddevkons]
Go
create PROCEDURE sp_MatStavkiOdDevKons
@DevKonsID integer
AS
SELECT S.*,
K.ImeArt, K.ImeArt2, K.Edmera As SEdmera, K.Sifra_Tar,
K.Carbroj, T.ProcOsn
FROM [DevStavKons] S
INNER JOIN Katart K ON S.Sifra_Art=K.Sifra_Art
INNER JOIN Tarifi T ON K.Sifra_Tar=T.Sifra_Tar
WHERE S.[DevKonsID]= @DevKonsID
ORDER BY S.[DevStavKonsID]
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_matstavkioddevnar]'))
drop procedure [dbo].[sp_matstavkioddevnar]
Go
CREATE PROCEDURE sp_MatStavkiOdDevNar
@DevNarID integer
AS
SELECT S.*,
K.ImeArt, K.ImeArt2, K.Edmera As SEdmera, K.Sifra_Tar,
K.Carbroj, T.ProcOsn, K.Tezina
FROM DevNarStavk S
INNER JOIN Katart K ON S.Sifra_Art=K.Sifra_Art
INNER JOIN Tarifi T ON K.Sifra_Tar=T.Sifra_Tar
WHERE S.DevNarID= @DevNarID
ORDER BY S.DevNarStID
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_maxiddnevnik]'))
drop procedure [dbo].[sp_maxiddnevnik]
Go
CREATE PROCEDURE sp_MaxIDDnevnik
@MaxIDDnevnik int = 0 OUTPUT
AS
SELECT @MaxIDDnevnik = MAX(IDDnevnik) FROM Dnevnik
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_maxrbrzanalog]'))
drop procedure [dbo].[sp_maxrbrzanalog]
Go
CREATE PROCEDURE sp_MaxRbrZaNalog
@Sifra_Nal Smallint,
@Broj_Nal int,
@Max1 int OUTPUT,
@Max2 int OUTPUT
AS
SELECT @Max1=MAX(RbrNalog) FROM GStav
WHERE Sifra_Nal = @Sifra_Nal AND Broj_Nal = @Broj_Nal
SELECT @Max2=MAX(V.RbrNalog) FROM FAvtVrski V
INNER JOIN GStav G ON V.GstID = G.GStID AND
G.Sifra_Nal = @Sifra_Nal AND G.Broj_Nal = @Broj_Nal
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_mcsostojbadatum]'))
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'
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 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
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) '
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
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_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)
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)) + ''' '
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
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)) + ''' '
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'
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 GROUP BY Sifra_Kup, Sifra_Pat, Sifra_Div
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)) + ''' '
INNER JOIN TipDok TD ON D.[Sifra_Dok]=TD.[Sifra_Dok]
LEFT OUTER JOIN Orged OO ON D.[Sifra_Prim]=OO.[Sifra_OE]
LEFT OUTER JOIN Komint K ON D.[Sifra_Kup]=K.[Sifra_Kup]
LEFT OUTER JOIN KObjekti OB ON D.Sifra_Obj=OB.Sifra_Obj And D.Sifra_Kup=OB.Sifra_Kup
LEFT OUTER JOIN DokrZbSta DZ ON D.DokrID=DZ.DokrID
WHERE D.[Sifra_OE]=' + Cast(@Sifra_OE As Varchar(10)) + ' AND D.[Sifra_Dok]=' + Cast(@Sifra_Dok As Varchar(10)) + ' AND D.[Broj_Dok]=' + Cast(@Broj_Dok As varchar(10)) + ' '
If @Sifra_Prim Is Not Null
Set @SSQL = @SSQL + 'AND D.[Sifra_Prim]=' + Cast(@Sifra_Prim As Varchar(10)) + ' '
Sum(Case when L.Iznos<0 then L.Iznos else 0 end)*-1 ,Sum(L.Iznos),1,Sum(Case when L.Sifra_Nac=1 then L.Iznos else 0 end),2,Sum(Case when L.Sifra_Nac=2 then L.Iznos else 0 end),
3,Sum(Case when L.Sifra_Nac=3 then L.Iznos else 0 end),4,Sum(Case when L.Sifra_Nac=4 then L.Iznos else 0 end),'""',L.Broj_Ska,0
FROM PlkProm L
left outer Join Promet P 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
Where L.BrKasa=@BrKasa and L.Grp_Kasa=@Grp_Kasa
Group By L.Sifra_Oe,L.Grp_Kasa,L.BrKasa,L.Broj_Ska,P.DatumVreme,P.Sifra_Oper
IF @@ERROR=0
IF @@ROWCOUNT=1
RETURN 0
ELSE
RETURN 77000
ELSE
RETURN @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_podignisitegstavodgknal]'))
drop procedure [dbo].[sp_podignisitegstavodgknal]
Go
CREATE PROCEDURE sp_PodigniSiteGStavOdGkNal
@Sifra_Nal Smallint,
@Broj_Nal Int
AS
SELECT GStID FROM GStav
WHERE Sifra_Nal = @Sifra_Nal and Broj_Nal = @Broj_Nal
ORDER BY RbrNalog
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_podignisiteorg]'))
drop procedure [dbo].[sp_podignisiteorg]
Go
CREATE PROCEDURE sp_PodigniSiteOrg
AS
Select * From Orged
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_podignisjazici]'))
drop procedure [dbo].[sp_podignisjazici]
Go
CREATE PROCEDURE sp_PodigniSJazici
@Sif_Rabot integer
AS
SELECT Sif_Jazik FROM SJazik
WHERE Sifra_Rab = @Sif_Rabot
ORDER BY Sif_Jazik
RETURN @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_podigniskroznaka]'))
drop procedure [dbo].[sp_podigniskroznaka]
Go
CREATE PROCEDURE sp_PodigniSkrOznaka
@SkrOznaka varchar(20),
@SkrGrupa char(1)
AS
SELECT * FROM SkrDok
WHERE SkrOznaka = @SkrOznaka AND SkrGrupa=@SkrGrupa
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_podignisledenbrojwbn_tnar]'))
drop procedure [dbo].[sp_podignisledenbrojwbn_tnar]
Go
CREATE PROCEDURE sp_PodigniSledenBrojWbn_TNar
@Sifra_Oe Smallint,
@Sifra_Nar Smallint
AS
Select MAX(Broj_Nar) From Wbn_TNar Where Sifra_Oe=@Sifra_Oe and Sifra_Nar=@Sifra_Nar
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_podignismeni]'))
drop procedure [dbo].[sp_podignismeni]
Go
CREATE PROCEDURE sp_PodigniSmeni
@Sifra_Smena smallint
AS
Select Sifra_Smena, Ime_Smena, Aktivna
From Smeni
Where Sifra_Smena=@Sifra_Smena
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_podignismeniev]'))
INSERT INTO #TmpZalPoLot (Sifra_Art, LotBr) SELECT S.Sifra_Art, MIN(M.LotBr) FROM StaNarac S
LEFT OUTER JOIN SoMag M ON M.Sifra_OE=@Sifra_OE_ZaCeni AND S.Sifra_Art=M.Sifra_Art
WHERE S.Sifra_Oe=@Sifra_Oe AND S.Sifra_Nar=@Sifra_Nar AND S.Broj_Nar=@Broj_Nar AND M.Sostojba>0
GROUP BY S.Sifra_Art
ELSE
Begin
INSERT INTO #TmpZalPoLot (Sifra_Art, LotBr) SELECT DISTINCT S.Sifra_Art, MIN(M.LotBr) FROM StaNarac S INNER JOIN KatArt A ON S.Sifra_Art=A.Sifra_Art
LEFT OUTER JOIN SoMag M ON M.Sifra_OE=@Sifra_OE_ZaCeni AND S.Sifra_Art=M.Sifra_Art
WHERE S.Sifra_Oe=@Sifra_Oe AND S.Sifra_Nar=@Sifra_Nar AND S.Broj_Nar=@Broj_Nar AND A.Lokacija=@Lokacija AND M.Sostojba>0
GROUP BY S.Sifra_Art
UPDATE #TmpZalPoLot SET Sostojba=M.Sostojba FROM SoMag M WHERE M.Sifra_OE=@Sifra_OE AND #TmpZalPoLot.Sifra_Art=M.Sifra_Art AND #TmpZalPoLot.LotBr=M.LotBr
INSERT INTO #TmpZalPoLot (Sifra_Art, LotBr) SELECT S.Sifra_Art, MIN(M.LotBr) FROM StaNarac S
LEFT OUTER JOIN SoMag M ON M.Sifra_OE=@Sifra_OE_ZaCeni AND S.Sifra_Art=M.Sifra_Art
WHERE S.Sifra_Oe=@Sifra_Oe AND S.Sifra_Nar=@Sifra_Nar AND S.Broj_Nar=@Broj_Nar AND M.Sostojba>0
GROUP BY S.Sifra_Art
ELSE
Begin
INSERT INTO #TmpZalPoLot (Sifra_Art, LotBr) EXEC (@SSQL)
SET @SSQL='SELECT DISTINCT S.Sifra_Art, MIN(M.LotBr) FROM StaNarac S INNER JOIN KatArt A ON S.Sifra_Art=A.Sifra_Art
LEFT OUTER JOIN SoMag M ON M.Sifra_OE='+ cast(@Sifra_OE_ZaCeni as varchar(5)) +' AND S.Sifra_Art=M.Sifra_Art
WHERE S.Sifra_Oe='+ cast(@Sifra_Oe as varchar(5)) +' AND S.Sifra_Nar='+ cast(@Sifra_Nar as varchar(5)) +
' AND S.Broj_Nar='+ cast(@Broj_Nar as varchar(10)) +' AND A.Lokacija IN ('+ @Lokacija +') AND M.Sostojba>0 GROUP BY S.Sifra_Art'
UPDATE #TmpZalPoLot SET Sostojba=M.Sostojba FROM SoMag M WHERE M.Sifra_OE=@Sifra_OE AND #TmpZalPoLot.Sifra_Art=M.Sifra_Art AND #TmpZalPoLot.LotBr=M.LotBr
From StavOsnSred S INNER JOIN OsnSred O ON S.Inv_broj=O.Inv_Broj
Left Outer Join PocSostOsn P ON P.Inv_Broj = S.Inv_Broj AND P.Godina = S.Delov_God
Where S.DokOID=@DokOID ORDER BY S.StaOID
Return @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_podignistavr_dokridart]'))
drop procedure [dbo].[sp_podignistavr_dokridart]
Go
CREATE PROCEDURE sp_PodigniStavr_DokrIDArt
@DokrID int,
@Sifra_Art varchar(20)
AS
Select * From Stavr Where DokrID=@DokrID AND Sifra_Art=@Sifra_Art
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_podignistavrzaetikrokovi]'))
drop procedure [dbo].[sp_podignistavrzaetikrokovi]
Go
CREATE PROCEDURE sp_PodigniStavrZaEtikRokovi
@Sifra_Oe smallint,
@Sifra_Dok smallint,
@Broj_Dok int,
@Sifra_ArtOd varchar(20) = NULL,
@Sifra_ArtDo varchar(20) = NULL
AS
Declare @SSQL varchar(3000)
SET @SSQL = 'SELECT S.Sifra_Art, S.Kolic, 1 AS Paketi, K.ImeArt, K.RokTraDen, K.DeklArt, K.EdMera, K.ImaKomerc, K.Nom,
''L''+Substring(S.Sifra_Art,1,6)+CASE Substring(S.KontrSer,1,3) WHEN ''KK>'' THEN Substring(S.KontrSer,4,22) ELSE Substring(S.KontrSer,12,2)+Substring(S.KontrSer,7,2)+Substring(S.KontrSer,4,2)+Substring(S.KontrSer,14,12) END SpecOzn,
CASE Substring(S.KontrSer,1,3) WHEN ''KK>'' THEN Substring(S.KontrSer,4,22) ELSE Substring(S.KontrSer,12,2)+Substring(S.KontrSer,7,2)+Substring(S.KontrSer,4,2)+Substring(S.KontrSer,14,12) END LotBr
FROM Stavr S Inner Join Katart K On K.Sifra_Art=S.Sifra_Art
WHERE S.Sifra_Oe='+cast(@Sifra_Oe as varchar(5))+' And S.Sifra_Dok='+Cast(@Sifra_Dok as varchar(5))+
' And S.Broj_Dok='+cast(@Broj_Dok as varchar(8))+ ' AND S.KontrSer IS NOT 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+''' '
SET @SSQL = @SSQL +' ORDER BY S.DokID'
EXEC (@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_podignitabela]'))
drop procedure [dbo].[sp_podignitabela]
Go
CREATE PROCEDURE sp_PodigniTabela
@Tabela Varchar(20)
AS
Declare @SSQL as varchar(2000)
If @Tabela Is Not Null
Set @SSQL = ' SELECT * FROM ' + @Tabela
Exec(@SSQL)
IF @@ROWCOUNT = 0
RETURN 77000
ELSE
RETURN 0
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_podignitarifa]'))
drop procedure [dbo].[sp_podignitarifa]
Go
CREATE PROCEDURE sp_PodigniTarifa
@Sifra_Tar char(3)
AS
SELECT * FROM Tarifi
WHERE Sifra_Tar = @Sifra_Tar
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_podignitekstsmetki]'))
drop procedure [dbo].[sp_podignitekstsmetki]
Go
CREATE PROCEDURE sp_PodigniTekstSmetki
@Kade varchar(10)
AS
Select Kade, Rbr, Tekst
From TekstSmetki
Where Kade=@Kade
Order By Rbr
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_podignitipartzal]'))
drop procedure [dbo].[sp_podignitipartzal]
Go
CREATE PROCEDURE [dbo].[sp_PodigniTipArtZal]
@Sifra_TipArtZal smallint = NULL
AS
IF @Sifra_TipArtZal IS NOT NULL
SELECT *
FROM TipArtZal
WHERE Sifra_TipArtZal = @Sifra_TipArtZal
ELSE
SELECT *
FROM TipArtZal
ORDER BY Sifra_TipArtZal
RETURN @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_podignitipdok]'))
drop procedure [dbo].[sp_podignitipdok]
Go
CREATE PROCEDURE sp_PodigniTipDok
AS
SELECT Sifra_Dok, ImeDok, Sifra_Za, Dev, Vl_Izl, AnalKupDob FROM TipDok
order by sifra_dok
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_podignitipdokposifra_dok]'))
drop procedure [dbo].[sp_podignitipdokposifra_dok]
Go
Create PROCEDURE sp_PodigniTipDokPoSifra_Dok
@Sifra_Dok int
AS
SELECT *
FROM TipDok
Where Sifra_Dok = @Sifra_Dok
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_podignitipkarakt]'))
drop procedure [dbo].[sp_podignitipkarakt]
Go
CREATE PROCEDURE sp_PodigniTipKarakt
@Sifra_7 SMALLINT
AS
SELECT * FROM TipKarakt
WHERE Sifra_7=@Sifra_7
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_podignitippercenvaziza]'))
drop procedure [dbo].[sp_podignitippercenvaziza]
Go
CREATE PROCEDURE sp_PodigniTipPerCenVaziZa
@Sifra_TipC Smallint
AS
SELECT T.*, O.ImeOrg, G.Ime_GrOrg
FROM TipPerCenVaziZa T
INNER JOIN Orged O On O.Sifra_Oe = T.Sifra_Oe
LEFT OUTER JOIN GrOrg G ON T.Sif_GrOrg=G.Sif_GrOrg
Where Sifra_TipC=@Sifra_TipC
RETURN @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_podignitmaneks]'))
drop procedure [dbo].[sp_podignitmaneks]
Go
CREATE PROCEDURE sp_PodigniTmAneks
@Sifra_Oe smallint,
@BrojBaranje int,
@BrojPrilog int,
@Sifra_Aneks int
AS
SELECT * FROM tmAneks
WHERE Sifra_Oe = @Sifra_Oe AND BrojBaranje = @BrojBaranje AND BrojPrilog = @BrojPrilog AND Sifra_Aneks = @Sifra_Aneks
RETURN @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_podignitmbaranje]'))
drop procedure [dbo].[sp_podignitmbaranje]
Go
CREATE PROCEDURE sp_PodigniTmBaranje
@Sifra_OE smallint,
@BrojBaranje int
AS
SELECT * from tmBaranje where Sifra_Oe=@Sifra_Oe and BrojBaranje=@BrojBaranje
RETURN @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_podignitmbaranje_datum]'))
drop procedure [dbo].[sp_podignitmbaranje_datum]
Go
CREATE PROCEDURE sp_PodigniTmBaranje_Datum
@Sifra_Oe smallint,
@DatumBar smalldatetime
AS
Select * From tmBaranje
Where Sifra_Oe=@Sifra_Oe And DatumBar=@DatumBar
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_podignitmpdistitems]'))
drop procedure [dbo].[sp_podignitmpdistitems]
Go
CREATE PROCEDURE sp_PodigniTmpDistItems
AS
SELECT DISTINCT Cst_Code As ISifra_Kup, Doc_No As BrDok, Agent as Sifra_OE
FROM TmpItems
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_podignitmpitems]'))
drop procedure [dbo].[sp_podignitmpitems]
Go
CREATE PROCEDURE sp_PodigniTmpItems
@Doc_no varchar(30),
@Agent varchar(4),
@Poz char(1) = 'D'
AS
Declare @SSQL varchar(2000)
Set @SSQL = 'SELECT I.Cst_Code As ISifra_Kup, I.Item_Code As Sifra_Art, K.Sifra_Tar, T.ProcOsn, I.Quantity As Kolic, I.Value as Vred,
I.Discount as Popust, I.Doc_No As BrDok, I.Agent as Sifra_OE, KK.Sifra_Kup as Sifra_Kup, I.Trans_date as Datum_dok
FROM TmpItems I
LEFT OUTER JOIN KatArt K ON K.Sifra_Art = I.Item_Code
LEFT OUTER JOIN Tarifi T ON T.Sifra_tar = K.Sifra_Tar
LEFT OUTER JOIN Komint KK ON I.Cst_Code = KK.Sifra_Kup
WHERE I.Doc_No = ''' + @Doc_no + ''' AND I.Agent = ''' + @Agent + ''' AND '
If @Poz = 'D'
Set @SSQL = @SSQL + 'I.Quantity > 0 '
Else
Set @SSQL = @SSQL + 'I.Quantity < 0 '
EXEC(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_podignitmsim]'))
drop procedure [dbo].[sp_podignitmsim]
Go
CREATE PROCEDURE sp_PodigniTmSim
@Sifra_OE smallint,
@BrojBaranje int,
@BrojPrilog int
AS
SELECT * from tmSim where Sifra_Oe=@Sifra_Oe and BrojBaranje=@BrojBaranje and BrojPrilog=@BrojPrilog
RETURN @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_podignitmsim_opcusl]'))
drop procedure [dbo].[sp_podignitmsim_opcusl]
Go
CREATE PROCEDURE sp_PodigniTmSim_OpcUsl
@Sifra_OE smallint,
@BrojBaranje int,
@BrojPrilog int
AS
Select * From TmSim_OpcUsl
Where Sifra_OE=@Sifra_Oe And BrojBaranje=@BrojBaranje And BrojPrilog=@BrojPrilog
RETURN @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_podignitmtarifmodel]'))
drop procedure [dbo].[sp_podignitmtarifmodel]
Go
CREATE PROCEDURE sp_PodigniTmTarifModel
@Sifra_TarifModel smallint
AS
SELECT * from tmTarifModel where Sifra_TarifModel=@Sifra_TarifModel
RETURN @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_podignitmtel]'))
drop procedure [dbo].[sp_podignitmtel]
Go
CREATE PROCEDURE sp_PodigniTmTel
@Sifra_Tel int
AS
Select * From TmTel
Where Sifra_Tel=@Sifra_Tel
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_podignitmuslugi]'))
drop procedure [dbo].[sp_podignitmuslugi]
Go
CREATE PROCEDURE sp_PodigniTmUslugi
@Sifra_TmUsl smallint
AS
Select * From TmUslugi
Where Sifra_TmUsl=@Sifra_TmUsl
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_podignitmuslugi_site]'))
drop procedure [dbo].[sp_podignitmuslugi_site]
Go
create PROCEDURE sp_podignitmuslugi_site
AS
select * from TmUslugi
order by Sifra_TmUsl ASC
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_podignitransnal]'))
WHERE Kto=''' +@Kto + ''' AND Sifra_Za=' + @Sifra_Za + ' AND Datum_Dok>'''+cast(@Datum_Do_SmeniBr as varchar(30))+''' '
EXEC (@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_polnianzatvoddrugabaza]'))
drop procedure [dbo].[sp_polnianzatvoddrugabaza]
Go
CREATE PROCEDURE sp_PolniAnZatvOdDrugaBaza
@BazaOd varchar(15),
@Sifra_Za char(1),
@Kto char(10),
@Datum_Do smalldatetime,
@Datum_Do_SmeniBr smalldatetime,
@Prefix_ZaBr varchar(3)
AS
Declare @SSQL varchar(3000)
CREATE TABLE #TmpZatv
(AnID1 int,
AnId2 int,
Iznos decimal(18,2),
Sif_OE1 smallint,
Sif_Dok1 smallint,
Br_Dok1 int,
Dat_Dok1 smalldatetime,
Dolzi_1 decimal(18,4),
Pobar_1 decimal(18,4),
Tip_Dok1 char(1),
Br_Dok1Nov int,
AnID1Nov int,
Sif_OE2 smallint,
Sif_Dok2 smallint,
Br_Dok2 int,
Dat_Dok2 smalldatetime,
Dolzi_2 decimal(18,4),
Pobar_2 decimal(18,4),
Tip_Dok2 char(1),
Br_Dok2Nov int,
AnID2Nov int,
Sifra_Kup char(6))
SET @SSQL = 'SELECT AnId1, AnID2, Iznos FROM '+@BazaOd+'..AnZatv
WHERE AnID1 IN (SELECT AnID FROM '+@BazaOd+'..AnFinDok WHERE Sifra_Za='+@Sifra_Za+' AND Kto='''+@Kto+''' AND Datum_Dok>'''+cast(@Datum_Do as varchar(30))+''')
OR AnID2 IN (SELECT AnID FROM '+@BazaOd+'..AnFinDok WHERE Sifra_Za='+@Sifra_Za+' AND Kto='''+@Kto+''' AND Datum_Dok >'''+cast(@Datum_Do as varchar(30))+''')'
INSERT INTO #TmpZatv (Anid1, AnId2, Iznos) EXEC (@SSQL)
SET @SSQL = 'UPDATE #TmpZatv SET Sif_OE1= F.Sifra_OE, Sif_Dok1 = F.Sifra_Dok, Br_Dok1 = F.Broj_Dok, Dat_DOk1 = F.Datum_Dok,
FROM '+@BazaOd+'..AnFinDok F WHERE #TmpZatv.AnID2 = F.AnID'
EXEC (@SSQL)
--UPDATE #TmpZatv SET Tip_Dok1 = T.TipDok FROM TipDok T WHERE #TmpZatv.Sif_Dok1=T.Sifra_Dok
--UPDATE #TmpZatv SET Tip_Dok2 = T.TipDok FROM TipDok T WHERE #TmpZatv.Sif_Dok2=T.Sifra_Dok
Declare @iPrefix as integer
SET @iPrefix = Cast(@Prefix_ZaBr as smallint) * 1000000
--dok. koj go zadrzuvaat brojot i dok.so golem broj, da so OR
UPDATE #TmpZatv SET Br_Dok1Nov = Br_Dok1 WHERE Dat_Dok1>@Datum_Do_SmeniBr OR Br_Dok1>999999
UPDATE #TmpZatv SET Br_Dok2Nov = Br_Dok2 WHERE Dat_Dok2>@Datum_Do_SmeniBr OR Br_Dok2>999999
UPDATE #TmpZatv SET Br_Dok1Nov = @iPrefix + Br_Dok1 WHERE Dat_Dok1>@Datum_Do AND Dat_Dok1<=@Datum_Do_SmeniBr AND Br_Dok1<1000000
UPDATE #TmpZatv SET Br_Dok2Nov = @iPrefix + Br_Dok2 WHERE Dat_Dok2>@Datum_Do AND Dat_Dok2<=@Datum_Do_SmeniBr AND Br_Dok2<1000000
UPDATE #TmpZatv SET AnID1Nov = F.AnID FROM AnFinDok F WHERE #TmpZatv.Sif_OE1=F.Sifra_OE AND #TmpZatv.Sif_Dok1=F.Sifra_Dok AND #TmpZatv.Br_Dok1Nov=F.Broj_Dok
UPDATE #TmpZatv SET AnID2Nov = F.AnID FROM AnFinDok F WHERE #TmpZatv.Sif_OE2=F.Sifra_OE AND #TmpZatv.Sif_Dok2=F.Sifra_Dok AND #TmpZatv.Br_Dok2Nov=F.Broj_Dok
CREATE TABLE #TmpPocSost
(Sifra_Kup char(6),
AnID_Dol int,
Dolzi_D decimal(18,4),
AnID_Pob int,
Pobar_P Decimal(18,4) )
INSERT INTO #TmpPocSost (Sifra_Kup) SELECT DISTINCT Sifra_Kup FROM #TmpZatv
UPDATE #TmpPocSost SET AnID_Dol=F.AnID, Dolzi_D=F.Dolzi FROM AnFinDok F WHERE #TmpPocSost.Sifra_Kup=F.Sifra_Kup AND F.Dolzi<>0 AND
F.Datum_Dok=@Datum_Do AND F.Kto = @Kto AND F.Sifra_Za = @Sifra_Za
UPDATE #TmpPocSost SET AnID_Pob=F.AnID, Pobar_P=F.Pobaruva FROM AnFinDok F WHERE #TmpPocSost.Sifra_Kup=F.Sifra_Kup AND F.Pobaruva<>0 AND
F.Datum_Dok=@Datum_Do AND F.Kto = @Kto AND F.Sifra_Za = @Sifra_Za
UPDATE #TmpZatv SET AnID1Nov = P.AnID_Dol FROM #TmpPocSost P WHERE #TmpZatv.Sifra_Kup = P.Sifra_Kup AND
#TmpZatv.AnID1Nov IS NULL AND #TmpZatv.Dat_Dok1<=@Datum_Do AND
((#TmpZatv.Dolzi_1>0 AND P.Dolzi_D>0) OR (#TmpZatv.Dolzi_1<0 AND P.Dolzi_D<0) OR (#TmpZatv.Pobar_1<0 AND P.Dolzi_D>0) OR (#TmpZatv.Pobar_1>0 AND P.Dolzi_D<0))
UPDATE #TmpZatv SET AnID1Nov = P.AnID_Pob FROM #TmpPocSost P WHERE #TmpZatv.Sifra_Kup = P.Sifra_Kup AND
#TmpZatv.AnID1Nov IS NULL AND #TmpZatv.Dat_Dok1<=@Datum_Do AND
((#TmpZatv.Pobar_1>0 AND P.Pobar_P>0) OR (#TmpZatv.Pobar_1<0 AND P.Pobar_P<0) OR (#TmpZatv.Dolzi_1<0 AND P.Pobar_P>0) OR (#TmpZatv.Dolzi_1>0 AND P.Pobar_P<0))
UPDATE #TmpZatv SET AnID2Nov = P.AnID_Dol FROM #TmpPocSost P WHERE #TmpZatv.Sifra_Kup = P.Sifra_Kup AND
#TmpZatv.AnID2Nov IS NULL AND #TmpZatv.Dat_Dok2<=@Datum_Do AND
((#TmpZatv.Dolzi_2>0 AND P.Dolzi_D>0) OR (#TmpZatv.Dolzi_2<0 AND P.Dolzi_D<0) OR (#TmpZatv.Pobar_2<0 AND P.Dolzi_D>0) OR (#TmpZatv.Pobar_2>0 AND P.Dolzi_D<0))
UPDATE #TmpZatv SET AnID2Nov = P.AnID_Pob FROM #TmpPocSost P WHERE #TmpZatv.Sifra_Kup = P.Sifra_Kup AND
#TmpZatv.AnID2Nov IS NULL AND #TmpZatv.Dat_Dok2<=@Datum_Do AND
((#TmpZatv.Pobar_2>0 AND P.Pobar_P>0) OR (#TmpZatv.Pobar_2<0 AND P.Pobar_P<0) OR (#TmpZatv.Dolzi_2<0 AND P.Pobar_P>0) OR (#TmpZatv.Dolzi_2>0 AND P.Pobar_P<0))
INSERT INTO AnZatv(AnID1, AnID2, Iznos, DatumZatv, Iznos_Dev)
SELECT AnID1Nov, AnID2Nov, Iznos, GETDATE(), Iznos FROM #TmpZatv
WHERE AnID1Nov IS NOT NULL AND AnID2Nov IS NOT NULL --Datum_Dok1>@Datum_Do AND Datum_Dok2>@Datum_Do
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_polnianzatvoddrugabazasamopoc]'))
drop procedure [dbo].[sp_polnianzatvoddrugabazasamopoc]
Go
CREATE PROCEDURE sp_PolniAnZatvOdDrugaBazaSamoPoc
@BazaOd varchar(15),
@Sifra_Za char(1),
@Kto char(10),
@Datum_Do smalldatetime
AS
Declare @SSQL varchar(3000)
CREATE TABLE #TmpZatv
(AnID1 int,
AnId2 int,
Iznos decimal(18,2),
Sif_OE1 smallint,
Sif_Dok1 smallint,
Br_Dok1 int,
Dat_Dok1 smalldatetime,
Dolzi_1 decimal(18,4),
Pobar_1 decimal(18,4),
Tip_Dok1 char(1),
Br_Dok1Nov int,
AnID1Nov int,
Sif_OE2 smallint,
Sif_Dok2 smallint,
Br_Dok2 int,
Dat_Dok2 smalldatetime,
Dolzi_2 decimal(18,4),
Pobar_2 decimal(18,4),
Tip_Dok2 char(1),
Br_Dok2Nov int,
AnID2Nov int,
Sifra_Kup char(6))
SET @SSQL = 'SELECT AnId1, AnID2, Iznos FROM '+@BazaOd+'..AnZatv
WHERE AnID1 IN (SELECT AnID FROM '+@BazaOd+'..AnFinDok WHERE Sifra_Za='+@Sifra_Za+' AND Kto='''+@Kto+''' AND Datum_Dok>'''+cast(@Datum_Do as varchar(30))+''')
AND AnID2 IN (SELECT AnID FROM '+@BazaOd+'..AnFinDok WHERE Sifra_Za='+@Sifra_Za+' AND Kto='''+@Kto+''' AND Datum_Dok <='''+cast(@Datum_Do as varchar(30))+''')'
INSERT INTO #TmpZatv (Anid1, AnId2, Iznos) EXEC (@SSQL)
UPDATE #TmpZatv SET Dolzi_1=0, Dolzi_2=0, Pobar_1=0, Pobar_2=0
SET @SSQL = 'SELECT AnId1, AnID2, Iznos FROM '+@BazaOd+'..AnZatv
WHERE AnID2 IN (SELECT AnID FROM '+@BazaOd+'..AnFinDok WHERE Sifra_Za='+@Sifra_Za+' AND Kto='''+@Kto+''' AND Datum_Dok>'''+cast(@Datum_Do as varchar(30))+''')
AND AnID1 IN (SELECT AnID FROM '+@BazaOd+'..AnFinDok WHERE Sifra_Za='+@Sifra_Za+' AND Kto='''+@Kto+''' AND Datum_Dok <='''+cast(@Datum_Do as varchar(30))+''')'
INSERT INTO #TmpZatv (Anid1, AnId2, Iznos) EXEC (@SSQL)
SET @SSQL = 'UPDATE #TmpZatv SET Sif_OE1= F.Sifra_OE, Sif_Dok1 = F.Sifra_Dok, Br_Dok1 = F.Broj_Dok, Dat_DOk1 = F.Datum_Dok,
FROM '+@BazaOd+'..AnFinDok F WHERE #TmpZatv.AnID2 = F.AnID AND F.Datum_Dok >'''+cast(@Datum_Do as varchar(30))+''''
EXEC (@SSQL)
CREATE TABLE #TmpPocSost
(Sifra_Kup char(6),
AnID_Dol int,
Dolzi_D decimal(18,4),
AnID_Pob int,
Pobar_P Decimal(18,4) )
INSERT INTO #TmpPocSost (Sifra_Kup) SELECT DISTINCT Sifra_Kup FROM #TmpZatv
UPDATE #TmpPocSost SET AnID_Dol=F.AnID, Dolzi_D=F.Dolzi FROM AnFinDok F WHERE #TmpPocSost.Sifra_Kup=F.Sifra_Kup AND F.Dolzi<>0 AND
F.Datum_Dok=@Datum_Do AND F.Kto = @Kto AND F.Sifra_Za = @Sifra_Za
UPDATE #TmpPocSost SET AnID_Pob=F.AnID, Pobar_P=F.Pobaruva FROM AnFinDok F WHERE #TmpPocSost.Sifra_Kup=F.Sifra_Kup AND F.Pobaruva<>0 AND
F.Datum_Dok=@Datum_Do AND F.Kto = @Kto AND F.Sifra_Za = @Sifra_Za
UPDATE #TmpZatv SET AnID1Nov = P.AnID_Dol FROM #TmpPocSost P WHERE #TmpZatv.Sifra_Kup = P.Sifra_Kup AND
#TmpZatv.AnID1Nov IS NULL AND #TmpZatv.Dat_Dok1 IS NULL AND
((#TmpZatv.Pobar_2>0 AND P.Dolzi_D>0) OR (#TmpZatv.Pobar_2<0 AND P.Dolzi_D<0) OR (#TmpZatv.Dolzi_2<0 AND P.Dolzi_D>0) OR (#TmpZatv.Dolzi_2>0 AND P.Dolzi_D<0))
UPDATE #TmpZatv SET AnID1Nov = P.AnID_Pob FROM #TmpPocSost P WHERE #TmpZatv.Sifra_Kup = P.Sifra_Kup AND
#TmpZatv.AnID1Nov IS NULL AND #TmpZatv.Dat_Dok1 IS NULL AND
((#TmpZatv.Dolzi_2>0 AND P.Pobar_P>0) OR (#TmpZatv.Dolzi_2<0 AND P.Pobar_P<0) OR (#TmpZatv.Pobar_2<0 AND P.Pobar_P>0) OR (#TmpZatv.Pobar_2>0 AND P.Pobar_P<0))
UPDATE #TmpZatv SET AnID2Nov = P.AnID_Dol FROM #TmpPocSost P WHERE #TmpZatv.Sifra_Kup = P.Sifra_Kup AND
#TmpZatv.AnID2Nov IS NULL AND #TmpZatv.Dat_Dok2 IS NULL AND
((#TmpZatv.Pobar_1>0 AND P.Dolzi_D>0) OR (#TmpZatv.Pobar_1<0 AND P.Dolzi_D<0) OR (#TmpZatv.Dolzi_1<0 AND P.Dolzi_D>0) OR (#TmpZatv.Dolzi_1>0 AND P.Dolzi_D<0))
UPDATE #TmpZatv SET AnID2Nov = P.AnID_Pob FROM #TmpPocSost P WHERE #TmpZatv.Sifra_Kup = P.Sifra_Kup AND
#TmpZatv.AnID2Nov IS NULL AND #TmpZatv.Dat_Dok2 IS NULL AND
((#TmpZatv.Dolzi_1>0 AND P.Pobar_P>0) OR (#TmpZatv.Dolzi_1<0 AND P.Pobar_P<0) OR (#TmpZatv.Pobar_1<0 AND P.Pobar_P>0) OR (#TmpZatv.Pobar_1>0 AND P.Pobar_P<0))
--select * from #tmppocsost
--select * from #tmpzatv
INSERT INTO AnZatv(AnID1, AnID2, Iznos, DatumZatv, Iznos_Dev)
SELECT AnID1Nov, AnID2Nov, Iznos, GETDATE(), Iznos FROM #TmpZatv
WHERE AnID1Nov IS NOT NULL AND AnID2Nov IS NOT NULL --Datum_Dok1>@Datum_Do AND Datum_Dok2>@Datum_Do
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_polnianzatvoddrugabazasamopocoe]'))
drop procedure [dbo].[sp_polnianzatvoddrugabazasamopocoe]
SET @SSQL = 'SELECT AnId1, AnID2, Iznos FROM '+@BazaOd+'..AnZatv
WHERE AnID1 IN (SELECT AnID FROM '+@BazaOd+'..AnFinDok WHERE Sifra_Za='+@Sifra_Za+' AND Kto='''+@Kto+''' AND Datum_Dok>'''+cast(@Datum_Do as varchar(30))+''')
AND AnID2 IN (SELECT AnID FROM '+@BazaOd+'..AnFinDok WHERE Sifra_Za='+@Sifra_Za+' AND Kto='''+@Kto+''' AND Datum_Dok <='''+cast(@Datum_Do as varchar(30))+''')'
INSERT INTO #TmpZatv (Anid1, AnId2, Iznos) EXEC (@SSQL)
UPDATE #TmpZatv SET Dolzi_1=0, Dolzi_2=0, Pobar_1=0, Pobar_2=0
SET @SSQL = 'SELECT AnId1, AnID2, Iznos FROM '+@BazaOd+'..AnZatv
WHERE AnID2 IN (SELECT AnID FROM '+@BazaOd+'..AnFinDok WHERE Sifra_Za='+@Sifra_Za+' AND Kto='''+@Kto+''' AND Datum_Dok>'''+cast(@Datum_Do as varchar(30))+''')
AND AnID1 IN (SELECT AnID FROM '+@BazaOd+'..AnFinDok WHERE Sifra_Za='+@Sifra_Za+' AND Kto='''+@Kto+''' AND Datum_Dok <='''+cast(@Datum_Do as varchar(30))+''')'
INSERT INTO #TmpZatv (Anid1, AnId2, Iznos) EXEC (@SSQL)
SET @SSQL = 'UPDATE #TmpZatv SET Sif_OE1= F.Sifra_OE, Sif_Dok1 = F.Sifra_Dok, Br_Dok1 = F.Broj_Dok, Dat_DOk1 = F.Datum_Dok,
FROM '+@BazaOd+'..AnFinDok F WHERE #TmpZatv.AnID2 = F.AnID AND F.Datum_Dok >'''+cast(@Datum_Do as varchar(30))+''''
EXEC (@SSQL)
CREATE TABLE #TmpPocSost
(Sifra_Kup char(6),
Sifra_OE smallint,
AnID_Dol int,
Dolzi_D decimal(18,4),
AnID_Pob int,
Pobar_P Decimal(18,4) )
INSERT INTO #TmpPocSost (Sifra_Kup, Sifra_OE) SELECT DISTINCT Sifra_Kup, Sif_OE1 FROM #TmpZatv WHERE Sif_OE1 IS NOT NULL
UNION SELECT DISTINCT Sifra_Kup, Sif_OE2 FROM #TmpZatv WHERE Sif_OE2 IS NOT NULL
UPDATE #TmpPocSost SET AnID_Dol=F.AnID, Dolzi_D=F.Dolzi FROM AnFinDok F WHERE #TmpPocSost.Sifra_Kup=F.Sifra_Kup AND F.Dolzi<>0 AND
F.Datum_Dok=@Datum_Do AND F.Kto = @Kto AND F.Sifra_Za = @Sifra_Za AND #TmpPocSost.Sifra_OE=F.Sifra_OE
UPDATE #TmpPocSost SET AnID_Pob=F.AnID, Pobar_P=F.Pobaruva FROM AnFinDok F WHERE #TmpPocSost.Sifra_Kup=F.Sifra_Kup AND F.Pobaruva<>0 AND
F.Datum_Dok=@Datum_Do AND F.Kto = @Kto AND F.Sifra_Za = @Sifra_Za AND #TmpPocSost.Sifra_OE=F.Sifra_OE
UPDATE #TmpZatv SET AnID1Nov = P.AnID_Dol FROM #TmpPocSost P WHERE #TmpZatv.Sifra_Kup = P.Sifra_Kup AND #TmpZatv.Sif_OE2 = P.Sifra_OE AND
#TmpZatv.AnID1Nov IS NULL AND #TmpZatv.Dat_Dok1 IS NULL AND
((#TmpZatv.Pobar_2>0 AND P.Dolzi_D>0) OR (#TmpZatv.Pobar_2<0 AND P.Dolzi_D<0) OR (#TmpZatv.Dolzi_2<0 AND P.Dolzi_D>0) OR (#TmpZatv.Dolzi_2>0 AND P.Dolzi_D<0))
UPDATE #TmpZatv SET AnID1Nov = P.AnID_Pob FROM #TmpPocSost P WHERE #TmpZatv.Sifra_Kup = P.Sifra_Kup AND #TmpZatv.Sif_OE2 = P.Sifra_OE AND
#TmpZatv.AnID1Nov IS NULL AND #TmpZatv.Dat_Dok1 IS NULL AND
((#TmpZatv.Dolzi_2>0 AND P.Pobar_P>0) OR (#TmpZatv.Dolzi_2<0 AND P.Pobar_P<0) OR (#TmpZatv.Pobar_2<0 AND P.Pobar_P>0) OR (#TmpZatv.Pobar_2>0 AND P.Pobar_P<0))
UPDATE #TmpZatv SET AnID2Nov = P.AnID_Dol FROM #TmpPocSost P WHERE #TmpZatv.Sifra_Kup = P.Sifra_Kup AND #TmpZatv.Sif_OE1 = P.Sifra_OE AND
#TmpZatv.AnID2Nov IS NULL AND #TmpZatv.Dat_Dok2 IS NULL AND
((#TmpZatv.Pobar_1>0 AND P.Dolzi_D>0) OR (#TmpZatv.Pobar_1<0 AND P.Dolzi_D<0) OR (#TmpZatv.Dolzi_1<0 AND P.Dolzi_D>0) OR (#TmpZatv.Dolzi_1>0 AND P.Dolzi_D<0))
UPDATE #TmpZatv SET AnID2Nov = P.AnID_Pob FROM #TmpPocSost P WHERE #TmpZatv.Sifra_Kup = P.Sifra_Kup AND #TmpZatv.Sif_OE1 = P.Sifra_OE AND
#TmpZatv.AnID2Nov IS NULL AND #TmpZatv.Dat_Dok2 IS NULL AND
((#TmpZatv.Dolzi_1>0 AND P.Pobar_P>0) OR (#TmpZatv.Dolzi_1<0 AND P.Pobar_P<0) OR (#TmpZatv.Pobar_1<0 AND P.Pobar_P>0) OR (#TmpZatv.Pobar_1>0 AND P.Pobar_P<0))
--select * from #tmppocsost
--select * from #tmpzatv
INSERT INTO AnZatv(AnID1, AnID2, Iznos, DatumZatv, Iznos_Dev)
SELECT AnID1Nov, AnID2Nov, Iznos, GETDATE(), Iznos FROM #TmpZatv
WHERE AnID1Nov IS NOT NULL AND AnID2Nov IS NOT NULL --Datum_Dok1>@Datum_Do AND Datum_Dok2>@Datum_Do
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_polniknigatrgzv]'))
drop procedure [dbo].[sp_polniknigatrgzv]
Go
CREATE PROCEDURE sp_PolniKnigaTrgZV
@Datum_Do smalldatetime
AS
Declare @Datum_Od as smalldatetime
Set @Datum_Od = (select max(datum_dok) from knigatrg where broj like '100-10%') -- proverka do koj datum e vneseno
If @Datum_Od Is Null
Set @Datum_Od = '2000-01-01'
Set @Datum_Od = DateAdd(Day, 1, @Datum_Od)
Create Table #Tab
(
Brojac int identity(1,1),
InterBr int,
Sifra_Oe smallint,
Sifra_Dok smallint,
Broj_Dok int,
Datum_Dok smalldatetime,
Toc200 decimal(18,4),
NabVred decimal(18,4)
)
Insert Into #Tab(Sifra_Oe, Sifra_Dok, Broj_Dok, Datum_Dok, Toc200, NabVred)
Left Outer Join Podgrupi PG On PG.Sifra_Podg = K.Sifra_Podg
Left Outer Join Orged O On O.Sifra_Oe=P.Sifra_Oe
Where 1=1 '
If @PopisID Is Not Null
Set @SSQL = @SSQL + ' And P.IDPopis IN (' + @PopisID + ') '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' and P.Sifra_Oe = ' + cast(@Sifra_Oe as varchar(6)) + ' '
If @Koi_OE Is Not NULL
Set @SSQL = @SSQL + ' and P.Sifra_Oe In (' + @Koi_Oe + ') ' --P.Sifra_OE IN (Select G.Sifra_Oe From SGrOrg G where G.Sif_GrOrg = ''' + @Koi_Oe + ''') '
If @Datum_Od Is Not Null
Set @SSQL = @SSQL + ' and P.Datum >= ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQL = @SSQL + ' and P.Datum <= ''' + cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Art_Od Is Not Null
Set @SSQL = @SSQL + ' and R.Sifra_Art >= ''' + @Sifra_Art_Od + ''' '
If @Sifra_Art_Do Is Not Null
Set @SSQL = @SSQL + ' and R.Sifra_Art <= ''' + @Sifra_Art_Do + ''' '
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 PG.Sifra_Gr = ''' + @Sifra_Gr + ''' '
If @ADrugo1 Is Not Null
Set @SSQL = @SSQL + ' and K.Drugo1 = ''' + cast(@ADrugo1 as varchar(6)) + ''' '
If @ADrugo2 Is Not Null
Set @SSQL = @SSQL + ' and K.Drugo2 = ''' + cast(@ADrugo2 as varchar(6)) + ''' '
If @ADrugo3 Is Not Null
Set @SSQL = @SSQL + ' and K.Drugo3 = ''' + cast(@ADrugo3 as varchar(6)) + ''' '
If @ADrugo4 Is Not Null
Set @SSQL = @SSQL + ' and K.Drugo4 = ''' + cast(@ADrugo4 as varchar(6)) + ''' '
If @ADrugo5 Is Not Null
Set @SSQL = @SSQL + ' and K.Drugo5 = ''' + cast(@ADrugo5 as varchar(6)) + ''' '
If @Kto Is Not Null
Set @SSQL = @SSQL + ' and K.Kto = ''' + @Kto + ''' '
If @Sifra_Drg Is Not Null
Set @SSQL = @SSQL + ' and K.Sifra_Drg = ''' + cast(@Sifra_Drg as varchar(6)) + ''' '
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_popisosnsred]'))
drop procedure [dbo].[sp_popisosnsred]
Go
CREATE PROCEDURE [dbo].[sp_PopisOsnSred]
@GodPresm smallint,
@KrMesec smallint,
@Broj_Lista int = NULL, --broj popisna lista
@Inv_Broj_Od char(10) = Null,
@Inv_Broj_Do char(10) = Null,
@Kto_anal varchar(200) = Null,
@Sifra_Amor varchar(200) = Null,
@Sifra_MikLok varchar(200) = Null,
@Sifra_MakLok varchar(200) = Null,
@Sifra_Lok varchar(200) = Null,
@Sifra_Rab varchar(200) = Null,
@OS_SI char(1) = NULL, -- O-Osnovni Sredstva, S-Siten Inventar NE CEPKAJ DEFAULT, BITEN ZA PRENOSOT
@Sifra_TrosM smallint = Null,
@Sifra_Div smallint = Null,
@Firma smallint = Null, -- pole oss_rez2
@SpecLokacija nvarchar(40) = Null, -- pole oss_speclokacija, moze i po del od ime
@PodProgram char(5) = Null, -- pole oss_sif_podprogr
@Grantist char(5) = Null, -- pole oss_sifra_gra
@TipOprema char(5) = Null, -- pole oss_tip_oprema
@PosebenKod varchar(10) = Null, -- pole oss_kod, moze i po del od ime
@Dogovor nvarchar(50) = Null, -- pole oss_dogovor, moze i po del od ime
@Ime nvarchar(100) = Null, -- pole ime, moze i pode del od ime
@Opis nvarchar(250) = Null, -- pole opis. moze i pod del od ime
@Oznaka nvarchar(10)= null -- dod 03.09.2011 za ZiVa AD
AS
/* Declare @SSQL varchar(2000)
Declare @PocDat smalldatetime
Declare @KrDat smalldatetime
Declare @PocDatGod smalldatetime
SET @PocDatGod = dbo.fn_NapraviDatum (@GodPresm, 1, 1)
SET @PocDat = dbo.fn_NapraviDatum (@GodPresm, @PocMesec, 1)
SET @KrDat = dbo.fn_VratiDatumOdDo (@GodPresm, @KrMesec, 31)
CREATE TABLE #PomOsn
( Inv_Broj char(10),
DatAkt smalldatetime,
DatPrest smalldatetime
)
*/
CREATE TABLE #TmpOS
( Inv_Broj char(10),
Rbr smallint,
Ime varchar(40),
DatAkt smalldatetime,
DatPrest smalldatetime,
KolPopis smallint,
KolicKnig smallint,
Osn_Amor decimal(18,2),
Otpis_pret decimal(18,2),
Stapka_Amor decimal(8,3),
AmortTekGod decimal(18,6),
AmortKumul decimal(18,6))
SELECT * FROM #TmpOS
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_popolni_c_intdok]'))
Danok1 = ' + Cast(@SumaDanok1 As Varchar(20)) + ',
Danok2 = ' + Cast(@SumaDanok2 As Varchar(20)) + ',
PDanok1 = ' + Cast(@SumaPDanok1 As Varchar(20)) + ',
PDanok2 = ' + Cast(@SumaPDanok2 As Varchar(20)) + '
Where Sifra_OE=' + Cast(@Sifra_OE As Varchar(5)) + ' And Sifra_Dok=' + Cast(@Sifra_Dok As Varchar(5)) + ' And Broj_Dok=' + Cast(@Broj_Dok As Varchar(6)) + ' '
Exec(@SSQL3)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_popravidokr]'))
drop procedure [dbo].[sp_popravidokr]
Go
CREATE PROCEDURE sp_PopraviDokr
@Sifra_OE Smallint,
@Sifra_Dok Smallint,
@Datum_Od Smalldatetime = Null,
@Datum_Do Smalldatetime = Null,
@KolkuDok Int OUTPUT
AS
Declare @SSQL As Varchar(1000)
Declare @SSQL2 As Varchar(1000)
Declare @SSQL3 As Varchar(1000)
Declare @Broj_Dok As Int
Declare @Sifra_Prim As Smallint
Declare @ImaDodatna As Char(1)
Declare @Uces As Decimal(6,2)
Declare @Kasa as decimal(6,2)
Declare @POsn As Decimal(6,2)
Declare @DanDokCena As Char(1)
Declare @DanMagCena As Char(1)
Declare @Kolic As Decimal(18,6)
Declare @DokCena As Decimal(18,6)
Declare @MagCena As Decimal(18,6)
Declare @dFaktorDDV As Decimal(6,4)
Declare @dFaktorNeto As Decimal(6,4)
Declare @mFaktorDDV As Decimal(6,4)
Declare @mFaktorNeto As Decimal(6,4)
Declare @Danok1 As Decimal(18,6)
Declare @Danok2 As Decimal(18,6)
Declare @PDanok1 As Decimal(18,6)
Declare @PDanok2 As Decimal(18,6)
Declare @NabIznos As Decimal(18,6)
Declare @MagIznos As Decimal(18,6)
Declare @MagIznosDan As Decimal(18,6)
Declare @SumaNabIznos As Decimal(18,6)
Declare @SumaMagIznos As Decimal(18,6)
Declare @SumaMagIznosDan As Decimal(18,6)
Declare @SumaDanok1 As Decimal(18,6)
Declare @SumaDanok2 As Decimal(18,6)
Declare @SumaPDanok1 As Decimal(18,6)
Declare @SumaPDanok2 As Decimal(18,6)
Declare @Suma As Decimal(18,6)
Set @SSQL = 'Select Sifra_OE, Sifra_Dok, Broj_Dok, Sifra_Prim, ImaDodatna From Dokr Where 1=1 '
If @Sifra_OE Is Not NULL
Set @SSQL = @SSQL + 'And 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 @Datum_Od Is Not NULL
Set @SSQL = @SSQL + 'And Datum_Dok >=''' + Cast(@Datum_Od As Varchar(30)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQL = @SSQL + 'And Datum_Dok <=''' + Cast(@Datum_Do As Varchar(30)) + ''' '
Create Table #tStavr
( Uces Decimal(6,2),
Kasa Decimal(6,2),
POsn Decimal(6,2),
DanDokCena Char(1),
DanMagCena Char(1),
Kolic Decimal(18,6),
DokCena Decimal(18,6),
MagCena Decimal(18,6)
)
Create Table #tDokr
( Sifra_OE Smallint,
Sifra_Dok Smallint,
Broj_Dok Int,
Sifra_Prim Smallint,
ImaDodatna Char(1)
)
Insert #tDokr Exec(@SSQL)
Set @KolkuDok=@@RowCount
Declare tDokr Cursor Fast_Forward For Select * From #tDokr
Open tDokr
Fetch Next From tDokr Into @Sifra_OE, @Sifra_Dok, @Broj_Dok, @Sifra_Prim, @ImaDodatna
While @@Fetch_Status = 0
Begin
Print 'Sifra_OE=' + Cast(@Sifra_OE As Varchar(5)) + '; Sifra_Dok=' + Cast(@Sifra_Dok As Varchar(5)) + '; Broj_Dok=' + Cast(@Broj_Dok As Varchar(6)) --+ '; Sifra_Prim=' + Cast(@Sifra_Prim As Varchar(5)) + '; ImaDodatna=' + @ImaDodatna
Danok1 = ' + Cast(@SumaDanok1 As Varchar(20)) + ',
Danok2 = ' + Cast(@SumaDanok2 As Varchar(20)) + ',
PDanok1 = ' + Cast(@SumaPDanok1 As Varchar(20)) + ',
PDanok2 = ' + Cast(@SumaPDanok2 As Varchar(20)) + '
Where Sifra_OE=' + Cast(@Sifra_OE As Varchar(5)) + ' And Sifra_Dok=' + Cast(@Sifra_Dok As Varchar(5)) + ' And Broj_Dok=' + Cast(@Broj_Dok As Varchar(6)) + ' '
If @Sifra_Prim Is Not NULL
Set @SSQL3 = @SSQL3 + 'And Sifra_Prim=' + Cast(@Sifra_Prim As Varchar(5)) + ' '
Set @SumaMagIznosDan = @SumaMagIznosDan + @MagIznosDan
Fetch Next From tStavr Into @Uces, @Kasa, @POsn, @DanDokCena, @DanMagCena, @Kolic, @DokCena, @MagCena
End --While
Close tStavr
Deallocate tStavr
print @SumaNabIznos
print @SumaMagIznos
print @SumaMAgIznosDan
print @SumaDanok1
print @SumaDanok2
print @SumaPDanok1
print @SumaPDanok2
print '-----------'
SET @SumaNabIznos = round(@SumaNabIznos,0)
Set @SSQL3 = 'Update Dokr set
MagVrDan= ' + Cast(@SumaMagIznosDan As Varchar(20)) + ',
Toc200 = ' + Cast(@SumaNabIznos As Varchar(20)) + '
Where Sifra_OE=' + Cast(@Sifra_OE As Varchar(5)) + ' And Sifra_Dok=' + Cast(@Sifra_Dok As Varchar(5)) + ' And Broj_Dok=' + Cast(@Broj_Dok As Varchar(6)) + ' '
If @Sifra_Prim Is Not NULL
Set @SSQL3 = @SSQL3 + 'And Sifra_Prim=' + Cast(@Sifra_Prim As Varchar(5)) + ' '
where Sifra_Oe = @Sifra_Oe and Lokac_BarKod = @Lokac_BarKod
end
else
set @DaliPostoi = 'N'
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_postojanikomintenti]'))
drop procedure [dbo].[sp_postojanikomintenti]
Go
CREATE PROCEDURE sp_PostojaniKomintenti
@Mesec_Od Smallint,
@Mesec_Do Smallint,
@Komint_Od Varchar(10) = Null,
@Komint_Do Varchar(10) = Null,
@Podelba1 Smallint = Null,
@Podelba2 Smallint = Null,
@Podelba3 Smallint = Null,
@Podelba4 Smallint = Null,
@Podelba5 Smallint = Null,
@Podelba6 Smallint = Null,
@Podelba7 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,
@Grad Smallint = Null,
@Patnik Smallint = Null,
@TipKup Varchar(11) = Null,
@KojaCena char(1) = Null,
@Sifra_reg smallint = Null,
@Sifra_Nivo Char(2) = Null,
@Aktiven Char(1) = Null,
@MozeIsporaka Char(1) = Null,
@Patnik_OdKomintPat char(1)='N',
@Sifra_VPJ smallint = Null,
@DatumIzm_Od smalldatetime = NULL,
@DatumIzm_Do smalldatetime = NULL
AS
Declare @SSQL Varchar(3000)
Declare @Mesec Smallint
Declare @Godina Smallint
Create Table #Sifri_Kup ( Sifra_Kup Varchar(10))
Set @Godina = Year(GetDate())
Set @Mesec = @Mesec_Od
Set @SSQL = 'Insert Into #Sifri_Kup Select Distinct D.Sifra_Kup From Dokr D
Inner Join Komint Kup On D.Sifra_Kup=Kup.Sifra_Kup '
IF @Patnik_OdKomintPat = 'D' AND @Patnik IS NOT NULL
Set @SSQL = @SSQL + ' Left Outer Join KomintPat KP On KP.Sifra_Kup=Kup.Sifra_Kup AND KP.Sifra_Obj=Null '
Set @SSQL = @SSQL + ' Where Month(Datum_Dok)=' + Cast(@Mesec As Varchar(3)) + ' And Year(Datum_Dok)=' + Cast(@Godina As Varchar(4)) + ' And Sifra_Za=''1'' And VlIzl=''I'' '
Left Outer Join Patnici P On Kup.Sifra_Pat=P.Sifra_Pat
Left Outer Join Grad G On Kup.Sifra_Grad=G.Sifra_Grad
Left Outer Join GRegion R On Kup.Sifra_Reg=R.Sifra_Reg
Left Outer Join Nivo N On Kup.Sifra_Nivo=N.Sifra_Nivo
Left Outer Join KDrugo1 KD1 On Kup.KDrugo1=KD1.Sifra_1K
Left Outer Join KDrugo2 KD2 On Kup.KDrugo1=KD2.Sifra_2K
Left Outer Join GTipKup TK On Kup.TipKup=TK.TipKup
Where Kup.Sifra_Kup In (Select Sifra_Kup From #Sifri_Kup)
and TK.TipKup = @TipKup
Order By Kup.KDrugo1, Kup.KDrugo2, Kup.Sifra_Kup
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_potreben_li_e_dezen]'))
drop procedure [dbo].[sp_potreben_li_e_dezen]
Go
create PROCEDURE sp_Potreben_Li_E_Dezen
@Sifra_Art Varchar(20),
@Kolku_So_Dezen int OUTPUT
AS
select @Kolku_So_Dezen = count (*)
from Sostav
where Sifra_Art = @SifrA_art and VodeckiArtikal = 'D'
--print @Kolku_So_Dezen
Return @@Error
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_potrosokponormativ]'))
drop procedure [dbo].[sp_potrosokponormativ]
Go
CREATE PROCEDURE sp_PotrosokPoNormativ
@Sifra_OE_Tros smallint,
@Sifra_OE_Pvo smallint,
@Sifra_Dok_Tros varchar(200),
@Sifra_Dok_Pvo varchar(200),
@Datum_Od smalldatetime,
@Datum_Do smalldatetime,
@BrojRabN_Od int,
@BrojRabN_Do int
-- @Sifra_Art_Od varchar(20) = Null,
-- @Sifra_Art_Do varchar(20) = Null
AS
Declare @SSQL as varchar(4000)
Create Table #Tabela1
(
Sifra_Art varchar(20),
Sifra_Sur varchar(20),
Potroseno decimal(18,4),
Normativ decimal(18,4),
Razlika decimal(18,4),
Cena decimal(18,4),
Vrednost decimal(18,4)
)
Set @SSQL = ' Select S.Sifra_Art, S.Sifra_Art, sum(S.Kolic) Potroseno, 0 as Normativ
From Stavr S
Inner Join Dokr D On D.DokrId=S.DokrId
Left Outer Join DokRabnal DRN On DRN.DokrID=D.DokrID
Left Outer Join Rabnal R On DRN.RabNalID=R.RabNalID
Inner Join Katart K On K.Sifra_art = S.Sifra_art
Where S.VlIzl = ''I'' '--S.Sifra_Dok = 991
If @Sifra_OE_Tros Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_Oe = ' + cast(@Sifra_Oe_Tros as Varchar(10)) + ' '
If @Sifra_Dok_Tros Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_Dok In (' + @Sifra_Dok_Tros + ') '
If @Datum_Od is Not Null
Set @SSQL = @SSQL + ' And S.Datum_Dok >= ''' + cast(@Datum_Od as Varchar(35)) + ''' '
If @Datum_Do is Not Null
Set @SSQL = @SSQL + ' And S.Datum_Dok <= ''' + cast(@Datum_Do as Varchar(35)) + ''' '
If @BrojRabN_Od is Not Null
Set @SSQL = @SSQL + ' And R.Broj_RabN >= ' + cast(@BrojRabN_Od as Varchar(8)) + ' '
If @BrojRabN_Do is Not Null
Set @SSQL = @SSQL + ' And R.Broj_RabN <= ' + cast(@BrojRabN_Do as Varchar(8)) + ' '
-- 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 + 'Group By S.Sifra_Art '
Insert Into #Tabela1 (Sifra_Art, Sifra_Sur, Potroseno, Normativ) Exec(@SSQL)
--select * from #tabela1
CREATE TABLE #Tabela2
(
Sifra_Art varchar(20),
Kolicina decimal(18,6)
)
Set @SSQL= 'Select S.Sifra_Art, Sum(S.Kolic)
From Stavr S
Inner Join Dokr D On D.DokrId=S.DokrId
Left Outer Join DokRabnal DRN On DRN.DokrID=D.DokrID
Left Outer Join Rabnal R On DRN.RabNalID=R.RabNalID
Where S.VlIzl= ''V'' '
--Where S.Sifra_Dok = 46 and S.VlIzl= ''V'' '
If @Sifra_Oe_Pvo is Not Null
Set @SSQL=@SSQL + ' And S.Sifra_Oe = ' + cast(@Sifra_Oe_Pvo as Varchar(10)) + ' '
If @Sifra_Dok_Pvo is Not Null
Set @SSQL=@SSQL + ' And S.Sifra_Dok In (' + @Sifra_Dok_Pvo + ') '
If @Datum_Od is Not Null
Set @SSQL=@SSQL + ' And S.Datum_Dok >= ''' + cast(@Datum_Od as Varchar(35)) + ''' '
If @Datum_Do is Not Null
Set @SSQL=@SSQL + ' And S.Datum_Dok <= ''' + cast(@Datum_Do as Varchar(35)) + ''' '
If @BrojRabN_Od is Not Null
Set @SSQL = @SSQL + ' And R.Broj_RabN >= ' + cast(@BrojRabN_Od as Varchar(8)) + ' '
If @BrojRabN_Do is Not Null
Set @SSQL = @SSQL + ' And R.Broj_RabN <= ' + cast(@BrojRabN_Do as Varchar(8)) + ' '
-- 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 + ' Group by S.Sifra_Art '
INSERT INTO #Tabela2 Exec(@SSQL)
--select * from #tabela2
Set @SSQL= ' SELECT T.Sifra_Art, S.Sifra_Sur, 0 as Potroseno, Sum(T.Kolicina * S.Ima_Kolic/S.Za_Kolku) Normativ
FROM #Tabela2 T
LEFT OUTER JOIN Sostav S On T.Sifra_Art = S.Sifra_Art
GROUP BY T.Sifra_Art, S.Sifra_Sur '
Insert Into #Tabela1 (Sifra_Art, Sifra_Sur, Potroseno, Normativ) Exec(@SSQL)
--select * from #Tabela1
Create Table #NabCeni
(
Sifra_Sur varchar(20),
PoslNabCena decimal(18,4)
)
Insert Into #NabCeni (Sifra_Sur) Select Distinct Sifra_Sur From #Tabela1
Update #NabCeni Set PoslNabCena = dbo.fn_CenaDatum(@Sifra_OE_Tros, Sifra_Sur, (Case When @Datum_Do Is Not Null Then @Datum_Do Else GetDate() End), 'N')
Inner Join Podgrupi P On P.Sifra_Podg = K.Sifra_Podg
Left Outer Join #NabCeni N On N.Sifra_Sur = T.Sifra_Sur
Group By T.Sifra_Sur, K.ImeArt, K.EdMera, N.PoslNabCena, K.Sifra_Podg, P.Ime_Podg
Order by T.Sifra_Sur
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_potrossurovini]'))
drop procedure [dbo].[sp_potrossurovini]
Go
CREATE PROCEDURE sp_PotrosSurovini
@Sifra_Oe_Tros smallint,
@Sifra_Dok_Tros smallint,
@Sifra_Oe_Pvo smallint,
@Sifra_Dok_Pvo smallint,
@Datum_Od smalldatetime,
@Datum_Do smalldatetime,
@Broj_DokOd int,
@Broj_DokDo int,
@PvoTros char(1), -- P - Proizvodstvo, T - Trosok, S - Zaedno(Pvo i Trosok)
@KojIzv char(1) = Null, -- E - od EvProizvod Else - Od Stavr
@Broj_Proekt int = null
AS
CREATE TABLE #Tabela1
(
RabNalID int,
Sifra_OeRab smallint,
Sifra_Dok smallint,
Broj_RabN int,
Broj_Dok int,
Datum_Dok smalldatetime,
VlIzl char(1),
Sifra_Art varchar(20),
Kolicina decimal(18,6),
DokCena decimal(18,6),
Vrednost decimal(18,6),
KontrSer varchar(25),
Tezina_Dara decimal(18,0),
Tezina_Neto decimal(18,0),
Tezina_Bruto decimal(18,0),
Sifra_OeRab_Tocen int
)
DECLARE @SSQL as varchar(8000)
If @KojIzv = 'E'
Begin
-------------------------------------------------------------------------------------------------------- T R O S O K -----------------------------------------------------------------------------------------------------
If @PvoTros <> 'P' Or @PvoTros Is Null
Begin
Set @SSQL= 'Select RN.RabNalID, RN.Sifra_OeRab, D.Sifra_Dok, RN.Broj_RabN, D.Broj_Dok, D.Datum_Dok, D.VlIzl,
E.Sifra_Art, Sum(E.Kolic), Null as DokCena, Null as Vrednost, E.KontrSer, E.Tezina_Dara, E.Tezina_Neto, E.Tezina_Bruto,
RN.SIfra_OeRab
From Dokr D
Left Outer Join DokRabNal DRN On DRN.DokrId=D.DokrId
Left Outer Join RabNal RN On RN.RabNalID = DRN.RabNalID
Left Outer Join EvProizvod E On E.DokrID=DRN.DokrID '
-- Left Outer Join StaRabNal SRN On SRN.RabNalID = RN.RabNalID
Set @SSQL = @SSQL + ' Where D.VlIzl = ''I'' '
If @Sifra_Oe_Tros is Not Null
Set @SSQL=@SSQL + ' And D.Sifra_Oe = ' + cast(@Sifra_Oe_Tros as Varchar(10)) + ' '
If @Sifra_Dok_Tros is Not Null
Set @SSQL=@SSQL + ' And D.Sifra_Dok = ' + cast(@Sifra_Dok_Tros 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)) + ''' '
If @Broj_DokOd is Not Null
Set @SSQL=@SSQL + ' And D.Broj_Dok >= ' + cast(@Broj_DokOd as Varchar(10)) + ' '
If @Broj_DokDo is Not Null
Set @SSQL=@SSQL + ' And D.Broj_Dok <= ' + cast(@Broj_DokDo as Varchar(10)) + ' '
If @Broj_Proekt is Not Null
Set @SSQL=@SSQL + ' And RN.Broj_Proekt = ' + cast(@Broj_Proekt as Varchar(6)) + ' '
Set @SSQL=@SSQL + ' Group by RN.RabNalID, RN.Sifra_OeRab, D.Sifra_Dok, RN.Broj_RabN, D.Broj_Dok, D.Datum_Dok, D.VlIzl,
-------------------------------------------------------------------------------- P R O I Z V O D S T V O -------------------------------------------------------------------------------------
If @PvoTros <> 'T' Or @PvoTros Is Null
Begin
Set @SSQL= 'Select RN.RabNalID, RN.Sifra_OeRab, D.Sifra_Dok, RN.Broj_RabN, D.Broj_Dok, D.Datum_Dok, D.VlIzl,
E.Sifra_Art, Sum(E.Kolic), Null as DokCena, Null as Vrednost, E.KontrSer, E.Tezina_Dara, E.Tezina_Neto, E.Tezina_Bruto,
RN.SIfra_OeRab
From Dokr D
Left Outer Join DokRabNal DRN On DRN.DokrId=D.DokrId
Left Outer Join RabNal RN On RN.RabNalID = DRN.RabNalID
Left Outer Join EvProizvod E On E.DokrID=DRN.DokrID '
-- Left Outer Join StaRabNal SRN On SRN.RabNalID = RN.RabNalID
Set @SSQL = @SSQL + ' Where D.VlIzl = ''V'' '
If @Sifra_Oe_Pvo is Not Null
Set @SSQL=@SSQL + ' And D.Sifra_Oe = ' + cast(@Sifra_Oe_Pvo as Varchar(10)) + ' '
If @Sifra_Dok_Pvo is Not Null
Set @SSQL=@SSQL + ' And D.Sifra_Dok = ' + cast(@Sifra_Dok_Pvo 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)) + ''' '
If @Broj_DokOd is Not Null
Set @SSQL=@SSQL + ' And D.Broj_Dok >= ' + cast(@Broj_DokOd as Varchar(10)) + ' '
If @Broj_DokDo is Not Null
Set @SSQL=@SSQL + ' And D.Broj_Dok <= ' + cast(@Broj_DokDo as Varchar(10)) + ' '
If @Broj_Proekt is Not Null
Set @SSQL=@SSQL + ' And RN.Broj_Proekt = ' + cast(@Broj_Proekt as Varchar(6)) + ' '
Set @SSQL=@SSQL + ' Group by RN.RabNalID, RN.Sifra_OeRab, D.Sifra_Dok, RN.Broj_RabN, D.Broj_Dok, D.Datum_Dok, D.VlIzl,
-------------------------------------------------------------------------------------------------------- T R O S O K -----------------------------------------------------------------------------------------------------
If @PvoTros <> 'P' Or @PvoTros Is Null
Begin
Set @SSQL= 'Select RN.RabNalID, RN.Sifra_OeRab, D.Sifra_Dok, RN.Broj_RabN, D.Broj_Dok, D.Datum_Dok, D.VlIzl,
-------------------------------------------------------------------------------- P R O I Z V O D S T V O -------------------------------------------------------------------------------------
If @PvoTros <> 'T' Or @PvoTros Is Null
Begin
Set @SSQL= 'Select RN.RabNalID, RN.Sifra_OePrim, D.Sifra_Dok, RN.Broj_RabN, D.Broj_Dok, D.Datum_Dok, D.VlIzl,
INNER JOIN AkciiPromo A ON A.Ozn_Akcija=S.Ozn_Akcija
LEFT OUTER JOIN KatArt K1 ON S.Sifra_Art_Osnoven=K1.Sifra_Art
LEFT OUTER JOIN KatArt K2 ON S.Sifra_Art_Paket=K2.Sifra_Art
Where 1=1 '
If @Ozn_Akcija Is Not Null
Set @SSQL = @SSQL + ' And A.Ozn_Akcija = ''' + @Ozn_Akcija + ''' '
If @Sifra_Art_Paket Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_Art_Paket = ''' + @Sifra_Art_Paket + ''' '
Exec (@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregl_ambalaza_kupdob]'))
drop procedure [dbo].[sp_pregl_ambalaza_kupdob]
Go
CREATE PROCEDURE sp_Pregl_Ambalaza_KupDob
@KupDob char(1) = 'K',
@Sifra_Kup char(6) = Null,
@Sifra_Amb char(6) = Null, -- Mora da se vnese ili Sifra_Amb ili Sifra_GAmb
-- @Sifra_GAmb char(6) = Null,
@Datum smalldatetime = Null,
@Amb_GAmb char(1) = 'A', -- A - Po Ambalaza G - Po Grupna Ambalaza
@Sifra_Oe smallint = Null,
@Koi_Oe varchar(10) = Null,
@TipKup varchar(500) = Null
AS
Set @Amb_GAmb = Null
Declare @SSQL as varchar(8000)
---------------------------------------------------------------------- Od Stavr prodadeni proizvodi so ambalaza -------------------------------------------------------------------
---------------------------------------------------------------------- Od Stavr prodadeni proizvodi so ambalaza -------------------------------------------------------------------
Set @SSQL = 'Select D.Sifra_Kup, D.Sifra_Obj, K.Sifra_Amb, Null,
(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),
Abs((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)),
''D''
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 '
If @TipKup Is Not Null
Set @SSQL = @SSQL + ' Left Outer Join Komint Kup On Kup.Sifra_Kup=D.Sifra_Kup '
Set @SSQL = @SSQL + ' Where 1=1 '
If @KupDob = 'K'
Set @SSQL = @SSQL + ' And D.VlIzl = ''I'' and D.Sifra_Za = ''1'''
Else If @KupDob = 'D'
Set @SSQL = @SSQL + ' And D.VlIzl = ''V'' '
If @Sifra_Amb Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_Amb = ''' + @Sifra_Amb + ''' '
If @Sifra_Kup Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Kup = ''' + @Sifra_Kup + ''' '
If @Datum Is Not Null
Set @SSQL = @SSQL + ' And D.Datum_Dok <= ''' + cast(@Datum as varchar(30)) + ''' '
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 @TipKup Is Not Null
Set @SSQL = @SSQL + 'And KUP.TipKup In (' + @TipKup + ') '
Set @SSQL = ' Select 1 as Red, T.Sifra_Kup, Kup.ImeKup, T.Sifra_Obj, KO.ImeObj, T.Sifra_Amb, A.ImeAmb, A.VoGAmb, Null as Sifra_GAmb, Null as ImeGAmb,
Round(Sum(Case When T.So_GAmb In (''D'', ''G'') Then (Case When (A.VoGAmb Is Null Or A.VoGAmb = 0) Then T.Zadolzenie Else (T.Zadolzenie/A.VoGAmb) End) Else 0 End), 4) ZadolzGAmb,
Round(Sum(Case When T.So_GAmb In (''D'', ''G'') Then (Case When (A.VoGAmb Is Null Or A.VoGAmb = 0) Then T.Razdolzenie Else (T.Razdolzenie/A.VoGAmb) End) Else 0 End), 4) RazdolzGAmb,
Round(Sum(Case When T.So_GAmb In (''D'', ''N'') Then (Zadolzenie) Else 0 End), 4) as ZadolzAmb,
Round(Sum(Case When T.So_GAmb In (''D'', ''N'') Then (Razdolzenie) Else 0 End), 4) as RazdolzAmb
From #Tab T
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
Left Outer Join KatAmb A On A.Sifra_Amb=T.Sifra_Amb
Left Outer Join KatAmb G On G.Sifra_Amb=A.Sifra_GAmb
Where T.Sifra_Amb IS Not Null And A.Povratna = ''D''
Group By T.Sifra_Kup, T.Sifra_Obj, KO.ImeObj, Kup.ImeKup, T.Sifra_Amb, A.ImeAmb, A.VoGAmb '
Exec (@SSQL)
/*
If @Amb_GAmb = 'G'
Set @SSQL = @SSQL + ' Round(Sum(Case When (A.VoGAmb Is Null Or A.VoGAmb = 0) Then T.Zadolzenie Else (T.Zadolzenie/A.VoGAmb) End), 4) Zadolzenie,
Round(Sum(Case When (A.VoGAmb Is Null Or A.VoGAmb = 0) Then T.Razdolzenie Else (T.Razdolzenie/A.VoGAmb) End), 4) Razdolzenie '
Else --If @Amb_GAmb = 'A'
Set @SSQL = @SSQL + ' Sum(Zadolzenie) as Zadolzenie, Sum(Razdolzenie) as Razdolzenie '
*/
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregl_ambalaza_oe]'))
drop procedure [dbo].[sp_pregl_ambalaza_oe]
Go
CREATE PROCEDURE sp_Pregl_Ambalaza_OE
@Sifra_Oe char(6),
@Koi_Oe Varchar(10) = Null,
@Sifra_Amb char(6),
-- @Sifra_GAmb char(6),
@Datum smalldatetime,
@Amb_GAmb char(1) = 'A', -- A - Po Ambalaza G - i so Grupna Ambalaza(25.12.10)
@VkluciAmbOdDok char(1) = 'D',
@KojIzv char(1) = 'C' -- D - Izv vo odnos na dobavuvac, K - Izv vo odnos na kupuvac, C - Celosen
---------------------------------------------------------------------- Od Stavr prodadeni proizvodi so ambalaza -------------------------------------------------------------------
-- MOMENTALNO NE GLEDAME OD STAVR (SAMO OD STAAMBAL)
-- Ovoj del od procedurata ne se koristi
If @VkluciAmbOdDok = 'D'
Begin
If @KojIzv in ('C', 'D')
Begin
Set @SSQL = 'Select D.Sifra_Oe, K.Sifra_Amb, ''D'',
(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),
Abs((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 = ''V'' And A.Povratna =''D'' '
If @Sifra_Amb Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_Amb = ''' + @Sifra_Amb + ''' '
If @Datum Is Not Null
Set @SSQL = @SSQL + ' And D.Datum_Dok <= ''' + cast(@Datum as varchar(30)) + ''' '
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 + ''') '
Insert Into #Tab Exec(@SSQL)
End
If @KojIzv in ('C', 'K')
Begin
Set @SSQL = 'Select D.Sifra_Oe, K.Sifra_Amb, ''D'',
Abs((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 (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 A.Povratna =''D'' '
If @Sifra_Amb Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_Amb = ''' + @Sifra_Amb + ''' '
If @Datum Is Not Null
Set @SSQL = @SSQL + ' And D.Datum_Dok <= ''' + cast(@Datum as varchar(30)) + ''' '
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 + ''') '
Select T.Sifra_Oe, O.ImeOrg, T.Sifra_Amb, A.ImeAmb, A.VoGAmb, Null as Sifra_GAmb, Null as ImeGAmb, Sum(Zadolzenie) as Zadolzenie, Sum(Razdolzenie) as Razdolzenie
From #Tab T
Left Outer Join Orged O On O.Sifra_Oe = T.Sifra_Oe
Left Outer Join KatAmb A On A.Sifra_Amb=T.Sifra_Amb
Left Outer Join KatAmb G On G.Sifra_Amb=A.Sifra_GAmb
Where T.Sifra_Amb IS Not Null
Group By T.Sifra_Oe, O.ImeOrg, T.Sifra_Amb, A.ImeAmb, A.VoGAmb
End
Else If @Amb_GAmb = 'G' --treba za avt.povratnica
Select T.Sifra_Oe, O.ImeOrg, T.Sifra_Amb, A.ImeAmb, A.VoGAmb, T.Sifra_GAmb, Null as ImeGAmb, Sum(Zadolzenie) as Zadolzenie, Sum(Razdolzenie) as Razdolzenie
From #Tab T
Left Outer Join Orged O On O.Sifra_Oe = T.Sifra_Oe
Left Outer Join KatAmb A On A.Sifra_Amb=T.Sifra_Amb
Left Outer Join KatAmb G On G.Sifra_Amb=A.Sifra_GAmb
Where T.Sifra_Amb IS Not Null
Group By T.Sifra_Oe, O.ImeOrg, T.Sifra_Amb, A.ImeAmb, A.VoGAmb, T.Sifra_GAmb
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregl_anfindok]'))
drop procedure [dbo].[sp_pregl_anfindok]
Go
CREATE PROCEDURE sp_Pregl_AnFinDok
@Sifra_Oe int=NULL,
@Sifra_Dok int,
@Broj_Dok int,
@P_I char (1)
AS
Select A.Sifra_oe, A.Sifra_Dok, a.Broj_dok, A.Datum_Dok as Dod_Datum, A.Kto as Kto_Anal, A.Dolzi, A.Pobaruva, A.Broj_Nal, A.Sifra_Nal,
A.Opis, A.BrojDok as Opis2, A.Sifra_Kup, KUP.ImeKup, KUP.Smesto, A.KojaVal,V.ImeVal, A.Kurs, A.Dev_Dolzi, A.Dev_Pobaruva as Dev_Pobar, A.Datum_Vnes,
' ' as Lice, null as KasaGrupa, @P_I as P_I, '' as ImeNac, '' as TipBlag, '' as Kto_Osnovica
From AnFindok A
Left Outer Join Komint KUP On A.Sifra_Kup=KUP.Sifra_Kup
Left Outer Join KrsLista V ON A.KojaVal=V.SImeVal
Where A.Sifra_Oe=@Sifra_oe and A.Sifra_Dok=@Sifra_Dok and A.Broj_Dok=@Broj_Dok
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregl_artikli]'))
FROM #TmpRuta R INNER JOIN Patnici P ON R.Sifra_Pat=P.Sifra_Pat
INNER JOIN Komint K on K.Sifra_Kup = R.Sifra_Kup
LEFT OUTER JOIN KObjekti KO on KO.Sifra_Obj = R.Sifra_Obj and KO.Sifra_Kup = R.Sifra_Kup
WHERE Cast(R.Sifra_Pat as char(3))+R.Sifra_Kup+cast(R.Sifra_Obj as char(3))+cast(R.Datum as char(11)) NOT IN
(SELECT Cast(Sifra_Pat as char(3))+Sifra_Kup+cast(Sifra_Obj as char(3))+cast(dbo.fn_VratiDatum(Datum) as char(11))FROM #TmpDetal WHERE Sifra_Obj IS NOT NULL) AND R.Sifra_Obj IS NOT NULL
If @RazlProdMest = 'D'
Begin
select distinct Sifra_Pat, ImePat, Sifra_Kup, ImeKup, Sifra_Obj, ImeObj, '' PoRuta, '' Poseten, '' SoBarKod, min(Datum) as Datum from #TmpDetal
where Poseten = 'D'
group by Sifra_Pat, ImePat, Sifra_Kup, ImeKup, Sifra_Obj, ImeObj --, PoRuta, Poseten, SoBarKod
ORDER BY Sifra_Pat
End
Else
Begin
If @Poseteni Is Not Null
Select * From #TmpDetal Where Poseten = @Poseteni ORDER BY Sifra_Pat, Datum
Else
Select * From #TmpDetal ORDER BY Sifra_Pat, Datum
End
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregl_detalruti_071210]'))
drop procedure [dbo].[sp_pregl_detalruti_071210]
Go
create Procedure sp_Pregl_DetalRuti_071210
@Sifra_pat smallint = null,
@Sifra_GrPat char(6) = null,
@DatumOd smalldatetime = null,
@DatumDo smalldatetime = null,
@Podelba1 smallint = null,
@KFPod1 char(1) = null,
@RazlProdMest char(1) = 'N',
@DenOdNedelata char(1) = Null
As
CREATE TABLE #TmpRuta
(Sifra_Pat smallint,
DatumOd smalldatetime,
DenOdNedela char(1),
Sifra_Kup char(6),
Sifra_Obj smallint,
Datum smalldatetime )
CREATE TABLE #TmpPat (Sifra_Pat smallint)
If @Sifra_Pat is not null
INSERT INTO #TmpPat VALUES (@Sifra_Pat)
Else IF @Sifra_GrPat is not null
INSERT INTO #TmpPat SELECT Sifra_Pat from Sgrpat where Sif_GrPat =@Sifra_GrPat
ELSE
INSERT INTO #TmpPat SELECT Sifra_Pat from Patnici
CREATE TABLE #TmpPR
(Sifra_Pat smallint,
Datum smalldatetime)
Declare @Datum smalldatetime
Declare @Praznik as char(1)
SET @Datum=@DatumOd
WHILE @Datum<=@DatumDo
BEGIN
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 IN (SELECT Sifra_Pat FROM #TmpPat)
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 IN (SELECT Sifra_Pat FROM #TmpPat) AND Datum_Od<=@Datum AND DenOdNedela=dbo.fn_DenOdNedela(@Datum) GROUP BY Sifra_Pat
If @DenOdNedelata Is Not null And dbo.fn_DenOdNedela(@Datum)=@DenOdNedelata
INSERT INTO #TmpRuta(Sifra_Pat, Datum, Sifra_Kup, Sifra_Obj)
SELECT R.Sifra_Pat, @Datum, R.Sifra_Kup, R.Sifra_Obj FROM RutiPlan R INNER JOIN #TmpPR T ON R.Sifra_Pat=T.Sifra_Pat AND R.Datum_Od=T.Datum
WHERE R.Sifra_Pat NOT IN (SELECT Sifra_Pat FROM RutiZaDatum WHERE Datum=@Datum)
AND dbo.fn_DenOdNedela(@Datum)=R.DenOdNedela AND R.Sifra_Pat IN (SELECT Sifra_Pat FROM #TmpPat)
Else
INSERT INTO #TmpRuta(Sifra_Pat, Datum, Sifra_Kup, Sifra_Obj)
SELECT R.Sifra_Pat, @Datum, R.Sifra_Kup, R.Sifra_Obj FROM RutiPlan R INNER JOIN #TmpPR T ON R.Sifra_Pat=T.Sifra_Pat AND R.Datum_Od=T.Datum
WHERE R.Sifra_Pat NOT IN (SELECT Sifra_Pat FROM RutiZaDatum WHERE Datum=@Datum)
AND dbo.fn_DenOdNedela(@Datum)=R.DenOdNedela AND R.Sifra_Pat IN (SELECT Sifra_Pat FROM #TmpPat)
END
SET @Datum = DateAdd(day, 1, @Datum)
END
declare @SSQL as varchar(5000)
/*set @SSQL = 'insert into #TmpRuta(Sifra_Pat, DatumOd, DenOdNedela, Sifra_Kup, Sifra_Obj)
from RutiPlan where Datum_Od <='''+cast(@DatumOd as varchar(35))+''' '
If @Sifra_Pat is not null
set @SSQL = @SSQL + ' and Sifra_Pat = '+cast (@Sifra_Pat as varchar(15))+' '
If @Sifra_GrPat is not null
set @SSQL = @SSQL + ' and Sifra_Pat in (select sifra_Pat from Sgrpat where Sif_GrPat = '+cast(@Sifra_GrPat as varchar(6))+' ) '
set @SSQL = @SSQL + ' group by Sifra_Pat, DenOdNedela, Sifra_Kup, Sifra_Obj '
exec(@SSQL)
set @SSQL = ' insert into #TmpRuta(Sifra_Pat, Datum, Sifra_Kup, Sifra_Obj)
select Sifra_Pat, Datum, Sifra_Kup, Sifra_Obj
from RutiZaDatum
where Datum >= '''+cast(@DatumOd as varchar(35))+''' and Datum <= '''+cast(@DatumDo as varchar(35))+''' '
If @Sifra_Pat is not null
set @SSQL = @SSQL + ' and Sifra_Pat = '+cast(@Sifra_Pat as varchar(15))+' '
If @Sifra_GrPat is not null
set @SSQL = @SSQL + ' and Sifra_Pat in (select sifra_Pat from Sgrpat where Sif_GrPat = '+cast(@Sifra_GrPat as varchar(6))+' ) '
-- print(@SSQL)
exec(@SSQL)*/
create table #TmpDetal
(
Sifra_Pat smallint,
ImePat varchar(30),
Sifra_Kup char(6),
ImeKup varchar(40),
Sifra_Obj smallint,
ImeObj varchar(40),
PoRuta char(1),
Poseten char(1),
SoBarkod char(1),
Datum smalldatetime
)
set @SSQL = 'insert into #TmpDetal (Sifra_Pat, ImePat, Sifra_Kup, ImeKup, Sifra_Obj, ImeObj, Datum, Poseten, SoBarkod)
select A.sifra_Oe, P.ImePat, A.Sifra_Kup, K.ImeKup, case when A.Sifra_Obj <> 0 then A.Sifra_Obj end, KO.ImeObj, A.DatumVreme,''D'', A.SoBarKod
from Akcija A
inner join Patnici P on A.Sifra_oe=P.Sifra_Pat
inner join Komint K on K.Sifra_Kup = A.Sifra_Kup
left outer join KObjekti KO on KO.Sifra_Obj = A.Sifra_Obj and KO.Sifra_Kup = A.Sifra_Kup
where dbo.fn_VratiDatum(DatumVreme) >= '''+cast(@DatumOd as varchar(35))+''' and dbo.fn_VratiDatum(DatumVreme) <= '''+cast(@DatumDo as varchar(35))+''' '
If @Sifra_Pat is not null
set @SSQL = @SSQL + ' and P.Sifra_Pat = '+cast(@Sifra_Pat as varchar(15))+' '
If @Sifra_GrPat is not null
set @SSQL = @SSQL + ' and P.Sifra_Pat in (select sifra_Pat from Sgrpat where Sif_GrPat = '''+cast(@Sifra_GrPat as varchar(6))+''' ) '
If @Podelba1 Is Not NULL
If @KFPod1 = 'D'
Set @SSQL = @SSQL + 'And (K.KDrugo1<>' + Cast(@Podelba1 As Varchar(10)) + ' Or K.KDrugo1 Is Null) '
Else
Set @SSQL = @SSQL + 'And K.KDrugo1=' + Cast(@Podelba1 As Varchar(10)) + ' '
If @DenOdNedelata Is Not Null
Set @SSQL = @SSQL + ' And dbo.fn_DenOdNedela(A.Datum_Vreme)= ' + Cast(@DenOdNedelata as varchar(6)) + ' '
set @SSQL = @SSQL + ' order by A.DatumVreme, A.Sifra_Kup, A.Sifra_Obj '
print(@SSQL)
exec(@SSQL)
--sega da gi izbriseme duplite vneseni vo rok od nekolku minuti
FROM #TmpRuta R INNER JOIN Patnici P ON R.Sifra_Pat=P.Sifra_Pat
INNER JOIN Komint K on K.Sifra_Kup = R.Sifra_Kup
LEFT OUTER JOIN KObjekti KO on KO.Sifra_Obj = R.Sifra_Obj and KO.Sifra_Kup = R.Sifra_Kup
WHERE Cast(R.Sifra_Pat as char(3))+R.Sifra_Kup+cast(R.Sifra_Obj as char(3))+cast(R.Datum as char(11)) NOT IN
(SELECT Cast(Sifra_Pat as char(3))+Sifra_Kup+cast(Sifra_Obj as char(3))+cast(dbo.fn_VratiDatum(Datum) as char(11))FROM #TmpDetal WHERE Sifra_Obj IS NOT NULL) AND R.Sifra_Obj IS NOT NULL
If @RazlProdMest = 'D'
select distinct Sifra_Pat, ImePat, Sifra_Kup, ImeKup, Sifra_Obj, ImeObj, '' PoRuta, '' Poseten, '' SoBarKod, min(Datum) as Datum from #TmpDetal
group by Sifra_Pat, ImePat, Sifra_Kup, ImeKup, Sifra_Obj, ImeObj --, PoRuta, Poseten, SoBarKod
ORDER BY Sifra_Pat
else
select * from #TmpDetal ORDER BY Sifra_Pat, Datum
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregl_distlog]'))
drop procedure [dbo].[sp_pregl_distlog]
Go
CREATE PROCEDURE sp_Pregl_DistLog
@ImeLog varchar(20) = NULL,
@Datum_Od Smalldatetime = NULL,
@Datum_Do Smalldatetime = NULL
AS
Declare @SSQL Varchar(4000)
Set @SSQL = 'SELECT DISTINCT ImeLog, Koga FROM OpstLog WHERE 1=1 '
Set @SSQL = @SSQL + ' D.Toc200 IznosDok, Sum(S.Kolic*A.BTezina) as Tezina, SUM(Case When (A.ImaKomerc IS NULL OR A.ImaKomerc=0) Then 0 Else S.Kolic * A.Volumen/A.ImaKomerc End) Volumen, Count(S.DokID) Stavki '
Set @SSQL = @SSQL + ' From Dokr D Inner Join Stavr S On S.DokrID=D.DokrID
Inner Join Katart A On A.Sifra_Art = S.Sifra_Art '
Set @SSQL = @SSQL + ' Left Outer Join Komint K ON D.Sifra_Kup=K.Sifra_Kup
Left Outer Join KObjekti OB ON D.Sifra_Kup=OB.Sifra_Kup And D.Sifra_Obj=OB.Sifra_Obj
Left Outer Join Grad G On G.Sifra_Grad = (Case When OB.Sifra_Grad Is Not Null Then OB.Sifra_Grad Else K.Sifra_Grad End)
Left Outer Join KDrugo1 K1 On K1.Sifra_1K = (Case When OB.KDrugo1 Is Not Null Then OB.KDrugo1 Else K.KDrugo1 End)
Left Outer Join Prevoznik P On P.Sifra_Prev = D.Sifra_Prev
Left Outer Join Patnici Pat On Pat.Sifra_Pat = D.Sifra_Pat '
Set @SSQL = @SSQL + ' Where D.VlIzl=''I'' '
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=''' + Cast(@KoiOE As Varchar(6)) + ''') '
IF @SifGrDok IS NOT NULL
Set @SSQL = @SSQL + ' And D.Sifra_Dok In (Select Sifra_Dok From SGrDok Where Sif_GrDok=''' + @SifGrDok + ''') '
Else If @Sifra_Dok Is Not Null And @Sifra_Dok2 Is Not Null And @Sifra_Dok3 Is Not Null And @Sifra_Dok4 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)) + ' Or D.Sifra_Dok = ' + Cast(@Sifra_Dok4 as varchar(6)) + ') '
Else 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)) + ' '
If @Broj_Dok_Od Is Not Null
Set @SSQL = @SSQL + ' And D.Broj_Dok >= ' + Cast(@Broj_Dok_Od as varchar(10)) + ' '
If @Broj_Dok_Do Is Not Null
Set @SSQL = @SSQL + ' And D.Broj_Dok <= ' + Cast(@Broj_Dok_Do as varchar(10)) + ' '
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_Prev Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Prev = ''' + @Sifra_Prev + ''' '
If @BezPrevoznik = 'D'
Set @SSQL = @SSQL + ' And D.Sifra_Prev Is Null '
Else If @BezPrevoznik = 'N'
Set @SSQL = @SSQL + ' And D.Sifra_Prev Is Not Null '
IF @Sifra_Pat IS NOT NULL
Set @SSQL = @SSQL + ' And D.Sifra_Pat = '+cast(@Sifra_Pat as varchar(5)) +' '
IF @NePecFisc IS NOT NULL AND @NePecFisc='D' --dod.samo za pec.na fisc+Promena na kasa
Set @SSQL = @SSQL + ' And (D.Pec_Fisc IS NULL OR D.Pec_Fisc=0) AND D.Broj_Nal IS NULL '
IF @BezKasiP='D' --dod.14.11.06
SET @SSQL = @SSQL + ' AND D.DokrID NOT IN (SELECT DokrID FROM KasStav WHERE DokrID IS NOT NULL) '
IF @BezStornirani = 'D'
SET @SSQL = @SSQL + ' AND D.DokrID NOT IN (SELECT Dokr_ID_Orig FROM DokrStorno)
AND D.DokrID NOT IN (SELECT Dokr_ID_Storno FROM DokrStorno)'
If @KDrugo1 Is Not Null
Set @SSQL = @SSQL + ' And K1.Sifra_1K = ' + Cast(@KDrugo1 as varchar(6)) + ' '
Set @SSQL = @SSQL + ' Group By D.Datum_Dok, D.Sifra_OE, D.Sifra_Dok, D.Broj_Dok, D.DokrID, D.Datum_Vnes,
D.Sifra_Kup, D.Opis, K.ImeKup, K.Adresa, D.Sifra_Obj, OB.ImeObj, D.Toc200, (Case When OB.Sifra_Grad Is Not Null Then OB.Sifra_Grad Else K.Sifra_Grad End),
Set @SSQL = @SSQL + ' Order By D.Sifra_Oe, D.Sifra_Dok, D.Broj_Dok '
ELSE If @Podred='P'
Set @SSQL = @SSQL + ' Order By D.Sifra_Pat, D.Sifra_Oe, D.Sifra_Dok, D.Broj_Dok '
ELSE If @Podred='K'
Set @SSQL = @SSQL + ' Order By Case When D.Sifra_Obj Is not null or D.Sifra_Obj>0 Then OB.ImeObj else K.ImeKup end, D.Sifra_Oe, D.Sifra_Dok, D.Broj_Dok '
ELSE
Set @SSQL = @SSQL + ' Order By G.ImeGrad, K.ImeKup, D.Broj_Dok '
print @SSQL
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregl_dokr_prev_narac]'))
Left Outer Join Komint K ON D.Sifra_Kup=K.Sifra_Kup
Left Outer Join KObjekti OB ON D.Sifra_Kup=OB.Sifra_Kup And D.Sifra_Obj=OB.Sifra_Obj
Left Outer Join Grad G On G.Sifra_Grad = (Case When OB.Sifra_Grad Is Not Null Then OB.Sifra_Grad Else K.Sifra_Grad End)
Left Outer Join KDrugo1 K1 On K1.Sifra_1K = (Case When OB.KDrugo1 Is Not Null Then OB.KDrugo1 Else K.KDrugo1 End)
Left Outer Join Prevoznik P On P.Sifra_Prev = D.Sifra_Prev
Left Outer Join Patnici Pat On Pat.Sifra_Pat = D.Sifra_Pat
left outer Join TipNarac N on N.Sifra_Nar=D.Sifra_Nar
LEFT OUTER JOIN TipDok TD ON N.OdiVo_Sifra_Dok=TD.Sifra_Dok
Left Outer Join GRegion Reg on Reg.Sifra_Reg=(Case When OB.Sifra_Reg Is Not Null Then OB.Sifra_Reg Else K.Sifra_Reg End)
Left Outer Join Grad GR on GR.Sifra_Grad=(Case When OB.Sifra_Grad Is Not Null Then OB.Sifra_Grad Else K.Sifra_Grad End)
Left Outer Join #TmpNar TMP ON D.NarID = TMP.NarID
Left Outer Join Operatori Oper
on Oper.Sifra_Oper = D.Sifra_Oper_Oper '
if @KojDatum = 'P' or @KojDatum = 'I' or @SamoNeRealizirani ='D'
set @SSQL = @SSQL + ' Left Outer Join NarRealDok NRD
on NRD.NarId = D.NarId
Left Outer Join Dokr DD
on DD.DokrId = NRD.DokrId '
set @SSQL = @SSQL + ' Where N.VlIzl=''I'' And (TMP.Aktiven IS NULL OR TMP.Aktiven<>''N'') '
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=''' + Cast(@KoiOE As Varchar(6)) + ''') '
If @SifGrDok Is not NUll
Set @SSQL = @SSQL + ' And (D.Sifra_Nar In (Select Sifra_Nar From SGrDok Where Sif_GrDok ='''+ @SifGrDok +''') ) '
Else If @Sifra_Dok Is Not Null And @Sifra_Dok2 Is Not Null And @Sifra_Dok3 Is Not Null And @Sifra_Dok4 Is Not Null
Set @SSQL = @SSQL + ' And (D.Sifra_Nar = ' + Cast(@Sifra_Dok as varchar(6)) + ' Or D.Sifra_NAr = ' + Cast(@Sifra_Dok2 as varchar(6)) + ' Or D.Sifra_NAr = ' + Cast(@Sifra_Dok3 as varchar(6)) + ' Or D.Sifra_NAr = ' + Cast(@Sifra_Dok4 as varchar(6)) + ') '
Else If @Sifra_Dok Is Not Null And @Sifra_Dok2 Is Not Null And @Sifra_Dok3 Is Not Null
Set @SSQL = @SSQL + ' And (D.Sifra_Nar = ' + Cast(@Sifra_Dok as varchar(6)) + ' Or D.Sifra_NAr = ' + Cast(@Sifra_Dok2 as varchar(6)) + ' Or D.Sifra_Nar = ' + 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_Nar = ' + Cast(@Sifra_Dok as varchar(6)) + ' Or D.Sifra_Nar = ' + Cast(@Sifra_Dok2 as varchar(6)) + ') '
Else If @Sifra_Dok Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Nar = ' + Cast(@Sifra_Dok as varchar(6)) + ' '
If @Broj_Dok_Od Is Not Null
Set @SSQL = @SSQL + ' And D.Broj_Nar >= ' + Cast(@Broj_Dok_Od as varchar(10)) + ' '
If @Broj_Dok_Do Is Not Null
Set @SSQL = @SSQL + ' And D.Broj_Nar <= ' + Cast(@Broj_Dok_Do as varchar(10)) + ' '
IF @Sifra_Oper_Oper is not null
Set @SSQL = @SSQL + ' And Oper.Sifra_Oper = ' + Cast(@Sifra_Oper_Oper as varchar(10)) + ' '
If @KojDatum = 'D'
BEGIN
If @Datum_Od Is Not Null
Set @SSQL = @SSQL + ' And Dateadd(day, D.Rok, D.Datum_Nar) >= ''' + Cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQL = @SSQL + ' And Dateadd(day, D.Rok, D.Datum_Nar) <= ''' + Cast(@Datum_Do as varchar(30)) + ''' '
END
ELSE If @KojDatum = 'I'
BEGIN
If @Datum_Od Is Not Null
Set @SSQL = @SSQL + ' And D.Dat_Isporaka >= ''' + Cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQL = @SSQL + ' And D.Dat_Isporaka <= ''' + Cast(@Datum_Do as varchar(30)) + ''' '
--if @ZaProverka = 'D'
-- Set @SSQL = @SSQL + ' And (D.Stat_Dok_Nar <> ''P'' or D.Stat_Dok_Nar is null) '
--else if @ZaProverka = 'P'
-- Set @SSQL = @SSQL + ' And D.Stat_Dok_Nar = ''P'' '
END
ELSE If @KojDatum = 'P'
BEGIN
If @Datum_Od Is Not Null
Set @SSQL = @SSQL + ' And D.Datum_Nar >= ''' + Cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQL = @SSQL + ' And D.Datum_Nar <= ''' + Cast(@Datum_Do as varchar(30)) + ''' '
if @ZaProverka = 'D'
Set @SSQL = @SSQL + ' And (D.Stat_Dok_Nar <> ''P'' or D.Stat_Dok_Nar is null) '
else if @ZaProverka = 'P'
Set @SSQL = @SSQL + ' And D.Stat_Dok_Nar = ''P'' '
END
ELSE
BEGIN
If @Datum_Od Is Not Null
Set @SSQL = @SSQL + ' And D.Datum_Nar >= ''' + Cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQL = @SSQL + ' And D.Datum_Nar <= ''' + Cast(@Datum_Do as varchar(30)) + ''' '
if @ZaProverka = 'P'
Set @SSQL = @SSQL + ' And D.Stat_Dok_Nar = ''P'' '
END
If @Sifra_Prev Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Prev = ''' + @Sifra_Prev + ''' '
If @BezPrevoznik = 'D'
Set @SSQL = @SSQL + ' And D.Sifra_Prev Is Null '
Else If @BezPrevoznik = 'N'
Set @SSQL = @SSQL + ' And D.Sifra_Prev Is Not Null '
IF @Sifra_Pat IS NOT NULL
Set @SSQL = @SSQL + ' And D.Sifra_Pat = '+cast(@Sifra_Pat as varchar(5)) +' '
IF @NePecFisc IS NOT NULL AND @NePecFisc='D' --dod.samo za pec.na fisc+Promena na kasa
Set @SSQL = @SSQL + ' And (D.Pec_Fisc IS NULL OR D.Pec_Fisc=0) AND D.Broj_Nal IS NULL '
IF @BezKasiP='D' --dod.14.11.06
SET @SSQL = @SSQL + ' AND D.DokrID NOT IN (SELECT DokrID FROM KasStav WHERE DokrID IS NOT NULL) '
IF @BezStornirani = 'D'
SET @SSQL = @SSQL + ' AND D.DokrID NOT IN (SELECT Dokr_ID_Orig FROM DokrStorno)
AND D.DokrID NOT IN (SELECT Dokr_ID_Storno FROM DokrStorno)'
If @KDrugo1 Is Not Null
Set @SSQL = @SSQL + ' And K1.Sifra_1K = ' + Cast(@KDrugo1 as varchar(6)) + ' '
IF @Sifra_Reg IS NOT NULL
Set @SSQL = @SSQL + ' And Reg.Sifra_Reg = '+cast(@Sifra_Reg as varchar(5)) +' '
IF @Sifra_Grad IS NOT NULL
Set @SSQL = @SSQL + ' And GR.Sifra_Grad = '+cast(@Sifra_Grad as varchar(5)) +' '
IF @SifGrOrgIsporaka IS NOT NULL
Set @SSQL = @SSQL + ' And D.Sifra_Za_Org In (Select Sifra_OE From SGrOrg Where Sif_GrOrg=''' + @SifGrOrgIsporaka +''') '
IF @SamoNeRealizirani ='D'
Set @SSQL = @SSQL + ' And (NRD.Realiziran is null OR NRD.Realiziran <>''D'') '
Set @SSQL = @SSQL + ' Group by D.Datum_Nar, D.Sifra_OE, D.Sifra_Nar, D.Broj_Nar, D.DokrID, D.Datum_Vnes,
D.Sifra_Kup,'+ @SQLOPISGR +' K.ImeKup, K.Adresa, D.Sifra_Obj, OB.ImeObj, D.Toc200, (Case When OB.Sifra_Grad Is Not Null Then OB.Sifra_Grad Else K.Sifra_Grad End),
Set @SSQLUsl = @SSQLUsl + 'And (Kup.Aktiven = ''N'') '
Else If @Aktiven = 'D'
Set @SSQLUsl = @SSQLUsl + 'And (Kup.Aktiven <> ''N'' or Kup.Aktiven Is Null) '
IF @DatumIzm_Od IS NOT NULL
Set @SSQLUsl = @SSQLUsl + ' AND (Kup.DodadenNa>=''' +cast(@DatumIzm_Od as varchar(35))+''' OR Kup.IzmenetNa>=''' +cast(@DatumIzm_Od as varchar(35))+ ''' )'
IF @DatumIzm_Do IS NOT NULL
Set @SSQLUsl = @SSQLUsl + ' AND (Kup.DodadenNa<=''' +cast(@DatumIzm_Do as varchar(35))+''' OR Kup.IzmenetNa<=''' +cast(@DatumIzm_Do as varchar(35))+ ''' )'
If @Podred Is Null Or @Podred='S'
Set @SSQLUsl = @SSQLUsl + 'Order By Kup.Sifra_Kup '
Else If @Podred='I'
Set @SSQLUsl = @SSQLUsl + 'Order By Kup.ImeKup '
Else If @Podred='G'
Set @SSQLUsl = @SSQLUsl + 'Order By Kup.Sifra_Grad '
Exec(@SSQL+@SSQLUsl)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregl_layout_podob]'))
drop procedure [dbo].[sp_pregl_layout_podob]
Go
CREATE PROCEDURE [dbo].[sp_Pregl_LayOut_PoDob]
@Kto char(6) = Null
AS
Declare @SSQL as varchar(8000)
Set @SSQL = ' Select K.Kto, Kup.ImeKup, K.Sifra_LayOutUnit, L.Ime_LayOutUnit
From Katart K
Left Outer Join Komint Kup On Kup.Sifra_Kup = K.Kto
Left Outer Join LayOutUnit L On L.Sifra_LayOutUnit=K.Sifra_LayOutUnit
Where 1=1 '
If @Kto Is Not Null
Set @SSQL = @SSQL + ' And K.Kto = ''' + @Kto + ''' '
Set @SSQL = @SSQL + ' Group By K.Kto, Kup.ImeKup, K.Sifra_LayOutUnit, L.Ime_LayOutUnit '
Print(@SSQL)
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregl_log]'))
drop procedure [dbo].[sp_pregl_log]
Go
CREATE PROCEDURE sp_Pregl_Log
@ImeLog varchar(20),
@Koga datetime,
@DoKoga datetime = NULL
AS
Declare @DoKoga1 datetime
IF @DoKoga IS NULL
Set @DoKoga1 = DateADD(second, 1, @Koga)
Else
Set @DoKoga1 = @DoKoga
SELECT *
FROM OpstLog
WHERE ImeLog = @ImeLog AND Koga >= @Koga AND Koga <= @DoKoga1
ORDER BY Koga, LogID
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregl_log_detal]'))
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 (P.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_Tar Is Not Null
Set @SSQL=@SSQL+'AND (K.Sifra_Tar='''+@Sifra_Tar+''') '
CREATE TABLE #PrometArt
( Sifra_Art varchar(20),
ImeArt varchar(40),
EdMera varchar(5),
Cena Decimal(18,4),
ProdCena Decimal(18,4),
Nabavna Decimal(18,4)
)
INSERT INTO #PrometArt (Sifra_Art, ImeArt, EdMera, Nabavna) EXEC(@SSQL)
CREATE TABLE #CeniArtN
( Sifra_Art varchar(20),
Datum smalldatetime,
DokID int )
CREATE TABLE #CeniDat
( Sifra_Art varchar(12),
Datum smalldatetime )
Set @SSQL = 'SELECT S.Sifra_art, max(S.Datum_Dok) Datum FROM Stavr S
INNER JOIN #PrometArt P ON P.Sifra_Art = S.Sifra_Art '
If @IskluciKup Is NOT NULL
Set @SSQL = @SSQL + ' INNER JOIN Dokr D ON S.DokrID = D.DokrID '
Set @SSQL = @SSQL + ' WHERE S.Datum_Dok <=''' + Cast(@Datum_Do As Varchar(35)) +
''' AND S.Kolic > 0 AND S.VlIZl = ''V'' AND (S.ImaDodatna Is NULL OR S.ImaDodatna ='' '')
AND S.Sifra_Dok = '+Cast(@TipDokPriem as varchar(3)) + ' And S.Sifra_Oe In (Select Sifra_Oe From SGrOrg Where Sif_GrOrg = ''' + @GrOrgEdZaNabCeni + ''') ' -- -- + Cast(@OrgEdZaNabCeni as varchar(4)) +
If @IskluciKup Is NOT NULL
Set @SSQL = @SSQL + ' AND D.Sifra_Kup NOT IN (' + @IskluciKup + ') '
Set @SSQL = @SSQL + ' GROUP BY S.Sifra_Art '
INSERT INTO #CeniDat EXEC (@SSQL)
Set @SSQL = 'SELECT S.Sifra_art, S.Datum_Dok, max(S.DokID) DokID FROM Stavr S
INNER JOIN #CeniDat C ON S.Sifra_Art = C.Sifra_Art AND S.Datum_Dok = C.Datum '
If @IskluciKup Is NOT NULL
Set @SSQL = @SSQL + ' INNER JOIN Dokr D ON S.DokrID = D.DokrID '
Set @SSQL = @SSQL + ' WHERE S.Kolic > 0 AND S.VlIZl = ''V'' AND (S.ImaDodatna Is NULL OR S.ImaDodatna ='' '')
AND S.Sifra_Dok = '+Cast(@TipDokPriem as varchar(3)) + ' And S.Sifra_Oe In (Select Sifra_Oe From SGrOrg Where Sif_GrOrg = ''' + @GrOrgEdZaNabCeni + ''') '
If @IskluciKup Is NOT NULL
Set @SSQL = @SSQL + ' AND D.Sifra_Kup NOT IN (' + @IskluciKup + ') '
Set @SSQL = @SSQL + ' GROUP BY S.Sifra_Art, S.Datum_Dok '
INSERT INTO #CeniArtN EXEC (@SSQL)
UPDATE #PrometArt
SET Cena = dbo.fn_VratiVredIzl(1, S.DokCena, S.DanDokCena, S.POsnPren, S.Uces, D.Kasa, 'D')
FROM #CeniArtN C, Stavr S, Dokr D
WHERE #PrometArt.Sifra_Art = C.Sifra_Art AND S.DokID = C.DokID AND S.DokrId = D.DokrID
UPDATE #PrometArt
SET Cena = S.Cena
FROM StariNabavniC S
WHERE #PrometArt.Sifra_Art = S.Sifra_Art AND (#PrometArt.Cena = 0 or #PrometArt.Cena IS NULL)
UPDATE #PrometArt
SET ProdCena = S.Cena
FROM SoArt S
WHERE #PrometArt.Sifra_Art = S.Sifra_Art AND S.Sifra_OE In (Select Sifra_Oe From SGrOrg Where Sif_GrOrg = @GrOrgEdZaNabCeni) -- ovde moze da ima poveke ceni vo soart
-- po pravilo ako odat na vnesuvanje na ceni
-- za grupi org.ed. treba da se isti.
Set @SSQL = 'SELECT * FROM #PrometArt WHERE CENA > 0 '
If @Tip_Podr='S'
Set @SSQL=@SSQL+'ORDER BY Sifra_Art'
Else If @Tip_Podr='A'
Set @SSQL=@SSQL+'ORDER BY ImeArt'
EXEC(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregl_nalog_datum]'))
Null as Sifra_Kup, Null as Sifra_Dok, Null as Broj_Dok, Null as BrojDok, Null as FOpis, Null as FDatum, Null as Rok, GD.Sifra_TrosM, GD.Sifra_TrosV
FROM GStav S
INNER JOIN GstAnDiv GD On GD.GstID=S.GstID
Left Outer Join AnFinDok A On A.AnID=GD.AnID
LEFT OUTER JOIN Dokr D ON D.DokrID = GD.DokrID
WHERE S.Sifra_Nal = ' + cast(@Sifra_Nal as varchar(4)) +
' AND S.Broj_Nal = ' + cast(@Broj_Nal as varchar(10)) + '
AND A.AnID In (Select AnID From GstAnDiv Group By AnID Having Count(*)<=1) '
IF @Sifra_OE IS NOT NULL
SET @SSQL = @SSQL + ' AND S.Sifra_OE = ' + cast(@Sifra_OE as varchar(4))
PRINT @ssql
Insert Into #TmpNal EXEC(@SSQL)
SET @SSQL = 'SELECT S.GstID, GD.AnID, D.DokrID, S.Kto_Anal,
(Case When GD.Dolzi <> 0 Then GD.Dolzi Else 0 End) Dolzi,
(Case When GD.Pobaruva <> 0 Then GD.Pobaruva Else 0 End) Pobaruva,
(Case When GD.Dolzi <> 0 And (S.Kurs <> 0 Or A.Kurs <>0 ) Then (Case When A.Kurs <> 0 Then GD.Dolzi/A.Kurs Else GD.Dolzi/S.Kurs End) Else 0 End) Dev_Dolzi,
(Case When GD.Pobaruva <> 0 And (S.Kurs <> 0 Or A.Kurs <>0 ) Then (Case When A.Kurs <> 0 Then GD.Pobaruva/A.Kurs Else GD.Pobaruva/S.Kurs End) Else 0 End) Dev_Pobaruva,
Null as Sifra_Kup, Null as Sifra_Dok, Null as Broj_Dok, Null as BrojDok, Null as FOpis, Null as FDatum, Null as Rok, GD.Sifra_TrosM, GD.Sifra_TrosV
FROM GStav S
INNER JOIN GstAnDiv GD On GD.GstID=S.GstID
Inner Join AnFinDok A On A.AnID=GD.AnID
LEFT OUTER JOIN Dokr D ON D.DokrID = GD.DokrID
WHERE S.Sifra_Nal = ' + cast(@Sifra_Nal as varchar(4)) +
' AND S.Broj_Nal = ' + cast(@Broj_Nal as varchar(10)) + '
AND A.AnID Not In (Select AnID From GstAnDiv Group By AnID Having Count(*)<=1) '
IF @Sifra_OE IS NOT NULL
SET @SSQL = @SSQL + ' AND S.Sifra_OE = ' + cast(@Sifra_OE as varchar(4))
PRINT @ssql
Insert Into #TmpNal EXEC(@SSQL)
-- 11.02.2010 bese Left Outer Join AnFinDok - se dupliraa stavkite so slednoto query
---------------- Dod 06.05.2008 GK - Dokolku kontoto e po divizii a ne se vodat subanalitiki (go nema vo AnFinDok)
SET @SSQL = 'SELECT S.GstID, GD.AnID, D.DokrID, S.Kto_Anal,
(Case When GD.Dolzi <> 0 Then GD.Dolzi Else 0 End) Dolzi,
(Case When GD.Pobaruva <> 0 Then GD.Pobaruva Else 0 End) Pobaruva,
(Case When GD.Dolzi <> 0 And (S.Kurs <> 0 Or A.Kurs <>0 ) Then (Case When A.Kurs <> 0 Then GD.Dolzi/A.Kurs Else GD.Dolzi/S.Kurs End) Else 0 End) Dev_Dolzi,
(Case When GD.Pobaruva <> 0 And (S.Kurs <> 0 Or A.Kurs <>0 ) Then (Case When A.Kurs <> 0 Then GD.Pobaruva/A.Kurs Else GD.Pobaruva/S.Kurs End) Else 0 End) Dev_Pobaruva,
Set @SSQL = @SSQL + ' Null as Sifra_Oe, Null as Sifra_Nar, Null as Broj_Nar, Null as Datum_Nar, Null as Sifra_Kup, Null as ImeKup, Null as Sifra_Pat, Null as ImePat '
Set @SSQL = @SSQL + ' FROM Naracki Nar
Inner Join StaNarac SN On Nar.NarID=SN.NarID
Inner Join Katart K On K.Sifra_Art = SN.Sifra_Art'
If @ZbirnoPoArt <> 'D'
Set @SSQL = @SSQL + ' Left Outer Join Komint Kup On Kup.Sifra_Kup=Nar.Sifra_Kup
Left Outer Join Patnici Pat On Pat.Sifra_Pat=Nar.Sifra_Pat '
Set @SSQL=@SSQL + ' Where SN.Kolic_BO <> 0 '
If @Sifra_Nar Is NOT NULL
SET @SSQL = @SSQL + 'AND Nar.Sifra_Nar=''' + Cast(@Sifra_Nar As Varchar(10)) + ''' '
If @Sifra_OE Is NOT Null
SET @SSQL = @SSQL + 'AND Nar.Sifra_OE=' + Cast(@Sifra_OE As Varchar(6)) + ' '
If @Datum_Nar_Od Is NOT Null
SET @SSQL = @SSQL + 'AND Nar.Datum_Nar>=''' + Cast(@Datum_Nar_Od As Varchar(35)) + ''' '
If @Datum_Nar_Do Is NOT Null
SET @SSQL = @SSQL + 'AND Nar.Datum_Nar<=''' + Cast(@Datum_Nar_Do As Varchar(35)) + ''' '
Set @SSQL = @SSQL + ' Group By SN.Sifra_Art, K.ImeArt, K.EdMera '
Set @SSQL = @SSQL + 'And KO.Sifra_Obj = ' + Cast(@Sifra_Obj As Varchar(10)) + ' '
print @SSQL
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregl_onebalance]'))
drop procedure [dbo].[sp_pregl_onebalance]
Go
CREATE PROCEDURE sp_Pregl_OneBalance
@Datum_Od smalldatetime = null,
@Datum_Do smalldatetime = null,
@Tip 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 L.Vreme >= ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And L.Vreme <= ''' + cast(@Datum_Do as varchar(30)) + ''' '
If @tip Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And L.TipIznos = ' + Cast(@Tip as varchar(6)) + ' '
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregl_periodruti]'))
drop procedure [dbo].[sp_pregl_periodruti]
Go
CREATE Procedure sp_Pregl_PeriodRuti
@Sifra_pat smallint = null,
@Sifra_GrPat char(6) = null,
@DatumOd smalldatetime = null,
@DatumDo smalldatetime = null,
@Podelba1 smallint = null,
@KFPod1 char(1) = null
As
create table #Tmp
(Sifra_Pat smallint,
sto varchar(30),
Kolku integer
)
CREATE TABLE #TmpRuta
(Sifra_Pat smallint,
DatumOd smalldatetime,
DenOdNedela char(1),
Sifra_Kup char(6),
Sifra_Obj smallint,
Datum smalldatetime )
CREATE TABLE #TmpPat (Sifra_Pat smallint)
If @Sifra_Pat is not null
INSERT INTO #TmpPat VALUES (@Sifra_Pat)
Else IF @Sifra_GrPat is not null
INSERT INTO #TmpPat SELECT Sifra_Pat from Sgrpat where Sif_GrPat =@Sifra_GrPat
ELSE
INSERT INTO #TmpPat SELECT Sifra_Pat from Patnici
CREATE TABLE #TmpPR
(Sifra_Pat smallint,
Datum smalldatetime)
Declare @Datum smalldatetime
Declare @Praznik as char(1)
SET @Datum=@DatumOd
WHILE @Datum<=@DatumDo
BEGIN
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 IN (SELECT Sifra_Pat FROM #TmpPat)
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 IN (SELECT Sifra_Pat FROM #TmpPat) AND Datum_Od<=@Datum AND DenOdNedela=dbo.fn_DenOdNedela(@Datum) GROUP BY Sifra_Pat
INSERT INTO #TmpRuta(Sifra_Pat, Datum, Sifra_Kup, Sifra_Obj)
SELECT R.Sifra_Pat, @Datum, R.Sifra_Kup, R.Sifra_Obj FROM RutiPlan R INNER JOIN #TmpPR T ON R.Sifra_Pat=T.Sifra_Pat AND R.Datum_Od=T.Datum
WHERE R.Sifra_Pat NOT IN (SELECT Sifra_Pat FROM RutiZaDatum WHERE Datum=@Datum)
AND dbo.fn_DenOdNedela(@Datum)=R.DenOdNedela AND R.Sifra_Pat IN (SELECT Sifra_Pat FROM #TmpPat)
END
SET @Datum = DateAdd(day, 1, @Datum)
END
declare @SSQL as varchar(5000)
create table #TmpDetal
(
Sifra_Pat smallint,
ImePat varchar(30),
Sifra_Kup char(6),
ImeKup varchar(40),
Sifra_Obj smallint,
ImeObj varchar(40),
PoRuta char(1),
Poseten char(1),
SoBarkod char(1),
Datum smalldatetime
)
set @SSQL = 'insert into #TmpDetal (Sifra_Pat, ImePat, Sifra_Kup, ImeKup, Sifra_Obj, ImeObj, Datum, Poseten, SoBarkod)
select A.sifra_Oe, P.ImePat, A.Sifra_Kup, K.ImeKup, case when A.Sifra_Obj <> 0 then A.Sifra_Obj end, KO.ImeObj, A.DatumVreme,''D'', A.SoBarKod
from Akcija A
inner join Patnici P on A.Sifra_oe=P.Sifra_Pat
inner join Komint K on K.Sifra_Kup = A.Sifra_Kup
left outer join KObjekti KO on KO.Sifra_Obj = A.Sifra_Obj and KO.Sifra_Kup = A.Sifra_Kup
where dbo.fn_VratiDatum(DatumVreme) >= '''+cast(@DatumOd as varchar(35))+''' and dbo.fn_VratiDatum(DatumVreme) <= '''+cast(@DatumDo as varchar(35))+''' '
If @Sifra_Pat is not null
set @SSQL = @SSQL + ' and P.Sifra_Pat = '+cast(@Sifra_Pat as varchar(15))+' '
If @Sifra_GrPat is not null
set @SSQL = @SSQL + ' and P.Sifra_Pat in (select sifra_Pat from Sgrpat where Sif_GrPat = '''+cast(@Sifra_GrPat as varchar(6))+''' ) '
If @Podelba1 Is Not NULL
If @KFPod1 = 'D'
Set @SSQL = @SSQL + 'And (K.KDrugo1<>' + Cast(@Podelba1 As Varchar(10)) + ' Or K.KDrugo1 Is Null) '
Else
Set @SSQL = @SSQL + 'And K.KDrugo1=' + Cast(@Podelba1 As Varchar(10)) + ' '
set @SSQL = @SSQL + ' order by A.DatumVreme, A.Sifra_Kup, A.Sifra_Obj '
exec(@SSQL)
--sega da gi izbriseme duplite vneseni vo rok od nekolku minuti
FROM #TmpRuta R INNER JOIN Patnici P ON R.Sifra_Pat=P.Sifra_Pat
INNER JOIN Komint K on K.Sifra_Kup = R.Sifra_Kup
LEFT OUTER JOIN KObjekti KO on KO.Sifra_Obj = R.Sifra_Obj and KO.Sifra_Kup = R.Sifra_Kup
WHERE Cast(R.Sifra_Pat as char(3))+R.Sifra_Kup+cast(R.Sifra_Obj as char(3))+cast(R.Datum as char(11)) NOT IN
(SELECT Cast(Sifra_Pat as char(3))+Sifra_Kup+cast(Sifra_Obj as char(3))+cast(dbo.fn_VratiDatum(Datum) as char(11))FROM #TmpDetal WHERE Sifra_Obj IS NOT NULL) AND R.Sifra_Obj IS NOT NULL
--sega zbirni
UPDATE #TmpDetal SET Sifra_Obj=0 WHERE Sifra_Obj IS NULL --zaradi group by
insert into #Tmp select TP.Sifra_Pat, 'KupRuta', count (*) from #TmpDetal TP
where TP.PoRuta = 'D' and TP.Poseten = 'D'
group by TP.Sifra_Pat
insert into #Tmp select TP.Sifra_Pat, 'BrPoseti', count (*) from #TmpDetal TP
where TP.Poseten = 'D'
group by TP.Sifra_Pat
insert into #Tmp select TP.Sifra_Pat, 'BrPosetiVonRuta', count (*) from #TmpDetal TP
where TP.PoRuta = 'N' and TP.Poseten = 'D'
group by TP.Sifra_Pat
/*CREATE TABLE #TmpRzl (Sifra_Pat smallint, Datum smalldatetime, Broj integer) VAKA AKO TREBA RAZL.PROD.M. PO DEN
insert into #TmpRzl select TP.Sifra_Pat, dbo.fn_VratiDatum(TP.Datum), count (distinct cast(TP.sifra_kup as char(6)) + cast(TP.sifra_obj as char(6)))
from #TmpDetal TP
where TP.Poseten = 'D'
group by TP.Sifra_Pat, dbo.fn_VratiDatum(TP.Datum)
insert into #Tmp select Sifra_Pat, 'BrRazlProdMesta', SUM(Broj) FROM #TmpRzl group by Sifra_Pat */
insert into #Tmp select TP.Sifra_Pat, 'BrRazlProdMesta', count (distinct cast(TP.sifra_kup as char(6)) + cast(TP.sifra_obj as char(6))) from #TmpDetal TP
where TP.Poseten = 'D'
group by TP.Sifra_Pat
insert into #Tmp select null, 'VkBrRazlProdMesta', count (distinct cast(TP.sifra_kup as char(6)) + cast(TP.sifra_obj as char(6))) from #TmpDetal TP
where TP.Poseten = 'D'
insert into #Tmp select TP.Sifra_Pat, 'SoBarKod', count (*) from #TmpDetal TP
where TP.SoBarKod = 'D'
group by TP.Sifra_Pat
CREATE TABLE #TmpDefKupVoRuti
(Sifra_pat smallint,
Kolku int)
INSERT INTO #TmpDefKupVoRuti SELECT Sifra_Pat, COUNT(*) FROM #TmpRuta GROUP BY Sifra_Pat
create table #TmpKraj
(Sifra_Pat smallint,
ImePat varchar(30),
KupVoRuta integer,
BrPoseti integer,
BrPosetiVonRuta integer,
BrRazlProdMesta integer,
BrBarkod integer,
DefKupVoRuta integer,
VkBrRazlProdMesta integer)
insert into #TmpKraj(Sifra_Pat) select distinct sifra_pat from #Tmp
update #TmpKraj set ImePat = P.ImePat from Patnici P where P.Sifra_Pat = #TmpKraj.Sifra_Pat
update #TmpKraj set KupVoRuta = T.Kolku from #Tmp T where T.Sto = 'KupRuta' and T.Sifra_Pat = #TmpKraj.Sifra_Pat
update #TmpKraj set BrPoseti = T.Kolku from #Tmp T where T.Sto = 'BrPoseti' and T.Sifra_Pat = #TmpKraj.Sifra_Pat
update #TmpKraj set BrPosetiVonRuta = T.Kolku from #Tmp T where T.Sto = 'BrPosetiVonRuta' and T.Sifra_Pat = #TmpKraj.Sifra_Pat
update #TmpKraj set BrRazlProdMesta = T.Kolku from #Tmp T where T.Sto = 'BrRazlProdMesta' and T.Sifra_Pat = #TmpKraj.Sifra_Pat
update #TmpKraj set BrBarkod = T.Kolku from #Tmp T where T.Sto = 'SoBarKod' and T.Sifra_Pat = #TmpKraj.Sifra_Pat
update #TmpKraj set DefKupVoRuta = T.Kolku from #TmpDefKupVoRuti T WHERE T.Sifra_Pat = #TmpKraj.Sifra_Pat
update #TmpKraj set VkBrRazlProdMesta = T.Kolku from #Tmp T where T.Sto = 'VkBrRazlProdMesta'
select * from #TmpKraj
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregl_periodruti_ns]'))
drop procedure [dbo].[sp_pregl_periodruti_ns]
Go
create Procedure sp_Pregl_PeriodRuti_NS
@Sifra_Oe smallint = Null,
@Sifra_pat smallint = null,
@Sifra_GrPat char(6) = null,
@DatumOd smalldatetime = null,
@DatumDo smalldatetime = null,
@Podelba1 smallint = null,
@KFPod1 char(1) = null
As
create table #Tmp
(Sifra_Pat smallint,
sto varchar(30),
Kolku integer
)
CREATE TABLE #TmpRuta
(Sifra_Pat smallint,
DatumOd smalldatetime,
DenOdNedela char(1),
Sifra_Kup char(6),
Sifra_Obj smallint,
Datum smalldatetime
)
CREATE TABLE #TmpPat (Sifra_Pat smallint)
If @Sifra_Pat is not null
INSERT INTO #TmpPat VALUES (@Sifra_Pat)
Else IF @Sifra_GrPat is not null
INSERT INTO #TmpPat SELECT Sifra_Pat from Sgrpat where Sif_GrPat =@Sifra_GrPat
ELSE
INSERT INTO #TmpPat SELECT Sifra_Pat from Patnici
CREATE TABLE #TmpPR
(Sifra_Pat smallint,
Datum smalldatetime )
Declare @Datum smalldatetime
Declare @Praznik as char(1)
SET @Datum=@DatumOd
WHILE @Datum<=@DatumDo
BEGIN
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 IN (SELECT Sifra_Pat FROM #TmpPat)
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 IN (SELECT Sifra_Pat FROM #TmpPat) AND Datum_Od<=@Datum AND DenOdNedela=dbo.fn_DenOdNedela(@Datum) GROUP BY Sifra_Pat
INSERT INTO #TmpRuta(Sifra_Pat, Datum, Sifra_Kup, Sifra_Obj)
SELECT R.Sifra_Pat, @Datum, R.Sifra_Kup, R.Sifra_Obj FROM RutiPlan R INNER JOIN #TmpPR T ON R.Sifra_Pat=T.Sifra_Pat AND R.Datum_Od=T.Datum
WHERE R.Sifra_Pat NOT IN (SELECT Sifra_Pat FROM RutiZaDatum WHERE Datum=@Datum)
AND dbo.fn_DenOdNedela(@Datum)=R.DenOdNedela AND R.Sifra_Pat IN (SELECT Sifra_Pat FROM #TmpPat)
END
SET @Datum = DateAdd(day, 1, @Datum)
END
declare @SSQL as varchar(5000)
create table #TmpDetal
(
Sifra_Pat smallint,
ImePat varchar(30),
Sifra_Kup char(6),
ImeKup varchar(40),
Sifra_Obj smallint,
ImeObj varchar(40),
PoRuta char(1),
Poseten char(1),
SoBarkod char(1),
Datum smalldatetime,
Stavki int,
Vrednost decimal (16, 4)
)
set @SSQL = 'insert into #TmpDetal (Sifra_Pat, ImePat, Sifra_Kup, ImeKup, Sifra_Obj, ImeObj, Datum, Poseten, SoBarkod,
FROM #TmpRuta R INNER JOIN Patnici P ON R.Sifra_Pat=P.Sifra_Pat
INNER JOIN Komint K on K.Sifra_Kup = R.Sifra_Kup
LEFT OUTER JOIN KObjekti KO on KO.Sifra_Obj = R.Sifra_Obj and KO.Sifra_Kup = R.Sifra_Kup
WHERE Cast(R.Sifra_Pat as char(3))+R.Sifra_Kup+cast(R.Sifra_Obj as char(3))+cast(R.Datum as varchar(35)) NOT IN
(SELECT Cast(Sifra_Pat as char(3))+Sifra_Kup+cast(Sifra_Obj as char(3))+cast(dbo.fn_VratiDatum(Datum) as varchar(35))FROM #TmpDetal WHERE Sifra_Obj IS NOT NULL) AND R.Sifra_Obj IS NOT NULL
--sega zbirni
UPDATE #TmpDetal SET Sifra_Obj=0 WHERE Sifra_Obj IS NULL --zaradi group by
insert into #Tmp select TP.Sifra_Pat, 'KupRuta', count (*) from #TmpDetal TP
where TP.PoRuta = 'D' and TP.Poseten = 'D'
group by TP.Sifra_Pat
insert into #Tmp select TP.Sifra_Pat, 'BrPoseti', count (*) from #TmpDetal TP
where TP.Poseten = 'D'
group by TP.Sifra_Pat
insert into #Tmp select TP.Sifra_Pat, 'BrPosetiVonRuta', count (*) from #TmpDetal TP
where TP.PoRuta = 'N' and TP.Poseten = 'D'
group by TP.Sifra_Pat
insert into #Tmp
select TP.Sifra_Pat, 'BrRazlProdMesta',
count (distinct cast(TP.sifra_kup as char(6)) + cast(TP.sifra_obj as char(6)))
from #TmpDetal TP
where TP.Poseten = 'D'
group by TP.Sifra_Pat
insert into #Tmp
select Null, 'VkBrRazlProdMesta',
count (distinct cast(TP.sifra_kup as char(6)) + cast(TP.sifra_obj as char(6)))
from #TmpDetal TP
where TP.Poseten = 'D'
CREATE TABLE #TmpDefKupVoRuti
( Sifra_pat smallint,
Kolku int
)
INSERT INTO #TmpDefKupVoRuti
SELECT Sifra_Pat, COUNT(*)
FROM #TmpRuta
GROUP BY Sifra_Pat
create table #TmpTempSum
( Sifra_Pat smallint,
Stavki int,
Vrednost decimal (16, 4)
)
insert into #TmpTempSum
select Sifra_Pat, sum(T.Stavki), sum(T.Vrednost)
from #TmpDetal T
Group By T.Sifra_Pat
create table #TmpKraj
( Sifra_Pat smallint,
ImePat varchar(30),
KupVoRuta integer,
BrPoseti integer,
BrPosetiVonRuta integer,
BrRazlProdMesta integer,
BrBarkod integer,
DefKupVoRuta integer,
VkBrRazlProdMesta integer,
Stavki int,
Vrednost decimal (16, 4)
)
insert into #TmpKraj(Sifra_Pat)
select distinct sifra_pat
from #Tmp
update #TmpKraj
set Stavki = T.Stavki, Vrednost = T.Vrednost
from #TmpTempSum T
where #TmpKraj.Sifra_Pat = T.Sifra_Pat
update #TmpKraj set ImePat = P.ImePat from Patnici P where P.Sifra_Pat = #TmpKraj.Sifra_Pat
update #TmpKraj set KupVoRuta = T.Kolku from #Tmp T where T.Sto = 'KupRuta' and T.Sifra_Pat = #TmpKraj.Sifra_Pat
update #TmpKraj set BrPoseti = T.Kolku from #Tmp T where T.Sto = 'BrPoseti' and T.Sifra_Pat = #TmpKraj.Sifra_Pat
update #TmpKraj set BrPosetiVonRuta = T.Kolku from #Tmp T where T.Sto = 'BrPosetiVonRuta' and T.Sifra_Pat = #TmpKraj.Sifra_Pat
update #TmpKraj set BrRazlProdMesta = T.Kolku from #Tmp T where T.Sto = 'BrRazlProdMesta' and T.Sifra_Pat = #TmpKraj.Sifra_Pat
update #TmpKraj set DefKupVoRuta = T.Kolku from #TmpDefKupVoRuti T WHERE T.Sifra_Pat = #TmpKraj.Sifra_Pat
update #TmpKraj set VkBrRazlProdMesta = T.Kolku from #Tmp T where T.Sto = 'VkBrRazlProdMesta'
select * from #TmpKraj
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregl_periodrutipodatum]'))
drop procedure [dbo].[sp_pregl_periodrutipodatum]
Go
CREATE Procedure sp_Pregl_PeriodRutiPoDatum
@Sifra_pat smallint = null,
@Sifra_GrPat char(6) = null,
@DatumOd smalldatetime = null,
@DatumDo smalldatetime = null,
@Podelba1 smallint = null,
@KFPod1 char(1) = null
As
create table #Tmp
(Datum smalldatetime,
sto varchar(30),
Kolku integer
)
CREATE TABLE #TmpRuta
(Sifra_Pat smallint,
DatumOd smalldatetime,
DenOdNedela char(1),
Sifra_Kup char(6),
Sifra_Obj smallint,
Datum smalldatetime )
CREATE TABLE #TmpPat (Sifra_Pat smallint)
If @Sifra_Pat is not null
INSERT INTO #TmpPat VALUES (@Sifra_Pat)
Else IF @Sifra_GrPat is not null
INSERT INTO #TmpPat SELECT Sifra_Pat from Sgrpat where Sif_GrPat =@Sifra_GrPat
ELSE
INSERT INTO #TmpPat SELECT Sifra_Pat from Patnici
CREATE TABLE #TmpPR
(Sifra_Pat smallint,
Datum smalldatetime)
Declare @Datum smalldatetime
Declare @Praznik as char(1)
SET @Datum=@DatumOd
WHILE @Datum<=@DatumDo
BEGIN
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 IN (SELECT Sifra_Pat FROM #TmpPat)
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 IN (SELECT Sifra_Pat FROM #TmpPat) AND Datum_Od<=@Datum AND DenOdNedela=dbo.fn_DenOdNedela(@Datum) GROUP BY Sifra_Pat
INSERT INTO #TmpRuta(Sifra_Pat, Datum, Sifra_Kup, Sifra_Obj)
SELECT R.Sifra_Pat, @Datum, R.Sifra_Kup, R.Sifra_Obj FROM RutiPlan R INNER JOIN #TmpPR T ON R.Sifra_Pat=T.Sifra_Pat AND R.Datum_Od=T.Datum
WHERE R.Sifra_Pat NOT IN (SELECT Sifra_Pat FROM RutiZaDatum WHERE Datum=@Datum)
AND dbo.fn_DenOdNedela(@Datum)=R.DenOdNedela AND R.Sifra_Pat IN (SELECT Sifra_Pat FROM #TmpPat)
END
SET @Datum = DateAdd(day, 1, @Datum)
END
declare @SSQL as varchar(5000)
create table #TmpDetal
(
Sifra_Pat smallint,
ImePat varchar(30),
Sifra_Kup char(6),
ImeKup varchar(40),
Sifra_Obj smallint,
ImeObj varchar(40),
PoRuta char(1),
Poseten char(1),
SoBarkod char(1),
Datum smalldatetime
)
set @SSQL = 'insert into #TmpDetal (Sifra_Pat, ImePat, Sifra_Kup, ImeKup, Sifra_Obj, ImeObj, Datum, Poseten, SoBarkod)
select A.sifra_Oe, P.ImePat, A.Sifra_Kup, K.ImeKup, case when A.Sifra_Obj <> 0 then A.Sifra_Obj end, KO.ImeObj, A.DatumVreme,''D'', A.SoBarKod
from Akcija A
inner join Patnici P on A.Sifra_oe=P.Sifra_Pat
inner join Komint K on K.Sifra_Kup = A.Sifra_Kup
left outer join KObjekti KO on KO.Sifra_Obj = A.Sifra_Obj and KO.Sifra_Kup = A.Sifra_Kup
where dbo.fn_VratiDatum(DatumVreme) >= '''+cast(@DatumOd as varchar(35))+''' and dbo.fn_VratiDatum(DatumVreme) <= '''+cast(@DatumDo as varchar(35))+''' '
If @Sifra_Pat is not null
set @SSQL = @SSQL + ' and P.Sifra_Pat = '+cast(@Sifra_Pat as varchar(15))+' '
If @Sifra_GrPat is not null
set @SSQL = @SSQL + ' and P.Sifra_Pat in (select sifra_Pat from Sgrpat where Sif_GrPat = '''+cast(@Sifra_GrPat as varchar(6))+''' ) '
If @Podelba1 Is Not NULL
If @KFPod1 = 'D'
Set @SSQL = @SSQL + 'And (K.KDrugo1<>' + Cast(@Podelba1 As Varchar(10)) + ' Or K.KDrugo1 Is Null) '
Else
Set @SSQL = @SSQL + 'And K.KDrugo1=' + Cast(@Podelba1 As Varchar(10)) + ' '
set @SSQL = @SSQL + ' order by A.DatumVreme, A.Sifra_Kup, A.Sifra_Obj '
exec(@SSQL)
--sega da gi izbriseme duplite vneseni vo rok od nekolku minuti
FROM #TmpRuta R INNER JOIN Patnici P ON R.Sifra_Pat=P.Sifra_Pat
INNER JOIN Komint K on K.Sifra_Kup = R.Sifra_Kup
LEFT OUTER JOIN KObjekti KO on KO.Sifra_Obj = R.Sifra_Obj and KO.Sifra_Kup = R.Sifra_Kup
WHERE Cast(R.Sifra_Pat as char(3))+R.Sifra_Kup+cast(R.Sifra_Obj as char(3))+cast(R.Datum as char(11)) NOT IN
(SELECT Cast(Sifra_Pat as char(3))+Sifra_Kup+cast(Sifra_Obj as char(3))+cast(dbo.fn_VratiDatum(Datum) as char(11))FROM #TmpDetal WHERE Sifra_Obj IS NOT NULL) AND R.Sifra_Obj IS NOT NULL
--sega zbirni
UPDATE #TmpDetal SET Sifra_Obj=0 WHERE Sifra_Obj IS NULL --zaradi group by
insert into #Tmp select dbo.fn_VratiDatum(TP.Datum), 'KupRuta', count (*) from #TmpDetal TP
where TP.PoRuta = 'D' and TP.Poseten = 'D'
group by dbo.fn_VratiDatum(TP.Datum)
insert into #Tmp select dbo.fn_VratiDatum(TP.Datum), 'BrPoseti', count (*) from #TmpDetal TP
where TP.Poseten = 'D'
group by dbo.fn_VratiDatum(TP.Datum)
insert into #Tmp select dbo.fn_VratiDatum(TP.Datum), 'BrPosetiVonRuta', count (*) from #TmpDetal TP
where TP.PoRuta = 'N' and TP.Poseten = 'D'
group by dbo.fn_VratiDatum(TP.Datum)
insert into #Tmp select dbo.fn_VratiDatum(TP.Datum), 'BrRazlProdMesta', count (distinct cast(TP.sifra_kup as char(6)) + cast(TP.sifra_obj as char(6)))
from #TmpDetal TP
where TP.Poseten = 'D'
group by dbo.fn_VratiDatum(TP.Datum)
insert into #Tmp select dbo.fn_VratiDatum(TP.Datum), 'SoBarKod', count (*) from #TmpDetal TP
where TP.SoBarKod = 'D'
group by dbo.fn_VratiDatum(TP.Datum)
insert into #Tmp select null, 'VkBrRazlProdMesta', count (distinct cast(TP.sifra_kup as char(6)) + cast(TP.sifra_obj as char(6)))
from #TmpDetal TP
where TP.Poseten = 'D'
CREATE TABLE #TmpDefKupVoRuti
(Datum smalldatetime,
Kolku int)
INSERT INTO #TmpDefKupVoRuti SELECT Datum, COUNT(*) FROM #TmpRuta GROUP BY Datum
create table #TmpKraj
(Datum smalldatetime,
KupVoRuta integer,
BrPoseti integer,
BrPosetiVonRuta integer,
BrRazlProdMesta integer,
BrBarkod integer,
DefKupVoRuta integer,
VkBrRazlProdMesta integer)
insert into #TmpKraj(Datum) select distinct datum from #Tmp
update #TmpKraj set KupVoRuta = T.Kolku from #Tmp T where T.Sto = 'KupRuta' and T.datum = #TmpKraj.datum
update #TmpKraj set BrPoseti = T.Kolku from #Tmp T where T.Sto = 'BrPoseti' and T.datum = #TmpKraj.datum
update #TmpKraj set BrPosetiVonRuta = T.Kolku from #Tmp T where T.Sto = 'BrPosetiVonRuta' and T.datum = #TmpKraj.datum
update #TmpKraj set BrRazlProdMesta = T.Kolku from #Tmp T where T.Sto = 'BrRazlProdMesta' and T.datum = #TmpKraj.datum
update #TmpKraj set BrBarkod = T.Kolku from #Tmp T where T.Sto = 'SoBarKod' and T.datum = #TmpKraj.datum
UPDATE #TmpKraj SET DefKupVoRuta = T.Kolku FROM #TmpDefKupVoRuti T WHERE T.datum = #TmpKraj.datum
update #TmpKraj SET VkBrRazlProdMesta = T.Kolku from #Tmp T where T.Sto = 'VkBrRazlProdMesta'
select * from #TmpKraj
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregl_periodrutipodatum_ns]'))
drop procedure [dbo].[sp_pregl_periodrutipodatum_ns]
Go
CREATE Procedure sp_Pregl_PeriodRutiPoDatum_NS
@Sifra_Oe smallint = null,
@Sifra_pat smallint = null,
@Sifra_GrPat char(6) = null,
@DatumOd smalldatetime = null,
@DatumDo smalldatetime = null,
@Podelba1 smallint = null,
@KFPod1 char(1) = null
As
create table #Tmp
(Datum smalldatetime,
Sto varchar(30),
Kolku integer
)
CREATE TABLE #TmpRuta
(Sifra_Pat smallint,
DatumOd smalldatetime,
DenOdNedela char(1),
Sifra_Kup char(6),
Sifra_Obj smallint,
Datum smalldatetime )
CREATE TABLE #TmpPat (Sifra_Pat smallint)
If @Sifra_Pat is not null
INSERT INTO #TmpPat VALUES (@Sifra_Pat)
Else IF @Sifra_GrPat is not null
INSERT INTO #TmpPat SELECT Sifra_Pat from Sgrpat where Sif_GrPat =@Sifra_GrPat
ELSE
INSERT INTO #TmpPat SELECT Sifra_Pat from Patnici
CREATE TABLE #TmpPR
( Sifra_Pat smallint,
Datum smalldatetime )
Declare @Datum smalldatetime
Declare @Praznik as char(1)
SET @Datum=@DatumOd
WHILE @Datum<=@DatumDo
BEGIN
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 IN (SELECT Sifra_Pat FROM #TmpPat)
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 IN (SELECT Sifra_Pat FROM #TmpPat) AND Datum_Od<=@Datum AND DenOdNedela=dbo.fn_DenOdNedela(@Datum) GROUP BY Sifra_Pat
INSERT INTO #TmpRuta(Sifra_Pat, Datum, Sifra_Kup, Sifra_Obj)
SELECT R.Sifra_Pat, @Datum, R.Sifra_Kup, R.Sifra_Obj FROM RutiPlan R INNER JOIN #TmpPR T ON R.Sifra_Pat=T.Sifra_Pat AND R.Datum_Od=T.Datum
WHERE R.Sifra_Pat NOT IN (SELECT Sifra_Pat FROM RutiZaDatum WHERE Datum=@Datum)
AND dbo.fn_DenOdNedela(@Datum)=R.DenOdNedela AND R.Sifra_Pat IN (SELECT Sifra_Pat FROM #TmpPat)
END
SET @Datum = DateAdd(day, 1, @Datum)
END
declare @SSQL as varchar(5000)
create table #TmpDetal
(
Sifra_Pat smallint,
ImePat varchar(30),
Sifra_Kup char(6),
ImeKup varchar(40),
Sifra_Obj smallint,
ImeObj varchar(40),
PoRuta char(1),
Poseten char(1),
SoBarkod char(1),
Datum smalldatetime,
Stavki int,
Vrednost decimal (16, 4)
)
set @SSQL = 'insert into #TmpDetal (Sifra_Pat, ImePat, Sifra_Kup, ImeKup, Sifra_Obj, ImeObj, Datum, Poseten, SoBarkod,
Stavki, Vrednost)
select D.sifra_Pat, P.ImePat, D.Sifra_Kup,
K.ImeKup, case when D.Sifra_Obj <> 0 then D.Sifra_Obj else null end,
FROM #TmpRuta R INNER JOIN Patnici P ON R.Sifra_Pat=P.Sifra_Pat
INNER JOIN Komint K on K.Sifra_Kup = R.Sifra_Kup
LEFT OUTER JOIN KObjekti KO on KO.Sifra_Obj = R.Sifra_Obj and KO.Sifra_Kup = R.Sifra_Kup
WHERE Cast(R.Sifra_Pat as char(3))+R.Sifra_Kup+cast(R.Sifra_Obj as char(3))+cast(R.Datum as char(11)) NOT IN
(SELECT Cast(Sifra_Pat as char(3))+Sifra_Kup+cast(Sifra_Obj as char(3))+cast(Datum as varchar(35))
FROM #TmpDetal WHERE Sifra_Obj IS NOT NULL) AND R.Sifra_Obj IS NOT NULL
--sega zbirni
UPDATE #TmpDetal
SET Sifra_Obj=0
WHERE Sifra_Obj IS NULL --zaradi group by
insert into #Tmp
select TP.Datum, 'KupRuta', count (*) from #TmpDetal TP
where TP.PoRuta = 'D' and TP.Poseten = 'D'
group by TP.Datum
insert into #Tmp
select TP.Datum, 'BrPoseti', count (*)
from #TmpDetal TP
where TP.Poseten = 'D'
group by TP.Datum
insert into #Tmp
select TP.Datum, 'BrPosetiVonRuta', count (*)
from #TmpDetal TP
where TP.PoRuta = 'N' and TP.Poseten = 'D'
group by TP.Datum
insert into #Tmp
select TP.Datum, 'BrRazlProdMesta', count (distinct cast(TP.sifra_kup as char(6)) + cast(TP.sifra_obj as char(6)))
from #TmpDetal TP
where TP.Poseten = 'D'
group by TP.Datum
insert into #Tmp
select null, 'VkBrRazlProdMesta', count (distinct cast(TP.sifra_kup as char(6)) + cast(TP.sifra_obj as char(6)))
from #TmpDetal TP
where TP.Poseten = 'D'
CREATE TABLE #TmpDefKupVoRuti
( Datum smalldatetime,
Kolku int
)
INSERT INTO #TmpDefKupVoRuti
SELECT Datum, COUNT(*)
FROM #TmpRuta
GROUP BY Datum
create table #TmpTempSum
( Datum smalldatetime,
Stavki int,
Vrednost decimal (16, 4)
)
insert into #TmpTempSum
select T.Datum, sum(T.Stavki), sum(T.Vrednost)
from #TmpDetal T
Group By T.Datum
create table #TmpKraj
( Datum smalldatetime,
KupVoRuta integer,
BrPoseti integer,
BrPosetiVonRuta integer,
BrRazlProdMesta integer,
BrBarkod integer,
DefKupVoRuta integer,
VkBrRazlProdMesta integer,
Stavki int,
Vrednost decimal (16, 4)
)
insert into #TmpKraj(Datum)
select distinct Datum
from #Tmp
update #TmpKraj
set Stavki = T.Stavki, Vrednost = T.Vrednost
from #TmpTempSum T
where #TmpKraj.Datum = T.Datum
update #TmpKraj set KupVoRuta = T.Kolku from #Tmp T where T.Sto = 'KupRuta' and T.datum = #TmpKraj.datum
update #TmpKraj set BrPoseti = T.Kolku from #Tmp T where T.Sto = 'BrPoseti' and T.datum = #TmpKraj.datum
update #TmpKraj set BrPosetiVonRuta = T.Kolku from #Tmp T where T.Sto = 'BrPosetiVonRuta' and T.datum = #TmpKraj.datum
update #TmpKraj set BrRazlProdMesta = T.Kolku from #Tmp T where T.Sto = 'BrRazlProdMesta' and T.datum = #TmpKraj.datum
UPDATE #TmpKraj SET DefKupVoRuta = T.Kolku FROM #TmpDefKupVoRuti T WHERE T.Datum = #TmpKraj.Datum
update #TmpKraj SET VkBrRazlProdMesta = T.Kolku from #Tmp T where T.Sto = 'VkBrRazlProdMesta'
select * from #TmpKraj
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregl_periodrutipovrednosti]'))
drop procedure [dbo].[sp_pregl_periodrutipovrednosti]
Go
CREATE Procedure sp_Pregl_PeriodRutiPoVrednosti
@Sifra_pat smallint = null,
@Sifra_GrPat char(6) = null,
@DatumOd smalldatetime = null,
@DatumDo smalldatetime = null,
@Podelba1 smallint = null,
@KFPod1 char(1) = null,
@SoVred char(1) = 'D',
@Kurs decimal=null
As
create table #Tmp
(Sifra_Pat smallint,
Datum smalldatetime,
sto varchar(30),
Kolku integer
)
CREATE TABLE #TmpRuta
(Sifra_Pat smallint,
DatumOd smalldatetime,
DenOdNedela char(1),
Sifra_Kup char(6),
Sifra_Obj smallint,
Datum smalldatetime )
CREATE TABLE #TmpPat (Sifra_Pat smallint)
If @Sifra_Pat is not null
INSERT INTO #TmpPat VALUES (@Sifra_Pat)
Else IF @Sifra_GrPat is not null
INSERT INTO #TmpPat SELECT Sifra_Pat from Sgrpat where Sif_GrPat =@Sifra_GrPat
ELSE
INSERT INTO #TmpPat SELECT Sifra_Pat from Patnici
CREATE TABLE #TmpPR
(Sifra_Pat smallint,
Datum smalldatetime)
Declare @Datum smalldatetime
Declare @Praznik as char(1)
SET @Datum=@DatumOd
WHILE @Datum<=@DatumDo
BEGIN
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 IN (SELECT Sifra_Pat FROM #TmpPat)
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 IN (SELECT Sifra_Pat FROM #TmpPat) AND Datum_Od<=@Datum AND DenOdNedela=dbo.fn_DenOdNedela(@Datum) GROUP BY Sifra_Pat
INSERT INTO #TmpRuta(Sifra_Pat, Datum, Sifra_Kup, Sifra_Obj)
SELECT R.Sifra_Pat, @Datum, R.Sifra_Kup, R.Sifra_Obj FROM RutiPlan R INNER JOIN #TmpPR T ON R.Sifra_Pat=T.Sifra_Pat AND R.Datum_Od=T.Datum
WHERE R.Sifra_Pat NOT IN (SELECT Sifra_Pat FROM RutiZaDatum WHERE Datum=@Datum)
AND dbo.fn_DenOdNedela(@Datum)=R.DenOdNedela AND R.Sifra_Pat IN (SELECT Sifra_Pat FROM #TmpPat)
END
SET @Datum = DateAdd(day, 1, @Datum)
END
declare @SSQL as varchar(5000)
create table #TmpDetal
(
Sifra_Pat smallint,
ImePat varchar(30),
Sifra_Kup char(6),
ImeKup varchar(40),
Sifra_Obj smallint,
ImeObj varchar(40),
PoRuta char(1),
Poseten char(1),
SoBarkod char(1),
Datum smalldatetime
)
set @SSQL = 'insert into #TmpDetal (Sifra_Pat, ImePat, Sifra_Kup, ImeKup, Sifra_Obj, ImeObj, Datum, Poseten, SoBarkod)
select A.sifra_Oe, P.ImePat, A.Sifra_Kup, K.ImeKup, case when A.Sifra_Obj <> 0 then A.Sifra_Obj end, KO.ImeObj, A.DatumVreme,''D'', A.SoBarKod
from Akcija A
inner join Patnici P on A.Sifra_oe=P.Sifra_Pat
inner join Komint K on K.Sifra_Kup = A.Sifra_Kup
left outer join KObjekti KO on KO.Sifra_Obj = A.Sifra_Obj and KO.Sifra_Kup = A.Sifra_Kup
where dbo.fn_VratiDatum(DatumVreme) >= '''+cast(@DatumOd as varchar(35))+''' and dbo.fn_VratiDatum(DatumVreme) <= '''+cast(@DatumDo as varchar(35))+''' '
If @Sifra_Pat is not null
set @SSQL = @SSQL + ' and P.Sifra_Pat = '+cast(@Sifra_Pat as varchar(15))+' '
If @Sifra_GrPat is not null
set @SSQL = @SSQL + ' and P.Sifra_Pat in (select sifra_Pat from Sgrpat where Sif_GrPat = '''+cast(@Sifra_GrPat as varchar(6))+''' ) '
If @Podelba1 Is Not NULL
If @KFPod1 = 'D'
Set @SSQL = @SSQL + 'And (K.KDrugo1<>' + Cast(@Podelba1 As Varchar(10)) + ' Or K.KDrugo1 Is Null) '
Else
Set @SSQL = @SSQL + 'And K.KDrugo1=' + Cast(@Podelba1 As Varchar(10)) + ' '
set @SSQL = @SSQL + ' order by A.DatumVreme, A.Sifra_Kup, A.Sifra_Obj '
exec(@SSQL)
--sega da gi izbriseme duplite vneseni vo rok od nekolku minuti
FROM #TmpRuta R INNER JOIN Patnici P ON R.Sifra_Pat=P.Sifra_Pat
INNER JOIN Komint K on K.Sifra_Kup = R.Sifra_Kup
LEFT OUTER JOIN KObjekti KO on KO.Sifra_Obj = R.Sifra_Obj and KO.Sifra_Kup = R.Sifra_Kup
WHERE Cast(R.Sifra_Pat as char(3))+R.Sifra_Kup+cast(R.Sifra_Obj as char(3))+cast(R.Datum as char(11)) NOT IN
(SELECT Cast(Sifra_Pat as char(3))+Sifra_Kup+cast(Sifra_Obj as char(3))+cast(Datum as char(11))FROM #TmpDetal WHERE Sifra_Obj IS NOT NULL) AND R.Sifra_Obj IS NOT NULL
--pred zbirni treba da zamenime sifra_pat i ime_Pat so grupata - za supervisor
IF NOT @Sifra_GrPat IS NULL --ako e pustena grupa - togas ni treba imeto na grupata - supervisor
Update #TmpDetal SET Sifra_Pat = @Sifra_GrPat,ImePat = Ime_GrPat
FROM GrPat
Where Sif_GrPat=@Sifra_GrPat
--sega zbirni
UPDATE #TmpDetal SET Sifra_Obj=0 WHERE Sifra_Obj IS NULL --zaradi group by
insert into #Tmp select Sifra_Pat,TP.Datum, 'BrPosetiRuta', count (*) from #TmpDetal TP
where TP.PoRuta = 'D' and TP.Poseten = 'D'
group by Sifra_Pat,TP.Datum
insert into #Tmp select Sifra_Pat,TP.Datum, 'BrPosetiVonRuta', count (*) from #TmpDetal TP
where TP.PoRuta = 'N' and TP.Poseten = 'D'
group by Sifra_Pat,TP.Datum
insert into #Tmp select Sifra_Pat,TP.Datum, 'DefPosRuta', count (*) from #TmpDetal TP
where TP.PoRuta = 'D'
group by Sifra_Pat,TP.Datum
insert into #Tmp select Sifra_Pat,TP.Datum, 'VkupnoPoseti', count (*) from #TmpDetal TP
where TP.Poseten = 'D'
group by Sifra_Pat,TP.Datum
IF @SoVred ='D'
BEGIN
CREATE TABLE #TmpVred
(
Sifra_Pat smallint,
Datum smalldatetime,
VrednostProd decimal(18,2),
VrednostVrat decimal(18,2))
INSERT INTO #TmpVred(Sifra_Pat,Datum,VrednostProd,VrednostVrat)
SELECT D.Sifra_Pat,D.Datum_Dok, Case When @Kurs is null then SUM(D.Toc200) Else (SUM(D.Toc200) / @Kurs) end ,0 FROM Dokr D INNER JOIN #TmpPat P ON D.Sifra_Pat=P.Sifra_Pat
WHERE D.Datum_Dok>=@DatumOd AND D.Datum_Dok<=@DatumDo AND D.VlIzl = 'I' AND D.Sifra_Za=1 AND D.Sifra_Kup IS NOT NULL AND D.Toc200>0
GROUP BY D.Sifra_Pat,D.Datum_Dok
INSERT INTO #TmpVred(Sifra_Pat,Datum,VrednostProd,VrednostVrat)
SELECT D.Sifra_Pat,D.Datum_Dok, 0,Case When @Kurs is null then SUM(D.Toc200) Else (SUM(D.Toc200) / @Kurs) end FROM Dokr D INNER JOIN #TmpPat P ON D.Sifra_Pat=P.Sifra_Pat
WHERE D.Datum_Dok>=@DatumOd AND D.Datum_Dok<=@DatumDo AND D.VlIzl = 'I' AND D.Sifra_Za=1 AND D.Sifra_Kup IS NOT NULL AND D.Toc200<0
GROUP BY D.Sifra_Pat,D.Datum_Dok
END
--select * From #TmpDetal order by Sifra_Pat , Datum
--select * From #TmpDefKupVoRuti
--select * From #TmpVred TV order by TV.Sifra_Pat , TV.Datum
--select * From #Tmp TD order by TD.Sifra_Pat , TD.Datum
--return
create table #TmpKraj
(
Sifra_Pat smallint,
ImePat varchar(30),
Datum smalldatetime,
BrPosetiRuta integer,
BrPosetiVonRuta integer,
VkupnoPoseti integer,
DefPosRuta integer,
VrednProdazba decimal(18,2),
VrednVrateno decimal(18,2),)
insert into #TmpKraj(Sifra_Pat,Datum) select Sifra_pat,datum from #Tmp where datum is not null group by Sifra_pat,datum
update #TmpKraj set ImePat = TD.ImePat from #TmpDetal TD where TD.Sifra_Pat = #TmpKraj.Sifra_Pat
update #TmpKraj set BrPosetiRuta = T.Kolku from #Tmp T where T.Sto = 'BrPosetiRuta' and T.Sifra_Pat = #TmpKraj.Sifra_Pat and T.datum = #TmpKraj.datum
update #TmpKraj set BrPosetiVonRuta = T.Kolku from #Tmp T where T.Sto = 'BrPosetiVonRuta' and T.Sifra_Pat = #TmpKraj.Sifra_Pat and T.datum = #TmpKraj.datum
update #TmpKraj set VkupnoPoseti = T.Kolku from #Tmp T where T.Sto = 'VkupnoPoseti' and T.Sifra_Pat = #TmpKraj.Sifra_Pat and T.datum = #TmpKraj.datum
update #TmpKraj set DefPosRuta = T.Kolku from #Tmp T where T.Sto = 'DefPosRuta' and T.Sifra_Pat = #TmpKraj.Sifra_Pat and T.datum = #TmpKraj.datum
IF @SoVred='D'
Begin
Update #TmpKraj SET VrednProdazba = TV.VrednostProd
FROM #TmpVred TV
WHERE TV.Sifra_Pat = #TmpKraj.Sifra_Pat and TV.Datum = #TmpKraj.Datum and TV.VrednostVrat = 0
Update #TmpKraj SET VrednVrateno = TV.VrednostVrat
FROM #TmpVred TV
WHERE TV.Sifra_Pat = #TmpKraj.Sifra_Pat and TV.Datum = #TmpKraj.Datum and TV.VrednostProd = 0
END
Else
Update #TmpKraj SET VrednProdazba = 0,VrednVrateno = 0
select * from #TmpKraj
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregl_podgr]'))
drop procedure [dbo].[sp_pregl_podgr]
Go
CREATE PROCEDURE sp_Pregl_Podgr
@Tabela VARCHAR(20),
@Nisto_Proba VARCHAR(20)=null
AS
Set @Tabela=Upper(@Tabela)
If @Tabela='PODGRUPI'
Select P.*, G.Ime_Gr
From Podgrupi P
Inner Join Grupi G ON P.Sifra_Gr=G.Sifra_Gr
Order By P.Sifra_Podg
If @@ROWCOUNT=0
RETURN 77000
Else
RETURN @@ERROR
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregl_rabnal_autoauto]'))
drop procedure [dbo].[sp_pregl_rabnal_autoauto]
Go
create PROCEDURE sp_Pregl_RabNal_AutoAuto
@Sifra_OE smallint,
@DatumOtv_Od smalldatetime,
@DatumOtv_Do smalldatetime,
@Otv_Zatv char(1) = 'O', -- O - Otvoreni Z - Zatvoreni
@PodGarancija char(1) = 'S', -- D - Pod Garangija, N - Drugi, S - Site
@Sifra_Kup char(6) = Null,
@Sifra_Rab int = null,
@Sifra_Art varchar(20) = null,
@Sifra_Rab_2 int = null,
@SamoZavrseniNezatv char(1) = Null,
@Tip_Operacija char(1) = Null
AS
Declare @SSQL as varchar(4000)
Declare @SSQLUsl as varchar(4000)
Set @SSQLUsl = ' '
If @Sifra_OE Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And R.Sifra_OeRab = ' + cast(@Sifra_OE as Varchar(10)) + ' '
If @DatumOtv_Od is Not Null
Set @SSQLUsl = @SSQLUsl + ' And R.Datum_Otv >= ''' + cast(@DatumOtv_Od as Varchar(35)) + ''' '
If @DatumOtv_Do is Not Null
Set @SSQLUsl = @SSQLUsl + ' And R.Datum_Otv <= ''' + cast(@DatumOtv_Do as Varchar(35)) + ''' '
If @Sifra_Kup is Not Null
Set @SSQLUsl = @SSQLUsl + ' And R.Sifra_Kup= ' + @Sifra_Kup + ' '
If @Sifra_Rab is Not Null
Set @SSQLUsl = @SSQLUsl + ' And R.Sifra_Rab= ' + cast(@Sifra_Rab as varchar(8)) + ' '
If @Sifra_Rab_2 is Not Null
Set @SSQLUsl = @SSQLUsl + ' And R.Sifra_Rab_2 = ' + cast(@Sifra_Rab_2 as varchar(8)) + ' '
if @SamoZavrseniNezatv = 'D'
Set @SSQLUsl = @SSQLUsl + ' And R.Datum_Zatv Is Null and
(DatePart(hour, R.Datum_Kr_Proiz) <> 12 and DatePart(minute, R.Datum_Kr_Proiz) <> 0)'
else
begin
If @Otv_Zatv = 'O'
Set @SSQLUsl = @SSQLUsl + ' And R.Datum_Zatv Is Null '
Else If @Otv_Zatv = 'Z'
Set @SSQLUsl = @SSQLUsl + ' And R.Datum_Zatv Is Not Null '
end
If @PodGarancija = 'D'
Set @SSQLUsl = @SSQLUsl + ' And R.Garancija= ''D'' '
Else If @PodGarancija = 'N'
Set @SSQLUsl = @SSQLUsl + ' And R.Garancija= ''N'' '
if @Tip_Operacija <> '' and @Tip_Operacija is not null
Set @SSQLUsl = @SSQLUsl + ' And R.Tip_Operacija = ''' + @Tip_Operacija + ''' '
Create Table #Izn
(
RabNalID int,
Toc200 decimal(18,6)
)
Set @SSQL = 'Select DRN.RabNalID, D.Toc200
From Rabnal R
Left Outer Join DokRabnal DRN On DRN.RabNalID=R.RabNalID
INNER JOIN Faktura F ON S.Godina_Fra=F.Godina_Fra AND S.Faktura_Br=F.Faktura_Br
INNER JOIN PodracniSluzbi P ON F.Sifra_PodrSluzba_Fakt=P.Sifra_PodrSluzba
INNER JOIN #TmpRec R ON R.Godina_Fra=F.Godina_Fra AND R.Faktura_Br=F.Faktura_Br AND R.Specif_Br=S.Specif_Br WHERE 1=1 '
+ @SSQLUsl + ' ORDER BY S.Godina_Fra, Cast(S.Specif_Br as int) '
EXEC (@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregl_sprometadh_cela]'))
drop procedure [dbo].[sp_pregl_sprometadh_cela]
Go
create PROCEDURE [dbo].[sp_Pregl_SPrometADH_Cela]
@Datum_Od smalldatetime = null, --promet
@Datum_Do smalldatetime = null, --promet
@Sifra_Oper smallint = Null,
@Sifra_Oe smallint = Null,
@BrKasa smallint = Null,
@KlucSodrz varchar(1000) = Null,
@Kto char(6)= null,
@Sifra_TipKartKor smallint= null,
@Kom_KartKor char(6)= null
-- @Podr char(1)='K'
AS
Declare @SSQL as varchar(8000)
Declare @SSQLUsl as varchar(8000)
Set @SSQLUsl = ' '
------------------------------------------------------------------- U S L O V ------------------------------------------------------------------------------------
If @Sifra_Oe Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And S.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
If @BrKasa Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And S.BrKasa = ' + Cast(@BrKasa as varchar(10)) + ' '
If @Kto is not null
Set @SSQLUsl = @SSQLUsl + ' And K.Kto =' + @Kto + ' '
If @Sifra_TipKartKor Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And KK.Sifra_TipKartKor = ' + Cast(@Sifra_TipKartKor as varchar(6)) + ' '
If @Kom_KartKor is not null
Set @SSQLUsl = @SSQLUsl + ' And KK.Sifra_Kup =' + @Kom_KartKor + ' '
------------------------------------------------------------------- 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 @KlucSodrz Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And SA.KlucSodrz in ( ' + @KlucSodrz + ') '
Order By P.Sifra_Oe, P.Grp_Kasa, P.BrKasa, P.Broj_Ska, SA.Rbr '
print @SSQL
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregl_sprometadh_spromet]'))
drop procedure [dbo].[sp_pregl_sprometadh_spromet]
Go
CREATE PROCEDURE sp_Pregl_SPrometADH_SPromet
@Datum_Od smalldatetime = null,
@Datum_Do smalldatetime = null,
@Sifra_Oper smallint = Null,
@Sifra_Oe smallint = Null,
@BrKasa smallint = Null,
@KlucSodrz varchar(1000) = Null,
@Kto char(6)= null
-- @Podr char(1)='K'
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 @KlucSodrz Is Not Null
-- Set @SSQLUsl = @SSQLUsl + ' And SA.KlucSodrz='''+@KlucSodrz+''' ' ---in ( ''' + @KlucSodrz + ''') '
If @Kto is not null
Set @SSQLUsl = @SSQLUsl + ' And K.Kto =' + @Kto + ' '
Sum(SA.Vredn) Vredn, Sum(SA.Vredn2) Vredn2, SUM(CASE When SA.Sifra_OE IS NOT NULL Then S.Kolic ELSE 0 END) KolicADH
FROM Spromet S
Inner Join Promet 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
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+'''
Left Outer Join Katart K on S.Sifra_Art=K.Sifra_Art
Where 1=1 ' + @SSQLUsl + '
Group By S.Sifra_Art, K.ImeArt
Order by S.Sifra_Art, K.ImeArt '
-- If @Podr='K'
-- Set @SSQL = 'Order By KolicADH '
-- If @Podr='V'
-- Set @SSQL = 'Order By Vrednost '
-- If @Podr='P'
-- Set @SSQL = 'Order By Vredn2 '
print @SSQL
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregl_sumar_spremac]'))
drop procedure [dbo].[sp_pregl_sumar_spremac]
Go
CREATE PROCEDURE sp_Pregl_Sumar_Spremac
@Sif_Spremac varchar(5)=null,
@Sifra_Prev char(6)=null,
@Datum_Od smalldatetime=null,
@Datum_Do smalldatetime=null,
@Sifra_OE smallint=null,
@Sif_GrOrg char(6) = null,
@Podred char(1) = 'P'
AS
Declare @SSQL as varchar(8000)
Declare @SSQLUsl as varchar(1000)
SEt @SSQLUsl = ' '
If @Sifra_Oe Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And D.Sifra_Oe = ' + Cast(@Sifra_OE as varchar(6)) + ' '
If @Sif_Spremac Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And D.Spremil = ''' + Cast(@Sif_Spremac as varchar(5)) + ''' '
If @Datum_Od Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And D.Datum_Dok >= ''' + Cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And D.Datum_Dok <= ''' + Cast(@Datum_Do as varchar(30)) + ''' '
If @Sifra_Prev Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And D.Sifra_Prev = ''' + @Sifra_Prev + ''' '
If @Sif_GrOrg Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And D.Sifra_OE In (Select Sifra_OE From SGrOrg Where Sif_GrOrg=''' + @Sif_GrOrg + ''') '
If @Podred = 'S'
begin
Set @SSQL = 'SELECT D.Spremil, SP.ImeSpremac, count (distinct D.DokrID) KolkuDok, Count(S.DokID) KolkuStavki, sum(S.Kolic * (Case When K.Tezina Is Not Null Then K.Tezina Else 0 End)) as NetoTezina
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 TipDok TD on TD.Sifra_Dok = D.Sifra_Dok
inner join OrgEd O on O.Sifra_Oe = D.Sifra_Oe
left outer join Spremac SP on SP.Sif_Spremac = D.Spremil
Where TD.Vl_Izl = ''I'' '
set @SSQL = @SSQL + @SSQLUsl + ' Group BY D.Spremil, SP.ImeSpremac '
set @SSQL = @SSQL + ' Order BY D.Spremil '
end
Else If @Podred = 'P'
begin
Set @SSQL = 'SELECT D.Sifra_Prev As Spremil, P.ImePrev as ImeSpremac, count (distinct D.DokrID) KolkuDok, Count(S.DokID) KolkuStavki, sum(S.Kolic * (Case When K.Tezina Is Not Null Then K.Tezina Else 0 End)) as NetoTezina
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 TipDok TD on TD.Sifra_Dok = D.Sifra_Dok
Inner Join OrgEd O on O.Sifra_Oe = D.Sifra_Oe
left outer join Prevoznik P on P.Sifra_Prev = D.Sifra_Prev
Where TD.Vl_Izl = ''I'' '
set @SSQL = @SSQL + @SSQLUsl + ' Group BY D.Sifra_Prev, P.ImePrev '
set @SSQL = @SSQL + ' Order BY D.Sifra_Prev '
end
print @SSQL
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregl_sumaren_podok]'))
drop procedure [dbo].[sp_pregl_sumaren_podok]
Go
CREATE PROCEDURE sp_Pregl_Sumaren_PoDok
@Sifra_OE Smallint = Null,
@KoiOE Varchar(500) = Null,
@Datum_Dok_Od Smalldatetime = Null,
@Datum_Dok_Do Smalldatetime = Null,
@PoKojDatum Char(1) = 'D',
@Sifra_Oper Varchar(20) = Null,
@MaterDok char(1) = 'D',
@FinDok char(1) = 'D'
AS
If @PoKojDatum = 'V'
If @Datum_Dok_Do Is Not Null
Set @Datum_Dok_Do = @Datum_Dok_Do + 1
Declare @SSQL Varchar(4000)
Declare @SSQLUsl Varchar(4000)
Set @SSQLUsl = ' '
Create Table #Dok
(
MatFin char(1),
Sifra_Oe smallint,
Sifra_Dok smallint,
Vlez_Dolzi decimal(18,6),
Izlez_Pobar decimal(18,6),
KolkuDokVlez integer,
KolkuDokIzlez integer
)
If @Sifra_Oper IS NOT NULL
SET @SSQLUsl=@SSQLUSl+'AND D.Sifra_Oper=''' + @Sifra_Oper + ''' '
If @Sifra_OE Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND D.Sifra_OE=' + Cast(@Sifra_OE As Varchar(6)) + ' '
If @KoiOE Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND D.Sifra_OE In (' + @KoiOE + ') '
If @PoKojDatum = 'V'
Begin
If @Datum_Dok_Od Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND D.Datum_Vnes >= ''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
If @Datum_Dok_Do Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND D.Datum_Vnes < ''' + Cast(@Datum_Dok_Do As Varchar(35)) + ''' '
End
Else
Begin
If @Datum_Dok_Od Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND D.Datum_Dok>=''' + Cast(@Datum_Dok_Od As Varchar(35)) + ''' '
If @Datum_Dok_Do Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND D.Datum_Dok<=''' + Cast(@Datum_Dok_Do As Varchar(35)) + ''' '
End
---------------------------------------------------- M A T E R I J A L N I D O K U M E N T I ----------------------------------------------------------
If @MaterDok = 'D'
Begin
SET @SSQL = 'SELECT ''A'' MatFin, D.Sifra_OE, D.Sifra_Dok,
Sum(Case When D.VlIzl=''V'' Then D.Toc200 Else 0 End) Vlez_Dolzi, 0,
Count(*), 0
FROM DOKR D
Inner Join Orged O On O.Sifra_Oe=D.Sifra_Oe
Inner Join TipDok TD On TD.Sifra_Dok=D.Sifra_Dok
WHERE D.VlIzl = ''V'' '
Set @SSQL = @SSQL + @SSQLUsl
Set @SSQL = @SSQL + 'Group By D.Sifra_OE, D.Sifra_Dok, D.VlIzl '
Insert Into #Dok EXEC(@SSQL)
SET @SSQL = 'SELECT ''A'' MatFin, D.Sifra_OE, D.Sifra_Dok,
0,Sum(Case When D.VlIzl=''I'' Then D.Toc200 Else 0 End) Izlez_Pobar,
0,Count(*)
FROM DOKR D
Inner Join Orged O On O.Sifra_Oe=D.Sifra_Oe
Inner Join TipDok TD On TD.Sifra_Dok=D.Sifra_Dok
WHERE D.VlIzl = ''I'' '
Set @SSQL = @SSQL + @SSQLUsl
Set @SSQL = @SSQL + 'Group By D.Sifra_OE, D.Sifra_Dok, D.VlIzl '
Insert Into #Dok EXEC(@SSQL)
End
---------------------------------------------------- F I N A N S I S K I D O K U M E N T I ----------------------------------------------------------
If @FinDok = 'D'
Begin
SET @SSQL = ' SELECT ''B'', D.Sifra_OE, D.Sifra_Dok,
(Case When OB.KDrugo1 Is Not Null Then OB.KDrugo1 Else K.KDrugo1 End) KDrugo1, K1.Ime_1K Ime_KDrugo1, D.Opis, '
If @KojIzv = 'S' And @OdDokr_ZbDokr <> 'D' -- Od Zbirni dokumenti
Set @SSQL = @SSQL + ' Cast(Dok.Sifra_OE as varchar(6)) + ''-'' + Cast(Dok.Sifra_Dok as varchar(6)) + ''/'' + Cast(Dok.Broj_Dok as varchar(10)) Dokument,
Dok.Toc200 IznosDok, Sum(S.Kolic*A.Tezina) as Tezina, Count(S.DokID) Stavki '
Else
Set @SSQL = @SSQL + ' '' '' as Dokument, D.Toc200 as IznosDok, Null as Tezina, Null Stavki '
Set @SSQL = @SSQL + ', Sum(Case When A.BTezina <> 0 Then S.Kolic*A.BTezina Else 0 End) as BTezina, Sum(S.Kolic/(Case When A.ImaKomerc>0 Then A.ImaKomerc Else 1 End)) Paketi, D.Identif_Br '
If @OdDokr_ZbDokr = 'D'
Set @SSQL = @SSQL + ' From Dokr D '
Else -- If @OdDokr_ZbDokr <> 'D'
Set @SSQL = @SSQL + ' From DokrZb D '
If @KojIzv = 'S' And @OdDokr_ZbDokr <>'D'
Set @SSQL = @SSQL + ' Inner Join DokrZBSta DS On DS.DokrZBId=D.DokrZbId
Inner Join Dokr Dok On Dok.DokrID = DS.DokrID
Inner Join Stavr S On S.DokrID=Dok.DokrID
Inner Join Katart A On A.Sifra_Art = S.Sifra_Art '
ELSE --dod.30.09.09
Set @SSQL = @SSQL + ' Inner Join Stavr S On S.DokrID=D.DokrID
Inner Join Katart A On A.Sifra_Art = S.Sifra_Art '
Set @SSQL = @SSQL + ' Left Outer Join Komint K ON D.Sifra_Kup=K.Sifra_Kup
Left Outer Join KObjekti OB ON D.Sifra_Kup=OB.Sifra_Kup And D.Sifra_Obj=OB.Sifra_Obj
Left Outer Join Grad G On G.Sifra_Grad = (Case When OB.Sifra_Grad Is Not Null Then OB.Sifra_Grad Else K.Sifra_Grad End)
Left Outer Join KDrugo1 K1 On K1.Sifra_1K = (Case When OB.KDrugo1 Is Not Null Then OB.KDrugo1 Else K.KDrugo1 End)
Left Outer Join Prevoznik P On P.Sifra_Prev = D.Sifra_Prev
Left Outer Join Patnici Pat On Pat.Sifra_Pat = D.Sifra_Pat '
Set @SSQL = @SSQL + ' Where 1=1 '
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 In (' + @Sifra_Dok + ') '
If @Broj_Dok_Od Is Not Null
Set @SSQL = @SSQL + ' And D.Broj_Dok >= ' + Cast(@Broj_Dok_Od as varchar(10)) + ' '
If @Broj_Dok_Do Is Not Null
Set @SSQL = @SSQL + ' And D.Broj_Dok <= ' + Cast(@Broj_Dok_Do as varchar(10)) + ' '
If @Sifra_Nal Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Nal = ' + Cast(@Sifra_Nal as varchar(6)) + ' '
If @Broj_Nal Is Not Null
Set @SSQL = @SSQL + ' And D.Broj_Nal = ' + Cast(@Broj_Nal as varchar(10)) + ' '
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_Prev Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Prev = ''' + @Sifra_Prev + ''' '
If @Markiran = 'D'
Set @SSQL = @SSQL + ' And D.Sifra_Prev Is Not Null '
Else If @Markiran = 'N'
Set @SSQL = @SSQL + ' And D.Sifra_Prev Is Null '
If @Sifra_Grad Is Not Null
Set @SSQL = @SSQL + ' And ((OB.Sifra_Grad Is Not Null And OB.Sifra_Grad = ' + Cast(@Sifra_Grad as varchar(6)) + ')
OR ( OB.Sifra_Grad Is Null and K.Sifra_Grad = ' + Cast(@Sifra_Grad as varchar(6)) + ')) '
IF @Sifra_Pat IS NOT NULL
Set @SSQL = @SSQL + ' And D.Sifra_Pat = '+cast(@Sifra_Pat as varchar(5)) +' '
If @Sifra_Kup Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Kup = ''' + @Sifra_Kup + ''' '
If @KojIzv = 'S' And @OdDokr_ZbDokr <>'D'
Set @SSQL = @SSQL + ' Group By D.Datum_Dok, D.Sifra_OE, D.Sifra_Dok, D.Broj_Dok, D.DokrZbID, D.Datum_Vnes,
D.Sifra_Kup, K.ImeKup, D.Sifra_Obj, OB.ImeObj, D.Toc200, (Case When OB.Sifra_Grad Is Not Null Then OB.Sifra_Grad Else K.Sifra_Grad End),
(Case When KO.Sifra_Obj Is Not Null Then KO.SMesto Else Kup.SMesto End) SMesto,
(Case When KO.Sifra_Obj Is Not Null Then KO.KDrugo1 Else Kup.KDrugo1 End) KDrugo1, K1.Ime_1K, K2.Ime_2K
From Akcija A
Inner Join Orged O On O.Sifra_Oe=A.Sifra_Oe
Inner Join Komint Kup On Kup.Sifra_Kup=A.Sifra_Kup
Left Outer Join KObjekti KO On KO.Sifra_Kup=A.Sifra_Kup And KO.Sifra_Obj=A.Sifra_Obj
Left Outer Join #Prodazba P On P.Sifra_Kup = A.Sifra_Kup
And (Case When A.Sifra_Obj Is Not Null Then A.Sifra_Obj Else ''1234'' End) = (Case When P.Sifra_Obj Is Not Null Then P.Sifra_Obj Else ''1234'' End)
And P.Datum = Cast(Cast(Year(A.DatumVreme) as varchar(4))+''-''+Cast(Month(DatumVreme) as varchar(2))+''-''+Cast(Day(DatumVreme) as varchar(2)) as SmallDatetime)
Left Outer Join KDrugo1 K1 On K1.Sifra_1K=(Case When KO.Sifra_Obj Is Not Null Then KO.KDrugo1 Else Kup.KDrugo1 End)
Left Outer Join KDrugo2 K2 On K2.Sifra_2K=(Case When KO.Sifra_Obj Is Not Null Then KO.KDrugo2 Else Kup.KDrugo2 End)
Where 1=1 '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + 'And A.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(6)) + ' '
If @KoiOE Is Not Null
Set @SSQL = @SSQL + ' And 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 A.DatumVreme >= ''' + Cast(@Datum_Od as varchar(35)) + ''' '
If @Datum_Do Is Not Null
Set @SSQL = @SSQL + 'And A.DatumVreme < ''' + Cast(@Datum_Do as varchar(35)) + ''' '
Set @SSQL = @SSQL + ' Order By A.DatumVreme '
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_preglamorgrp]'))
Round(SUM(Kolic*dbo.fn_VratiCena(DokCena, Posn, DanDokCena,'N')*POsn/100),2) FROM Stavr
WHERE Sifra_OE=@Sifra_OE AND Sifra_Dok=@Sifra_Dok AND Datum_Dok>=@Datum_Od AND Datum_Dok<=@Datum_Do
GROUP BY DokrID
Declare @SSQL varchar(2000)
CREATE TABLE #TmpSmetki
(Sifra_Kup char(6),
ZiroSka varchar(40))
INSERT INTO #TmpSmetki (Sifra_Kup) SELECT Distinct Sifra_Kup FROM Dokr WHERE Sifra_OE=@Sifra_OE AND Sifra_Dok=@Sifra_Dok AND Datum_Dok>=@Datum_Od AND Datum_Dok<=@Datum_Do
UPDATE #TmpSmetki SET ZiroSka=B.ZIroSka FROM KBanki B WHERE #TmpSmetki.Sifra_Kup=B.Sifra_Kup
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregled_lpopisart]'))
drop procedure [dbo].[sp_pregled_lpopisart]
Go
CREATE PROCEDURE [dbo].[sp_Pregled_LPopisArt]
@Sifra_OE smallint,
@Datum smalldatetime,
@BrojLista smallint,
@SoCeni char(1),
@ZbirKolic char(1)='N' --Igor 10.02.12
AS
Create Table #TmpPopisKoic
(
Sifra_Art varchar(20),
Cena decimal(18,6)
)
Declare @ImaRPopis char(1)
Declare @Izmenet char(1)
Set @ImaRPopis = 'N'
if @SoCeni = 'D'
BEGIN
SELECT @Izmenet=Izmenet FROM Popis
WHERE Sifra_OE = @Sifra_OE AND Datum = @Datum
If @Izmenet = 'N' Set @ImaRPopis = 'D'
END
IF @SoCeni = 'D' and @ImaRPopis='D'
BEGIN
Insert Into #TmpPopisKoic
Select Distinct(Sifra_Art),Cena
FROM RPopis
Where IDPopis in (SELECT IDPopis FROM Popis WHERE Sifra_OE = @Sifra_OE AND Datum =@Datum)
END
Declare @SSQL varchar(8000)
Set @SSQL = ''
IF @ZbirKolic = 'D'
Set @SSQL = @SSQL + 'SELECT min(L.IDLPopis) as IDLPopis ,L.IDPopis, L.Broj, L.Sifra_Art, SUM(L.Popis) as Popis, '''' as KontrSer , 0 as Sifra_Boja, 0 as Sifra_Velic ,'
SET @SSQLUsl = @SSQLUsl + 'AND Nar.Sifra_Nar In (' + @Sifra_Nar + ') '
If @Sifra_OE Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND Nar.Sifra_OE=' + Cast(@Sifra_OE As Varchar(6)) + ' '
If @KoiOE Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND Nar.Sifra_OE In (' + @KoiOE + ') '
If @Broj_Nar_Od Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND Nar.Broj_Nar>=''' + Cast(@Broj_Nar_Od As Varchar(35)) + ''' '
If @Broj_Nar_Do Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND Nar.Broj_Nar<=''' + Cast(@Broj_Nar_Do As Varchar(35)) + ''' '
If @Datum_Nar_Od Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND Nar.Datum_Nar>=''' + Cast(@Datum_Nar_Od As Varchar(35)) + ''' '
If @Datum_Nar_Do Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND Nar.Datum_Nar<=''' + Cast(@Datum_Nar_Do As Varchar(35)) + ''' '
If @Datum_Dosp_Od Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND DateAdd(Day, Nar.Rok, Nar.Datum_Nar) >=''' + Cast(@Datum_Dosp_Od As Varchar(35)) + ''' '
If @Datum_Dosp_Do Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND DateAdd(Day, Nar.Rok, Nar.Datum_Nar) <=''' + Cast(@Datum_Dosp_Do As Varchar(35)) + ''' '
If @Datum_Vnes_Od Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND Nar.Datum_Vnes>=''' + Cast(@Datum_Vnes_Od As Varchar(35)) + ''' '
If @Datum_Vnes_Do Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND Nar.Datum_Vnes<=''' + Cast(@Datum_Vnes_Do As Varchar(35)) + ''' '
If @Sifra_Kup Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND Nar.Sifra_Kup=''' + Cast(@Sifra_Kup As Varchar(35))+ ''' '
If @Sifra_Obj Is Not Null
SET @SSQLUsl = @SSQLUsl + 'AND Nar.Sifra_Obj = ' + Cast(@Sifra_Obj as varchar(6)) + ' '
If @Sifra_Pat IS NOT NULL
SET @SSQLUsl = @SSQLUsl + ' AND Nar.Sifra_Pat = ' + Cast(@Sifra_Pat as varchar(5)) + ' '
If @GrPat Is Not Null
SET @SSQLUsl = @SSQLUsl + ' AND Nar.Sifra_Pat In (Select Sifra_Pat From SGrPat Where Sif_GrPat = ''' + @GrPat + ''') '
IF @Realiz='D'
SET @SSQLUsl = @SSQLUsl + ' AND (Nar.Realiziran = ''D'' Or SN.Realiziran = ''D'' Or SN.Realiziran = ''P'') '
Else IF @Realiz='N'
SET @SSQLUsl = @SSQLUsl + ' AND (Not (Nar.Realiziran = ''D'') Or (Nar.Realiziran Is Null)) '
Else IF @Realiz='X'
SET @SSQLUsl = @SSQLUsl + ' AND Cast(Nar.Sifra_Oe as char(3)) + Cast(Nar.Sifra_Nar as char(3)) + Cast(Nar.Broj_Nar as varchar(10)) Not In
(Select Cast(Sifra_OeNar as char(3)) + Cast(Sifra_Nar as char(3)) + Cast(Broj_Nar as varchar(10)) From Dokr Where Broj_Nar > 0) And (Nar.Realiziran<>''D'' Or Nar.Realiziran Is Null) '
Else IF @Realiz='P'
SET @SSQLUsl = @SSQLUsl + ' AND (SN.Realiziran <> ''D'' Or SN.Realiziran Is Null)
AND Cast(Nar.Sifra_Oe as char(3)) + Cast(Nar.Sifra_Nar as char(3)) + Cast(Nar.Broj_Nar as varchar(10)) In
(Select Cast(Sifra_OeNar as char(3)) + Cast(Sifra_Nar as char(3)) + Cast(Broj_Nar as varchar(10)) From Dokr Where Broj_Nar > 0) '
-- SET @SSQL = @SSQL + ' AND (NOT (Nar.Realiziran = ''D'' Or SN.Realiziran = ''D'' Or (Nar.Realiziran Is Null Or SN.Realiziran Is Null)) '
IF @Prenesen='D'
SET @SSQLUsl = @SSQLUsl + ' AND Nar.Prenesen = ''D'' '
Else IF @Prenesen='N'
SET @SSQLUsl = @SSQLUsl + ' AND (Nar.Prenesen IS NULL OR Nar.Realiziran <> ''D'') '
If @VlIzl Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND TN.VlIzl=''' + Cast(@VlIzl As Varchar(5))+ ''' '
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 K.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 K.Sifra_Reg In ( ' + @Koi_Regioni + '))) '
End
IF @Ispor = 'D'
SET @SSQLUsl = @SSQLUsl + ' AND NR.Realiziran = ''D'' '
Else IF @Ispor = 'N'
SET @SSQLUsl = @SSQLUsl + ' AND NR.Realiziran Is Null AND NR.NarID IS NOT NULL '
If @PoLokacii='D'
Begin
CREATE TABLE #TmpNarLok
(NarID int,
Lokacija varchar(10),
Iznos decimal(18,2))
SET @SSQL = 'SELECT Nar.NarID, A.Lokacija, SUM(SN.Kolic * (Case Sn.DanDokCena When ''D'' Then SN.DokCena ELSE SN.DokCena *(1+SN.Posn/100) End) * (1-SN.Uces/100)*(1-Nar.Kasa/100))
FROM Naracki Nar Inner Join StaNarac SN On Nar.NarID=SN.NarID
INNER JOIN KatArt A ON SN.Sifra_Art=A.Sifra_Art '
IF @Ispor <> 'S'
SET @SSQL = @SSQL + ' LEFT OUTER JOIN NarRealDok NR ON NR.NarID = Nar.NarID '
SET @SSQL = @SSQL + @SSQLUsl + 'GROUP BY Nar.NarID, A.Lokacija '
INSERT INTO #TmpNarLok EXEC (@SSQL)
End
SET @SSQL = 'SELECT Nar.NarID, Nar.Sifra_OE, Nar.Sifra_Nar, Nar.Broj_Nar, Nar.Identif_Br,
SN.Uces, SN.DanDokCena, SN.DanMagCena, SN.POsn, SN.Realiziran, SN.Realiz_Kolic, Null as Datum_Dok,
K.Tezina, K.Btezina, K.ImaKomerc, SN.Rbr, '
If @DajTekCena = 'D'
Set @SSQL = @SSQL + ' S.Cena, S.DanCena '
Else
Set @SSQL = @SSQL + ' Null Cena, Null DanCena '
Set @SSQL = @SSQL + ', Nar.Sifra_Pat, SN.ImeMat, SN.KontrSer, KS.ImeKatStatus
FROM Naracki Nar
INNER JOIN StaNarac SN ON Nar.NarID=SN.NarID
LEFT OUTER JOIN Katstatus KS ON SN.Sifra_KatStatus = KS.Sifra_KatStatus
INNER JOIN Katart K ON SN.Sifra_Art=K.Sifra_Art '
If @DajTekCena = 'D'
Set @SSQL = @SSQL + ' INNER JOIN Soart S ON S.Sifra_Oe=SN.Sifra_Oe And S.Sifra_Art=SN.Sifra_Art '
If @VlIzl Is Not Null
Set @SSQL = @SSQL + ' INNER JOIN TipNarac TN ON Nar.Sifra_Nar=TN.Sifra_Nar '
If @Koi_Gradovi Is Not Null Or @Koi_Regioni Is Not Null
Set @SSQL = @SSQL + ' Left Outer JOIN Komint Kup ON Nar.Sifra_Kup=Kup.Sifra_Kup
Left Outer Join KObjekti KO On KO.Sifra_Kup=Nar.Sifra_Kup And KO.Sifra_Obj=Nar.Sifra_Obj '
IF @Ispor <> 'S'
SET @SSQL = @SSQL + ' LEFT OUTER JOIN NarRealDok NR ON NR.NarID = Nar.NarID '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + ' INNER JOIN Podgrupi P On P.Sifra_Podg = K.Sifra_Podg '
SET @SSQL = @SSQL + ' WHERE 1=1 '
If @Sifra_Nar Is NOT NULL
SET @SSQL = @SSQL + 'AND Nar.Sifra_Nar In (' + @Sifra_Nar + ') '
If @Sifra_OE Is NOT Null
SET @SSQL = @SSQL + 'AND Nar.Sifra_OE=' + Cast(@Sifra_OE As Varchar(6)) + ' '
If @KoiOE Is Not Null
SET @SSQL = @SSQL + 'AND Nar.Sifra_OE In (' + @KoiOE + ') '
If @Broj_Nar_Od Is NOT Null
SET @SSQL = @SSQL + 'AND Nar.Broj_Nar>=''' + Cast(@Broj_Nar_Od As Varchar(35)) + ''' '
If @Broj_Nar_Do Is NOT Null
SET @SSQL = @SSQL + 'AND Nar.Broj_Nar<=''' + Cast(@Broj_Nar_Do As Varchar(35)) + ''' '
If @Datum_Nar_Od Is NOT Null
SET @SSQL = @SSQL + 'AND Nar.Datum_Nar>=''' + Cast(@Datum_Nar_Od As Varchar(35)) + ''' '
If @Datum_Nar_Do Is NOT Null
SET @SSQL = @SSQL + 'AND Nar.Datum_Nar<=''' + Cast(@Datum_Nar_Do As Varchar(35)) + ''' '
If @Datum_Dosp_Od Is NOT Null
SET @SSQL = @SSQL + 'AND DateAdd(Day, Nar.Rok, Nar.Datum_Nar) >=''' + Cast(@Datum_Dosp_Od As Varchar(35)) + ''' '
If @Datum_Dosp_Do Is NOT Null
SET @SSQL = @SSQL + 'AND DateAdd(Day, Nar.Rok, Nar.Datum_Nar) <=''' + Cast(@Datum_Dosp_Do As Varchar(35)) + ''' '
If @Sifra_Kup Is NOT Null
SET @SSQL = @SSQL + 'AND Nar.Sifra_Kup=''' + Cast(@Sifra_Kup As Varchar(35))+ ''' '
If @Sifra_Obj Is Not Null
SET @SSQL = @SSQL + 'AND Nar.Sifra_Obj = ' + Cast(@Sifra_Obj as varchar(6)) + ' '
If @Sifra_Pat IS NOT NULL
SET @SSQL = @SSQL + ' AND Nar.Sifra_Pat = ' + Cast(@Sifra_Pat as varchar(5)) + ' '
If @GrPat Is Not Null
SET @SSQL = @SSQL + ' AND Nar.Sifra_Pat In (Select Sifra_Pat From SGrPat Where Sif_GrPat = ''' + @GrPat + ''') '
If @VlIzl Is NOT Null
SET @SSQL = @SSQL + 'AND TN.VlIzl=''' + Cast(@VlIzl As Varchar(5))+ ''' '
IF @Realiz='D'
SET @SSQL = @SSQL + ' AND (Nar.Realiziran = ''D'' Or SN.Realiziran = ''D'' Or SN.Realiziran = ''P'') '
Else IF @Realiz='N' --I Dodadeno 19.04.2004 za PKB I--
SET @SSQL = @SSQL + ' AND (SN.Realiziran <> ''D'' Or SN.Realiziran Is Null) ' --(NOT (Nar.Realiziran = ''D'' Or SN.Realiziran = ''D'' Or Nar.Realiziran = ''P'' Or SN.Realiziran = ''P'')
-- OR (Nar.Realiziran Is Null Or SN.Realiziran Is Null))'
-- Else IF @Realiz='X'
-- SET @SSQL = @SSQL + ' AND Cast(Nar.Sifra_Oe as char(3)) + Cast(Nar.Sifra_Nar as char(3)) + Cast(Nar.Broj_Nar as varchar(10)) Not In
-- (Select Cast(Sifra_OeNar as char(3)) + Cast(Sifra_Nar as char(3)) + Cast(Broj_Nar as varchar(10)) From Dokr Where Broj_Nar > 0) And (Nar.Realiziran<>''D'' Or Nar.Realiziran Is Null) '
Else IF @Realiz='X'
SET @SSQL = @SSQL + ' AND Cast(Nar.Sifra_Oe as char(3)) + Cast(Nar.Sifra_Nar as char(3)) + Cast(Nar.Broj_Nar as varchar(10)) + SN.Sifra_Art Not In
(Select Cast(D.Sifra_OeNar as char(3)) + Cast(D.Sifra_Nar as char(3)) + Cast(D.Broj_Nar as varchar(10)) + S.Sifra_Art
From Dokr D
Inner Join Stavr S On S.DokrID=D.DokrID
Where D.Broj_Nar > 0) And (Nar.Realiziran<>''D'' Or Nar.Realiziran Is Null) '
IF @PoRealKolic='S'
SET @SSQL = @SSQL + ' AND (SN.Realiz_Kolic is NULL OR SN.Realiz_Kolic <> SN.Kolic) '
Else IF @PoRealKolic='E'
SET @SSQL = @SSQL + ' AND (SN.Realiz_Kolic is not NULL AND SN.Realiz_Kolic = SN.Kolic) '
Else IF @PoRealKolic='P'
SET @SSQL = @SSQL + ' AND (SN.Realiz_Kolic is not NULL AND SN.Realiz_Kolic > SN.Kolic) '
Else IF @PoRealKolic='M'
SET @SSQL = @SSQL + ' AND (SN.Realiz_Kolic is not NULL AND SN.Realiz_Kolic < SN.Kolic) '
IF @Prenesen='D'
SET @SSQL = @SSQL + ' AND Nar.Prenesen = ''D'' '
Else IF @Prenesen='N'
SET @SSQL = @SSQL + ' AND (Nar.Prenesen IS NULL OR Nar.Realiziran <> ''D'') '
SET @SSQLUsl = @SSQLUsl + 'AND Nar.Sifra_Nar In (' + @Sifra_Nar + ') '
If @Sifra_OE Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND Nar.Sifra_OE=' + Cast(@Sifra_OE As Varchar(6)) + ' '
If @KoiOE Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND Nar.Sifra_OE In (' + @KoiOE + ') '
If @Broj_Nar_Od Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND Nar.Broj_Nar>=''' + Cast(@Broj_Nar_Od As Varchar(35)) + ''' '
If @Broj_Nar_Do Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND Nar.Broj_Nar<=''' + Cast(@Broj_Nar_Do As Varchar(35)) + ''' '
If @Datum_Nar_Od Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND Nar.Datum_Nar>=''' + Cast(@Datum_Nar_Od As Varchar(35)) + ''' '
If @Datum_Nar_Do Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND Nar.Datum_Nar<=''' + Cast(@Datum_Nar_Do As Varchar(35)) + ''' '
If @Datum_Dosp_Od Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND DateAdd(Day, Nar.Rok, Nar.Datum_Nar) >=''' + Cast(@Datum_Dosp_Od As Varchar(35)) + ''' '
If @Datum_Dosp_Do Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND DateAdd(Day, Nar.Rok, Nar.Datum_Nar) <=''' + Cast(@Datum_Dosp_Do As Varchar(35)) + ''' '
If @Datum_Vnes_Od Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND Nar.Datum_Vnes>=''' + Cast(@Datum_Vnes_Od As Varchar(35)) + ''' '
If @Datum_Vnes_Do Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND Nar.Datum_Vnes<=''' + Cast(@Datum_Vnes_Do As Varchar(35)) + ''' '
If @Sifra_Kup Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND Nar.Sifra_Kup=''' + Cast(@Sifra_Kup As Varchar(35))+ ''' '
If @Sifra_Obj Is Not Null
SET @SSQLUsl = @SSQLUsl + 'AND Nar.Sifra_Obj = ' + Cast(@Sifra_Obj as varchar(6)) + ' '
If @Sifra_Pat IS NOT NULL
SET @SSQLUsl = @SSQLUsl + ' AND Nar.Sifra_Pat = ' + Cast(@Sifra_Pat as varchar(5)) + ' '
If @GrPat Is Not Null
SET @SSQLUsl = @SSQLUsl + ' AND Nar.Sifra_Pat In (Select Sifra_Pat From SGrPat Where Sif_GrPat = ''' + @GrPat + ''') '
IF @Realiz='D'
SET @SSQLUsl = @SSQLUsl + ' AND (Nar.Realiziran = ''D'' Or SN.Realiziran = ''D'' Or SN.Realiziran = ''P'') '
Else IF @Realiz='N'
SET @SSQLUsl = @SSQLUsl + ' AND (Not (Nar.Realiziran = ''D'') Or (Nar.Realiziran Is Null)) '
Else IF @Realiz='X'
SET @SSQLUsl = @SSQLUsl + ' AND Cast(Nar.Sifra_Oe as char(3)) + Cast(Nar.Sifra_Nar as char(3)) + Cast(Nar.Broj_Nar as varchar(10)) Not In
(Select Cast(Sifra_OeNar as char(3)) + Cast(Sifra_Nar as char(3)) + Cast(Broj_Nar as varchar(10)) From Dokr Where Broj_Nar > 0) And (Nar.Realiziran<>''D'' Or Nar.Realiziran Is Null) '
IF @Prenesen='D'
SET @SSQLUsl = @SSQLUsl + ' AND Nar.Prenesen = ''D'' '
Else IF @Prenesen='N'
SET @SSQLUsl = @SSQLUsl + ' AND (Nar.Prenesen IS NULL OR Nar.Realiziran <> ''D'') '
If @VlIzl Is NOT Null
SET @SSQLUsl = @SSQLUsl + 'AND TN.VlIzl=''' + Cast(@VlIzl As Varchar(5))+ ''' '
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 K.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 K.Sifra_Reg In ( ' + @Koi_Regioni + '))) '
End
Create Table #Rez
(
NarID int,
Sifra_Oe smallint,
Sifra_Nar smallint,
Broj_Nar int,
Datum_Nar smalldatetime,
Rok smallint,
Sifra_Kup char(6),
Sifra_Obj smallint,
Sifra_Div smallint,
IznosNar decimal(18,2),
LimitDiv decimal(18,2),
LimitVk decimal(18,2),
SaldoDiv decimal(18,2),
SaldoVk decimal(18,2),
SaldoVkDosp decimal(18,2),
DaliPoDiv char(1),
DaliDocni char(1),
KolkuDenaDocni smallint,
KojaDivDocni smallint
)
-- Koja divizija se narackite
Create Table #NarDiv
(
NarID int,
Sifra_Div smallint,
Sifra_Kup char(6)
)
Set @SSQL = ' Select Nar.NarID, A.Sifra_Div, Nar.Sifra_Kup
From Naracki Nar
Inner Join StaNarac SN On Nar.NarID=SN.NarID
Inner Join Katart A On A.Sifra_Art = SN.Sifra_Art
LEFT OUTER JOIN Komint K ON Nar.Sifra_Kup=K.Sifra_Kup
Left Outer Join KObjekti KO ON Nar.Sifra_obj=KO.Sifra_obj and Nar.Sifra_kup=KO.Sifra_kup
INNER JOIN TipNarac TN ON Nar.Sifra_Nar=TN.Sifra_Nar
SET @SSQL = 'SELECT SN.Sifra_Art, SUM(SN.Kolic-SN.Realiz_Kolic) FROM StaNarac SN
INNER JOIN Naracki Nar ON Nar.NarID=SN.NarID WHERE SN.Kolic > SN.Realiz_Kolic '
If @KoiSifNar Is NOT NULL
SET @SSQL = @SSQL + 'AND Nar.Sifra_Nar IN (Select Sifra_nar From SgrDok where Sif_grDok =''' + @KoiSifNar +''') '
If @KoiOE Is Not Null
SET @SSQL = @SSQL + 'AND Nar.Sifra_OE In (Select Sifra_Oe from SgrOrg where Sif_grOrg=''' + @KoiOE + ''') '
If @Datum_Nar_Od Is NOT Null
SET @SSQL = @SSQL + 'AND Nar.Datum_Nar>=''' + Cast(@Datum_Nar_Od As Varchar(35)) + ''' '
If @Datum_Nar_Do Is NOT Null
SET @SSQL = @SSQL + 'AND Nar.Datum_Nar<=''' + Cast(@Datum_Nar_Do As Varchar(35)) + ''' '
/* IF @Realiz='D'
SET @SSQL = @SSQL + ' AND (Nar.Realiziran = ''D'' Or SN.Realiziran = ''D'' Or SN.Realiziran = ''P'') '
Else IF @Realiz='N' --I Dodadeno 19.04.2004 za PKB I--
SET @SSQL = @SSQL + ' AND (SN.Realiziran <> ''D'' Or Sn.Realiziran Is Null) ' --(NOT (Nar.Realiziran = ''D'' Or SN.Realiziran = ''D'' Or Nar.Realiziran = ''P'' Or SN.Realiziran = ''P'')
-- OR (Nar.Realiziran Is Null Or SN.Realiziran Is Null))'
Else IF @Realiz='X'
SET @SSQL = @SSQL + ' AND Cast(Nar.Sifra_Oe as char(3)) + Cast(Nar.Sifra_Nar as char(3)) + Cast(Nar.Broj_Nar as varchar(10)) Not In
(Select Cast(Sifra_OeNar as char(3)) + Cast(Sifra_Nar as char(3)) + Cast(Broj_Nar as varchar(10)) From Dokr Where Broj_Nar > 0) And (Nar.Realiziran<>''D'' Or Nar.Realiziran Is Null) '
*/
Set @SSQL = @SSQL + 'GROUP BY SN.Sifra_Art '
Insert Into #Nar (Sifra_Art, KOlicNar) EXEC(@SSQL)
Create Table #Zal
(Sifra_Art varchar(20),
KolicZal decimal(18,6),
Sifra_KatStatus smallint )
SET @SSQL='SELECT S.Sifra_Art, S.Sifra_KatStatus, SUM(S.Sostojba) FROM WHMSost S
INNER JOIN #Nar N ON N.Sifra_Art=S.Sifra_Art
WHERE S.Sifra_OE IN ('+@Sifra_OEZal+')
GROUP BY S.Sifra_Art, S.Sifra_KatStatus'
INSERT INTO #Zal (Sifra_Art, Sifra_KatStatus, KolicZal) EXEC(@SSQL)
UPDATE #Nar SET KolicZal=Z.KolicZal, Sifra_KatStatus=Z.Sifra_KatStatus FROM #Zal Z
WHERE #Nar.Sifra_Art=Z.Sifra_Art AND Z.Sifra_KatStatus=1
INSERT INTO #Nar (Sifra_Art, KolicNar, KolicZal, Sifra_KatStatus)
SELECT Sifra_Art, 0, KolicZal, Sifra_KatStatus FROM #Zal WHERE Sifra_KatStatus>1
Set @SSQL = @SSQL +' 0 as Cena, 0 as DanCena, R.Posn, R.Sifra_Tar
FROM RPopis R
LEFT OUTER JOIN #Ceni C On C.Sifra_Art=R.Sifra_Art '
If @KojaCena = 'N' Or @KojaCena = 'P'
Set @SSQL = @SSQL + ' Inner Join Popis P On P.IDPopis=R.IDPopis
Left Outer Join Soart S On S.Sifra_art=R.Sifra_art and S.Sifra_Oe=P.Sifra_Oe '
-- If @Sifra_Podg Is Not Null Or @Sifra_Drg Is Not Null Or @Sifra_Gr Is Not Null Or @Lokacija Is Not Null
Set @SSQL = @SSQL + ' Inner Join Katart K On K.Sifra_art = R.Sifra_art
Inner Join Podgrupi PG On PG.Sifra_Podg = K.Sifra_Podg '
Set @SSQL=@SSQL + ' WHERE R.IDPopis IN (SELECT IDPopis FROM Popis
WHERE Sifra_OE In (' + @Grupa_OrgEd + ') AND Datum >= ''' + Cast(@Datum as varchar(30)) + ''' ' + ' AND Datum <= '''+ Cast(@Datum_Do as varchar(30)) + ''' ) '
If @Sifra_Art_Od Is Not Null
Set @SSQL = @SSQL + ' And R.Sifra_art >= ''' + @Sifra_art_Od + ''' '
If @Sifra_Art_Do Is Not Null
Set @SSQL = @SSQL + ' And R.Sifra_art <= ''' + @Sifra_art_Do + ''' '
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 PG.Sifra_Gr = ''' + @Sifra_Gr + ''' '
If @Sifra_Drg Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_Drg=' + Cast(@Sifra_Drg As Varchar(6)) + ' '
If @Lokacija Is Not Null
Begin
If @KFLokacija = 'D'
Set @SSQL = @SSQL + ' And (K.Lokacija Is Null Or K.Lokacija<>'''+lTrim(rtrim(@Lokacija))+''') '
Else
Set @SSQL = @SSQL + ' AND (K.Lokacija='''+lTrim(rtrim(@Lokacija))+''') '
End
If @Dobav Is Not Null
Begin
If @KFDobav = 'D'
Set @SSQL = @SSQL + ' And (K.Kto Not In ( ' + @Dobav + ') Or K.Kto Is Null) '
Else
Set @SSQL = @SSQL + ' And (K.Kto In ( ' + @Dobav + ')) '
End
-------- Komentirano 04.01.2006 gk
/* if @KusokVisok = 'K'
Set @SSQL = @SSQL + ' AND R.Popis < R.KnigSost '
if @KusokVisok = 'V'
Set @SSQL = @SSQL + ' AND R.Popis > R.KnigSost '
if @KusokVisok = 'T'
Set @SSQL = @SSQL + ' AND R.Popis = R.KnigSost '
if @KusokVisok = 'KV'
Set @SSQL = @SSQL + ' AND R.Popis <> R.KnigSost '
if @KusokVisok = 'KT'
Set @SSQL = @SSQL + ' AND (R.Popis < R.KnigSost OR R.Popis = R.KnigSost) '
if @KusokVisok = 'VT'
Set @SSQL = @SSQL + ' AND (R.Popis > R.KnigSost OR R.Popis = R.KnigSost) '
*/ Set @SSQL=@SSQL + ' Group By R.Sifra_art, R.KontrSer, R.Sifra_Boja, R.Sifra_Velic, R.Posn, R.Sifra_Tar '
if @KusokVisok = 'K'
Set @SSQL = @SSQL + ' Having Sum(R.Popis) < Sum(R.KnigSost) '
if @KusokVisok = 'V'
Set @SSQL = @SSQL + ' Having Sum(R.Popis) > Sum(R.KnigSost) '
if @KusokVisok = 'T'
Set @SSQL = @SSQL + ' Having Sum(R.Popis) = Sum(R.KnigSost) '
if @KusokVisok = 'KV'
Set @SSQL = @SSQL + ' Having Sum(R.Popis) <> Sum(R.KnigSost) '
if @KusokVisok = 'KT'
Set @SSQL = @SSQL + ' Having Sum(R.Popis) <= Sum(R.KnigSost) '
if @KusokVisok = 'VT'
Set @SSQL = @SSQL + ' Having Sum(R.Popis) >= Sum(R.KnigSost) '
-- Print @SSQL
Insert Into #Popis Exec (@SSQL)
Update #Popis
Set Cena=dbo.fn_VratiCenaPopis(Popis, Vrednost, KnigSost, VrednostKnig), DanCena=@CenaSoDanok
Set @SSQL='Select P.*, A.Imeart, A.EdMera, A.Sifra_Podg, PG.Ime_Podg, PG.Sifra_Gr, G.Ime_Gr, '
If @SoZbBrend = 'D'
Set @SSQL = @SSQL + ' B.Sifra_Drg1, BB.Ime_Drg1, A.ALt_Sifra '
Else
Set @SSQL = @SSQL + ' Null as Sifra_Drg1, Null as Ime_Drg1, A.Alt_Sifra '
Set @SSQL = @SSQL + ' From #Popis P Inner Join Katart A On A.Sifra_art = P.Sifra_art
Inner Join Podgrupi PG On PG.Sifra_Podg = A.Sifra_Podg
Inner Join Grupi G On G.Sifra_Gr = PG.Sifra_Gr '
If @SoZbBrend = 'D'
Set @SSQL = @SSQL + ' Left Outer Join DrgPodel B On B.Sifra_Drg = A.Sifra_Drg
Left Outer Join DrgPodel1 BB On BB.Sifra_Drg1 = B.Sifra_Drg1 '
End
Else
Begin
--Set @SSQL = ' SELECT R.*, A.ImeArt, (R.Popis*R.Cena) as Vrednost, (R.KnigSost*R.Cena) as VrednostKnig FROM RPopis R
Set @SSQL = @SSQL + ' And K.Sifra_Oe = ' + cast(@Sifra_Oe as varchar(6)) + ' '
If @Datum_Od Is Not Null
Set @SSQL = @SSQL + ' And K.Datum_Dok >= ''' + cast(@Datum_Od as varchar(30)) + ''' '
If @Datum_Do Is Not Null
Set @SSQL = @SSQL + ' And K.Datum_Dok <= ''' + cast(@Datum_Do as varchar(30)) + ''' '
If @InterenBr_Od Is Not Null
Set @SSQL = @SSQL + ' And K.InterenBr >= ' + cast(@InterenBr_Od as varchar(10)) + ' '
If @InterenBr_Do Is Not Null
Set @SSQL = @SSQL + ' And K.InterenBr <= ' + cast(@InterenBr_Do as varchar(10)) + ' '
print @SSQL
Exec (@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregledkobjekti]'))
drop procedure [dbo].[sp_pregledkobjekti]
Go
CREATE PROCEDURE sp_PregledKObjekti
@Sifra_Kup char(6)
AS
Select K.Sifra_Kup, K.ImeKup, KO.*
From KObjekti KO
Inner Join Komint K On KO.Sifra_Kup=K.Sifra_Kup
Where KO.Sifra_Kup = @Sifra_Kup
Order By KO.Sifra_Kup, KO.Sifra_Obj
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregledkomint]'))
drop procedure [dbo].[sp_pregledkomint]
Go
CREATE PROCEDURE [dbo].[sp_PregledKomint]
@Komint_Od Varchar(10),
@Komint_Do Varchar(10),
@Podelba1 Smallint= Null,
@Podelba2 Smallint= Null,
@Podelba3 Smallint = Null,
@Podelba4 Smallint = Null,
@Podelba5 Smallint = Null,
@Podelba6 Smallint = Null,
@Podelba7 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,
@Grad Smallint= Null,
@Podred Char(1),
@SoPromet Char(1) = Null, --D so promet
@Promet_Datum_Od Smalldatetime = Null,
@Patnik Smallint = Null,
@Patnik2 Smallint = Null,
@TipKup varchar(11)=Null,
@KojaCena char(1) = Null,
@Sifra_reg smallint = Null,
@Sifra_Nivo Char(2) = Null,
@Aktiven Char(1) = Null,
@MozeIsporaka Char(1) = Null,
@PoObjekti char(1) = 'N',
@Patnik_OdKomintPat char(1)='N',
@Sifra_VPJ smallint = Null,
@PovekeBanki char(1) = Null,
@DatumIzm_Od smalldatetime = NULL,
@DatumIzm_Do smalldatetime = NULL
AS
Declare @SSQL Varchar(4000)
Declare @SSQLUsl Varchar(4000)
Declare @SSQLAkt Varchar(4000)
Set @SSQLUsl = ' '
Set @SSQLAkt = ' '
Create Table #Komint
(
Sifra_Kup char(6),
ImeKup nvarchar(40),
ImeKup2 nvarchar(60),
Adresa nvarchar(40),
Adresa2 nvarchar(40),
SMesto nvarchar(20),
Posta nchar(10),
Zemja nvarchar(20),
ImaObj char(1),
IspAdresa varchar(40),
IspAdresa2 varchar(40),
IspMesto varchar(20),
IspPosta char(5),
IspZemja varchar(20),
Telefon varchar(20),
Tel1 varchar(20),
Tel2 varchar(20),
TelMobil varchar(20),
Fax varchar(20),
Telex varchar(20),
EMail varchar(40),
AdrWeb varchar(30),
Sopstvenik varchar(30),
LK varchar(13),
Sopst_Mat varchar(13),
Danocen char(15),
Ziro varchar(35),
Ziro2 varchar(35),
Banka varchar(30),
Banka2 varchar(30),
Sifra_Ban char(6),
Sifra_Ban2 char(6),
BRIZJAVA varchar(100),
KONTAKT varchar(30),
SkrOznaka varchar(10),
Sifra_Pat smallint,
Sifra_Pat2 smallint,
Sifra_Grad smallint,
TipKup varchar(11),
Sifra_reg smallint,
Sifra_Nivo char(2),
Sifra_Tip smallint,
KDrugo1 smallint,
KDrugo2 smallint,
KDrugo3 smallint,
KDrugo4 smallint,
KDrugo5 smallint,
KDrugo6 smallint,
KDrugo7 smallint,
Uces decimal(6,2),
KojaSmetka char(1),
Rok_Dosp smallint,
Kasa decimal(6,2),
KojaCena char(1),
BrPoseti smallint,
DirDistr char(1),
ZemaOd varchar(15),
Zabeleska varchar(30),
Aktiven char(1),
BrProdMesta smallint,
BrAktProdMesta smallint,
DodadenNa smalldatetime,
DodadenOd varchar(30),
IzmenetNa smalldatetime,
IzmenetOd varchar(30),
ImaBanka char(1),
Alt_ImeKup nvarchar(40),
Alt_Adresa nvarchar(40),
DogovorBroj varchar(40),
MozeIsporaka char(1),
Garancija varchar(30),
Propagiraj char(1),
MatBr varchar(20),
Sopst_Adr varchar(40),
Sopst_Mesto varchar(20),
Sifra_Obj smallint,
ImeObj char(40),
AktivenObj char(1),
Sifra_PatObj smallint,
Limit_Dolzi decimal(18,6),
Aneks1 varchar(100),
Aneks2 varchar(100),
m2 smallint,
Objm2 smallint,
Priv_Lice char(1),
God_Rabat decimal(6,2),
Spec_Rabat decimal(6,2),
EMail2 varchar(40),
EMail3 varchar(40),
Sifra_VPJ smallint,
KEMail2 varchar(40),
KEMail3 varchar(40),
Datum_Kom_Poc smalldatetime,
Datum_Kom_Kr smalldatetime,
Sifra_Kom_Man smallint,
Sifra_Kom_Ref smallint,
TipCenaDatum char(1),
Sifra_Kup_Sablon char(6)
)
If @PoObjekti = 'D'
Begin
Set @SSQL = 'Select Kup.Sifra_Kup, Kup.ImeKup, Kup.ImeKup2, KO.Adresa, KO.Adresa2, KO.SMesto, KO.Posta, KO.Zemja, Null as ImaObj, Null as IspAdresa, Null as IspAdresa2,
Null as IspMesto, Null as IspPosta, Null as IspZemja, KO.Telefon, KO.Tel1, KO.Tel2, KO.TelMobil, KO.Fax, KO.Telex, KO.EMail, Null as AdrWeb, Null as Sopstvenik,
Inner Join KObjekti KO On KO.Sifra_Kup=Kup.Sifra_Kup '
IF @Patnik_OdKomintPat = 'D' AND @Patnik IS NOT NULL
Set @SSQL = @SSQL + 'INNER Join KomintPat KP On KP.Sifra_Kup=KO.Sifra_Kup AND KP.Sifra_Obj=KO.Sifra_Obj AND KP.Sifra_Pat= '+cast(@Patnik as varchar(5))+' '
Null as Sifra_Obj, Null as ImeObj, Null as Aktiven, Null as Sifra_Pat, Kup.Limit_Dolzi, Kup.Aneks1, Kup.Aneks2, Kup.m2, Null as Objm2, Kup.Priv_Lice, Kup.God_Rabat, Kup.Spec_Rabat, Kup.EMail2, Kup.EMail3,
IF @Patnik_OdKomintPat = 'D' AND @Patnik IS NOT NULL
Set @SSQL = @SSQL + 'INNER Join KomintPat KP On KP.Sifra_Kup=Kup.Sifra_Kup AND KP.Sifra_Obj IS NULL AND KP.Sifra_Pat= '+cast(@Patnik as varchar(5))+' '
Null as Sifra_Obj, Null as ImeObj, Null as AktivenObj, Null as Sifra_PatObj, Kup.Limit_Dolzi, Kup.Aneks1, Kup.Aneks2, Kup.m2, Null as Objm2, Kup.Priv_Lice, Kup.God_Rabat, Kup.Spec_Rabat, Kup.EMail2, Kup.EMail3,
Set @SSQL = @SSQL + ' And KP.Sifra_Pat = ' + Cast(@Patnik As Varchar(6)) + ' '
Set @SSQL = @SSQL + 'Order By KP.Sifra_Kup, KP.Sifra_Obj '
print (@SSQL)
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregledkorisnici]'))
drop procedure [dbo].[sp_pregledkorisnici]
Go
CREATE PROCEDURE sp_PregledKorisnici
@Sifra_Oe smallint,
@KoiOe char(6)=NULL,
@Sifra_Kup char(6)=NULL,
@Aktiven char(1)=NULL,
@Podred char(1)='S',
@Sifra_TipKartKor smallint = Null,
@Sifra_Kor_Od varchar(20) = Null,
@Sifra_Kor_Do varchar(20) = Null,
@Dat_Zacl_Od smalldatetime = Null,
@Dat_Zacl_Do smalldatetime = Null,
@KorSoPromet char(1) = 'S', -- S - Site, P - So Promet, N - Bez Promet
@Dat_Promet_Od smalldatetime = Null,
@Dat_Promet_Do smalldatetime = Null,
@Den_Raganje_Od smallint = Null,
@Den_Raganje_Do smallint = Null,
@Mesec_Raganje_Od smallint = Null,
@Mesec_Raganje_Do smallint = Null,
@Promet_Od decimal(18,6) = Null,
@Promet_Do decimal(18,6) = Null
AS
Declare @SSQL as varchar(8000)
Declare @SSQLUsl as varchar(8000)
Set @SSQLUsl = ' '
If @Sifra_Oe Is Not Null
Set @SSQLUsl = @SSQLUsl + ' and K.Sifra_Oe = ' + cast(@Sifra_Oe as varchar(6)) + ' '
If @KoiOE Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And K.Sifra_OE IN (Select G.Sifra_Oe from SGrOrg G where G.sif_GrOrg = ''' + @KoiOe + ''') '
-- If @Sifra_Kup Is Not Null -- go smenavme sekogass da gleda od Prometot
-- Set @SSQLUsl = @SSQLUsl + ' And K.Sifra_Kup = ''' + @Sifra_Kup + ''' ' -- ako korisnikot ja smeni firmata
-- If @Sifra_Kup Is Not Null
-- Set @SSQLUsl = @SSQLUsl + ' And K.Sifra_Kup = ''' + @Sifra_Kup + ''' '
If @Aktiven Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Aktiven = ''' + @Aktiven + ''' '
If @Sifra_TipKartKor Is Not Null
Set @SSQLUsl = @SSQLUsl + ' and K.Sifra_TipKartKor = ' + cast(@Sifra_TipKartKor as varchar(6)) + ' '
If @Sifra_Kor_Od Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Sifra_Kor >= ''' + @Sifra_Kor_Od + ''' '
If @Sifra_Kor_Do Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Sifra_Kor <= ''' + @Sifra_Kor_Do + ''' '
If @Dat_Zacl_Od Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.DodadenNa >= ''' + Cast(@Dat_Zacl_Od as varchar(30)) + ''' '
If @Dat_Zacl_Do Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.DodadenNa < ''' + Cast(@Dat_Zacl_Do + 1 as varchar(30)) + ''' '
If @Den_Raganje_Od Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And IsNumeric(Substring(K.LK,1,2))=1 And (Case When IsNumeric(Substring(K.LK,1,2))=1 Then Cast(Substring(K.LK,1,2) as smallint) Else 0 End) >= ' + Cast(@Den_Raganje_Od as varchar(2)) + ' '
If @Den_Raganje_Do Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And IsNumeric(Substring(K.LK,1,2))=1 And (Case When IsNumeric(Substring(K.LK,1,2))=1 Then Cast(Substring(K.LK,1,2) as smallint) Else 32 End) <= ' + Cast(@Den_Raganje_Do as varchar(2)) + ' '
If @Mesec_Raganje_Od Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And IsNumeric(Substring(K.LK,1,2))=1 And (Case When IsNumeric(Substring(K.LK,3,2))=1 Then Cast(Substring(K.LK,3,2) as smallint) Else 0 End) >= ' + Cast(@Mesec_Raganje_Od as varchar(2)) + ' '
If @Mesec_Raganje_Do Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And IsNumeric(Substring(K.LK,1,2))=1 And (Case When IsNumeric(Substring(K.LK,3,2))=1 Then Cast(Substring(K.LK,3,2) as smallint) Else 13 End) <= ' + Cast(@Mesec_Raganje_Do as varchar(2)) + ' '
If @KorSoPromet In ('P', 'N') Or @Dat_Promet_Od Is Not Null Or @Dat_Promet_Do Is Not Null Or @Promet_Od Is Not Null Or @Promet_Do Is Not Null
Begin
Create Table #KorPromet
(
Sifra_Kor varchar(20),
Promet decimal(18,6)
)
Set @SSQL = 'Select P.Sifra_Kor, Sum(Dolzi)
From KartProm P
Inner Join KartKor K On K.Sifra_Kor=P.Sifra_Kor
Where 1=1 '
If @Dat_Promet_Od Is Not Null
Set @SSQL = @SSQL + ' And P.Datum_Ska >= ''' + Cast(@Dat_Promet_Od as varchar(30)) + ''' '
If @Dat_Promet_Do Is Not Null
Set @SSQL = @SSQL + ' And P.Datum_Ska <= ''' + Cast(@Dat_Promet_Do as varchar(30)) + ''' '
If @Sifra_Kup Is Not Null
Set @SSQL = @SSQL + ' And P.Sifra_Kup = ''' + @Sifra_Kup + ''' '
Set @SSQL = @SSQL + @SSQLUsl + ' Group By P.Sifra_Kor '
If @KorSoPromet In ('P', 'N') Or @Promet_Od Is Not Null Or @Promet_Do Is Not Null
Set @SSQL = @SSQL + ' Having 1=1 '
If @Promet_Od Is Not Null
Set @SSQL = @SSQL + ' And Sum(Dolzi) >= ' + Cast(@Promet_Od as varchar(20)) + ' '
If @Promet_Do Is Not Null
Set @SSQL = @SSQL + ' And Sum(Dolzi) <= ' + Cast(@Promet_Do as varchar(20)) + ' '
If @KorSoPromet In ('P', 'N') Or @Dat_Promet_Od Is Not Null Or @Dat_Promet_Do Is Not Null Or @Promet_Od Is Not Null Or @Promet_Do Is Not Null
Set @SSQL = @SSQL + ' KP.Promet '
Else
Set @SSQL = @SSQL + ' Null Promet '
Set @SSQL = @SSQL + ' From KartKor K
Inner join Komint KUP on K.Sifra_Kup = Kup.Sifra_Kup
Inner join Orged O On O.Sifra_Oe = K.Sifra_Oe
Left Outer Join TipKartKor TK On TK.Sifra_TipKArtKor=K.Sifra_TipKartKor '
If @KorSoPromet In ('P', 'N') Or @Dat_Promet_Od Is Not Null Or @Dat_Promet_Do Is Not Null Or @Promet_Od Is Not Null Or @Promet_Do Is Not Null
Set @SSQL = @SSQL + ' Inner Join #KorPromet KP On KP.Sifra_Kor=K.Sifra_Kor '
Set @SSQL = @SSQL + ' Where 1=1 ' + @SSQLUsl
If @KorSoPromet Not In ('P','N') And @Sifra_Kup Is Not Null -- dokolku barame izvesstaj so promet togass filterot go gledame od prometot (pogore Inner Join)
Set @SSQL = @SSQL + ' And K.Sifra_Kup = ''' + @Sifra_Kup + ''' ' -- ako barame samo pregled na korisnici bez promet togass filterot go gledame od KartKor
If @Podred = 'S'
Set @SSQL = @SSQL + ' Order By K.Sifra_Kor, K.Sifra_Oe '
Else If @Podred = 'A'
Set @SSQL = @SSQL + ' Order By K.ImeKor, K.Sifra_Oe '
Else If @Podred = 'K'
Set @SSQL = @SSQL + ' Order By K.Sifra_Kup '
Exec (@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregledkorisnici_beztipkor_limit]'))
drop procedure [dbo].[sp_pregledkorisnici_beztipkor_limit]
Inner Join Podgrupi P On P.Sifra_Podg=K.Sifra_Podg
Where 1=1 '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' And Z.Sifra_Oe = ' + cast(@Sifra_Oe as varchar(6)) + ' '
If @Sif_GrOrg Is Not Null
Set @SSQL = @SSQL + ' And Z.Sifra_Oe IN (SELECT Sifra_OE FROM SGrOrg WHERE Sif_GrOrg=''' + @Sif_GrOrg + ''') '
If @Sifra_Art_Od Is Not Null
Set @SSQL = @SSQL + ' And Z.Sifra_Art >= ''' + @Sifra_Art_Od + ''' '
If @Sifra_Art_Do Is Not Null
Set @SSQL = @SSQL + ' And Z.Sifra_Art <= ''' + @Sifra_Art_Do + ''' '
If @SamoDozv='D'
Set @SSQL = @SSQL + ' And Z.Dozvoleno IS NOT NULL And Z.Dozvoleno IN (''D'',''N'') '
If @SamoNeDozv='D'
Set @SSQL = @SSQL + ' And Z.Dozvoleno = ''N'' '
If @VkluciArtZal = 'D' And @SamoDozv='D' -- ova za gigo. da se prikazat samo dozvolenite artikli. moze da se najde i podobro resenie (nama filter samo dozvoleni artikli)
Set @SSQL = @SSQL + ' And Z.Dozvoleno = ''D'' ' -- 13.05.2010
If @Kto Is Not Null
Set @SSQL = @SSQL + ' And K.Kto = ''' + @Kto + ''' '
If @VkluciArtZal = 'D' And @Sifra_Oe Is Not Null And (@SamoNeDozv <> 'D' Or @SamoNeDozv Is null)
Begin
Set @SSQL = @SSQL + ' Union Select Z.Sifra_Oe, O.ImeOrg, Z.Sifra_Art, K.ImeArt, Null MinZal, Null MaxZal, Null OptZal, ''D'' as Dozvoleno, K.Sifra_Podg, P.Ime_Podg
From Soart Z
Inner Join Orged O On O.Sifra_Oe=Z.Sifra_Oe
Inner Join Katart K On K.Sifra_Art = Z.Sifra_Art
Inner Join Podgrupi P On P.Sifra_Podg=K.Sifra_Podg
Where Z.Sifra_Oe = ' + cast(@Sifra_Oe as varchar(6)) + '
And Z.Sifra_Art Not In (Select Sifra_Art From OptZalPoOe Where Sifra_Oe = '+ cast(@Sifra_Oe as varchar(6)) + ' And Dozvoleno Is Not Null) '
If @Sifra_Art_Od Is Not Null
Set @SSQL = @SSQL + ' And Z.Sifra_Art >= ''' + @Sifra_Art_Od + ''' '
If @Sifra_Art_Do Is Not Null
Set @SSQL = @SSQL + ' And Z.Sifra_Art <= ''' + @Sifra_Art_Do + ''' '
If @Kto Is Not Null
Set @SSQL = @SSQL + ' And K.Kto = ''' + @Kto + ''' '
End
If @Podred = 'A'
Set @SSQL = @SSQL + ' Order By K.ImeArt '
Else
Set @SSQL = @SSQL + ' Order By Z.Sifra_Art '
print (@ssql)
Exec(@SSQL)
End
Else
Begin
Set @SSQL = ' Select Null as Sifra_Oe, Null as ImeOrg, K.Sifra_Art, K.ImeArt, K.SMin_Sost as MinZal, K.SMax_Sost as MaxZal, K.SOpt_Sost as OptZal, K.Sifra_Podg, P.Ime_Podg
From Katart K
Inner Join Podgrupi P On P.Sifra_Podg=K.Sifra_Podg
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 @Podred = 'A'
Set @SSQL = @SSQL + ' Order By K.ImeArt '
Else
Set @SSQL = @SSQL + ' Order By K.Sifra_Art '
Exec(@SSQL)
print (@ssql)
End
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregledpacienti]'))
LEFT OUTER JOIN OrgEd O ON P.Sifra_OE = O.Sifra_OE
WHERE 1=1 '
If @Sifra_OE IS NOT NULL
Set @SSQL = @SSQL + ' AND P.Sifra_OE = ' + Cast(@Sifra_OE As varchar(5))
If @Datum IS NOT NULL
Set @SSQL = @SSQL + ' AND P.Datum = ''' + Cast(@Datum As varchar(30)) + ''' '
Set @SSQL = @SSQL + ' ORDER BY P.IDPopis'
Print @SSQL
EXEC (@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregledprivilegii]'))
drop procedure [dbo].[sp_pregledprivilegii]
Go
CREATE procedure sp_PregledPrivilegii
As
select Sifra_GrKor,Operacija, Gener_Moze, Vnes, Izmena, Brisenje, Pregled, '' as Opis from privilegii
order by Sifra_GrKor, operacija
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregledprivilegiiorgtip]'))
drop procedure [dbo].[sp_pregledprivilegiiorgtip]
Go
Create procedure sp_PregledPrivilegiiOrgTip
As
select *, O.ImeOrg,T.ImeDok From PrivilOrgTip P
left outer join OrgEd O on P.Sifra_OE=O.Sifra_OE
left outer join TipDok T on P.Sifra_Dok= T.Sifra_Dok
Order by sifra_grkor
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pregledprodmest]'))
drop procedure [dbo].[sp_pregledprodmest]
Go
CREATE PROCEDURE [dbo].[sp_PregledProdMest]
@Sifra_Kup varchar(6),
@Sifra_Mest int,
@DaliAktiven char(1) = Null, -- A - 'Aktivni N - 'Ne Aktivni' Null - 'Site'
@KoiProdMest char(1) = Null, -- S - 'Site' L - 'Na Lager' U - 'Vo Upotreba'
@Sifra_reg smallint = Null,
@Posrednik char(6) = NULL,
@Sifra_Grad smallint = Null,
@DaliSporen char(1) = NULL,
@Sif_TipProdM smallint = NULL,
@Pod2 Smallint = Null,
@GrKup varchar(500) = Null,
@TipKup VarChar(300) = Null,
@Sifra_Pat smallint= null,
@PatOdKomintPat char(1) = 'N'
-- @Koi_Gradovi varchar(2000 = Null,
-- @Koi_Regioni varchar(2000 = Null sifra_reg treba da se Izbrise
AS
Declare @SSQL as Varchar(2000)
Declare @SSQLGr as Varchar(2000)
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 @SSQLGr = ' 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(@SSQLGr)
Set @SSQLGr = ' Insert Into #KupObj1 (Sifra_Kup, Sifra_Obj)
Select Distinct GK.Sifra_Kup, KOB.Sifra_Obj
From SGrKupObj GK
Inner Join Kobjekti KOB On GK.Sifra_Kup = KOB.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(@SSQLGr)
Set @SSQLGr = ' Insert Into #KupObj1 (Sifra_Kup) Select Distinct Sifra_Kup From SGrKupObj Where Sif_GrKup In (' + @GrKup + ') And Sifra_Obj Is Null '
Exec(@SSQLGr)
INSERT INTO #KupObj SELECT DISTINCT Sifra_Kup, Sifra_Obj FROM #KupObj1
End
-- , K.Adresa, KO.Adresa
Set @SSQL= ' Select K.ImeKup, PM.*, KO.ImeObj, K.Sifra_Reg, R.ImeRegion, K.DogovorBroj,