------------------------------------------------ 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 = '
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 + ''' '
--------------------------------------------------------- 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 TD.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 TD.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 char(3) = 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_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 Char(6) = 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
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)
Set @SSQLUsl = ' '
Set @SSQLUslArt = ' '
Set @SSQLFrom = ' '
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 @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 @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)) + ''' '
If @Posrednik Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And PM.Posrednik=' + Cast(@Posrednik 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 '
--------------------------------------------------------------------- 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 Char(3) = 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)) + ''' '
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'
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, K.ImeArt, '
Else
Set @SSQL = @SSQL + 'Null Sifra_Art, Null ImeArt, '
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, Pat.ImePat,
(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 + '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 @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 @GrArt Is Not Null
Set @SSQL = @SSQL + ' Inner Join #GrArt GA On GA.Sifra_Art=K.Sifra_Art '
If @Sifra_Gr Is Not Null OR @PoZbirenBrand = 'P' OR @PoZbirenBrand = 'G'
Set @SSQL = @SSQL + 'Inner Join PodGrupi P ON K.Sifra_Podg=P.Sifra_Podg '
If @PoZbirenBrand = 'Z'
Set @SSQL = @SSQL + '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 @SSQL = @SSQL + 'Left Outer Join Grupi G On P.Sifra_Gr=G.Sifra_Gr '
Else If @PoZbirenBrand = 'M'
Set @SSQL = @SSQL + '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 @SSQL = @SSQL + 'Left Outer Join Drugo4 D4 On D4.Sifra_4=K.Drugo4 '
Else If @PoZbirenBrand = 'H'
Set @SSQL = @SSQL + 'Left Outer Join KatHier H On H.Sifra_KHier=K.Sifra_KHier '
Else if @PoZbirenBrand = 'P' or @PoZbirenBrand = 'A'
Set @SSQL = @SSQL -- kolku da ima nekoja komanda
Else
Set @SSQL = @SSQL + '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 @SSQL = @SSQL + ' 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 '
Set @SSQL = @SSQL + 'Where K.Iskluci <> ''D'' '
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_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_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 @KomercKako = 'I'
Begin
If @Sifra_Pat IS NOT NULL
SET @SSQL = @SSQL + ' AND D.Sifra_Pat = ' + Cast(@Sifra_Pat as varchar(5)) + ' '
If @GrPat Is Not Null
SET @SSQL = @SSQL + ' 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 @SSQL = @SSQL + ' AND Kup.Sifra_Pat = ' + Cast(@Sifra_Pat as varchar(5)) + ' '
If @GrPat Is Not Null
SET @SSQL = @SSQL + ' 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 @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
Begin
SET @SSQL = @SSQL + 'AND S.Datum_Dok >= ''' +Cast(@Datum_OD as varchar(35)) +''' '
End
If @Datum_Do Is NOT Null
Begin
SET @SSQL = @SSQL + 'AND S.Datum_Dok <= ''' +Cast(@Datum_Do as varchar(35)) +''' '
End
End
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_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 @Sifra_Brand_Od Is Not NULL
Set @SSQL = @SSQL + ' And K.Sifra_Drg>=''' + Cast(@Sifra_Brand_Od As Varchar(5)) + ''' '
If @Sifra_Brand_Do Is Not NULL
Set @SSQL = @SSQL + ' And K.Sifra_Drg<=''' + Cast(@Sifra_Brand_Do As Varchar(5)) + ''' '
If @Sifra_obj Is Not NULL
Set @SSQL = @SSQL + 'And D.Sifra_obj=''' + Cast(@Sifra_obj As Varchar(5)) + ''' '
If @Sifra_Grad Is Not NULL
Begin
Set @SSQL = @SSQL + ' 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 @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 @TipKup Is Not NULL
Set @SSQL = @SSQL + ' And KUP.TipKup=''' + @TipKup + ''' '
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 @TipDokProd Is Not NULL
Set @SSQL = @SSQL + ' And S.Sifra_Dok IN (' + @TipDokProd + ') '
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 @PoZbirenBrand = 'Z'
Set @SSQL = @SSQL + 'Group By B.Sifra_Drg1, BB.Ime_Drg1, '
Else If @PoZbirenBrand = 'P'
Set @SSQL = @SSQL + 'Group By K.Sifra_Podg, P.Ime_Podg, '
Else If @PoZbirenBrand = 'G'
Set @SSQL = @SSQL + 'Group By G.Sifra_Gr, G.Ime_Gr, '
Else If @PoZbirenBrand = 'A'
Set @SSQL = @SSQL + 'Group By K.Sifra_Art, K.ImeArt, '
Else If @PoZbirenBrand = 'M'
Set @SSQL = @SSQL + '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 @SSQL = @SSQL + 'Group By D.Sifra_Kup, Kup.ImeKup, '
Else If @PoZbirenBrand = '4'
Set @SSQL = @SSQL + 'Group By K.Drugo4, D4.Ime_4, '
Else If @PoZbirenBrand = 'H'
Set @SSQL = @SSQL + 'Group By K.Sifra_KHier, H.Ime_KHier, '
Else
Set @SSQL = @SSQL + 'Group By K.Sifra_Drg, B.Ime, '
Set @SSQL = @SSQL + ' ((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 @SSQL = @SSQL + ' , S.Sifra_Art, K.ImeArt '
If @PoPat_GrPat = 'D'
Set @SSQL = @SSQL + ', 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 @SSQL = @SSQL + ', DatePart(wk, S.Datum_Dok) '
Else If @PoDenNed = 'D'
Set @SSQL = @SSQL + ', S.Datum_Dok '
Set @SSQL = @SSQL + 'Order By Mesec, Godina'
If @Podred = 'S'
If @PoZbirenBrand = 'Z'
Set @SSQL = @SSQL + ', B.Sifra_Drg1 '
Else If @PoZbirenBrand = 'P'
Set @SSQL = @SSQL + ', K.Sifra_Podg '
Else If @PoZbirenBrand = 'G' Set @SSQL = @SSQL + ', G.Sifra_Gr '
Else If @PoZbirenBrand = 'A'
Set @SSQL = @SSQL + ', K.Sifra_Art '
Else If @PoZbirenBrand = 'M'
Set @SSQL = @SSQL + ', (Case When KO.Sifra_Grad Is Not Null Then KO.Sifra_Grad Else Kup.Sifra_Grad End) '
Else If @PoZbirenBrand = 'K'
Set @SSQL = @SSQL + ', D.Sifra_Kup '
Else If @PoZbirenBrand = '4'
Set @SSQL = @SSQL + ', K.Drugo4 '
Else If @PoZbirenBrand = 'H'
Set @SSQL = @SSQL + ', K.Sifra_KHier '
Else
Set @SSQL = @SSQL + ', K.Sifra_Drg '
Else If @Podred = 'A'
If @PoZbirenBrand = 'Z'
Set @SSQL = @SSQL + ', BB.Ime_Drg1 '
Else If @PoZbirenBrand = 'P'
Set @SSQL = @SSQL + ', P.Ime_Podg '
Else If @PoZbirenBrand = 'G'
Set @SSQL = @SSQL + ', G.Ime_Gr '
Else If @PoZbirenBrand = 'A'
Set @SSQL = @SSQL + ', K.ImeArt '
Else If @PoZbirenBrand = 'M'
Set @SSQL = @SSQL + ', M.ImeGrad '
Else If @PoZbirenBrand = 'K'
Set @SSQL = @SSQL + ', Kup.ImeKup '
Else If @PoZbirenBrand = '4'
Set @SSQL = @SSQL + ', D4.Ime_4 '
Else If @PoZbirenBrand = 'H'
Set @SSQL = @SSQL + ', H.Ime_KHier '
Else
Set @SSQL = @SSQL + ', B.Ime '
Else If @Podred = '1'
Set @SSQL = @SSQL + ', UL Desc '
Else If @Podred = '2'
Set @SSQL = @SSQL + ', UL Desc '
Else If @Podred = '3'
Set @SSQL = @SSQL + ', Vr_Krajna Desc '
Print @SSQL
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_brand_zaliha]'))
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 char(3)=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)
--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 char(3) = 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 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_dajdokumenti]'))
drop procedure [dbo].[sp_dajdokumenti]
Go
CREATE procedure sp_DajDokumenti
@Sifra_Oe smallint,
@Datum smalldatetime,
@DokrID varchar(800)=NULL
As
Declare @@SSQL varchar(6000)
SET @@SSQL='Select S.Sifra_Oe, S.Sifra_Dok, S.Broj_Dok, S.VlIzl, TD.Sifra_Za,
SELECT @Sifra_Za = Sifra_ZA FROM TipDok WHERE Sifra_Dok=@Sifra_Dok
SET @SSQLUsl = ' WHERE D.BROJ_NAL IS NULL AND D.SIFRA_DOK = ' + cast(@Sifra_Dok as varchar(5)) + ' AND D.SIFRA_OE '
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_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
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'')'
-- 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)
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]'))
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 + @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
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
SUM(Kolic) As kolic, SUM(Vrateno) as Vrateno From #TmpStav
GROUP BY Sifra_Kup, ImeKup, Datum_Dok, Sifra_Oe, Broj_Dok, Sifra_art, imeart
ORDER BY Sifra_Kup, ImeKup, Datum_Dok, Sifra_Oe, Broj_Dok, Sifra_art
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_ima_li_vozilo]'))
drop procedure [dbo].[sp_ima_li_vozilo]
Go
create PROCEDURE sp_Ima_Li_Vozilo
@Sifra_Art varchar(20),
@KolkuGiIma integer OUTPUT
AS
select @KolkuGiIma =
count (*)
from Vozila
where sifra_art = @Sifra_art
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_imablokirani]'))
drop procedure [dbo].[sp_imablokirani]
Go
CREATE PROCEDURE sp_ImaBlokirani
@KoiOE varchar(200),
@KoiTipDok varchar(100),
@Datum_Do smalldatetime,
@Komint_Od char(6) = NULL,
@Komint_Do char(6) = NULL
AS
Declare @SSQL varchar(4000)
SET @SSQL = 'SELECT Count(S.DokID) AS BrDok FROM Stavr S
INNER JOIN Dokr D ON S.DokrID = D.DokrID
WHERE S.Sifra_OE in (' + @KoiOE + ') AND S.Sifra_Dok in (' + @KoiTipDok +
') AND S.Datum_Dok <= ''' + Cast(@Datum_Do as varchar(35)) +
''' AND D.Blokiran = ''T'' '
IF @Komint_Od IS NOT NULL
SET @SSQL = @SSQL + ' AND D.Sifra_Kup >= ' + @Komint_Od
IF @Komint_Do IS NOT NULL
SET @SSQL = @SSQL + ' AND D.Sifra_Kup <= ' + @Komint_Do
EXEC(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_imacenzakom]'))
drop procedure [dbo].[sp_imacenzakom]
Go
create PROCEDURE sp_ImaCenZaKom
@Sifra_kup char(6),
@KolkuCeni integer OUTPUT
AS
select @KolkuCeni = count (*) from cenovnik where sifra_kup = @Sifra_kup
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_imalimitpodiv]'))
drop procedure [dbo].[sp_imalimitpodiv]
Go
CREATE PROCEDURE sp_ImaLimitPoDiv
@Sifra_Kup char(6),
@KlkRazlDiv smallint =0 OUTPUT
AS
SELECT @KlkRazlDiv = COUNT(*) FROM KomLimitDiv WHERE Sifra_Kup=@Sifra_Kup
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_impgen_dajstavki]'))
drop procedure [dbo].[sp_impgen_dajstavki]
Go
create PROCEDURE sp_ImpGen_DajStavki
@ImeTabela varchaR(100)
AS
Declare @SSQL varchaR(300)
set @SSQL = 'Select * from ' + @ImeTabela +
' order by sifra_oe, sifra_dok, broj_dok, rbr '
Exec (@SSQL)
--select S.*, D.Identif_Br, D.Rok, D.SIfrA_Kup
--from Stavr S
--inner join Dokr D
--on S.DOkrId = D.DokrId
--where S.sifrA_oe = 32
Go
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 K.KDrugo4 = 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_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 Char(3) = 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)
(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')
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_OERab = @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_OERab = @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 ------------------------------------------------------------------------------
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 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 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
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_kartzatv_komint]'))
drop procedure [dbo].[sp_kartzatv_komint]
Go
CREATE PROCEDURE sp_KartZatv_Komint
@Sifra_Za Char(1),
@Sifra_Kup Char(6),
@KoiFri Char(1),
@Datum_Nal_Od Smalldatetime,
@Datum_Nal_Do Smalldatetime,
@Datum_Dok_Od Smalldatetime,
@Datum_Dok_Do Smalldatetime,
@Kto Char(6),
@Sifra_OE Smallint,
@Dev char(1) = 'N',
@KojaVal char(3) = Null,
@Datum_Dosp_Od Smalldatetime,
@Datum_Dosp_Do Smalldatetime,
@KojaStrana char(1) = Null, -- D - Dolzi, P - Pobaruva -- S - i Dolzi i Pobaruva Null - Bez Zatvaranja
@Sifra_Pat Smallint = Null,
@KoiPat varchar(10) = Null
AS
Declare @SSQL Varchar(4000)
SET @SSQL = 'SELECT A.AnID, A.Sifra_OE, A.Sifra_Dok, A. Broj_Dok,
Left Outer Join Abarkod A On K.Sifra_art = A.Sifra_Art
Inner Join Podgrupi P On K.Sifra_Podg=P.Sifra_Podg
Inner Join Grupi G On P.Sifra_Gr=G.Sifra_Gr
Left Outer Join Komint KUP On K.Kto=KUP.Sifra_Kup
Left Outer Join Drugo2 B On A.Drugo2=B.Sifra_2
Where 1=1 '
If @Sifra_OE Is Not Null
Set @SSQL = @SSQL + ' And S.Sifra_OE = ' + Cast(@Sifra_OE as varchar(5)) + ' '
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 @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 @Sifra_Drg Is Not Null
Set @SSQL = @SSQL + ' And A.Drugo2 = ''' + cast(@Sifra_Drg as varchar(10)) + ''' '
If @Sifra_Tar Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_Tar >= ''' + @Sifra_tar + ''' '
If @Koi_Artikli='S'
Set @SSQL=@SSQL+'AND (S.Vlez-S.Izlez<>0) '
Else If @Koi_Artikli='P'
Set @SSQL=@SSQL+'AND (S.Vlez-S.Izlez>0) '
Else If @Koi_Artikli='N'
Set @SSQL=@SSQL+'AND (S.Vlez-S.Izlez<0) '
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 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
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.Dolzi<>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'') '
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)) + ''' '
INSERT INTO #TmpKngIzl EXEC(@SSQL)
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
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)
)
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_konflokprn_zacustompaper]'))
drop procedure [dbo].[sp_konflokprn_zacustompaper]
Go
create PROCEDURE sp_KonfLokPrn_ZaCustomPaper
@Sifra_Oe smallint = null,
@Sifra_Dok smallint = null,
@ImePC varchar(30)=null
AS
Select * From KonfLokPrn
Where Sifra_oe=@Sifra_Oe And Sifra_dok=@Sifra_dok and Lokacija=@ImePC
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_konsignacija_izlez]'))
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 char(3) = 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_kor_grupa]'))
drop procedure [dbo].[sp_kor_grupa]
Go
create PROCEDURE sp_Kor_Grupa
@Sifra_Kor int
AS
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_kor_meni]'))
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 Char(3) = 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'
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_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(300),
@KoiTipDok varchar(100),
@Datum_Do smalldatetime,
@Sifra_Kup char(6) = NULL,
@Sifra_Obj 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 @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_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 Char(3) = 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
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))
EXEC(@SSQL)
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_neazuriranirazlceni]'))
drop procedure [dbo].[sp_neazuriranirazlceni]
Go
CREATE PROCEDURE sp_NeazuriraniRazlCeni
@Sifra_Oe smallint,
@KoiOe varchar(6),
@Datum_Od smalldatetime,
@Datum_Do smalldatetime,
@Sifra_Razl varchar(50),
@SoDanok char(1) = 'D'
AS
Declare @SSQL as varchar(8000)
Set @SSQL = ' Select R.Sifra_Oe, R.Sifra_Razl, R.Datum_Dok,
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 Char(3) = 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 Char(3) = 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)
)
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 @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 @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 char(3) = 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,
Left Outer Join MikroLok MikL On MikL.Sifra_MikLok = P.Sifra_MikLok
Left Outer Join MakroLok MakL On MakL.Sifra_MakLok = MikL.Sifra_MakLok
Inner Join OsnSred O On O.Inv_Broj=P.Inv_Broj
Left Outer Join Rabotnik R On R.Sifra_Rab=O.Sifra_Rab
Where P.Godina = ' + Cast(@Godina as varchar(10)) + ' '
If @Sifra_Amor Is Not Null
Set @SSQL = @SSQL + ' And O.Sifra_Amor = ''' + @Sifra_Amor + ''' '
If @Sifra_MikLok Is Not Null
Set @SSQL = @SSQL + ' And O.Sifra_MikLok = ''' + @Sifra_MikLok + ''' '
If @Sifra_MakLok Is Not Null
Set @SSQL = @SSQL + ' And MikL.Sifra_MakLok = ''' + @Sifra_MakLok + ''' '
If @Sifra_Lok Is Not Null
Set @SSQL = @SSQL + ' And MakL.Sifra_Lok = ''' + @Sifra_Lok + ''' '
If @Inv_BrojOd Is Not Null
Set @SSQL = @SSQL + ' And P.Inv_Broj >= ''' + @Inv_BrojOd + ''' '
If @Inv_BrojDo Is Not Null
Set @SSQL = @SSQL + ' And P.Inv_Broj <= ''' + @Inv_BrojDo + ''' '
If @OS_SI = 'O'
Set @SSQL = @SSQL + ' And O.Tip = ''OS'' '
Else If @OS_SI = 'S'
Set @SSQL = @SSQL + ' And O.Tip = ''SI'' '
If @Podred = 'S'
Set @SSQL = @SSQL + ' Order By P.Inv_Broj '
Else If @Podred = 'A'
Set @SSQL = @SSQL + ' Order By O.Ime '
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pocsostfinnadat]'))
drop procedure [dbo].[sp_pocsostfinnadat]
Go
CREATE PROCEDURE sp_PocSostFinNaDat
@Sifra_Za char(1),
@Kto char(10),
@Datum_Do smalldatetime
AS
CREATE TABLE #TmpPocSost
(Sifra_Kup char(6),
Dolzi decimal(18,2),
Pobaruva decimal(18,2),
Plat_Dolzi decimal(18,2),
Plat_Pobaruva decimal(18,2) )
INSERT INTO #TmpPocSost (Sifra_Kup, Dolzi, Pobaruva) SELECT Sifra_Kup, Sum(Dolzi), Sum(Pobaruva) FROM AnFinDok
WHERE Sifra_Za=@Sifra_Za AND Kto=@Kto AND Datum_Dok <= @Datum_Do GROUP BY Sifra_Kup
CREATE TABLE #TmpPlat
(Sifra_Kup char(6),
Plat_Dolzi decimal(18,2),
Plat_Pobaruva decimal(18,2) )
/*INSERT INTO #TmpPlat (Sifra_Kup, Plat_Dolzi)
SELECT F.Sifra_Kup, SUM(Case When ((Z.Iznos>0 AND F.Dolzi>0) OR (Z.Iznos<0 AND F.Dolzi<0)) Then Z.Iznos Else Z.Iznos * -1 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 F.Dolzi<>0 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)
SELECT F.Sifra_Kup, SUM(Case When ((Z.Iznos>0 AND F.Dolzi>0) OR (Z.Iznos<0 AND F.Dolzi<0)) Then Z.Iznos Else Z.Iznos * -1 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 F.Dolzi<>0 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
INSERT INTO #TmpPlat (Sifra_Kup, Plat_Pobaruva)
SELECT F.Sifra_Kup, SUM(Case When ((Z.Iznos>0 AND F.Pobaruva>0) OR (Z.Iznos<0 AND F.Pobaruva<0)) Then Z.Iznos Else Z.Iznos * -1 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 F.Pobaruva<>0 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_Pobaruva)
SELECT F.Sifra_Kup, SUM(Case When ((Z.Iznos>0 AND F.Pobaruva>0) OR (Z.Iznos<0 AND F.Pobaruva<0)) Then Z.Iznos Else Z.Iznos * -1 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 F.Pobaruva<>0 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 */
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
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.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
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)) + ' '
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_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_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_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 @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]'))
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_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,
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 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
SET @SSQLUsl = @SSQLUsl + 'AND Nar.Sifra_Nar=''' + Cast(@Sifra_Nar As Varchar(10)) + ''' '
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) '
-- 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 @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 '+@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 '
-- Left Outer Join GRegion R On Kup.Sifra_Reg=R.Sifra_Reg '
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=' + 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 @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) '
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'') '
@KoiNarLimit char(1) = Null -- N - Nadminat limit, D - Ima Limit
AS
Declare @SSQL Varchar(4000)
Declare @SSQLUsl Varchar(4000)
Declare @SSQLKup Varchar(4000)
SET @SSQLUsl=' '
SET @SSQLKup=' '
If @Sifra_Nar Is NOT NULL
SET @SSQLUsl = @SSQLUsl + 'AND Nar.Sifra_Nar=''' + Cast(@Sifra_Nar As Varchar(10)) + ''' '
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 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(15),
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
)
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,
KO.Sifra_Obj, KO.ImeObj, KO.Aktiven, KO.Sifra_Pat, Null as Limit_Dolzi, Kup.Aneks1, Kup.Aneks2, Kup.m2, KO.m2 as Objm2, Kup.Priv_Lice, Kup.God_Rabat, Kup.Spec_Rabat, KO.EMail2, KO.EMail3,
KO.Sifra_VPJ
From Komint Kup
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,
Kup.Sifra_VPJ
From Komint Kup '
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,
Kup.Sifra_VPJ
From Komint Kup '
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=NULL AND KP.Sifra_pat='+cast(@Patnik as varchar(5))+' '
SET @SSQL = @SSQL + ' Where Kup.Sifra_Kup Not In (Select Sifra_Kup From KObjekti) and Kup.Sifra_Kup Not In (Select Sifra_Kup From #Komint) '
Insert Into #Komint Exec(@SSQL+@SSQLUsl+@SSQLAkt)
End
If @PovekeBanki = 'D'
Begin
Create Table #KomintBank
(
Sifra_Kup char(6),
Sifra_Ban char(6),
ImeBanka varchar(40),
ZiroSka varchar(20),
RbrBan smallint,
RB smallint
)
Insert Into #KomintBank (Sifra_Kup, RB)
Select K.Sifra_Kup, Min(KB.RbrBan)
From #Komint K
Inner Join KBanki KB On KB.Sifra_Kup=K.Sifra_Kup
Group By K.Sifra_Kup
Update #KomintBank Set Sifra_Ban=KB.Sifra_Ban, ImeBanka=B.ImeBanka, ZiroSka=KB.ZiroSka, RbrBan=1
From KBanki KB
Inner Join Banki B On B.Sifra_Ban=KB.Sifra_Ban
Where #KomintBank.Sifra_Kup=KB.Sifra_Kup And #KomintBank.RB=KB.RbrBan
Insert Into #KomintBank (Sifra_Kup, RB)
Select K.Sifra_Kup, Min(KB.RbrBan)
From #Komint K
Inner Join KBanki KB On KB.Sifra_Kup=K.Sifra_Kup
Where Cast(K.Sifra_Kup as char(6)) + Cast(KB.RbrBan as char(6)) Not In (Select Cast(Sifra_Kup as char(6)) + Cast(RB as char(6)) From #KomintBank)
Group By K.Sifra_Kup
Update #KomintBank Set Sifra_Ban=KB.Sifra_Ban, ImeBanka=B.ImeBanka, ZiroSka=KB.ZiroSka, RbrBan=2
From KBanki KB
Inner Join Banki B On B.Sifra_Ban=KB.Sifra_Ban
Where #KomintBank.Sifra_Kup=KB.Sifra_Kup And #KomintBank.RB=KB.RbrBan
And #KomintBank.RbrBan Is Null
Update #Komint
Set Ziro=KB.ZiroSka, Banka=KB.ImeBanka, Sifra_Ban=KB.Sifra_Ban
From #KomintBank KB
Where #Komint.Sifra_Kup = KB.Sifra_Kup
And KB.RbrBan=1
Update #Komint
Set Ziro2=KB.ZiroSka, Banka2=KB.ImeBanka, Sifra_Ban2=KB.Sifra_Ban
From #KomintBank KB
Where #Komint.Sifra_Kup = KB.Sifra_Kup
And KB.RbrBan=2
End
IF @DatumIzm_Od IS NOT NULL OR @DatumIzm_Do IS NOT NULL --dod.06.08.08
Begin
Set @SSQL = 'DELETE FROM #Komint WHERE Sifra_Kup NOT IN (SELECT Sifra_Kup FROM Komint WHERE 1=1 '
IF @DatumIzm_Od IS NOT NULL
Set @SSQL = @SSQL + ' AND (DodadenNa>=''' +cast(@DatumIzm_Od as varchar(35))+''' OR IzmenetNa>=''' +cast(@DatumIzm_Od as varchar(35))+ ''' )'
IF @DatumIzm_Do IS NOT NULL
Set @SSQL = @SSQL + ' AND (DodadenNa<=''' +cast(@DatumIzm_Do as varchar(35))+''' OR IzmenetNa<=''' +cast(@DatumIzm_Do as varchar(35))+ ''' )'
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,
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)
----- Za detalite vo ramna forma da gi prikazzeme -----
Declare @Kontakt varchar(200)
Declare @Deca varchar(2000)
Declare @Milenici varchar(1000)
Declare @Rbr_Kontakt smallint
Declare @Rbr_Deca smallint
Declare @Rbr_Milenici smallint
Declare @Tip_Detal varchar(10)
Declare @ImeDetal varchar(40)
Declare @ImeDetal2 varchar(40)
Declare @Kor as varchar(20)
Declare @ImeKor as varchar(40)
Declare @MaxZapis as int
DECLARE Kart CURSOR FAST_FORWARD
FOR SELECT Sifra_Kor, ImeKor
FROM #TmpKart
Order By Sifra_Kor
OPEN Kart
FETCH NEXT FROM Kart INTO @Kor, @ImeKor
WHILE @@FETCH_STATUS = 0
Begin
set @Kontakt = ''
set @Deca = ''
set @Milenici = ''
set @Rbr_Kontakt = -1
set @Rbr_Deca = -1
set @Rbr_Milenici = -1
set @MaxZapis = 0
delete from #tmpKartPlus
DECLARE Detal CURSOR FAST_FORWARD
FOR SELECT Tip_Detal, rtrim(ltrim(ImeDetal)), rtrim(ltrim(ImeDetal2))
FROM KartKorDetali
Where Sifra_Kor = @Kor
order by rbr_detal
OPEN Detal
FETCH NEXT FROM Detal INTO @Tip_Detal, @ImeDetal, @ImeDetal2
WHILE @@FETCH_STATUS = 0
Begin
if @ImeDetal is null
set @ImeDetal = ''
if @ImeDetal2 is null
set @ImeDetal2 = ''
if @Tip_Detal = 'KONTAKT'
begin
set @Rbr_Kontakt = @Rbr_Kontakt + 1
if @Rbr_Kontakt = 0
update #TmpKart
set Kontakt = @ImeDetal
where Sifra_Kor = @Kor
else
begin
if @Rbr_Kontakt > @MaxZapis
begin
set @MaxZapis = @MaxZapis + 1
insert into #TmpKartPlus
(RbrZapis, Sifra_Kor)
values (@MaxZapis, @Kor)
end
update #TmpKartPlus
set Kontakt = @ImeDetal
where RbrZapis = @Rbr_Kontakt
end
end
else if @Tip_Detal = 'DECA'
begin
set @Rbr_Deca = @Rbr_Deca + 1
if @Rbr_Deca = 0
update #TmpKart
set PodKor = @ImeDetal
where Sifra_Kor = @Kor
else
begin
if @Rbr_Deca > @MaxZapis
begin
set @MaxZapis = @MaxZapis + 1
insert into #TmpKartPlus
(RbrZapis, Sifra_Kor)
values (@MaxZapis, @Kor)
end
update #TmpKartPlus
set PodKor = @ImeDetal
where RbrZapis = @Rbr_Deca
end
end
else if @Tip_Detal = 'MILENICI'
begin
set @Rbr_Milenici = @Rbr_Milenici + 1
if @Rbr_Milenici = 0
update #TmpKart
set Milenici = @ImeDetal2 + ' ' + @ImeDetal
where Sifra_Kor = @Kor
else
begin
if @Rbr_Milenici > @MaxZapis
begin
set @MaxZapis = @MaxZapis + 1
insert into #TmpKartPlus
(RbrZapis, Sifra_Kor)
values (@MaxZapis, @Kor)
end
update #TmpKartPlus
set Milenici = @ImeDetal2 + ' ' + @ImeDetal
where RbrZapis = @Rbr_Milenici
end
end
FETCH NEXT FROM Detal INTO @Tip_Detal, @ImeDetal, @ImeDetal2
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)
----- Za detalite vo ramna forma da gi prikazzeme -----
Declare @Kontakt varchar(200)
Declare @Deca varchar(2000)
Declare @Milenici varchar(1000)
Declare @Tip_Detal varchar(10)
Declare @ImeDetal varchar(40)
Declare @ImeDetal2 varchar(40)
Declare @Kor as varchar(20)
DECLARE Kart CURSOR FAST_FORWARD
FOR SELECT Sifra_Kor
FROM #TmpKart
Order By Sifra_Kor
OPEN Kart
FETCH NEXT FROM Kart INTO @Kor
WHILE @@FETCH_STATUS = 0
Begin
set @Kontakt = ''
set @Deca = ''
set @Milenici = ''
DECLARE Detal CURSOR FAST_FORWARD
FOR SELECT Tip_Detal, rtrim(ltrim(ImeDetal)), rtrim(ltrim(ImeDetal2))
FROM KartKorDetali
Where Sifra_Kor = @Kor
order by rbr_detal
OPEN Detal
FETCH NEXT FROM Detal INTO @Tip_Detal, @ImeDetal, @ImeDetal2
@PocnuvaSo char(1) = 'N', -- Se Odnesuva na podgrupite D, N
@Sifra_Nar smallint=Null,
@Podred char(1) = Null,
@Sifra_Oe smallint = Null,
@GroupZaGrid char(1) = 'N' -- Za Prikazuv. vo grid procedurata gigrupira vrednostite
AS
Declare @SSQL as Varchar(4000)
If @GroupZaGrid = 'D'
Begin
Set @SSQL = ' Select (Cast(N.Sifra_OE as varchar(6))+''-''+cast(N.Sifra_Nar as varchar(6))+''/''+cast(N.Broj_Nar as varchar(10))+'' ''+N.Identif_Br) as IDNarac,
N.Sifra_Kup, Kup.ImeKup, N.Datum_Nar,
Sum(S.Kolic) As Kolic,
Sum(dbo.fn_VratiCenaSoDDVBezRabat(S.DokCena, S.DanDokCena, S.Posn, S.Uces, 0) * S.Kolic) Vrednost '
Left Outer Join Komint Kup On Kup.Sifra_Kup=N.Sifra_Kup
Where 1=1 '
If @Datum_Nar_Od Is Not Null
Set @SSQL = @SSQL + ' And N.Datum_Nar >= ''' + cast(@Datum_Nar_Od as varchar(30)) + ''' '
If @Datum_Nar_Do Is Not Null
Set @SSQL = @SSQL + ' And N.Datum_Nar <= ''' + cast(@Datum_Nar_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 + ''' '
If @Sifra_Podg Is Not Null
If @PocnuvaSo = 'D'
Set @SSQL = @SSQL + ' And K.Sifra_Podg Like ''' + Rtrim(@Sifra_Podg) + '%'' '
Else
Set @SSQL = @SSQL + ' And K.Sifra_Podg=''' + @Sifra_Podg + ''' '
If @Sifra_Nar Is Not Null
Set @SSQL = @SSQL + ' And N.Sifra_Nar = ' + cast(@Sifra_Nar as varchar(10)) + ' '
If @Dobavuvac Is Not Null
Set @SSQL = @SSQL + ' And N.Sifra_Kup = ''' + @Dobavuvac + ''' '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' And N.Sifra_Oe = ' + cast(@Sifra_Oe as varchar(10)) + ' '
If @Realiziran = 'D'
Set @SSQL = @SSQL + ' And N.Realiziran = ''D'' '
Else If @Realiziran = 'N'
Set @SSQL = @SSQL + ' And (N.Realiziran = ''N'' Or N.Realiziran Is Null)'
If @GroupZaGrid = 'D'
Set @SSQL = @SSQL + ' Group By Cast(N.Sifra_OE as varchar(6))+''-''+cast(N.Sifra_Nar as varchar(6))+''/''+cast(N.Broj_Nar as varchar(10))+'' ''+N.Identif_Br,
N.Sifra_Kup, Kup.ImeKup, N.Datum_Nar, N.Broj_Nar
Order By N.Datum_Nar, N.Broj_Nar '
If @Podred = 'S'
Set @SSQL = @SSQL + ' Order By S.Sifra_Art '
If @Podred = 'A'
Set @SSQL = @SSQL + ' Order By K.ImeArt '
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_preglnaracpotvrdeni]'))
drop procedure [dbo].[sp_preglnaracpotvrdeni]
Go
CREATE PROCEDURE sp_PreglNaracPotvrdeni
@Datum_Nar_Od smalldatetime=Null,
@Datum_Nar_Do smalldatetime=Null,
@Dat_Ocek_Od smalldatetime=Null,
@Dat_Ocek_Do smalldatetime=Null,
@Dat_Pristig_Od smalldatetime=Null,
@Dat_Pristig_Do smalldatetime=Null,
@Dat_Dosp_Od smalldatetime=Null,
@Dat_Dosp_Do smalldatetime=Null,
-- @Status char(2)=Null, -- NN - Natovareni, PP - Pristignati NP - Natovareni ili pristignati Null - Site
@Realizirani char(1) = Null, -- D - Prikazi realizirani N - Ne gi prikazuva realiziranite
@Nerealizirani char(1) = Null, -- D - Prikazi nerealizirani N - Ne gi prikazuva nerealiziranite
@Otkazani char(1) = Null, -- D - Prikazi otkazani N - Ne gi prikazuva otkazanite
@Dobavuvac char(6)=Null,
@Sifra_Art_Od varchar(20)=Null,
@Sifra_Art_Do varchar(20)=Null,
@Sifra_Podg char(6)=Null,
@PocnuvaSo char(1) = 'N', -- Se Odnesuva na podgrupite D, N
@Sifra_Nar smallint=Null,
@Podred char(1) = Null,
@Sifra_Oe smallint = Null,
@GroupZaGrid char(1) = 'N', -- Za Prikazuv. vo grid procedurata gigrupira vrednostite
@Vet_Br char(1) = Null -- D - Ima, N - Nema, S - Site
AS
Declare @SSQL as Varchar(4000)
Declare @Status as varchar(50)
Set @Status='' -- Po pretpostavka deka status G nema
Case N.Realiziran WHEN ''P'' Then ''Delumno realizirana'' WHEN ''D'' THEN ''Celosno realizirana'' WHEN ''S'' THen ''Realizirani site artikli so dr.kol.'' ELSE '''' END AS Realiziran
FROM Naracki N LEFT OUTER JOIN Komint K ON N.Sifra_Kup=K.Sifra_Kup WHERE 1=1'
IF @Sifra_OE IS NOT NULL
SET @SSQL = @SSQL + ' AND N.Sifra_OE = '+cast(@Sifra_OE as varchar(5))
IF @Koi_TipNAr IS NOT NULL
SET @SSQL = @SSQL + ' AND N.Sifra_Nar IN ('+@Koi_TipNar+')'
IF @Datum_Od IS NOT NULL
SET @SSQL = @SSQL + ' AND N.Datum_Nar >= '''+cast(@Datum_Od as varchar(35))+''' '
IF @Datum_Do IS NOT NULL
SET @SSQL = @SSQL + ' AND N.Datum_Nar <= '''+cast(@Datum_Do as varchar(35))+''' '
IF @Realiz IS NOT NULL AND @Realiz='N'
SET @SSQL = @SSQL + ' AND (Not (N.Realiziran = ''D'' Or N.Realiziran = ''S'') Or (N.Realiziran Is Null)) '
SET @SSQL = @SSQL + ' ORDER BY N.Datum_Nar DESC, N.Broj_Nar DESC'
EXEC(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_preglnarkratokf12]'))
drop procedure [dbo].[sp_preglnarkratokf12]
Go
CREATE PROCEDURE sp_PreglNarKratokF12
@Sifra_OE smallint=NULL,
@Sifra_Nar smallint=NULL
AS
SELECT TOP 100 N.NarID, N.Sifra_Kup, K.ImeKup, N.Broj_Nar,N.Datum_Nar, N.Toc200, N.Identif_Br
FROM Naracki N
LEFT OUTER JOIN Komint K ON K.Sifra_Kup=N.Sifra_Kup
WHERE N.Sifra_Oe=@Sifra_Oe AND N.Sifra_Nar=@Sifra_Nar ORDER BY N.Datum_Nar DESC
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_preglneazurdok]'))
Set @SSQL = @SSQL + 'OP.Sifra_OsnPodel, OP.Vrednost'
ELSE
Set @SSQL = @SSQL + ''''' Sifra_OsnPodel, '''' Vrednost'
Set @SSQL = @SSQL + ' From OsnSred O
Left Outer Join MikroLok MIKL On MIKL.Sifra_MikLok=O.Sifra_MikLok
Left Outer Join MakroLok MAKL On MAKL.Sifra_MakLok=MIKL.Sifra_MakLok
Left Outer Join Lokacija L On L.Sifra_Lok=MAKL.Sifra_Lok
Left Outer Join AmorGrp A On A.Sifra_Amor=O.Sifra_Amor
Left Outer Join Anal K On K.Kto_Anal=O.Kto_Anal
Left Outer Join Rabotnik R On R.Sifra_Rab=O.Sifra_Rab '
IF @Sifra_OsnGrPodel_ZaGrupiranje IS NOT NULL
Set @SSQL = @SSQL + ' LEFT OUTER JOIN OsnPodelSta OPS ON O.Inv_Broj=OPS.Inv_Broj AND OPS.Sifra_OsnGrPodel='+cast(@Sifra_OsnGrPodel_ZaGrupiranje as varchar(4))+
' LEFT OUTER JOIN OsnPodelbi OP ON OPS.Sifra_OsnGrPodel=OP.Sifra_OsnGrPodel AND OPS.Sifra_OsnPodel=OP.Sifra_OsnPodel '
Set @SSQL = @SSQL + ' Where 1=1 '
If @Inv_BrojOd Is Not null
Set @SSQL = @SSQL + ' And O.Inv_Broj >= ''' + @Inv_BrojOd + ''' '
If @Inv_BrojDo Is Not null
Set @SSQL = @SSQL + ' And O.Inv_Broj <= ''' + @Inv_BrojDo + ''' '
If @Sifra_Lok Is Not null
Set @SSQL = @SSQL + ' And L.Sifra_Lok = ''' + @Sifra_Lok + ''' '
If @Sifra_MakLok Is Not null
Set @SSQL = @SSQL + ' And MAKL.Sifra_MakLok = ''' + @Sifra_MakLok + ''' '
If @Sifra_MikLok Is Not null
Set @SSQL = @SSQL + ' And MIKL.Sifra_MikLok = ''' + @Sifra_MikLok + ''' '
If @Sifra_Amor Is Not null
Set @SSQL = @SSQL + ' And O.Sifra_Amor = ''' + @Sifra_Amor + ''' '
If @DatNabOd Is Not null
Set @SSQL = @SSQL + ' And O.DatNab >= ''' + cast(@DatNabOd as varchar(30)) + ''' '
If @DatNabDo Is Not null
Set @SSQL = @SSQL + ' And O.DatNab <= ''' + cast(@DatNabDo as varchar(30)) + ''' '
If @DatAktOd Is Not null
Set @SSQL = @SSQL + ' And O.DatAkt >= ''' + cast(@DatAktOd as varchar(30)) + ''' '
If @DatAktDo Is Not null
Set @SSQL = @SSQL + ' And O.DatAkt <= ''' + cast(@DatAktDo as varchar(30)) + ''' '
If @DatPrestOd Is Not null
Set @SSQL = @SSQL + ' And O.DatPrest >= ''' + cast(@DatPrestOd as varchar(30)) + ''' '
If @DatPrestDo Is Not null
Set @SSQL = @SSQL + ' And O.DatPrest <= ''' + cast(@DatPrestDo as varchar(30)) + ''' '
If @Rabotnici Is Not null
Set @SSQL = @SSQL + ' And O.Sifra_Rab In (' + @Rabotnici + ') '
If @OS_SI = 'O'
Set @SSQL = @SSQL + ' And O.Tip = ''OS'' '
Else If @OS_SI = 'S'
Set @SSQL = @SSQL + ' And O.Tip = ''SI'' '
IF @Filtri_OsnPodelbi IS NOT NULL
SET @SSQL = @SSQL + ' AND O.Inv_Broj IN (SELECT Inv_Broj FROM #TmpOsnSoPodel) '
IF @PrikOtpisani = 'N'
Set @SSQL = @SSQL + ' And O.DatPrest Is Null '
/* If @Koi_Sva = 'N'
BEGIN
If @DatNabOd IS NOT NULL
Set @SSQL = @SSQL + ' And O.DatNab >= ''' + cast(@DatNabOd as varchar(35)) + ''' '
If @DatNabDo IS NOT NULL
Set @SSQL = @SSQL + ' And O.DatNab <= ''' + cast(@DatNabDo as varchar(35)) + ''' '
END
Else If @Koi_Sva = 'O'
BEGIN
IF @DatPrestOd IS NOT NULL
Set @SSQL = @SSQL + ' And O.DatPrest >= ''' + cast(@DatPrestOd as varchar(35)) + ''' '
IF @DatPrestDo IS NOT NULL
Set @SSQL = @SSQL + ' And O.DatPrest <= ''' + cast(@DatPrestDo as varchar(35)) + ''' '
END
Else If @Koi_Sva = 'A'
BEGIN
If @DatAktOd IS NOT NULL
Set @SSQL = @SSQL + ' And O.DatAkt >= ''' + cast(@DatAktOd as varchar(35)) + ''' '
If @DatAktDo IS NOT NULL
Set @SSQL = @SSQL + ' And O.DatAkt <= ''' + cast(@DatAktDo as varchar(35)) + ''' '
If @Koi_Sva ='N' or (@Koi_Sva='S' and @SoDogradbi = 'D') --samo ako se bara pregledot za novonabaveni sredstva, treba da se vklucat i novonabavenite sredstva
Begin
If @Delov_God is null
Set @Delov_God = Year(@DatNabDo)
Set @SSQL= @SSQL+' Union
Select S.Inv_Broj, O.Ime, ''Dogradba'' as Opis, O.Kto_Anal, O.Br_Smena, O.Sifra_Amor, S.Datum_Dok as DatNab, Null as DatAkt, Null as DatPrest,
O.Sifra_MikLok, Null as BarKod,
S.Orig_Nab_Vr, Null as RedTrans, S.Valuta, S.Orig_Nab_Vr_Val, MIKL.Ime_MikLok, MIKL.Sifra_MakLok, MAKL.Ime_MakLok,
Set @SSQL = @SSQL + 'OP.Sifra_OsnPodel, OP.Vrednost'
ELSE
Set @SSQL = @SSQL + ''''' Sifra_OsnPodel, '''' Vrednost'
Set @SSQL = @SSQL + ' From StavOsnSred S
Inner Join OsnSred O On O.Inv_Broj=S.Inv_Broj
Left Outer Join MikroLok MIKL On MIKL.Sifra_MikLok=O.Sifra_MikLok
Left Outer Join MakroLok MAKL On MAKL.Sifra_MakLok=MIKL.Sifra_MakLok
Left Outer Join Lokacija L On L.Sifra_Lok=MAKL.Sifra_Lok
Left Outer Join AmorGrp A On A.Sifra_Amor=O.Sifra_Amor
Left Outer Join Anal K On K.Kto_Anal=O.Kto_Anal
Left Outer Join Rabotnik R On R.Sifra_Rab=O.Sifra_Rab '
IF @Sifra_OsnGrPodel_ZaGrupiranje IS NOT NULL
Set @SSQL = @SSQL + ' LEFT OUTER JOIN OsnPodelSta OPS ON O.Inv_Broj=OPS.Inv_Broj AND OPS.Sifra_OsnGrPodel='+cast(@Sifra_OsnGrPodel_ZaGrupiranje as varchar(4))+
' LEFT OUTER JOIN OsnPodelbi OP ON OPS.Sifra_OsnGrPodel=OP.Sifra_OsnGrPodel AND OPS.Sifra_OsnPodel=OP.Sifra_OsnPodel '
Set @SSQL = @SSQL + ' Where S.Tip_StaOsn = ''D'' and S.Delov_God = ' + cast(@Delov_God as varchar(4)) + ' '
If @Inv_BrojOd Is Not null
Set @SSQL = @SSQL + ' And S.Inv_Broj >= ''' + @Inv_BrojOd + ''' '
If @Inv_BrojDo Is Not null
Set @SSQL = @SSQL + ' And S.Inv_Broj <= ''' + @Inv_BrojDo + ''' '
If @Sifra_Lok Is Not null
Set @SSQL = @SSQL + ' And L.Sifra_Lok = ''' + @Sifra_Lok + ''' '
If @Sifra_MakLok Is Not null
Set @SSQL = @SSQL + ' And MAKL.Sifra_MakLok = ''' + @Sifra_MakLok + ''' '
If @Sifra_MikLok Is Not null
Set @SSQL = @SSQL + ' And MIKL.Sifra_MikLok = ''' + @Sifra_MikLok + ''' '
If @Sifra_Amor Is Not null
Set @SSQL = @SSQL + ' And O.Sifra_Amor = ''' + @Sifra_Amor + ''' '
If @DatNabOd Is Not null
Set @SSQL = @SSQL + ' And S.Datum_Dok >= ''' + cast(@DatNabOd as varchar(30)) + ''' '
If @DatNabDo Is Not null
Set @SSQL = @SSQL + ' And S.Datum_Dok <= ''' + cast(@DatNabDo as varchar(30)) + ''' '
If @DatAktOd Is Not null
Set @SSQL = @SSQL + ' And S.Datum_Dok >= ''' + cast(@DatAktOd as varchar(30)) + ''' '
If @DatAktDo Is Not null
Set @SSQL = @SSQL + ' And S.Datum_Dok <= ''' + cast(@DatAktDo as varchar(30)) + ''' '
If @DatPrestOd Is Not null
Set @SSQL = @SSQL + ' And O.DatPrest >= ''' + cast(@DatPrestOd as varchar(30)) + ''' '
If @DatPrestDo Is Not null
Set @SSQL = @SSQL + ' And O.DatPrest <= ''' + cast(@DatPrestDo as varchar(30)) + ''' '
If @Rabotnici Is Not null
Set @SSQL = @SSQL + ' And O.Sifra_Rab In (' + @Rabotnici + ') '
If @OS_SI = 'O'
Set @SSQL = @SSQL + ' And O.Tip = ''OS'' '
Else If @OS_SI = 'S'
Set @SSQL = @SSQL + ' And O.Tip = ''SI'' '
IF @Filtri_OsnPodelbi IS NOT NULL
SET @SSQL = @SSQL + ' AND O.Inv_Broj IN (SELECT Inv_Broj FROM #TmpOsnSoPodel) '
IF @PrikOtpisani = 'N'
Set @SSQL = @SSQL + ' And O.DatPrest Is Null '
End
print @SSQL
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_preglotkbeleska]'))
Inner Join #ArtStaRabNal A On A.RabNalID=RN.RabNalID
Inner Join DokRabNal DRN On DRN.RabNalID=RN.RabNAlID
Inner Join Dokr D On D.DokrID=DRN.DokrID
Inner Join Stavr S On S.DokrID=D.DokrID
Where D.VlIZl='V' And D.Sifra_Dok=42 AND D.Datum_Dok>=@Datum_Od AND D.Datum_Dok<=@Datum_Do --ovde ne e potrebno sifra_Dok=42, ama aj
Group By RN.RabNalID, DRN.Sifra_Smena, D.Datum_Dok --AND DRN.Sifra_Smena IS NOT NULL
UPDATE #Rez SET KolicIzrab=P.KolicIzrab FROM #RabNalPriem P WHERE #Rez.RabNalID=P.RabNalID AND #Rez.Sifra_Smena=P.Sifra_Smena AND #Rez.Datum_Dok=P.Datum_Dok
@OS_SI char(1) = NULL, -- O-Osnovni Sredstva, S-Siten Inventar NE CEPKAJ DEFAULT, BITEN ZA PRENOSOT
@Osn_Amor decimal(18,6) = 0 OUTPUT,
@Otpis decimal(18,6) = 0 OUTPUT
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 #TmpAmorPresm
( Inv_Broj char(10),
Rbr smallint,
DatAkt smalldatetime,
DatPrest smalldatetime,
PocDatAmor smalldatetime,
KrDatAmor smalldatetime,
Osn_Amor decimal(18,2),
Otpis_pret decimal(18,2),
Stapka_Amor decimal(8,3),
PocDatKumul smalldatetime,
KrDatKumul smalldatetime,
PocDatDoPer smalldatetime,
KrDatDoPer smalldatetime,
AmortKumul decimal(18,6),
AmortPer decimal(18,6),
Rashodovano char(1),
Miruvanje char(1),
Sifra_Kup varchar(20)
)
SET @SSQL = 'INSERT INTO #TmpAmorPresm (Inv_Broj, Rbr, DatAkt, DatPrest) SELECT Inv_Broj, 0, DatAkt, DatPrest FROM OsnSred
WHERE DatAkt IS NOT NULL AND DatAkt <= ''' +cast(@KrDat as varchar(35)) +
''' AND (DatPrest IS NULL OR Year(DatPrest) >= ' + cast(@GodPresm as char(4)) + ' )'
--do 20.07.07 WHERE DatAkt IS NOT NULL AND Year(Datakt) <= ' +cast(@GodPresm as char(4)) +
-- ' AND (DatPrest IS NULL OR Year(DatPrest) >= ' + cast(@GodPresm as char(4)) + ' )'
If @Inv_Broj_Od IS NOT NULL
SET @SSQL = @SSQL + ' AND Inv_Broj >= ''' + @Inv_Broj_Od + ''' '
If @Inv_Broj_Do IS NOT NULL
SET @SSQL = @SSQL + ' AND Inv_Broj <= ''' + @Inv_Broj_Do + ''' '
If @Kto_Anal IS NOT NULL
SET @SSQL = @SSQL + ' AND Kto_Anal IN (''' + @Kto_Anal + ''') '
If @Sifra_Amor IS NOT NULL
SET @SSQL = @SSQL + ' AND Sifra_Amor IN (''' + @Sifra_Amor + ''') '
If @Sifra_MikLok IS NOT NULL
SET @SSQL = @SSQL + ' AND Sifra_MikLok IN (''' + @Sifra_MikLok + ''') '
If @Sifra_MakLok IS NOT NULL
SET @SSQL = @SSQL + ' AND Sifra_MikLok IN (SELECT Sifra_MikLok FROM MikroLok WHERE Sifra_MakLok IN (''' + @Sifra_MakLok + ''')) '
If @Sifra_Lok IS NOT NULL
SET @SSQL = @SSQL + ' AND Sifra_MikLok IN (SELECT Sifra_MikLok FROM MikroLok WHERE Sifra_MakLok IN (
SELECT Sifra_MakLok FROM MakroLok WHERE Sifra_Lok IN (''' + @Sifra_Lok + '''))) '
If @Sifra_Rab IS NOT NULL
SET @SSQL = @SSQL + ' AND Sifra_Rab IN (' + @Sifra_Rab + ') '
If @OS_SI = 'O'
Set @SSQL = @SSQL + ' And Tip = ''OS'' '
Else If @OS_SI = 'S'
Set @SSQL = @SSQL + ' And Tip = ''SI'' '
EXEC (@SSQL)
--print @ssql
IF @PrikDogradbi <> 'N'
Begin
INSERT INTO #TmpAmorPresm (Inv_Broj, Rbr, DatAkt, DatPrest, Osn_Amor, Otpis_Pret)
SELECT Inv_Broj, 1, Datum_Dok, Null, Osn_Amor, 0 FROM StavOsnSred
WHERE Inv_Broj IN (SELECT Inv_Broj FROM #TmpAmorPresm) AND Delov_God = @GodPresm
AND Tip_StaOsn IN ('D','E') AND Datum_Dok<=@KrDat
End
INSERT INTO #PomOsn (Inv_Broj, DatAkt, DatPrest)
SELECT Inv_Broj, DatAkt, DatPrest FROM #TmpAmorPresm
Where Rbr <> 1 -- dod 06.06.2008 GK
UPDATE #TmpAmorPresm SET DatPrest = #PomOsn.DatPrest FROM #PomOsn
WHERE #PomOsn.Inv_Broj = #TmpAmorPresm.Inv_Broj AND #TmpAmorPresm.Rbr=1
IF @PrikOtpisani='N'
Delete From #TmpAmorPresm Where Inv_Broj In (Select Inv_Broj From OsnSred Where DatPrest IS NOT NULL AND DatPrest <= @KrDat)
IF @PrikNabOdPrethGod = 'N'
Begin
If @PrikOtpisani = 'D'
Delete From #TmpAmorPresm Where Inv_Broj In (Select Inv_Broj From OsnSred Where Year(DatNab) < Year(@KrDat)
And (DatPrest Is Null Or Year(DatPrest) < Year(@KrDat) Or DatPrest > @KrDat))
Else
Delete From #TmpAmorPresm Where Inv_Broj In (Select Inv_Broj From OsnSred Where Year(DatNab) < Year(@KrDat)) and Rbr=0
End
IF @PrikNovoNab ='N'
Begin
If @PrikOtpisani = 'D'
Delete From #TmpAmorPresm Where Inv_Broj In
(Select Inv_Broj From OsnSred Where Year(DatNab) = Year(@KrDat) And DatNab <= @KrDat
And (DatPrest Is Null Or Year(DatPrest) < Year(@KrDat) Or DatPrest > @KrDat))
Else
Delete From #TmpAmorPresm Where Inv_Broj In (Select Inv_Broj From OsnSred Where Year(DatNab) = Year(@KrDat) And DatNab <= @KrDat)
-- DELETE FROM #TmpAmorPresm WHERE Inv_Broj IN (SELECT Inv_Broj FROM StavOsnSred WHERE Delov_God = @GodPresm AND Tip_StaOsn ='P')
End
-- ELSE GK - vaka bese do 13.02.09 ako se prikazuvaat sredstva nabaveni i otpisani vo ista godina nemasse vrednosti (verojatno ova ELSE bese po gresska staveno)
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
Declare @ImaOvaaGod smallint, @PrvoStGod smallint
Declare TabOS Cursor Fast_Forward For
Select Inv_Broj From #TmpOS 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
--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)
LEFT OUTER JOIN MikroLok MI ON O.Sifra_MikLok=MI.Sifra_MikLok
WHERE (T.DatPrest IS NULL OR Year(T.DatPrest)>@GodPresm Or T.Miruvanje='M')
GROUP BY O.Kto_Anal, O.Sifra_Div, O.Sifra_TrosM, O.Sifra_TrosV ORDER BY O.Kto_Anal, O.Sifra_Div, O.Sifra_TrosM, O.Sifra_TrosV
End
ELSE --do22.06.09 bese O.DatPrest
Begin
UPDATE #TmpAmorPresm SET Sifra_Kup = D.Sifra_Kup From DokOsnSred D Inner Join StavOsnSred S On S.DokOID=D.DokOID Where S.Inv_Broj=#TmpAmorPresm.Inv_Broj And D.Tip_StaOsn in ('P','I')
WHERE DatumOd <= @Datum_Od AND DatumDo >= @Datum_Od
If @KamDatDo IS NOT NULL AND @PomDatDo >= @KamDatDo
SET @PomDatDo = @KamDatDo
End
Else
SET @InicOsn = 'N'
INSERT INTO #TmpPer (Datum_Od, Datum_Do, InicOsn, Stapka)
VALUES (@Datum_Od, @PomDatDo, @InicOsn, @KamSt)
SET @Datum_Od = DateAdd(day, 1, @PomDatDo)
End
--sega po nov metod od 01.02.2010
--IF @DatKam>'2009-12-31'
IF @DatKam>'2010-01-31' -- GK 07.07.10
Begin
---Set @Datum_Od='2010-01-01'
While @Datum_Od<=@DatKam
Begin
Select @Datum_Do=K.DatumDo, @KamSt=Stapka From #KamSt K Where K.DatumOd<=@Datum_Od And K.DatumDo>=@Datum_Od -- GK 25.08.2010 Bese > i zezasse na preodni periodi
If Year(@Datum_Od)<>Year(@Datum_Do) Set @Datum_Do = dbo.fn_NapraviDatum(Year(@Datum_Od), 12, 31)
If @Datum_Do > @DatKam Set @Datum_Do=@DatKam
Insert Into #TmpPer Values(@Datum_Od, @Datum_Do, 'D', @KamSt)
Set @Datum_Od=DateAdd(day, 1, @Datum_Do)
End
End
--SEGA presmetuvame kamata
Declare @Osnovica as decimal(18,6), @Kamata as decimal(18,6), @KoefP as decimal(18,6)
Declare @DenPresm as smallint, @DenVoGod as smallint, @k as decimal(18,6)
SET @Osnovica = @IznZaKam
SET @Kamata = 0.0
Declare KI Cursor Fast_Forward For
Select Datum_Od, Datum_Do, InicOsn, Stapka From #TmpPer ORDER BY Datum_Od
Open KI
Fetch Next From KI Into @Datum_Od, @Datum_Do, @InicOsn, @KamSt
While @@Fetch_Status = 0
Begin
--IF @Datum_Od < '2010-01-01'
IF @Datum_Od < '2010-02-01' --GK 07.07.10
BEGIN
If @InicOsn = 'D' SET @Osnovica = @IznZaKam
SET @DenPresm = DateDiff(day, @Datum_od, @Datum_do) + 1
SET @PomDatDo = dbo.fn_NapraviDatum(year(@Datum_Od), 12,31)
SET @DenVoGod = DatePart(dy, @PomDatDo)
SET @k = round(cast(@DenPresm as decimal(8,2))/ cast(@DenVoGod as decimal(8,2)), 6)
Fetch Next From KI Into @Datum_Od, @Datum_Do, @InicOsn, @KamSt
End
Close KI
Deallocate KI
Fetch Next From Stavki Into @KLisID, @DatKam, @IznZaKam, @DatFakt, @Rok, @BrFak, @Ekster
End
Close Stavki
Deallocate Stavki
SELECT * FROM #TmpKL
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_presmotkup]'))
drop procedure [dbo].[sp_presmotkup]
Go
CREATE PROCEDURE sp_PresmOtkup
@Sifra_Oe smallint,
@Sifra_Dok smallint,
@Broj_Dok int,
@KSifra_Dok smallint=null
AS
Declare @Datum_Dok smalldatetime
Declare @Sifra_Kup char(6)
Declare @Dat_DospOd smalldatetime
SELECT @Datum_Dok=Datum_Dok, @Sifra_Kup=Sifra_Kup FROM Dokr WHERE Sifra_OE=@Sifra_OE AND Sifra_Dok=@Sifra_Dok AND Broj_Dok=@Broj_Dok
SET @Dat_DospOd = dbo.fn_VratiDatumOd(Year(@Datum_Dok), Month(@Datum_Dok))
CREATE TABLE #Stavki
(Sifra_Art varchar(20),
ImeArt varchar(40),
EdMera char(5),
Kolic decimal(18,2),
Koef decimal(18,2),
Cena decimal(18,2),
Dokument varchar(50),
Datum_Dok smalldatetime,
Datum_Dosp smalldatetime,
Sifra_Kup char(6))
INSERT INTO #Stavki SELECT S.Sifra_Art, A.ImeArt, A.EdMera, S.Kolic, cast(S.Proc_Rand AS decimal(18,2))/100, dbo.fn_VratiCena(S.DokCena,S.POsnPren,S.DanDokCena,'D'),
Cast(@Sifra_OE as varchar(3))+'-'+Cast(@Sifra_Dok as varchar(3))+'/'+Cast(@Broj_Dok as varchar(8)), S.Datum_Dok, S.Datum_Dok, @Sifra_Kup
FROM Stavr S INNER JOIN KatArt A ON S.Sifra_Art=A.Sifra_Art WHERE Sifra_OE=@Sifra_OE AND Sifra_Dok=@Sifra_Dok AND Broj_Dok=@Broj_Dok
IF @KSifra_Dok IS NULL
INSERT INTO #Stavki SELECT S.Sifra_Art, A.ImeArt, A.EdMera, S.Kolic*-1, 0, dbo.fn_VratiCena(S.DokCena,S.POsn,S.DanDokCena,'D'),
Cast(S.Sifra_OE as varchar(3))+'-'+Cast(S.Sifra_Dok as varchar(3))+'/'+Cast(S.Broj_Dok as varchar(8)), S.Datum_Dok, DateAdd(day, D.Rok, D.Datum_dok), @Sifra_Kup
FROM Stavr S INNER JOIN KatArt A ON S.Sifra_Art=A.Sifra_Art INNER JOIN Dokr D ON S.DokrID=D.DokrID
WHERE D.Sifra_Kup = @Sifra_Kup AND D.Sifra_Za=1 AND D.VlIzl='I' AND
DateAdd(day, D.Rok, D.Datum_dok)>=@Dat_DospOd AND DateAdd(day, D.Rok, D.Datum_dok)<=@Datum_Dok
ORDER BY S.Datum_Dok
ELSE
INSERT INTO #Stavki SELECT S.Sifra_Art, A.ImeArt, A.EdMera, S.Kolic*-1, 0, dbo.fn_VratiCena(S.DokCena,S.POsn,S.DanDokCena,'D'),
Cast(S.Sifra_OE as varchar(3))+'-'+Cast(S.Sifra_Dok as varchar(3))+'/'+Cast(S.Broj_Dok as varchar(8)), S.Datum_Dok, DateAdd(day, D.Rok, D.Datum_dok), @Sifra_Kup
FROM Stavr S INNER JOIN KatArt A ON S.Sifra_Art=A.Sifra_Art INNER JOIN Dokr D ON S.DokrID=D.DokrID
WHERE D.Sifra_Kup = @Sifra_Kup AND D.Sifra_Za=1 AND D.VlIzl='I' AND D.Sifra_Dok<>@KSifra_Dok AND
DateAdd(day, D.Rok, D.Datum_dok)>=@Dat_DospOd AND DateAdd(day, D.Rok, D.Datum_dok)<=@Datum_Dok
FROM #Stavki S INNER JOIN Komint K ON S.Sifra_Kup=K.Sifra_Kup LEFT OUTER JOIN KBanki KB ON K.Sifra_Kup=KB.Sifra_Kup LEFT OUTER JOIN Banki B ON KB.Sifra_Ban=B.Sifra_Ban
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_presmrevalorizacija]'))
@PrikNabOdPrethGod char(1) = 'D', -- Prethodno Nabaveni
@PrikOtpisani char(1) = 'D', -- Otpisani NE CEPKAJ DEFAULTI
@OS_SI char(1) = 'O' -- O - Osnovni Sredstva, S - Siten Inventar
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 #TmpAmorPresm
( Inv_Broj char(10),
Rbr smallint,
DatAkt smalldatetime,
DatPrest smalldatetime,
PocDatAmor smalldatetime,
KrDatAmor smalldatetime,
Osn_Amor decimal(18,2),
Otpis_pret decimal(18,2),
Stapka_Amor decimal(8,3),
PocDatKumul smalldatetime,
KrDatKumul smalldatetime,
PocDatDoPer smalldatetime,
KrDatDoPer smalldatetime,
AmortKumul decimal(18,6),
AmortPer decimal(18,6),
Rashodovano char(1),
KoefReval decimal(18,3),
Sifra_Kup varchar(20)
)
SET @SSQL = 'INSERT INTO #TmpAmorPresm (Inv_Broj, Rbr, DatAkt, DatPrest) SELECT Inv_Broj, 0, DatAkt, DatPrest FROM OsnSred
WHERE DatAkt IS NOT NULL AND DatAkt <= ''' +cast(@KrDat as varchar(35)) +
''' AND (DatPrest IS NULL OR Year(DatPrest) >= ' + cast(@GodPresm as char(4)) + ' )'
--do 20.07.07 WHERE DatAkt IS NOT NULL AND Year(Datakt) <= ' +cast(@GodPresm as char(4)) +
-- ' AND (DatPrest IS NULL OR Year(DatPrest) >= ' + cast(@GodPresm as char(4)) + ' )'
If @Inv_Broj_Od IS NOT NULL
SET @SSQL = @SSQL + ' AND Inv_Broj >= ''' + @Inv_Broj_Od + ''' '
If @Inv_Broj_Do IS NOT NULL
SET @SSQL = @SSQL + ' AND Inv_Broj <= ''' + @Inv_Broj_Do + ''' '
If @Kto_Anal IS NOT NULL
SET @SSQL = @SSQL + ' AND Kto_Anal IN (''' + @Kto_Anal + ''') '
If @Sifra_Amor IS NOT NULL
SET @SSQL = @SSQL + ' AND Sifra_Amor IN (''' + @Sifra_Amor + ''') '
If @Sifra_MikLok IS NOT NULL
SET @SSQL = @SSQL + ' AND Sifra_MikLok IN (''' + @Sifra_MikLok + ''') '
If @Sifra_MakLok IS NOT NULL
SET @SSQL = @SSQL + ' AND Sifra_MikLok IN (SELECT Sifra_MikLok FROM MikroLok WHERE Sifra_MakLok IN (''' + @Sifra_MakLok + ''')) '
If @Sifra_Lok IS NOT NULL
SET @SSQL = @SSQL + ' AND Sifra_MikLok IN (SELECT Sifra_MikLok FROM MikroLok WHERE Sifra_MakLok IN (
SELECT Sifra_MakLok FROM MakroLok WHERE Sifra_Lok IN (''' + @Sifra_Lok + '''))) '
If @Sifra_Rab IS NOT NULL
SET @SSQL = @SSQL + ' AND Sifra_Rab IN (' + @Sifra_Rab + ') '
If @OS_SI = 'O'
Set @SSQL = @SSQL + ' And Tip = ''OS'' '
Else If @OS_SI = 'S'
Set @SSQL = @SSQL + ' And Tip = ''SI'' '
EXEC (@SSQL)
IF @PrikDogradbi <> 'N'
Begin
INSERT INTO #TmpAmorPresm (Inv_Broj, Rbr, DatAkt, DatPrest, Osn_Amor, Otpis_Pret)
SELECT Inv_Broj, 1, Datum_Dok, Null, Osn_Amor, 0 FROM StavOsnSred
WHERE Inv_Broj IN (SELECT Inv_Broj FROM #TmpAmorPresm) AND Delov_God = @GodPresm
AND Tip_StaOsn IN ('D','E') AND Datum_Dok<=@KrDat
End
INSERT INTO #PomOsn (Inv_Broj, DatAkt, DatPrest)
SELECT Inv_Broj, DatAkt, DatPrest FROM #TmpAmorPresm
Where Rbr <> 1 -- dod 06.06.2008 GK
UPDATE #TmpAmorPresm SET DatPrest = #PomOsn.DatPrest FROM #PomOsn
WHERE #PomOsn.Inv_Broj = #TmpAmorPresm.Inv_Broj AND #TmpAmorPresm.Rbr=1
IF @PrikOtpisani='N'
Delete From #TmpAmorPresm Where Inv_Broj In (Select Inv_Broj From OsnSred Where DatPrest IS NOT NULL AND DatPrest <= @KrDat)
IF @PrikNabOdPrethGod = 'N'
If @PrikOtpisani = 'D'
Delete From #TmpAmorPresm Where Inv_Broj In (Select Inv_Broj From OsnSred Where Year(DatNab) < Year(@KrDat)
And (DatPrest Is Null Or Year(DatPrest) < Year(@KrDat) Or DatPrest > @KrDat))
Else
Delete From #TmpAmorPresm Where Inv_Broj In (Select Inv_Broj From OsnSred Where Year(DatNab) < Year(@KrDat)) and Rbr=0
IF @PrikNovoNab ='N'
Begin
If @PrikOtpisani = 'D'
Delete From #TmpAmorPresm Where Inv_Broj In
(Select Inv_Broj From OsnSred Where Year(DatNab) = Year(@KrDat) And DatNab <= @KrDat
And (DatPrest Is Null Or Year(DatPrest) < Year(@KrDat) Or DatPrest > @KrDat))
Else
Delete From #TmpAmorPresm Where Inv_Broj In (Select Inv_Broj From OsnSred Where Year(DatNab) = Year(@KrDat) And DatNab <= @KrDat)
-- DELETE FROM #TmpAmorPresm WHERE Inv_Broj IN (SELECT Inv_Broj FROM StavOsnSred WHERE Delov_God = @GodPresm AND Tip_StaOsn ='P')
End
-- ELSE GK - vaka bese do 13.02.09 ako se prikazuvaat sredstva nabaveni i otpisani vo ista godina nemasse vrednosti (verojatno ova ELSE bese po gresska staveno)
--dod.03.06.09
CREATE TABLE #Tmp1AmorPresm
( Inv_Broj char(10),
Rbr smallint,
DatAkt smalldatetime,
DatPrest smalldatetime,
PocDatAmor smalldatetime,
KrDatAmor smalldatetime,
Osn_Amor decimal(18,2),
Otpis_pret decimal(18,2),
Stapka_Amor decimal(8,3),
PocDatKumul smalldatetime,
KrDatKumul smalldatetime,
PocDatDoPer smalldatetime,
KrDatDoPer smalldatetime,
AmortKumul decimal(18,6),
AmortPer decimal(18,6),
Rashodovano char(1),
KoefReval decimal(18,3),
Sifra_Kup varchar(20)
)
CREATE TABLE #TmpMiruv
(Inv_Broj char(10),
Datum smalldatetime,
Sto Char(1))
INSERT INTO #TmpMiruv (Inv_Broj, Datum, Sto) SELECT Inv_Broj, Datum_Dok, Tip_StaOsn
FROM StavOsnSred WHERE Datum_Dok<=@KrDat AND Tip_StaOsn='M' AND Inv_Broj IN (SELECT Inv_Broj FROM #TmpAmorPresm)
INSERT INTO #TmpMiruv (Inv_Broj, Datum, Sto) SELECT Inv_Broj, Datum_Dok, Tip_StaOsn
FROM StavOsnSred WHERE Datum_Dok >=@PocDatGod AND Datum_Dok<=@KrDat AND Tip_StaOsn='A' AND Inv_Broj IN (SELECT Inv_Broj FROM #TmpAmorPresm)
INSERT INTO #Tmp1AmorPresm SELECT * FROM #TmpAmorPresm WHERE Inv_Broj IN (SELECT Inv_Broj FROM #TmpMiruv) AND Rbr=0
DELETE FROM #TmpAmorPresm WHERE Inv_Broj IN (SELECT Inv_Broj FROM #TmpMiruv) AND Rbr=0
WHERE T.DatPrest IS NULL OR Year(T.DatPrest)>@GodPresm
GROUP BY T.Inv_Broj, O.Kto_Anal, O.Sifra_Amor, O.Sifra_MikLok,O.Sifra_Rab,O.Orig_Nab_Vr, T.Rashodovano
ORDER BY T.Inv_Broj
ELSE
Begin
UPDATE #TmpAmorPresm SET Sifra_Kup = D.Sifra_Kup From DokOsnSred D Inner Join StavOsnSred S On S.DokOID=D.DokOID Where S.Inv_Broj=#TmpAmorPresm.Inv_Broj And D.Tip_StaOsn in ('P','I')
INNER JOIN AmorGrp A ON A.Sifra_Amor = O.Sifra_Amor
LEFT OUTER JOIN MikroLok MI ON O.Sifra_MikLok = MI.Sifra_MikLok
LEFT OUTER JOIN MakroLok MA ON MI.Sifra_MakLok = MA.Sifra_MakLok
LEFT OUTER JOIN Lokacija L ON MA.Sifra_Lok = L.Sifra_Lok
LEFT OUTER JOIN Rabotnik Rab On Rab.Sifra_Rab=O.Sifra_Rab
LEFT OUTER JOIN Komint Kup On Kup.Sifra_Kup = T.Sifra_Kup
-- Where O.Inv_Broj In (Select Inv_Broj from #NabavTekGod)
order by koefreval
End
---select * from #TmpAmorPresm
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_presmtrosprevoz_transnal]'))
drop procedure [dbo].[sp_presmtrosprevoz_transnal]
Go
CREATE PROCEDURE sp_PresmTrosPrevoz_TransNal
@Sifra_Oe smallint = Null,
@Broj_TransOd int = Null,
@Broj_TransDo int = Null,
@Datum_TransNalOd smalldatetime = Null,
@Datum_TransNalDo smalldatetime = Null,
@Sifra_Vid_Voz varchar(20) = Null,
@Sif_Grad_Glaven smallint = Null,
@Sifra_Prev char(6) = Null,
@Kurs decimal(9,2) = 1
AS
Declare @SSQL as varchar(8000)
Create Table #Cursor
(
Sifra_Oe smallint,
Broj_Trans int
)
Create Table #TransNal
(
Sifra_Oe smallint,
Broj_Trans int,
Opis varchar(200),
Iznos decimal(18,4)
)
Set @SSQL = ' Select TN.Sifra_Oe, TN.Broj_Trans
From TransNal TN
Where 1=1 '
If @Sifra_Oe Is Not Null
Set @SSQL = @SSQL + ' And TN.Sifra_Oe = ' + cast(@Sifra_Oe as varchar(6)) + ' '
If @Broj_TransOd Is Not Null
Set @SSQL = @SSQL + ' And TN.Broj_Trans >= ' + cast(@Broj_TransOd as varchar(10)) + ' '
If @Broj_TransDo Is Not Null
Set @SSQL = @SSQL + ' And TN.Broj_Trans <= ' + cast(@Broj_TransDo as varchar(10)) + ' '
If @Datum_TransNalOd Is Not Null
Set @SSQL = @SSQL + ' And TN.Datum_TransNal >= ''' + cast(@Datum_TransNalOd as varchar(30)) + ''' '
If @Datum_TransNalDo Is Not Null
Set @SSQL = @SSQL + ' And TN.Datum_TransNal <= ''' + cast(@Datum_TransNalDo as varchar(30)) + ''' '
If @Sifra_Vid_Voz Is Not Null
Set @SSQL = @SSQL + ' And TN.Sifra_Vid_Voz = ' + @Sifra_Vid_Voz + ' '
If @Sifra_Prev Is Not Null
Set @SSQL = @SSQL + ' And TN.Sifra_Prev = ' + @Sifra_Prev + ' '
Insert Into #Cursor(Sifra_Oe, Broj_Trans) Exec(@SSQL)
Declare @SifOe smallint
Declare @BrTrans int
Declare @SumFri decimal(18,2)
Declare @BrFri smallint
Declare @MaxKM as smallint
Declare @BrGradovi as smallint
Declare @CenaKM as decimal(18,2)
Declare @SifVidVoz as varchar(20)
Declare @Cena as decimal(18,2)
Declare @KM as int
declare @brojac smallint
set @brojac=0
--select * from #transnal
Declare TransNal Cursor Fast_Forward For Select Sifra_Oe, Broj_Trans From #Cursor
Open TransNal
Fetch Next From TransNal Into @SifOe, @BrTrans
While @@Fetch_Status = 0
Begin
-- Da najdeme dali ima mesta za isporaka nadvor od glavniot grad
If Not Exists(Select T.Broj_Trans
From TransNal T
Inner Join TransNalStav S On S.Sifra_Oe=T.Sifra_Oe And S.Broj_Trans=T.Broj_Trans
Inner Join Dokr D On D.DokrID=S.DokrID
Left Outer Join Komint Kup On Kup.Sifra_Kup=D.Sifra_Kup
Left Outer Join KObjekti KO On KO.Sifra_Kup=D.Sifra_Kup And KO.Sifra_Obj=D.Sifra_Obj
Where T.Sifra_Oe=@SifOe And T.Broj_Trans=@BrTrans
And ((D.Sifra_Obj Is Not Null And KO.Sifra_Grad <> @Sif_Grad_Glaven) OR ( D.Sifra_Obj Is Null and Kup.Sifra_Grad <> @Sif_Grad_Glaven)) )
Begin -- Ako site mesta za isporaka se vo glavniot grad
-- Da presmetame kolku e vkupniot iznos na fakturi vo transportniot nalog
Select @SumFri = Sum(D.Toc200)
From TransNal T
Inner Join TransNalStav S On S.Sifra_Oe=T.Sifra_Oe And S.Broj_Trans=T.Broj_Trans
Inner Join Dokr D On D.DokrID=S.DokrID
Where T.Sifra_Oe=@SifOe And T.Broj_Trans=@BrTrans
Select @BrFri = Count(Distinct D.Sifra_Kup + (Case When D.Sifra_Obj Is Not Null Then cast(D.Sifra_Obj as varchar(6)) Else '&&&' End)) -- Select @BrFri = Count(S.DokrID)
From TransNal T
Inner Join TransNalStav S On S.Sifra_Oe=T.Sifra_Oe And S.Broj_Trans=T.Broj_Trans
Inner Join Dokr D On D.DokrID=S.DokrID -- dodadeno 12.01.2005
Where T.Sifra_Oe=@SifOe And T.Broj_Trans=@BrTrans
If @SumFri < 100000 And @BrFri > 5
Begin
Insert Into #TransNal (Sifra_Oe, Broj_Trans, Opis, Iznos)
Values(@SifOe, @BrTrans, Cast(@SumFri as varchar(20))+' den. * 1.5% + (' + Cast(@BrFri as varchar(10))+' br.f-ri - 5) * 100 den.' , (@SumFri*0.015+(@BrFri-5)*100))
End
Else
Begin
Insert Into #TransNal (Sifra_Oe, Broj_Trans, Opis, Iznos)
Values (@SifOe, @BrTrans, Cast(@SumFri as varchar(20))+' den. * 1.5% ', (@SumFri * 0.015))
End
End
Else -- Ako ima mesta za isporaka i nadvor od glavniot grad
Begin
Select @MaxKM = Max(G.Oddalecenost)
From TransNal T
Inner Join TransNalStav S On S.Sifra_Oe=T.Sifra_Oe And S.Broj_Trans=T.Broj_Trans
Inner Join Dokr D On D.DokrID=S.DokrID
Left Outer Join Komint Kup On Kup.Sifra_Kup=D.Sifra_Kup
Left Outer Join KObjekti KO On KO.Sifra_Kup=D.Sifra_Kup And KO.Sifra_Obj=D.Sifra_Obj
Left Outer Join Grad G On G.Sifra_Grad=(Case When D.Sifra_Obj Is Not Null Then KO.Sifra_Grad Else Kup.Sifra_Grad End)
Where T.Sifra_Oe=@SifOe And T.Broj_Trans=@BrTrans
Select @SifVidVoz = Sifra_Vid_Voz
From TransNal Where Sifra_Oe=@SifOe And Broj_Trans=@BrTrans
Set @Cena = 0
Set @KM=0
Declare CrsCena Cursor Fast_Forward For Select Cena, KM From CenVidVozila Where Sifra_Vid_Voz = @SifVidVoz Order By KM
Open CrsCena
Fetch Next From CrsCena Into @Cena, @KM
While @@Fetch_Status = 0
Begin
Set @CenaKM=@Cena
If @MaxKM < @KM
Break
Fetch Next From CrsCena Into @Cena, @KM
End
Close CrsCena
Deallocate CrsCena
If @MaxKM >= 100
Begin
Select @BrGradovi = count(distinct(Case When D.Sifra_Obj Is Not Null Then KO.Sifra_Grad Else Kup.Sifra_Grad End))
From TransNal T
Inner Join TransNalStav S On S.Sifra_Oe=T.Sifra_Oe And S.Broj_Trans=T.Broj_Trans
Inner Join Dokr D On D.DokrID=S.DokrID
Left Outer Join Komint Kup On Kup.Sifra_Kup=D.Sifra_Kup
Left Outer Join KObjekti KO On KO.Sifra_Kup=D.Sifra_Kup And KO.Sifra_Obj=D.Sifra_Obj
Where T.Sifra_Oe=@SifOe And T.Broj_Trans=@BrTrans
Set @BrGradovi=@BrGradovi-1 -- brojot na gradovi - 1(krajnata destinacija) -- znaci popatnite istovarni mesta
Insert Into #TransNal (Sifra_Oe, Broj_Trans, Opis, Iznos)
Values(@SifOe, @BrTrans, Cast(@MaxKM as varchar(20))+ ' km * ' + Cast(@CenaKM as varchar(20)) + ' cena * ' + Cast(@Kurs as varchar(10)) + ' kurs + ' + Cast(@BrGradovi as varchar(20)) + ' gradovi * 190 den. ' , (@CenaKM * @MaxKM * @Kurs + (@BrGradovi*190)))
End
Else
Begin
Insert Into #TransNal (Sifra_Oe, Broj_Trans, Opis, Iznos)
Values(@SifOe, @BrTrans, Cast(@MaxKM as varchar(20))+ ' km * ' + Cast(@CenaKM as varchar(20)) + ' cena * ' + Cast(@Kurs as varchar(10)) + ' kurs + ', (@CenaKM * @MaxKM * @Kurs))
End
End --Ako ima mesta za isporaka i nadvor od glavniot grad
Set @SSQLArt = @SSQLArt + ' And K.Sifra_Drg=' + Cast(@Sifra_Brand As Varchar(5)) + ' '
If @Lokacija Is Not NULL
Set @SSQLArt = @SSQLArt + ' And K.Lokacija=''' + @Lokacija + ''' '
If @Kto Is Not NULL
Set @SSQLArt = @SSQLArt + ' And K.Kto=' + @Kto + ' '
If @Sifra_Podg Is Not Null
If @PocnuvaSo ='D'
Set @SSQLArt=@SSQLArt + ' AND (K.Sifra_Podg Like ''' + Rtrim(@Sifra_Podg) + '%'') '
Else
Set @SSQLArt=@SSQLArt + ' And K.Sifra_Podg=''' + @Sifra_Podg + ''' '
If @Sifra_Gr Is Not NULL
Set @SSQLArt = @SSQLArt + ' And P.Sifra_Gr=' + @Sifra_Gr + ' '
If @Sifra_Art_Od Is Not NULL
Set @SSQLArt = @SSQLArt + ' And S.Sifra_Art>=''' + @Sifra_Art_Od + ''' '
If @Sifra_Art_Do Is Not NULL
Set @SSQLArt = @SSQLArt + ' And S.Sifra_Art<=''' + @Sifra_Art_Do + ''' '
If @Drugo1 Is Not NULL
Set @SSQLArt = @SSQLArt + ' And K.Drugo1=' + Cast(@Drugo1 As Varchar(6)) + ' '
If @Drugo2 Is Not NULL
Set @SSQLArt = @SSQLArt + ' And K.Drugo2=' + Cast(@Drugo2 As Varchar(6)) + ' '
If @Drugo3 Is Not NULL
Set @SSQLArt = @SSQLArt + ' And K.Drugo3=' + Cast(@Drugo3 As Varchar(6)) + ' '
If @Drugo4 Is Not NULL
Set @SSQLArt = @SSQLArt + ' And K.Drugo4=' + Cast(@Drugo4 As Varchar(6)) + ' '
If @Drugo5 Is Not NULL
Set @SSQLArt = @SSQLArt + ' And K.Drugo5=' + Cast(@Drugo5 As Varchar(6)) + ' '
If @Drugo6 Is Not NULL
Set @SSQLArt = @SSQLArt + ' And K.Drugo6=' + Cast(@Drugo6 As Varchar(6)) + ' '
If @Drugo7 Is Not NULL
Set @SSQLArt = @SSQLArt + ' And K.Drugo7=' + Cast(@Drugo7 As Varchar(6)) + ' '
If @Sifra_OE Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And D.Sifra_OE=' + Cast(@Sifra_OE As Varchar(5)) + ' '
If @KoiOE Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And D.Sifra_OE In (' + @KoiOE + ') '
If @TipDokProd IS NOT NULL
Set @SSQLUsl = @SSQLUsl + ' And D.Sifra_Dok IN (' + @TipDokProd + ') '
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)) + ''' '
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 '
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
Create Table #TabBrKup
(
Sifra_Pat int,
GrPat varchar(10),
BrKupPreth int,
BrKupDenes int,
BrKupPrethMes int,
--BrNoviKup int,
ProdPaketi decimal(18,4),
ProdVrednost decimal(18,4),
ProdLitri decimal(18,4),
BrFakturi int
)
Set @SSQL = ' Select D.Sifra_Pat, Null,
Count(Distinct (Case When D.Datum_Dok < ''' + Cast(@Datum_Do as varchar(30)) + ''' Then (Case When D.Sifra_Obj Is Not Null Then D.Sifra_Kup + '' '' + Cast(D.Sifra_Obj as varchar(4)) Else D.Sifra_Kup End) end)),
Count(Distinct (Case When D.Datum_Dok <= ''' + Cast(@Datum_Do as varchar(30)) + ''' Then (Case When D.Sifra_Obj Is Not Null Then D.Sifra_Kup + '' '' + Cast(D.Sifra_Obj as varchar(4)) Else D.Sifra_Kup End) end)),
Count(Distinct (Case When D.Datum_Dok < ''' + Cast(Year(@Datum_Do) as varchar(4)) + '-' + Cast(month(@Datum_Do) as varchar(2)) + '-01' + ''' Then (Case When D.Sifra_Obj Is Not Null Then D.Sifra_Kup + '' '' + Cast(D.Sifra_Obj as varchar(4)) Else D.Sifra_Kup End) end)),
Sum(Case When D.Datum_Dok = ''' + Cast(@Datum_Do as varchar(30)) + ''' Then (Case When K.ImaKomerc > 0 Then S.Kolic / K.ImaKomerc Else S.Kolic End) Else 0 End) ProdPaketi,
Sum(Case When D.Datum_Dok = ''' + Cast(@Datum_Do as varchar(30)) + ''' Then (S.Kolic * (Case When S.DanDokCena = ''D'' Then S.DokCena Else S.DokCena * (1+S.Posn/100) End) * (1-S.Uces/100) * (1-D.Kasa/100)) Else 0 End) ProdVrednost,
Sum(Case When D.Datum_Dok = ''' + Cast(@Datum_Do as varchar(30)) + ''' Then (S.Kolic * K.Volumen / 1000) Else 0 End) ProdLitri,
Count(Distinct (Case When D.Datum_Dok = ''' + Cast(@Datum_Do as varchar(30)) + ''' Then D.DokrID End)) BrFakturi
From Dokr D
Inner Join Stavr S On S.DokrID=D.DokrID
Inner Join KatArt K ON S.Sifra_Art=K.Sifra_Art '
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 @GrArt Is Not Null
Set @SSQL = @SSQL + ' Inner Join #GrArt GA On GA.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 '
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) Or (@Koi_Regioni Is Not Null) Or (@KoiPat Is Not Null) Or (@Koi_Gradovi 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 1=1 '
Set @SSQL = @SSQL + @SSQLUsl + @SSQLKup + @SSQLArt + ' Group By D.Sifra_Pat '
Insert Into #TabBrKup Exec (@SSQL)
Update #TabBrKup Set GrPat = Sif_GrPat From SGrPat Where SGrPat.Sifra_Pat = #TabBrKup.Sifra_Pat --And SGrPat.Sif_GrPat In (
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 KO.Sifra_Kup=D.Sifra_Kup AND KO.SIFRA_OBJ=D.SIFRA_OBJ '
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + 'Inner Join PodGrupi P ON K.Sifra_Podg=P.Sifra_Podg '
--------------------------------------------------------------------------------------- U S L O V ----------------------------------------------------------------------------------------------------------------------------------------------------------
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 + ' '
-------------------------------------------------------------------------------------------------------------- D A T U M -------------------------------------------------------------------------------------------------------------------------------
Create Table #Datumi
(
Datum_Od smalldatetime,
Datum_Do smalldatetime
)
Declare @DenOd int
Declare @DenDo int
Declare @MesecOd int
Declare @MesecDo int
Declare @Godina int
Set @DenOd = Day(@Datum_Od)
Set @DenDo = Day(@Datum_Do)
Set @MesecOd=Month(@Datum_Od)
Set @MesecDo=Month(@Datum_Do)
Set @Godina = Year(@Datum_Do)
While @MesecOd <= @MesecDo
Begin
Insert Into #Datumi Select dbo.fn_VratiDatumOdDo(@Godina, @MesecOd, @DenOd), dbo.fn_VratiDatumOdDo(@Godina, @MesecOd, @DenDo)
------------------------------------------------------------------------------------------------- R E Z U L T A T I ----------------------------------------------------------------------------------------------------------------------------
Declare @Dat_Od as smalldatetime
Declare @Dat_Do as smalldatetime
Create Table #Rez
(
Sifra smallint,
Mesec varchar(2),
Godina varchar(4),
Promet decimal(18,6),
Fakturi int,
Stavki int,
Komintenti int
)
Declare Crs Cursor Fast_Forward For Select Datum_Od, Datum_Do From #Datumi Order By Datum_Od
Open Crs
Fetch Next From Crs Into @Dat_Od, @Dat_Do
While @@FETCH_STATUS = 0
Begin
If @PoKojDatum = 'V'
Begin
If @Dat_Od Is Not NULL
Set @SSQLDat = @SSQLDat + ' And D.Datum_Vnes>=''' + Cast(@Dat_Od As Varchar(25)) + ''' '
If @Dat_Do Is Not NULL
Set @SSQLDat = @SSQLDat + ' And D.Datum_Vnes<''' + Cast(@Dat_Do As Varchar(25)) + ''' '
End
Else
Begin
If @Dat_Od Is NOT Null
SET @SSQLDat = @SSQLDat + 'AND S.Datum_Dok >= ''' +Cast(@Dat_OD as varchar(35)) +''' '
If @Dat_Do Is NOT Null
SET @SSQLDat = @SSQLDat + 'AND S.Datum_Dok <= ''' +Cast(@Dat_Do as varchar(35)) +''' '
End
Print @SSQL+@SSQLUSL+@SSQLDat+@SSQLGroup
Insert into #Rez Exec(@SSQL+@SSQLUSL+@SSQLDat+@SSQLGroup)
Set @SSQLDat = ' '
Fetch Next From Crs Into @Dat_Od, @Dat_Do
End
Close Crs
Deallocate Crs
------------------ PROSECNA PRODAZBA VO POSLEDNITE MESECI BEZ TEKOVNIOT
Create table #ProsProd
(
Sifra smallint,
Godina varchar(4),
ProsPromet Decimal(18,6),
ProsFakturi Decimal(18,6),
ProsStavki Decimal(18,6),
ProsKomint Decimal(18,6)
)
Insert Into #ProsProd Select Sifra, Godina, Avg(Promet), Avg(Fakturi), Avg(Stavki), Avg(Komintenti)
From #Rez
Where Mesec <= @MesecDo-1
Group By Sifra, Godina
Insert into #Rez
Select Sifra, 13, Godina, ProsPromet, ProsFakturi, ProsStavki, ProsKomint From #ProsProd
---------------------------------------------------------------------------- Presmetuvanje na procentite -----------------------------------------------------------------------------------
Create Table #Proc
(
Sifra smallint,
Mesec varchar(2),
Godina varchar(4),
Promet decimal(18,6),
Fakturi int,
Stavki int,
Komintenti int
)
Update #Rez set sifra = 756 where sifra is null -- po pretpostavka deka nema sifra na patnik ili brend 756
Update #ProsProd set sifra = 756 where sifra is null
@KomercKako Char(1) = 'I', -- I - Istoriski od AnFinDok, T - Tekovno od Komint
@KolkuGodNazad smallint = 1, -- 1- edna, 2 - dve
@VratiSto char(1) = '4', -- 4 - Podelbi 4 i 5, A - Artikal, 5 - Podelba 5, G - Grad -- NEMA (A - Artikal, D - Den, M - Mesec, P - Podgrupa, B - Brend, O - Org.Ed )
@Prikazi char(1) = 'K', -- K - Kolicina, B - Brend Kolicina, T - Tezina, P - Paketi, H - Hektolitri
@Sifra_Za char(1) = '1',
@Kto char(6) = Null,
@GrKup varchar(500)= null,
@GrArt varchar(500)= null
As
Declare @SSQL as Varchar(8000)
Declare @DatGod1_Od smalldatetime
Declare @DatGod1_Do smalldatetime
-- Declare @DatGod2_Od smalldatetime
-- Declare @DatGod2_Do smalldatetime
Declare @God smallint
Declare @God1 smallint
-- Declare @God2 smallint
Set @God = Year(@Datum_Dok_Od)
Set @God1 = @God-1
-- Set @God2 = @God-2
-- If @KolkuGodNazad = 2
-- Begin
-- Set @DatGod1_Od = dbo.fn_NapraviDatum(Year(@Datum_Dok_Od)-1, Month(@Datum_Dok_Od), Day(@Datum_Dok_Od))
-- Set @DatGod1_Do = dbo.fn_NapraviDatum(Year(@Datum_Dok_Do)-1, Month(@Datum_Dok_Do), Day(@Datum_Dok_Do))
-- Set @DatGod2_Od = dbo.fn_NapraviDatum(Year(@Datum_Dok_Od)-2, Month(@Datum_Dok_Od), Day(@Datum_Dok_Od))
-- Set @DatGod2_Do = dbo.fn_NapraviDatum(Year(@Datum_Dok_Do)-2, Month(@Datum_Dok_Do), Day(@Datum_Dok_Do))
-- End
If @KolkuGodNazad = 1
Begin
Set @DatGod1_Od = dbo.fn_NapraviDatum(Year(@Datum_Dok_Od)-1, Month(@Datum_Dok_Od), Day(@Datum_Dok_Od))
Set @DatGod1_Do = dbo.fn_NapraviDatum(Year(@Datum_Dok_Do)-1, Month(@Datum_Dok_Do), Day(@Datum_Dok_Do))
-- Set @DatGod2_Od = Null
-- Set @DatGod2_Do = Null
End
Create Table #Tab
(
Sifra_Oe smallint,
Sifra_Art varchar(20),
Datum_Dok smalldatetime,
Kolic decimal(18,6),
DokCena decimal(18,6),
Grad varchar(40)
)
Set @SSQL = 'Select S.Sifra_Oe, S.Sifra_Art, S.Datum_Dok, Sum(S.Kolic) Kolic, (Case When S.DanDokCena = ''D'' Then S.DokCena Else (S.DokCena*(1+S.Posn/100)) End), '
If @VratiSto = 'G'
Set @SSQL = @SSQL + ' G.ImeGrad '
Else
Set @SSQL = @SSQL + ' Null Ime_Grad '
Set @SSQL = @SSQL + ' From Dokr D
Inner Join Stavr S On S.DokrID=D.DokrID
Inner Join Katart K On K.Sifra_Art=S.Sifra_Art
Left Outer Join Komint Kup On Kup.Sifra_Kup=D.Sifra_Kup
Left Outer Join KObjekti KO On KO.Sifra_Kup=D.Sifra_Kup And KO.Sifra_Obj=D.Sifra_Obj '
If @VratiSto = 'G'
Set @SSQL = @SSQL + ' Left Outer Join Grad G On G.Sifra_Grad = (Case When KO.Sifra_Grad Is Not Null Then KO.Sifra_Grad Else Kup.Sifra_Grad End)'
If @Sifra_Gr Is Not Null
Set @SSQL = @SSQL + ' Inner Join Podgrupi P On P.Sifra_Podg=K.Sifra_Podg '
If @Sifra_Drg1 Is Not Null
Set @SSQL = @SSQL + ' Left Outer Join DrgPodel B On B.Sifra_Drg=K.Sifra_Drg '
SET @SSQL = @SSQL + ' AND D.Sifra_Pat = ' + Cast(@Sifra_Pat as varchar(5)) + ' '
Else
SET @SSQL = @SSQL + ' AND Kup.Sifra_Pat = ' + Cast(@Sifra_Pat as varchar(5)) + ' '
End
If @Sifra_Pat Is Not Null
Set @SSQL = @SSQL + 'And Kup.Sifra_Pat=' + Cast(@Sifra_Pat As Varchar(10)) + ' '
If @Koi_Gradovi Is Not Null
Set @SSQL = @SSQL + 'And KUP.Sifra_Grad In (' + @Koi_Gradovi + ') '
If @Koi_Regioni Is Not Null
Set @SSQL = @SSQL + 'And KUP.Sifra_Reg In (' + @Koi_Regioni + ') '
If @Aktiven = 'D'
Set @SSQL = @SSQL + ' And (KUP.Aktiven <> ''N'' or KUP.Aktiven Is Null) '
Else If @Aktiven = 'N'
Set @SSQL = @SSQL + ' And KUP.Aktiven = ''N'' '
If @KPod1 Is Not Null
Set @SSQL = @SSQL + 'And Kup.KDrugo1=' + Cast(@KPod1 As Varchar(10)) + ' '
If @KPod2 Is Not Null
Set @SSQL = @SSQL + 'And Kup.KDrugo2=' + Cast(@KPod2 As Varchar(10)) + ' '
If @KPod3 Is Not Null
Set @SSQL = @SSQL + 'And Kup.KDrugo3=' + Cast(@KPod3 As Varchar(10)) + ' '
If @KPod4 Is Not Null
Set @SSQL = @SSQL + 'And Kup.KDrugo4=' + Cast(@KPod4 As Varchar(10)) + ' '
If @KPod5 Is Not Null
Set @SSQL = @SSQL + 'And Kup.KDrugo5=' + Cast(@KPod5 As Varchar(10)) + ' '
If @KPod6 Is Not Null
Set @SSQL = @SSQL + 'And Kup.KDrugo6=' + Cast(@KPod6 As Varchar(10)) + ' '
If @KPod7 Is Not Null
Set @SSQL = @SSQL + 'And Kup.KDrugo7=' + Cast(@KPod7 As Varchar(10)) + ' '
Set @SSQL = @SSQL + ' Group By S.Sifra_Oe, S.Sifra_Art, S.Datum_Dok, (Case When S.DanDokCena = ''D'' Then S.DokCena Else (S.DokCena*(1+S.Posn/100)) End) '
Set @SSQL = ' Select D1.Ime_1 Red, Null as Pakuvanje, Null as Sifra_Podg, '
Else If @VratiSto = 'M'
Set @SSQL = ' Select Cast(Month(T.Datum_Dok) as varchar(20)) Red, Null as Pakuvanje, Null as Sifra_Podg, '
Else If @VratiSto = 'D'
Set @SSQL = ' Select (Case When Day(Datum_Dok) < 10 Then ''0'' End) + Cast(Day(T.Datum_Dok) as varchar(20)) + ''/'' + (Case When Month(Datum_Dok) < 10 Then ''0'' End) + Cast(Month(T.Datum_Dok) as varchar(20)) Red, Null as Pakuvanje, Null as Sifra_Podg, '
Else If @VratiSto = 'P'
Set @SSQL = ' Select P.Ime_Podg Red, Null as Pakuvanje, Null as Sifra_Podg, '
Else If @VratiSto = 'B'
Set @SSQL = ' Select B.Ime Red, Null as Pakuvanje, Null as Sifra_Podg, '
Set @SSQL = ' Select O.ImeOrg Red, Null as Pakuvanje, Null as Sifra_Podg, '
Else If @VratiSto = '4'
*/
Set @SSQL = ''
If @VratiSto = 'A'
Set @SSQL = ' Select T.Sifra_Art, K.ImeArt, P1.Ime_1 Podelba1, Year(Datum_Dok) Godina, Null Mesec, Null Nedela, Null Den, Null Datum_Dok, P4.Ime_4 Podelba4, P5.Ime_5 Podelba5, Null Grad, '
Else If @VratiSto = '4'
Set @SSQL = ' Select Null Sifra_Art, Null ImeArt, Null Podelba1, Year(Datum_Dok) Godina, Month(Datum_Dok) Mesec, DatePart(Week, Datum_Dok) Nedela,
(Case DateName(weekday, Datum_Dok)
When ''Monday'' Then ''1 Ponedelnik''
When ''Tuesday'' Then ''2 Vtornik''
When ''Wednesday'' Then ''3 Sreda''
When ''Thursday'' Then ''4 Cetvrtok''
When ''Friday'' Then ''5 Petok''
When ''Saturday'' Then ''6 Sabota''
When ''Sunday'' Then ''7 Nedela''
End) Den,
Datum_Dok, P4.Ime_4 Podelba4, P5.Ime_5 Podelba5, Null Grad, '
Else If @VratiSto = '5'
Set @SSQL = ' Select Null Sifra_Art, Null ImeArt, Null Podelba1, Year(Datum_Dok) Godina, Null Mesec, Null Nedela, Null Den, Null Datum_Dok, Null Podelba4, P5.Ime_5 Podelba5, Null Grad, '
Else If @VratiSto = 'G'
Set @SSQL = ' Select T.Sifra_Art, K.ImeArt, P1.Ime_1 Podelba1, Year(Datum_Dok) Godina, Null Mesec, Null Nedela, Null Den, Null Datum_Dok, Null Podelba4, Null Podelba5, T.Grad, '
If @Prikazi = 'K'
Set @SSQL = @SSQL + ' Sum(T.Kolic) Vrednost '
Else If @Prikazi = 'B'
Set @SSQL = @SSQL + ' Sum(T.Kolic*K.KolkuDrg) Vrednost '
Else If @Prikazi = 'T'
Set @SSQL = @SSQL + ' Sum(T.Kolic*K.Tezina) Vrednost '
Else If @Prikazi = 'P'
Set @SSQL = @SSQL + ' Sum(T.Kolic/K.ImaKomerc) Vrednost '
Else If @Prikazi = 'H'
Set @SSQL = @SSQL + ' Sum(T.Kolic*K.Tezina/100000) Vrednost '
Set @SSQL = @SSQL + ' From #Tab T
Inner Join Katart K on K.Sifra_Art = T.Sifra_Art '
If @VratiSto = 'A'
Set @SSQL = @SSQL + ' Left Outer Join Drugo1 P1 On P1.Sifra_1=K.Drugo1
Left Outer Join Drugo4 P4 On P4.Sifra_4=K.Drugo4
Left Outer Join Drugo5 P5 On P5.Sifra_5=K.Drugo5 '
Else If @VratiSto = '4'
Set @SSQL = @SSQL + ' Left Outer Join Drugo4 P4 On P4.Sifra_4=K.Drugo4
Left Outer Join Drugo5 P5 On P5.Sifra_5=K.Drugo5 '
Else If @VratiSto = '5'
Set @SSQL = @SSQL + ' Left Outer Join Drugo5 P5 On P5.Sifra_5=K.Drugo5 '
Else If @VratiSto = 'G'
Set @SSQL = @SSQL + ' Left Outer Join Drugo1 P1 On P1.Sifra_1=K.Drugo1 '
/* If @VratiSto = 'G'
Set @SSQL = @SSQL + ' Group By D1.Ime_1 '
Else If @VratiSto = 'M'
Set @SSQL = @SSQL + ' Group By Cast(Month(T.Datum_Dok) as varchar(20)) '
Else If @VratiSto = 'D'
Set @SSQL = @SSQL + ' Group By (Case When Day(Datum_Dok) < 10 Then ''0'' End) + Cast(Day(T.Datum_Dok) as varchar(20)) + ''/'' + (Case When Month(Datum_Dok) < 10 Then ''0'' End) + Cast(Month(T.Datum_Dok) as varchar(20)) '
Else If @VratiSto = 'P'
Set @SSQL = @SSQL + ' Group By P.Ime_Podg '
Else If @VratiSto = 'B'
Set @SSQL = @SSQL + ' Group By B.Ime '
*/
If @VratiSto = 'A'
Set @SSQL = @SSQL + ' Group By T.Sifra_Art, K.ImeArt, P1.Ime_1, Year(Datum_Dok), P4.Ime_4, P5.Ime_5 '
Else If @VratiSto = '4'
Set @SSQL = @SSQL + ' Group By P4.Ime_4, P5.Ime_5, Datum_Dok '
Else If @VratiSto = '5'
Set @SSQL = @SSQL + ' Group By P5.Ime_5, Datum_Dok '
Else If @VratiSto = 'G'
Set @SSQL = @SSQL + ' Group By T.Sifra_Art, K.ImeArt, P1.Ime_1, Year(Datum_Dok), T.Grad '
print @SSQL
Exec (@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_prod_napl_po_komint]'))
drop procedure [dbo].[sp_prod_napl_po_komint]
Go
CREATE PROCEDURE sp_Prod_Napl_Po_Komint
@Sifra_OE Smallint,
@KoiOE Varchar(500) = 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
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'' ' --and D.Toc200 > 50 '
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 D.Datum_Dok>=''' + Cast(@Datum_Od As Varchar(25)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQL = @SSQL + ' And D.Datum_Dok<=''' + Cast(@Datum_Do As Varchar(25)) + ''' '
End
-------------------------------------------------------------------------------- U S L O V ------------------------------------------------------------------------------------------------
If @Koi_Gradovi Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' and KUP.Sifra_Grad In ( ' + @Koi_Gradovi + ') '
If @Koi_Regioni Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' and KUP.Sifra_Reg In ( ' + @Koi_Regioni + ') '
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 @Pod1 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And Kup.KDrugo1 = ''' + Cast(@Pod1 As Varchar(6)) + ''' '
If @Pod2 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And Kup.KDrugo2 = ''' + Cast(@Pod2 As Varchar(6)) + ''' '
If @Pod3 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And Kup.KDrugo3 = ''' + Cast(@Pod3 As Varchar(6)) + ''' ' If @Pod4 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And Kup.KDrugo4 = ''' + Cast(@Pod4 As Varchar(6)) + ''' '
If @Pod5 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And KUP.KDrugo5=''' + Cast(@Pod5 As Varchar(6)) + ''' '
If @Sifra_Tip Is Not Null
SET @SSQLUsl = @SSQLUsl +' AND KUP.Sifra_Tip=' + Cast(@Sifra_Tip As Varchar(6)) + ' '
If @Sifra_Pat IS NOT NULL
SET @SSQLUsl = @SSQLUsl + ' AND Kup.Sifra_Pat = ' + Cast(@Sifra_Pat as varchar(5)) + ' '
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 + ') '
-- Set @SSQL = @SSQL + 'Group By D.Sifra_Kup '
Set @SSQLGroup = @SSQLGroup + 'Group By D.Sifra_Kup '
Insert Into #Prod Exec(@SSQL+@SSQLUsl+@SSQLGroup)
print @SSQL+@SSQLUsl+@SSQLGroup
--select * from #Prod
------------------------------------------------------------------------------------ NAPLATA; DENOVI NA PLAKANJE --------------------------------------------------------------------------------------------------
Create Table #Napl
(
Sifra_Kup char(6),
PlatIznos decimal(18,6),
Denovi int,
NaplPoDenovi decimal(18,6)
)
/* Set @SSQL = ' Select A.sifra_kup,
(CAST(datediff(day,dateadd(day, f.rok, f.datum_dok ), A.datum_dok) AS DECIMAL(18,6)))
from anfindok A
inner join anzatv z on A.anid=z.anid2
inner join anfindok f on f.anid=z.anid1
Left outer Join Komint Kup on Kup.Sifra_Kup=A.Sifra_Kup
where A.sifra_za=1 and abs(A.pobaruva) > 50 ' -- bese A.Pobaruva <>0 -- bara Zarko M&A
*/
Set @SSQL = ' Select A.Sifra_Kup,
Sum(A.Pobaruva),
Sum((CAST(datediff(day,dateadd(day, f.rok, f.datum_dok ), A.datum_dok) AS DECIMAL(18,6)))),
Sum(A.Pobaruva*(CAST(datediff(day,dateadd(day, f.rok, f.datum_dok ), A.datum_dok) AS DECIMAL(18,6))))
from anfindok A
inner join anzatv z on A.anid=z.anid2
inner join anfindok f on f.anid=z.anid1
Left outer Join Komint Kup on Kup.Sifra_Kup=A.Sifra_Kup
where A.sifra_za=1 ' -- bese A.Pobaruva <>0
If @PoKojDatum = 'V'
Begin
If @Datum_Od Is Not NULL
Set @SSQL = @SSQL + ' And A.Datum_Vnes>=''' + Cast(@Datum_Od As Varchar(25)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQL = @SSQL + ' And A.Datum_Vnes<''' + Cast(@Datum_Do As Varchar(25)) + ''' '
End
Else
Begin
If @Datum_Od Is Not NULL
Set @SSQL = @SSQL + ' And A.Datum_Dok>=''' + Cast(@Datum_Od As Varchar(25)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQL = @SSQL + ' And A.Datum_Dok<=''' + Cast(@Datum_Do As Varchar(25)) + ''' '
End
---------------------------------------------------------------------------- U S L O V -----------------------------------------------------------------------------------------------
Set @SSQLUsl = ' '
If @Koi_Gradovi Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' and KUP.Sifra_Grad In ( ' + @Koi_Gradovi + ') '
If @Koi_Regioni Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' and KUP.Sifra_Reg In ( ' + @Koi_Regioni + ') '
If @Sifra_Kup_Od Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And A.Sifra_Kup>=' + Cast(@Sifra_Kup_Od As Varchar(6)) + ' '
If @Sifra_Kup_Do Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And A.Sifra_Kup<=' + Cast(@Sifra_Kup_Do As Varchar(6)) + ' '
If @Pod1 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And Kup.KDrugo1 = ''' + Cast(@Pod1 As Varchar(6)) + ''' '
If @Pod2 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And Kup.KDrugo2 = ''' + Cast(@Pod2 As Varchar(6)) + ''' '
If @Pod3 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And Kup.KDrugo3 = ''' + Cast(@Pod3 As Varchar(6)) + ''' '
If @Pod4 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And Kup.KDrugo4 = ''' + Cast(@Pod4 As Varchar(6)) + ''' '
If @Pod5 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And KUP.KDrugo5=''' + Cast(@Pod5 As Varchar(6)) + ''' '
If @Sifra_Tip Is Not Null
SET @SSQLUsl = @SSQLUsl +' AND KUP.Sifra_Tip=' + Cast(@Sifra_Tip As Varchar(6)) + ' '
If @Sifra_Pat IS NOT NULL
SET @SSQLUsl = @SSQLUsl + ' AND Kup.Sifra_Pat = ' + Cast(@Sifra_Pat as varchar(5)) + ' '
If @TipKup Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And KUP.TipKup=''' + @TipKup + ''' '
If @Sifra_OE Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And A.Sifra_OE=' + Cast(@Sifra_OE As Varchar(5)) + ' '
If @KoiOE Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And A.Sifra_OE IN (' + @KoiOE + ') '
If @TipDokProd IS NOT NULL
Set @SSQLUsl = @SSQLUsl + ' And A.Sifra_Dok IN (' + @TipDokProd + ') '
Sum((CAST(datediff(day,dateadd(day, f.rok, f.datum_dok ), A.datum_dok) AS DECIMAL(18,6)))),
Sum(A.Pobaruva*(CAST(datediff(day,dateadd(day, f.rok, f.datum_dok ), A.datum_dok) AS DECIMAL(18,6))))
from anfindok A
inner join anzatv z on A.anid=z.anid1
inner join anfindok f on f.anid=z.anid2
Left outer Join Komint Kup on Kup.Sifra_Kup=A.Sifra_Kup
where A.sifra_za=1 ' -- bese A.Pobaruva <>0
If @PoKojDatum = 'V'
Begin
If @Datum_Od Is Not NULL
Set @SSQL = @SSQL + ' And A.Datum_Vnes>=''' + Cast(@Datum_Od As Varchar(25)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQL = @SSQL + ' And A.Datum_Vnes<''' + Cast(@Datum_Do As Varchar(25)) + ''' '
End
Else
Begin
If @Datum_Od Is Not NULL
Set @SSQL = @SSQL + ' And A.Datum_Dok>=''' + Cast(@Datum_Od As Varchar(25)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQL = @SSQL + ' And A.Datum_Dok<=''' + Cast(@Datum_Do As Varchar(25)) + ''' '
End
Insert Into #Napl Exec(@SSQL+@SSQLUsl+@SSQLGroup)
--select * from #napl
-------------------------------------------------------------------------- O B R T -----------------------------------------------------------------------------------------------------
Set @SSQLUsl = ' '
Set @SSQLGroup = ' '
Create Table #DenNapl
(
Sifra_Kup char(6),
Izlezi decimal(18,6),
Vrednost decimal(18,6),
Komintenti decimal(18,6),
DenoviProd decimal(18,6),
Obrti decimal(18,6),
EdenObrt decimal(18,6),
ProsObrt decimal(18,6),
ProsBrDen decimal(18,6)
)
Set @SSQL = 'Select D.Sifra_Kup,
Count(S.DokID) As Izlezi, '
If @KojaCena = '3'
Set @SSQL = @SSQL + ' Round(Sum(dbo.fn_vr_osnov (S.Kolic, S.DokCena, S.DanDokCena, S.POsn)), 4) as Vr_Osnov, '
Else If @KojaCena = '2'
Set @SSQL = @SSQL + ' Round(Sum(dbo.fn_vr_sorabat(S.Kolic, S.DokCena, S.DanDokCena, S.POsn, S.Uces, D.Kasa)), 4) as Vr_SoRabat, '
Else If @KojaCena = '1'
Set @SSQL = @SSQL + ' Round(Sum(dbo.fn_vr_krajna (S.Kolic, S.DokCena, S.DanDokCena, S.POsn, S.Uces, D.Kasa)), 4) as Vr_Krajna, '
Else If @KojaCena = '4'
Set @SSQL = @SSQL + ' Round(Sum(S.Kolic*K.GotCena), 4) As Vr_NPS, '
If @Komint_KObj = 'K'
Set @SSQL = @SSQL + 'Count(Distinct D.Sifra_Kup) As Komintenti, '
Else If @Komint_KObj = 'O'
Set @SSQL = @SSQL + 'Count(Distinct(Case When D.Sifra_Obj Is Null Then D.Sifra_Kup else (D.Sifra_kup+cast(D.Sifra_Obj as varchar(6))) end)) As Komintenti, '
Set @SSQL = @SSQL + ' DateDiff(day, Min(D.Datum_Dok), Max(D.Datum_Dok)) As DenoviProd, 0, 0, 0, 0
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 (@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)
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 K.Iskluci <> ''D'' '
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
---- Uslov ------
If @TipKup Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And KUP.TipKup=''' + @TipKup + ''' '
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 @Pod1 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And Kup.KDrugo1 = ''' + Cast(@Pod1 As Varchar(6)) + ''' '
If @Pod2 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And Kup.KDrugo2 = ''' + Cast(@Pod2 As Varchar(6)) + ''' '
If @Pod3 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And Kup.KDrugo3 = ''' + Cast(@Pod3 As Varchar(6)) + ''' ' If @Pod4 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And Kup.KDrugo4 = ''' + Cast(@Pod4 As Varchar(6)) + ''' '
If @Pod5 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And KUP.KDrugo5=''' + Cast(@Pod5 As Varchar(6)) + ''' '
/* Zatoa sto vo istava procedura ima i naplata a vo anfindok nema sifra_obj i moze da se dobijat nerealni podatoci (prodazbata po objekti a naplatata po komintenti)
If @Pod1 Is Not NULL
Begin
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)) + ')) '
End
If @Pod2 Is Not NULL
Begin
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)) + ')) '
End
If @Pod3 Is Not NULL
Begin
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)) + ')) '
End
If @Pod4 Is Not NULL
Begin
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)) + ')) '
End
If @Pod5 Is Not NULL
Begin
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)) + ')) '
End
*/
If @Sifra_Tip Is Not Null
SET @SSQLUsl = @SSQLUsl +'AND KUP.Sifra_Tip=' + Cast(@Sifra_Tip As Varchar(6)) + ' '
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 @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
Set @SSQLGroup = @SSQLGroup + 'Group By D.Sifra_Kup '
Insert Into #DenNapl Exec(@SSQL+@SSQLUsl+@SSQLGroup)
Update #DenNapl Set Obrti = (case Komintenti When 0 then 1 Else (Izlezi/komintenti-1) end)
Update #DenNapl Set Obrti = 1 Where Obrti < 1
Update #DenNapl Set EdenObrt=DenoviProd/Obrti Where Obrti <> 0
Update #DenNapl Set ProsObrt=Vrednost/EdenObrt Where EdenObrt <> 0
Update #DenNapl Set ProsBrDen=Vrednost/ProsObrt Where ProsObrt <> 0
Insert Into #Rez(Sifra_Kup) Select Distinct Sifra_Kup From #Prod
Insert Into #Rez(Sifra_Kup) Select Distinct Sifra_Kup From #Napl Where Sifra_Kup Not In (Select Distinct Sifra_Kup From #Rez)
Insert Into #Rez(Sifra_Kup) Select Distinct Sifra_Kup From #DenNapl Where Sifra_Kup Not In (Select Distinct Sifra_Kup From #Rez)
Update #Rez Set #Rez.Prodazba=#Prod.Prodazba, #Rez.FaktPoDenovi=(Case When (#Prod.Prodazba=0 Or #Prod.Prodazba is Null) Then 0 Else #Prod.ProdPoRok/#Prod.Prodazba End),
#Rez.ProsRabat=(Case When (#Prod.VrSoRabat=0 Or #Prod.VrSoRabat Is Null) Then 0 Else #Prod.VkRabat/#Prod.VrSoRabat End)
From #Prod
Where #Prod.Sifra_Kup=#Rez.Sifra_Kup
Update #Rez Set #Rez.NaplPoDenovi=#Napl.NaplPoDenovi/#Napl.PlatIznos
From #Napl
Where #Napl.Sifra_Kup=#Rez.Sifra_Kup and #Napl.PlatIznos is Not Null And #Napl.PlatIznos <> 0
-- Set @SSQL = ' Select D.Sifra_kup, Round(Sum(Case D.Rok When 0 Then D.Toc200 else (D.Rok*D.Toc200) end), 4) as RokIznos,
Set @SSQL = ' Select Year(D.Datum_Dok), Month(D.Datum_Dok), D.Rok as RokIznos, '
If @KojaCena = '3'
Set @SSQL = @SSQL + ' Round(Sum(dbo.fn_vr_osnov (S.Kolic, S.DokCena, S.DanDokCena, S.POsn)), 4) as Vr_Osnov, '
Else If @KojaCena = '2'
Set @SSQL = @SSQL + ' Round(Sum(dbo.fn_vr_sorabat(S.Kolic, S.DokCena, S.DanDokCena, S.POsn, S.Uces, D.Kasa)), 4) as Vr_SoRabat, '
Else If @KojaCena = '1'
Set @SSQL = @SSQL + ' Round(Sum(dbo.fn_vr_krajna (S.Kolic, S.DokCena, S.DanDokCena, S.POsn, S.Uces, D.Kasa)), 4) as Vr_Krajna, '
Else If @KojaCena = '4'
Set @SSQL = @SSQL + ' Round(Sum(S.Kolic*K.GotCena), 4) As Vr_NPS, '
Set @SSQL = @SSQL + ' count(D.Broj_Dok), 0 as DenIznos, 0 PlatIznos, 0 as Obrt
From Dokr D
Inner Join Stavr S On S.DokrId = D.DokrId
Inner Join Katart K On K.Sifra_Art = S.Sifra_Art
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'' ' --and D.Toc200 > 50 '
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 D.Datum_Dok>=''' + Cast(@Datum_Od As Varchar(25)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQL = @SSQL + ' And D.Datum_Dok<=''' + Cast(@Datum_Do As Varchar(25)) + ''' '
End
-------------------------------------------------------------------------------- U S L O V ------------------------------------------------------------------------------------------------
If @Koi_Gradovi Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' and KUP.Sifra_Grad In ( ' + @Koi_Gradovi + ') '
If @Koi_Regioni Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' and KUP.Sifra_Reg In ( ' + @Koi_Regioni + ') '
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 @Pod1 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And Kup.KDrugo1 = ''' + Cast(@Pod1 As Varchar(6)) + ''' '
If @Pod2 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And Kup.KDrugo2 = ''' + Cast(@Pod2 As Varchar(6)) + ''' '
If @Pod3 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And Kup.KDrugo3 = ''' + Cast(@Pod3 As Varchar(6)) + ''' ' If @Pod4 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And Kup.KDrugo4 = ''' + Cast(@Pod4 As Varchar(6)) + ''' '
If @Pod5 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And KUP.KDrugo5=''' + Cast(@Pod5 As Varchar(6)) + ''' '
If @Sifra_Tip Is Not Null
SET @SSQLUsl = @SSQLUsl +' AND KUP.Sifra_Tip=' + Cast(@Sifra_Tip As Varchar(6)) + ' '
If @Sifra_Pat IS NOT NULL
SET @SSQLUsl = @SSQLUsl + ' AND Kup.Sifra_Pat = ' + Cast(@Sifra_Pat as varchar(5)) + ' '
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 + ') '
-- Set @SSQL = @SSQL + 'Group By D.Sifra_Kup '
Set @SSQLGroup = @SSQLGroup + 'Group By Year(D.Datum_Dok), Month(D.Datum_Dok), D.Rok '
Insert Into #Tab Exec(@SSQL+@SSQLUsl+@SSQLGroup)
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 @SSQL = ' Select Year(D.Datum_Dok), 0 as Mesec, D.Rok as RokIznos, '
If @KojaCena = '3'
Set @SSQL = @SSQL + ' Round(Sum(dbo.fn_vr_osnov (S.Kolic, S.DokCena, S.DanDokCena, S.POsn)), 4) as Vr_Osnov, '
Else If @KojaCena = '2'
Set @SSQL = @SSQL + ' Round(Sum(dbo.fn_vr_sorabat(S.Kolic, S.DokCena, S.DanDokCena, S.POsn, S.Uces, D.Kasa)), 4) as Vr_SoRabat, '
Else If @KojaCena = '1'
Set @SSQL = @SSQL + ' Round(Sum(dbo.fn_vr_krajna (S.Kolic, S.DokCena, S.DanDokCena, S.POsn, S.Uces, D.Kasa)), 4) as Vr_Krajna, '
Else If @KojaCena = '4'
Set @SSQL = @SSQL + ' Round(Sum(S.Kolic*K.GotCena), 4) As Vr_NPS, '
Set @SSQL = @SSQL + ' count(D.Broj_Dok), 0 as DenIznos, 0 PlatIznos, 0 as Obrt
From Dokr D
Inner Join Stavr S On S.DokrId = D.DokrId
Inner Join Katart K On K.Sifra_Art = S.Sifra_Art
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 D.Toc200 > 50 '
If @PoKojDatum = 'V'
Begin
If @DatOd Is Not NULL
Set @SSQL = @SSQL + ' And D.Datum_Vnes>=''' + Cast(@DatOd As Varchar(25)) + ''' '
If @DatDo Is Not NULL
Set @SSQL = @SSQL + ' And D.Datum_Vnes<''' + Cast(@DatDo As Varchar(25)) + ''' '
End
Else
Begin
If @DatOd Is Not NULL
Set @SSQL = @SSQL + ' And D.Datum_Dok>=''' + Cast(@DatOd As Varchar(25)) + ''' '
If @DatDo Is Not NULL
Set @SSQL = @SSQL + ' And D.Datum_Dok<=''' + Cast(@DatDo As Varchar(25)) + ''' '
End
Set @SSQLGroup = 'Group By Year(D.Datum_Dok), D.Rok '
-------------------------------------------------------------------------- O B R T -----------------------------------------------------------------------------------------------------
Set @SSQLUsl = ' '
Set @SSQLGroup = ' '
Create Table #DenNapl
(
Godina varchar(4),
Mesec varchar(2),
-- Sifra_art varchar(20),
Izlezi decimal(18,6),
Vrednost decimal(18,6),
Komintenti decimal(18,6),
DenoviProd decimal(18,6),
Obrti decimal(18,6),
EdenObrt decimal(18,6),
ProsObrt decimal(18,6),
ProsBrDen decimal(18,6)
)
Set @SSQL = 'Select Year(S.Datum_Dok), Month(S.Datum_Dok),
Count(S.DokID) As Izlezi, '
If @KojaCena = '3'
Set @SSQL = @SSQL + ' Round(Sum(dbo.fn_vr_osnov (S.Kolic, S.DokCena, S.DanDokCena, S.POsn)), 4) as Vr_Osnov, '
Else If @KojaCena = '2'
Set @SSQL = @SSQL + ' Round(Sum(dbo.fn_vr_sorabat(S.Kolic, S.DokCena, S.DanDokCena, S.POsn, S.Uces, D.Kasa)), 4) as Vr_SoRabat, '
Else If @KojaCena = '1'
Set @SSQL = @SSQL + ' Round(Sum(dbo.fn_vr_krajna (S.Kolic, S.DokCena, S.DanDokCena, S.POsn, S.Uces, D.Kasa)), 4) as Vr_Krajna, '
Else If @KojaCena = '4'
Set @SSQL = @SSQL + ' Round(Sum(S.Kolic*K.GotCena), 4) As Vr_NPS, '
If @Komint_KObj = 'K'
Set @SSQL = @SSQL + 'Count(Distinct D.Sifra_Kup) As Komintenti, '
Else If @Komint_KObj = 'O'
Set @SSQL = @SSQL + 'Count(Distinct(Case When D.Sifra_Obj Is Null Then D.Sifra_Kup else (D.Sifra_kup+cast(D.Sifra_Obj as varchar(6))) end)) As Komintenti, '
Set @SSQL = @SSQL + ' DateDiff(day, Min(D.Datum_Dok), Max(D.Datum_Dok)) As DenoviProd, 0, 0, 0, 0
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 (@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)
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 K.Iskluci <> ''D'' '
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
---- Uslov ------
If @TipKup Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And KUP.TipKup=''' + @TipKup + ''' '
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 @Pod1 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And Kup.KDrugo1 = ''' + Cast(@Pod1 As Varchar(6)) + ''' '
If @Pod2 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And Kup.KDrugo2 = ''' + Cast(@Pod2 As Varchar(6)) + ''' '
If @Pod3 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And Kup.KDrugo3 = ''' + Cast(@Pod3 As Varchar(6)) + ''' ' If @Pod4 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And Kup.KDrugo4 = ''' + Cast(@Pod4 As Varchar(6)) + ''' '
If @Pod5 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And KUP.KDrugo5=''' + Cast(@Pod5 As Varchar(6)) + ''' '
/* Zatoa sto vo istava procedura ima i naplata a vo anfindok nema sifra_obj i moze da se dobijat nerealni podatoci (prodazbata po objekti a naplatata po komintenti)
If @Pod1 Is Not NULL
Begin
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)) + ')) '
End
If @Pod2 Is Not NULL
Begin
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)) + ')) '
End
If @Pod3 Is Not NULL
Begin
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)) + ')) '
End
If @Pod4 Is Not NULL
Begin
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)) + ')) '
End
If @Pod5 Is Not NULL
Begin
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)) + ')) '
End
*/ If @Sifra_Tip Is Not Null
SET @SSQLUsl = @SSQLUsl +'AND KUP.Sifra_Tip=' + Cast(@Sifra_Tip As Varchar(6)) + ' '
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 @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
Set @SSQLGroup = @SSQLGroup + 'Group By Year(S.Datum_Dok), Month(S.Datum_Dok) '
Print @SSQL
Insert Into #DenNapl Exec(@SSQL+@SSQLUsl+@SSQLGroup)
--select * from #DenNapl
------------------ Prethodna godina
Set @SSQL = 'Select Year(S.Datum_Dok), 0 as Mesec,
Count(S.DokID) As Izlezi, '
If @KojaCena = '3'
Set @SSQL = @SSQL + ' Round(Sum(dbo.fn_vr_osnov (S.Kolic, S.DokCena, S.DanDokCena, S.POsn)), 4) as Vr_Osnov, '
Else If @KojaCena = '2'
Set @SSQL = @SSQL + ' Round(Sum(dbo.fn_vr_sorabat(S.Kolic, S.DokCena, S.DanDokCena, S.POsn, S.Uces, D.Kasa)), 4) as Vr_SoRabat, '
Else If @KojaCena = '1'
Set @SSQL = @SSQL + ' Round(Sum(dbo.fn_vr_krajna (S.Kolic, S.DokCena, S.DanDokCena, S.POsn, S.Uces, D.Kasa)), 4) as Vr_Krajna, '
Else If @KojaCena = '4'
Set @SSQL = @SSQL + ' Round(Sum(S.Kolic*K.GotCena), 4) As Vr_NPS, '
If @Komint_KObj = 'K'
Set @SSQL = @SSQL + 'Count(Distinct D.Sifra_Kup) As Komintenti, '
Else If @Komint_KObj = 'O'
Set @SSQL = @SSQL + 'Count(Distinct(Case When D.Sifra_Obj Is Null Then D.Sifra_Kup else (D.Sifra_kup+cast(D.Sifra_Obj as varchar(6))) end)) As Komintenti, '
Set @SSQL = @SSQL + ' DateDiff(day, Min(D.Datum_Dok), Max(D.Datum_Dok)) As DenoviProd, 0, 0, 0, 0
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 (@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)
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 K.Iskluci <> ''D'' '
If @PoKojDatum = 'V'
Begin
If @DatOd Is Not NULL
Set @SSQL = @SSQL + ' And D.Datum_Vnes>=''' + Cast(@DatOd As Varchar(25)) + ''' '
If @DatDo Is Not NULL
Set @SSQL = @SSQL + ' And D.Datum_Vnes<''' + Cast(@DatDo As Varchar(25)) + ''' '
End
Else
Begin
If @DatOd Is Not NULL
Set @SSQL = @SSQL + ' And S.Datum_Dok>=''' + Cast(@DatOd As Varchar(25)) + ''' '
If @DatDo Is Not NULL
Set @SSQL = @SSQL + ' And S.Datum_Dok<=''' + Cast(@DatDo As Varchar(25)) + ''' '
End
Set @SSQLGroup = 'Group By Year(S.Datum_Dok) '
Insert Into #DenNapl Exec(@SSQL+@SSQLUsl+@SSQLGroup)
Update #DenNapl Set Obrti = (case Komintenti When 0 then 1 Else (Izlezi/komintenti-1) end)
Update #DenNapl Set Obrti = 1 Where Obrti < 1
Update #DenNapl Set EdenObrt=DenoviProd/Obrti Where Obrti <> 0
Update #DenNapl Set ProsObrt=Vrednost/EdenObrt Where EdenObrt <> 0
Update #DenNapl Set ProsBrDen=Vrednost/ProsObrt Where ProsObrt <> 0
-- Declare @Vrednost as decimal(18,6)
-- Declare @Obrti as decimal(18,6)-- Declare @denoviprod as decimal(18,6)
-- Declare @prosobrt as decimal(18,6)
-- select @Vrednost = Sum(Vrednost), @Obrti=Sum(obrti), @denoviprod=Sum(denoviprod), @prosobrt=Sum(prosobrt) from #dennapl
------------------------------------------------------------------------------------------- N A P L A T A ----------------------------------------------------------------------------------------------------------------------
Create Table #Napl
(
Godina varchar(4),
Mesec varchar(2),
Rok decimal(18,8),
PlatIznos decimal(18,6)
)
Set @SSQL = ' Select Year(A.Datum_Dok), Month(A.Datum_Dok),
(CAST(datediff(day,dateadd(day, f.rok, f.datum_dok ), A.datum_dok) AS DECIMAL(18,6))),
A.Pobaruva
from anfindok A
inner join anzatv z on A.anid=z.anid2
inner join anfindok f on f.anid=z.anid1
Left outer Join Komint Kup on Kup.Sifra_Kup=A.Sifra_Kup
where A.sifra_za=1 and abs(A.pobaruva) > 50 ' -- bese A.Pobaruva <>0 -- bara Zarko M&A
If @PoKojDatum = 'V'
Begin
If @Datum_Od Is Not NULL
Set @SSQL = @SSQL + ' And A.Datum_Vnes>=''' + Cast(@Datum_Od As Varchar(25)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQL = @SSQL + ' And A.Datum_Vnes<''' + Cast(@Datum_Do As Varchar(25)) + ''' '
End
Else
Begin
If @Datum_Od Is Not NULL
Set @SSQL = @SSQL + ' And A.Datum_Dok>=''' + Cast(@Datum_Od As Varchar(25)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQL = @SSQL + ' And A.Datum_Dok<=''' + Cast(@Datum_Do As Varchar(25)) + ''' '
End
---------------------------------------------------------------------------- U S L O V -----------------------------------------------------------------------------------------------
Set @SSQLUsl = ' '
If @Koi_Gradovi Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' and KUP.Sifra_Grad In ( ' + @Koi_Gradovi + ') '
If @Koi_Regioni Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' and KUP.Sifra_Reg In ( ' + @Koi_Regioni + ') '
If @Sifra_Kup_Od Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And A.Sifra_Kup>=' + Cast(@Sifra_Kup_Od As Varchar(6)) + ' '
If @Sifra_Kup_Do Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And A.Sifra_Kup<=' + Cast(@Sifra_Kup_Do As Varchar(6)) + ' '
If @Pod1 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And Kup.KDrugo1 = ''' + Cast(@Pod1 As Varchar(6)) + ''' '
If @Pod2 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And Kup.KDrugo2 = ''' + Cast(@Pod2 As Varchar(6)) + ''' '
If @Pod3 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And Kup.KDrugo3 = ''' + Cast(@Pod3 As Varchar(6)) + ''' '
If @Pod4 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And Kup.KDrugo4 = ''' + Cast(@Pod4 As Varchar(6)) + ''' '
If @Pod5 Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And KUP.KDrugo5=''' + Cast(@Pod5 As Varchar(6)) + ''' '
If @Sifra_Tip Is Not Null
SET @SSQLUsl = @SSQLUsl +' AND KUP.Sifra_Tip=' + Cast(@Sifra_Tip As Varchar(6)) + ' '
If @Sifra_Pat IS NOT NULL
SET @SSQLUsl = @SSQLUsl + ' AND Kup.Sifra_Pat = ' + Cast(@Sifra_Pat as varchar(5)) + ' '
If @TipKup Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And KUP.TipKup=''' + @TipKup + ''' '
If @Sifra_OE Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And A.Sifra_OE=' + Cast(@Sifra_OE As Varchar(5)) + ' '
If @KoiOE Is Not NULL
Set @SSQLUsl = @SSQLUsl + ' And A.Sifra_OE IN (' + @KoiOE + ') '
If @TipDokProd IS NOT NULL
Set @SSQLUsl = @SSQLUsl + ' And A.Sifra_Dok IN (' + @TipDokProd + ') '
Insert Into #Rokovi Select Godina, Mesec, Avg(Rok), Sum(PlatIznos) from #Napl group by Godina, Mesec
Update #Rokovi Set Rok = 0 where Rok<0
--select * from #rokovi
/* Create Table #Vkup
(
Godina varchar(4),
Mesec varchar(2),
Vkupno decimal(18,6)
)
Insert Into #Vkup Select Godina, Mesec, Sum(VkIznos) from #Tab Group By Godina, Mesec
*/
Set @SSQL = ' Select T.Godina, T.Mesec, Sum(T.VkIznos) as VkIznos, Sum(T.Fakturi) Fakturi,
R.Rok, R.Plateno
From #Tab T
Left Outer Join #Rokovi R On R.Godina=T.Godina and R.Mesec=T.Mesec '
-- Left Outer Join #Vkup V On V.Godina=T.Godina and V.Mesec=T.Mesec '
Set @SSQL = @SSQL + ' Where 1=1 ' -- T.Sifra_Kup In (Select Distinct Sifra_Kup From #Podred) '
Set @SSQL = @SSQL + ' Group By T.Godina, T.Mesec, R.Rok, R.Plateno Order By T.Godina, T.Mesec' --T.RokIznos,
----------------------------------------------------- Dodavanje Redni broevi za Cross Tab ------------------------------------------------------------------------
Create Table #Tab2
(
Godina varchar(4),
Mesec varchar(2),
VkIznos decimal(18,4),
Fakturi decimal(18,4),
RokIznos decimal(18,4),
PlatIznos decimal(18,4)
)
Insert Into #Tab2 Exec(@SSQL)
Create Table #Tab3
(
Rbr int,
Godina varchar(4),
Mesec varchar(2),
VkIznos decimal(18,4),
Fakturi decimal(18,4),
ProsProd decimal(18,4),
PlatIznos decimal(18,4),
RokIznos decimal(18,4),
Obrt decimal(18,4)
)
Insert Into #Tab3 Select 1, Godina, Mesec, VkIznos, 0, 0, 0, 0, 0 From #Tab2
Insert Into #Tab3 Select 2, Godina, Mesec, 0, Fakturi, 0, 0, 0, 0 From #Tab2
Insert Into #Tab3 Select 3, Godina, Mesec, 0, 0, (VkIznos/Fakturi), 0, 0, 0 From #Tab2
Insert Into #Tab3 Select 4, Godina, Mesec, 0, 0, 0, PlatIznos, 0, 0 From #Tab2
Insert Into #Tab3 Select 5, Godina, Mesec, 0, 0, 0, 0, RokIznos, 0 From #Tab2
Insert Into #Tab3 Select 6, Godina, Mesec, 0, 0, 0, 0, 0, ProsBrDen From #DenNapl
-- @PoDenNed char(1) = 'N', -- W - Po Nedeli, D - Po Denovi
-- @PoPat_GrPat char(1) = 'N',
-- @PrikArt char(1) = 'N'
@GrKup varchar(500) = Null,
@GrArt varchar(500) = Null
AS
If @PoKojDatum = 'V'
If @Datum_Do Is Not Null
Set @Datum_Do = @Datum_Do + 1
Declare @SSQL Varchar(8000)
Declare @SSQLKup Varchar(8000)
Set @SSQLKup = ' '
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 + ') '
Set @SSQL = @SSQL + ' (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) Iznos, '
Else
Set @SSQL = @SSQL + ' (S.Kolic*S.DokCena*(1-S.Uces/100)*(1-D.Kasa/100)) / (Case When S.DanDokCena = ''D'' Then (1+S.Posn/100) Else 1 End) Iznos, '
Set @SSQL = @SSQL + ' (Case When S.Alt_Kolic > 0 Then S.Alt_Kolic Else 0 End) as ZalihaVoObj, (Case When KaloProc = 1 Then ''X'' When KaloProc = 2 Then ''L'' Else '' '' End) IzlozenVoObj '
Set @SSQL = @SSQL + 'From #tSostav TS
Inner Join Stavr S On TS.Sifra_Art=S.Sifra_Art
Inner Join Dokr D ON S.DokrID=D.DokrID And D.Sifra_Za=1
Inner Join KatArt K ON TS.Sifra_Sur=K.Sifra_Art '
If @Pod1 Is Not Null Or @Pod2 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 Or @TipKup Is Not Null Or @Sifra_Grad Is Not Null Or @Koi_Regioni Is Not Null Or @Sifra_Pat Is Not Null Or @KomercKako = 'T'
Set @SSQL = @SSQL + 'Left Outer Join Komint Kup ON Kup.Sifra_Kup=D.Sifra_Kup
Left Outer Join KObjekti KO ON KO.Sifra_Kup=D.Sifra_Kup And KO.Sifra_Obj=D.Sifra_Obj '
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 @GrArt Is Not Null
Set @SSQL = @SSQL + ' Inner Join #GrArt GA On GA.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'' '
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_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_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 @KomercKako = 'I'
If @Sifra_Pat IS NOT NULL
SET @SSQL = @SSQL + ' AND D.Sifra_Pat = ' + Cast(@Sifra_Pat as varchar(5)) + ' '
If @KomercKako = 'T'
If @Sifra_Pat IS NOT NULL
SET @SSQL = @SSQL + ' AND Kup.Sifra_Pat = ' + Cast(@Sifra_Pat as varchar(5)) + ' '
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(35)) +''' '
If @Datum_Do Is NOT Null
SET @SSQL = @SSQL + 'AND S.Datum_Dok <= ''' +Cast(@Datum_Do as varchar(35)) +''' '
End
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 @TipDokProd Is Not NULL
Set @SSQL = @SSQL + ' And S.Sifra_Dok IN (' + @TipDokProd + ') '
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_Brand_Od Is Not NULL
Set @SSQL = @SSQL + ' And K.Sifra_Drg>=''' + Cast(@Sifra_Brand_Od As Varchar(5)) + ''' '
If @Sifra_Brand_Do Is Not NULL
Set @SSQL = @SSQL + ' And K.Sifra_Drg<=''' + Cast(@Sifra_Brand_Do As Varchar(5)) + ''' '
If @Pod1 Is Not NULL
If @KFPod1 = 'D'
Set @SSQLKup = @SSQLKup + ' 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 @SSQLKup = @SSQLKup + ' 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 @SSQLKup = @SSQLKup + ' 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 @SSQLKup = @SSQLKup + ' 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 @SSQLKup = @SSQLKup + ' 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 @SSQLKup = @SSQLKup + ' 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 @SSQLKup = @SSQLKup + ' 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 @SSQLKup = @SSQLKup + ' 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 @SSQLKup = @SSQLKup + ' 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 @SSQLKup = @SSQLKup + ' 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 @SSQLKup = @SSQLKup + ' 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 @SSQLKup = @SSQLKup + ' 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 @SSQLKup = @SSQLKup + ' 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 @SSQLKup = @SSQLKup + ' 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 @SSQLKup = @SSQLKup +' AND KUP.Sifra_Tip=' + Cast(@Sifra_Tip As Varchar(6)) + ' '
If @Sifra_Kup_Od Is Not NULL
Set @SSQLKup = @SSQLKup + ' And D.Sifra_Kup>=' + Cast(@Sifra_Kup_Od As Varchar(6)) + ' '
If @Sifra_Kup_Do Is Not NULL
Set @SSQLKup = @SSQLKup + ' And D.Sifra_Kup<=' + Cast(@Sifra_Kup_Do As Varchar(6)) + ' '
If @Sifra_obj Is Not NULL
Set @SSQLKup = @SSQLKup + 'And D.Sifra_obj=''' + Cast(@Sifra_obj As Varchar(5)) + ''' '
If @Sifra_Grad Is Not NULL
Begin
Set @SSQLKup = @SSQLKup + ' 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 @SSQLKup = @SSQLKup + ' 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 @SSQLKup = @SSQLKup + ' And KUP.TipKup=''' + @TipKup + ''' '
--select *, Cast(Cast(Year(DatumVreme) as char(4)) + '-' + Cast(Month(DatumVreme) as char(2)) + '-' + Cast(Day(DatumVreme) as char(2)) as smalldatetime) from Akcija
--where sifra_oe=8 and DatumVreme>'2008-11-17' And DatumVreme<='2008-11-18' and sifra_kup = '012727'
Update #Rez set Sifra_Obj = 1234 Where sifra_obj is null
--Select * from #Rez
Update #Rez
Set #Rez.Dat_Izrabotka = A.DatumVreme, #Rez.Aktivnost = A.Aktivnost, #Rez.SoBarKod = A.SoBarKod
From Akcija A
Where A.Sifra_Kup = #Rez.Sifra_Kup And (Case When A.Sifra_Obj Is Null Or A.Sifra_Obj = 0 Then 1234 Else A.Sifra_Obj End) = #Rez.Sifra_Obj
And A.Sifra_Oe = #Rez.Sifra_Pat And Cast(Cast(Year(DatumVreme) as char(4)) + '-' + Cast(Month(DatumVreme) as char(2)) + '-' + Cast(Day(DatumVreme) as char(2)) as smalldatetime) = #Rez.Datum_Dok
--Select * from #Rez
Update #Rez set PoleZaJoin = Sifra_Kup + (Case When Sifra_Obj Is Not Null Then Cast(Sifra_Obj as char(6)) Else '1234 ' End) +
(Case When Aktivnost Is Not Null Then Aktivnost Else ' ' End) +
(Case When Dat_Izrabotka Is Not Null Then Cast(Dat_Izrabotka as char(12)) Else Cast(' ' as char(12)) End) +
(Case When Sifra_Pat Is Not Null Then Cast(Sifra_Pat as char(6)) Else ' ' End)
--Select * from #Rez
---------------------------------
Create Table #Akc
(
DokrID decimal(18,0),
Datum_Dok smalldatetime,
Sifra_Kup varchar(6),
Sifra_Obj smallint,
Sifra_Pat int,
Dat_Izrabotka smalldatetime,
Aktivnost varchar(10),
SoBarKod char(1),
PoleZaJoin varchar(100)
)
--select * from #Rez
Set @SSQL = ' Select Cast(Cast(D.Sifra_Oe as smallint) as varchar(3))+Cast(Cast(D.Sifra_Kup as int) as varchar(6))+Cast((Case When D.Sifra_Obj Is Null Then 0 Else D.Sifra_Obj End) as varchar(6))+Cast(Day(D.DatumVreme) as varchar(2)),
(Case When D.Dat_Izrabotka Is Not Null Then Cast(Year(D.Dat_Izrabotka) as char(4)) + '-' + (Case When Month(D.Dat_Izrabotka)<10 Then '0' Else '' End) + Rtrim(Cast(Month(D.Dat_Izrabotka) as char(2)))+'-'+
(Case When Day(D.Dat_Izrabotka)<10 Then '0' Else '' End) + Rtrim(Cast(Day(D.Dat_Izrabotka) as char(2))) End) DatumIzrab,
(Case When D.Dat_Izrabotka Is Not Null Then (Case When DatePart(hh, D.Dat_Izrabotka) < 10 Then '0' Else '' End) + Rtrim(Cast(DatePart(hh, D.Dat_Izrabotka) as char(2)))+':'+
(Case When DatePart(mi, D.Dat_Izrabotka) < 10 Then '0' Else '' End) + Rtrim(Cast(Datepart(mi, D.Dat_Izrabotka) as char(2))) End) VremeIzrab,
(Case When ZalihaVoObj > 0 Then Cast(ZalihaVoObj as varchar(12)) + ' ' + IzlozenVoObj Else ' ' End) ZalihaVoObj
From #Rez D
Left Outer Join KatArt K ON K.Sifra_Art=D.Sifra_Art
Left Outer Join DrgPodel B ON K.Sifra_Drg=B.Sifra_Drg
Left Outer Join Komint KUP ON D.Sifra_Kup=KUP.Sifra_Kup
Left Outer Join KObjekti KO On KO.Sifra_Kup=D.Sifra_Kup AND KO.Sifra_Obj=D.Sifra_Obj
Left Outer Join KDrugo1 K1 On K1.Sifra_1K = (Case When D.Sifra_Obj Is Not Null Then KO.KDrugo1 Else Kup.KDrugo1 End)
Left Outer Join KDrugo2 K2 On K2.Sifra_2K = (Case When D.Sifra_Obj Is Not Null Then KO.KDrugo2 Else Kup.KDrugo2 End)
Left Outer Join KDrugo3 K3 On K3.Sifra_3K = (Case When D.Sifra_Obj Is Not Null Then KO.KDrugo3 Else Kup.KDrugo3 End)
Left Outer Join KDrugo4 K4 On K4.Sifra_4K = (Case When D.Sifra_Obj Is Not Null Then KO.KDrugo4 Else Kup.KDrugo4 End)
Left Outer Join KDrugo6 K6 On K6.Sifra_6K = (Case When D.Sifra_Obj Is Not Null Then KO.KDrugo6 Else Kup.KDrugo6 End)
Left Outer Join KDrugo7 K7 On K7.Sifra_7K = (Case When D.Sifra_Obj Is Not Null Then KO.KDrugo7 Else Kup.KDrugo7 End)
Left Outer Join GRegion R On R.Sifra_Reg = (Case When D.Sifra_Obj Is Not Null Then KO.Sifra_Reg Else Kup.Sifra_Reg End)
Left Outer Join GRad G On G.Sifra_Grad = (Case When D.Sifra_Obj Is Not Null Then KO.Sifra_Grad Else Kup.Sifra_Grad End)
Left Outer Join Patnici Pat On Pat.Sifra_Pat=D.Sifra_Pat
Left Outer Join SifAkc A On A.Sifra_Akc=D.Aktivnost
Order By D.Datum_Dok, D.DokrID
/* Set @SSQL = @SSQL + ' (Case When D.Sifra_Obj Is Not Null Then KO.KDrugo4 Else Kup.KDrugo4 End) RovMerch, K4.Ime_4K ImeRovMerch,
Set @SSQLKup = @SSQLKup + ' 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 @SSQLKup = @SSQLKup + ' 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 @PoOePat <> 'P' Or @PoOePat Is Not Null -- izvestajot e po org.ed.
Begin
If @Sifra_OE Is Not Null
Set @SSQLKup = @SSQLKup + 'And D.Sifra_OE=' + Cast(@Sifra_OE As Varchar(5)) + ' '
If @KoiOE Is Not Null
Set @SSQLKup = @SSQLKup + 'And D.Sifra_OE In (' + @KoiOE + ') '
End
CREATE Table #tSostav
( Sifra_Art Varchar(20),
Sifra_Sur Varchar(20),
Ima_Kolic Decimal(18,6),
Cena Decimal(18,6),
VkCena Decimal(18,6)
)
CREATE INDEX IX_Sostav ON #tSostav(Sifra_Art)
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)
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
-- Sega #tSostav e poln so Sostavnici i so fiktivni sostavnici
-------- SALDO
CREATE TABLE #TmpFinSaldo
(Sifra_OE varchar(6),
Saldo decimal(18,2),
Dosp_Saldo decimal(18,2))
CREATE TABLE #TmpFinSaldoVK -- GK 12.10.2006 za da napram sum na saldo po o.e. ili patnik da dava samo po edna stavka za da ne mi se multiplicira vo join-ot posle
(Sifra_OE varchar(6),
Saldo decimal(18,2),
Dosp_Saldo decimal(18,2))
IF @SoFinSaldo ='D'
Begin
If @PoOEPat = 'P'
Set @SSQL = 'Select D.Sifra_Pat '
Else If @PoOEPat = 'K'
Set @SSQL = 'Select D.Sifra_Kup '
Else If @PoOEPat = 'G'
Set @SSQL = 'Select SGP.Sif_GrPat '
Else If @PoOEPat = 'M'
Set @SSQL = 'Select D.Sifra_Mest '
Else
Set @SSQL = 'Select D.Sifra_OE '
SET @SSQL = @SSQL + ', SUM(D.Dolzi) - Sum(D.Pobaruva), SUM(Pobaruva) * -1 FROM AnFinDok D '
If @PoOEPat = 'G'
Set @SSQL = @SSQL + ' Left Outer Join SGrPat SGP On SGP.Sifra_Pat = D.Sifra_Pat '
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) Or (@Koi_Regioni Is Not Null) Or (@KoiPat Is Not Null) Or (@Koi_Gradovi Is Not Null)
Set @SSQL = @SSQL + 'Left Outer Join Komint KUP ON D.Sifra_Kup=KUP.Sifra_Kup
Left Outer Join Komint KO ON D.Sifra_kup=KO.Sifra_kup ' -- da se doraboti koga e od ANFinDok da se sredi @SSQKKup sez KObjekti
If @GrKup Is Not Null
Set @SSQL = @SSQL + ' Inner Join #KupObj GK On GK.Sifra_Kup=A.Sifra_Kup '
SET @SSQL = @SSQL + ' WHERE D.Sifra_Za =''1'' '
IF @Datum_Do IS NOT NULL
SET @SSQL = @SSQL + ' AND D.Datum_Dok<= '''+cast(@Datum_Do as varchar(35)) +''' '
If @KoiPat Is Not Null -- If @KomercKako = 'T' Ovde nema smisla Tekoven patnik zosto vo KomintPat ima mnogu tekovni
Set @SSQL = @SSQL + ' And D.Sifra_Pat IN (' + @KoiPat + ') '
SET @SSQL = @SSQL + @SSQLKup
If @PoOEPat = 'P'
SET @SSQL = @SSQL + ' GROUP BY D.Sifra_Pat '
Else If @PoOEPat = 'K'
SET @SSQL = @SSQL + ' GROUP BY D.Sifra_Kup '
Else If @PoOEPat = 'G'
SET @SSQL = @SSQL + ' GROUP BY SGP.Sif_GrPat '
Else If @PoOEPat = 'M'
SET @SSQL = @SSQL + ' GROUP BY D.Sifra_Mest '
Else
SET @SSQL = @SSQL + ' GROUP BY D.Sifra_OE '
INSERT INTO #TmpFinSaldo EXEC(@SSQL)
If @PoOEPat = 'P'
Set @SSQL = 'Select D.Sifra_Pat '
Else If @PoOEPat = 'K'
Set @SSQL = 'Select D.Sifra_Kup '
Else If @PoOEPat = 'G'
Set @SSQL = 'Select SGP.Sif_GrPat '
Else If @PoOEPat = 'M'
Set @SSQL = 'Select D.Sifra_Mest '
Else
Set @SSQL = 'Select D.Sifra_OE '
SET @SSQL = @SSQL + ', 0, SUM(Dolzi) FROM AnFinDok D '
If @PoOEPat = 'G'
Set @SSQL = @SSQL + ' Left Outer Join SGrPat SGP On SGP.Sifra_Pat = D.Sifra_Pat '
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) Or (@Koi_Regioni Is Not Null) Or (@KoiPat Is Not Null) Or (@Koi_Gradovi Is Not Null)
Set @SSQL = @SSQL + 'Left Outer Join Komint KUP ON D.Sifra_Kup=KUP.Sifra_Kup
Left Outer Join Komint KO ON D.Sifra_kup=KO.Sifra_kup ' -- da se doraboti koga e od ANFinDok da se sredi @SSQKKup sez KObjekti
If @GrKup Is Not Null
Set @SSQL = @SSQL + ' Inner Join #KupObj GK On GK.Sifra_Kup=D.Sifra_Kup '
SET @SSQL = @SSQL + ' WHERE D.Sifra_Za =''1'' '
IF @Datum_Do IS NOT NULL
SET @SSQL = @SSQL + ' AND DateADD(day, D.Rok, D.Datum_Dok)<= '''+cast(@Datum_Do as varchar(35)) +''' '
If @KoiPat Is Not Null -- If @KomercKako = 'T' Ovde nema smisla Tekoven patnik zosto vo KomintPat ima mnogu tekovni
Set @SSQL = @SSQL + ' And D.Sifra_Pat IN (' + @KoiPat + ') '
Set @SSQL = 'Select D.Sifra_Pat as Sifra_OE, PP.ImePat As ImeOrg,'
Else If @PoOEPat = 'K'
Set @SSQL = 'Select D.Sifra_Kup as Sifra_OE, Kup.ImeKup As ImeOrg,'
Else If @PoOEPat = 'G'
Set @SSQL = 'Select GP.Sif_GrPat as Sifra_OE, GP.Ime_GrPat As ImeOrg,'
Else If @PoOEPat = 'M'
Set @SSQL = 'Select D.Sifra_Mest as Sifra_OE, PMM.Opis As ImeOrg,'
Else
Set @SSQL = 'Select S.Sifra_OE, O.ImeOrg,'
If @VratiSto = 'R'
Set @SSQL = @SSQL + ' (Case When KO.Sifra_Reg Is Not Null Then KO.Sifra_Reg Else Kup.Sifra_Reg End) Sifra_Reg, R.ImeRegion, '
Else If @VratiSto = 'G'
Set @SSQL = @SSQL + ' Kup.Sifra_Grad Sifra_Reg, G.ImeGrad as ImeRegion, '
Else
Set @SSQL = @SSQL + ' Null as Sifra_Reg, Null as ImeRegion, '
Set @SSQL = @SSQL + 'Count(Distinct(S.DokrID)) As Br_Fri,
Count(Distinct(S.DokID)) As Br_Stavki,
Count(Distinct(Case When D.Sifra_Obj Is Not Null Then Cast(D.Sifra_Kup as varchar(6)) + ''&&&'' + Cast(D.Sifra_Obj as varchar(6)) Else D.Sifra_Kup End)) As Br_Komint,
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.Tezina/1000), 4) as KolicVoKg,
Round(Sum(S.kolic*K.Volumen/1000), 4) as Volumen,
F.Saldo, F.Dosp_Saldo, Sum(S.Kolic) VkKolic,
Round(Sum(S.kolic / case when K.ImaKomerc = 0 then 1 else K.ImaKomerc end), 4) as KolicVoPaketi, '
If @Sifra_Plan Is Not Null And @PoOEPat = 'P'
Set @SSQL = @SSQL + ' PL.UspesniPoseti, PL.ProdMesta, PL.Prodazba '
Else
Set @SSQL = @SSQL + ' Null as UspesniPoseti, Null as ProdMesta, Null as Prodazba '
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
Inner Join Dokr D On S.DokrID=D.DokrID '
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 @GrArt Is Not Null
Set @SSQL = @SSQL + ' Inner Join #GrArt GA On GA.Sifra_Art=K.Sifra_Art '
If @PoOEPat = 'P'
Set @SSQL = @SSQL + ' Left Outer Join #TmpFinSaldoVK F ON F.Sifra_OE=D.Sifra_Pat
Left Outer Join Patnici PP ON D.Sifra_Pat = PP.Sifra_Pat '
Else If @PoOEPat = 'K'
Set @SSQL = @SSQL + ' Left Outer Join #TmpFinSaldoVK F ON F.Sifra_OE=D.Sifra_Kup '
Else If @PoOEPat = 'G'
Set @SSQL = @SSQL + ' Left Outer Join SGrPat SGP ON SGP.Sifra_Pat = D.Sifra_Pat
Left Outer Join GrPat GP ON GP.Sif_GrPat = SGP.Sif_GrPat
Left Outer Join #TmpFinSaldoVK F ON F.Sifra_OE=GP.Sif_GrPat '
Else If @PoOEPat = 'M'
Set @SSQL = @SSQL + ' Left Outer Join #TmpFinSaldoVK F ON F.Sifra_OE=D.Sifra_Mest
Left Outer Join ProdMest PMM ON PMM.Sifra_Mest = D.Sifra_Mest '
Else
Set @SSQL = @SSQL + ' Left Outer Join #TmpFinSaldoVK F ON F.Sifra_OE=S.Sifra_OE
Inner Join Orged O On D.Sifra_OE=O.Sifra_OE '
If @Sifra_Plan Is Not Null And @PoOEPat = 'P'
Set @SSQL = @SSQL + ' Left Outer Join PlanPat PL On PL.Sifra_Pat=D.Sifra_Pat And PL.Sifra_Plan = ' + Cast(@Sifra_Plan as varchar(6)) + ' And PL.Godina = ' + Cast(Year(@Datum_Do) as varchar(4)) + ' And PL.Mesec = ' + Cast(Month(@Datum_Do) as varchar(4)) + ' '
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 (@Pod6 Is Not Null) Or (@Pod7 Is Not Null) Or (@Sifra_Tip Is Not Null) Or (@Koi_Regioni Is Not Null) Or (@KoiPat Is Not Null) Or (@Koi_Gradovi Is Not Null) Or @VratiSto In ('R', 'G') Or @PoOEPat='K'
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 '
If @VratiSto = 'R'
Set @SSQL = @SSQL + ' Left Outer Join GRegion R ON R.Sifra_Reg=(Case When KO.Sifra_Reg Is Not Null Then KO.Sifra_Reg Else Kup.Sifra_Reg End) '
Else If @VratiSto = 'G'
Set @SSQL = @SSQL + ' Left Outer Join Grad G ON G.Sifra_Grad=Kup.Sifra_Grad '
Set @SSQL = @SSQL + ' Where D.VlIzl=''I'' And D.Sifra_Za=1 And K.Iskluci <> ''D'' '
If @TipDokProd IS NOT NULL
Set @SSQL = @SSQL + ' And S.Sifra_Dok IN (' + @TipDokProd + ') '
If @KomercKako = 'I'
If @KoiPat Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Pat IN (' + @KoiPat + ') '
If @KomercKako = 'T'
If @KoiPat Is Not Null
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 + '))) '
-- Set @SSQL = @SSQL + ' And Kup.Sifra_Pat IN (' + @KoiPat + ') '
If @Sifra_Brand Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_Drg=' + Cast(@Sifra_Brand As Varchar(5)) + ' '
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 + ') '
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 Sifra_Oe From SGrOrg Where Sif_GrOrg = ''' + @Koi_Oe + ''') '
If @Sifra_Kup Is Not Null
Begin
If @KFSifra_Kup = 'D'
Set @SSQL = @SSQL + ' And (D.Sifra_Kup <> ''' + @Sifra_Kup + ''' Or D.Sifra_Kup Is Null) '
Else
Set @SSQL = @SSQL + ' And D.Sifra_Kup = ''' + @Sifra_Kup + ''' '
End
If @TipDokProd Is Not Null
Set @SSQL = @SSQL + ' And D.Sifra_Dok In (' + @TipDokProd + ') '
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 = ''' + @Lokacija + ''' '
If @Sifra_Gr Is Not 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 @Sifra_Drg Is Not Null
Set @SSQL = @SSQL + ' And K.Sifra_Drg = ' + Cast(@Sifra_Drg as varchar(10)) + ' '
If @Sifra_Drg1 Is Not Null
Set @SSQL = @SSQL + ' And B.Sifra_Drg1 = ' + Cast(@Sifra_Drg1 as varchar(10)) + ' '
If @APod1 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo1 = ' + Cast(@APod1 as varchar(10)) + ' '
If @APod2 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo2 = ' + Cast(@APod2 as varchar(10)) + ' '
If @APod3 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo3 = ' + Cast(@APod3 as varchar(10)) + ' '
If @APod4 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo4 = ' + Cast(@APod4 as varchar(10)) + ' '
If @APod5 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo5 = ' + Cast(@APod5 as varchar(10)) + ' '
If @APod6 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo6 = ' + Cast(@APod6 as varchar(10)) + ' '
If @APod7 Is Not Null
Set @SSQL = @SSQL + ' And K.Drugo7 = ' + Cast(@APod7 as varchar(10)) + ' '
If @Kto Is Not Null
Set @SSQL = @SSQL + ' And K.Kto = ''' + @Kto + ''' '
If @Sifra_Tip Is Not Null
Set @SSQL = @SSQL + ' And Kup.Sifra_Tip=' + Cast(@Sifra_Tip As Varchar(10)) + ' '
If @Sifra_Nivo Is Not Null
Set @SSQL = @SSQL + ' And Kup.Sifra_Nivo=''' + @Sifra_Nivo + ''' '
If @TipKup Is Not Null
Set @SSQL = @SSQL + ' And Kup.TipKup=''' + @TipKup + ''' '
If @Sifra_Pat IS NOT NULL
Begin
If @KomercKako = 'I'
SET @SSQL = @SSQL + ' AND D.Sifra_Pat = ' + Cast(@Sifra_Pat as varchar(5)) + ' '
Else
SET @SSQL = @SSQL + ' AND Kup.Sifra_Pat = ' + Cast(@Sifra_Pat as varchar(5)) + ' '
End
If @Sifra_Pat Is Not Null
Set @SSQL = @SSQL + ' And Kup.Sifra_Pat=' + Cast(@Sifra_Pat As Varchar(10)) + ' '
If @Koi_Gradovi Is Not Null
Set @SSQL = @SSQL + ' And KUP.Sifra_Grad In (' + @Koi_Gradovi + ') '
If @Koi_Regioni Is Not Null
Set @SSQL = @SSQL + ' And KUP.Sifra_Reg In (' + @Koi_Regioni + ') '
If @Aktiven = 'D'
Set @SSQL = @SSQL + ' And (KUP.Aktiven <> ''N'' or KUP.Aktiven Is Null) '
Else If @Aktiven = 'N'
Set @SSQL = @SSQL + ' And KUP.Aktiven = ''N'' '
If @KPod1 Is Not Null
Set @SSQL = @SSQL + ' And Kup.KDrugo1=' + Cast(@KPod1 As Varchar(10)) + ' '
If @KPod2 Is Not Null
Set @SSQL = @SSQL + ' And Kup.KDrugo2=' + Cast(@KPod2 As Varchar(10)) + ' '
If @KPod3 Is Not Null
Set @SSQL = @SSQL + ' And Kup.KDrugo3=' + Cast(@KPod3 As Varchar(10)) + ' '
If @KPod4 Is Not Null
Set @SSQL = @SSQL + ' And Kup.KDrugo4=' + Cast(@KPod4 As Varchar(10)) + ' '
If @KPod5 Is Not Null
Set @SSQL = @SSQL + ' And Kup.KDrugo5=' + Cast(@KPod5 As Varchar(10)) + ' '
If @KPod6 Is Not Null
Set @SSQL = @SSQL + ' And Kup.KDrugo6=' + Cast(@KPod6 As Varchar(10)) + ' '
If @KPod7 Is Not Null
Set @SSQL = @SSQL + ' And Kup.KDrugo7=' + Cast(@KPod7 As Varchar(10)) + ' '
print (@ssql)
Insert Into #Tab Exec(@SSQL)
If @VratiSto = 'G'
Set @SSQL = ' Select D1.Ime_1 Red, Null as Pakuvanje, Null as Sifra_Podg, '
Else If @VratiSto = 'M'
Set @SSQL = ' Select Cast(Month(T.Datum_Dok) as varchar(20)) Red, Null as Pakuvanje, Null as Sifra_Podg, '
Else If @VratiSto = 'D'
Set @SSQL = ' Select (Case When Day(Datum_Dok) < 10 Then ''0'' Else '''' End) + Cast(Day(T.Datum_Dok) as varchar(20)) + ''/'' + (Case When Month(Datum_Dok) < 10 Then ''0'' Else '''' End) + Cast(Month(T.Datum_Dok) as varchar(20)) Red, Null as Pakuvanje, Null as Sifra_Podg, '
Else If @VratiSto = 'P'
Set @SSQL = ' Select P.Ime_Podg Red, Null as Pakuvanje, Null as Sifra_Podg, '
Else If @VratiSto = 'B'
Set @SSQL = ' Select B.Ime Red, Null as Pakuvanje, Null as Sifra_Podg, '
Set @SSQL = @SSQL + ' Sum(Case When Year(Datum_Dok) = ' + Cast(@God as varchar(4)) + ' Then T.Kolic Else 0 End) KolicSega,
Sum(Case When Year(Datum_Dok) = ' + Cast(@God as varchar(4)) + ' Then (Case When K.ImaKomerc <> 0 Then (T.Kolic/K.ImaKomerc) Else 0 End) Else 0 End) PaketiSega '
Set @SSQL = @SSQL + ' From #Tab T
Inner Join Katart K on K.Sifra_Art = T.Sifra_Art '
If @VratiSto = 'G'
Set @SSQL = @SSQL + ' Left Outer Join Drugo1 D1 On D1.Sifra_1=K.Drugo1 '
Else If @VratiSto = 'A'
Set @SSQL = @SSQL + ' Left Outer Join Drugo1 D1 On D1.Sifra_1=K.Drugo1
Left Outer Join Podgrupi P On P.Sifra_Podg=K.Sifra_Podg
Left Outer Join Grupi G On G.Sifra_Gr=P.Sifra_Gr '
Else If @VratiSto = 'P'
Set @SSQL = @SSQL + ' Left Outer Join Podgrupi P On P.Sifra_Podg=K.Sifra_Podg '
Else If @VratiSto = 'B'
Set @SSQL = @SSQL + ' Left Outer Join DrgPodel B On B.Sifra_Drg=K.Sifra_Drg '
Else If @VratiSto = 'O'
Set @SSQL = @SSQL + ' Left Outer Join OrgEd O On O.Sifra_Oe=T.Sifra_Oe '
Else If @VratiSto = '4'
Set @SSQL = @SSQL + ' Left Outer Join Drugo4 P4 On P4.Sifra_4=K.Drugo4
Left Outer Join Drugo5 P5 On P5.Sifra_5=K.Drugo5 '
If @VratiSto = 'G'
Set @SSQL = @SSQL + ' Group By D1.Ime_1 '
Else If @VratiSto = 'M'
Set @SSQL = @SSQL + ' Group By Cast(Month(T.Datum_Dok) as varchar(20)) '
Else If @VratiSto = 'D'
Set @SSQL = @SSQL + ' Group By T.Datum_Dok '--(Case When Day(Datum_Dok) < 10 Then ''0'' else '''' End) + Cast(Day(T.Datum_Dok) as varchar(20)) + ''/'' + (Case When Month(Datum_Dok) < 10 Then ''0'' else '''' End) + Cast(Month(T.Datum_Dok) as varchar(20)) '
Else If @VratiSto = 'P'
Set @SSQL = @SSQL + ' Group By P.Ime_Podg '
Else If @VratiSto = 'B'
Set @SSQL = @SSQL + ' Group By B.Ime '
Else If @VratiSto = 'A'
Set @SSQL = @SSQL + ' Group By K.ImeArt, D1.Ime_1, K.Sifra_Podg, K.ImaKomerc, P.Ime_Podg, P.Sifra_Gr, G.Ime_Gr '
Else If @VratiSto = 'O'
Set @SSQL = @SSQL + ' Group By O.ImeOrg '
Else If @VratiSto = '4'
Set @SSQL = @SSQL + ' Group By P4.Ime_4, P5.Ime_5 '
Set @SSQLUsl = @SSQLUsl + ' And D.Sifra_Oe = ' + Cast(@Sifra_Oe as varchar(10)) + ' '
If @Koi_Oe Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And D.Sifra_Oe In (Select Sifra_Oe From SGrOrg Where Sif_GrOrg = ''' + @Koi_Oe + ''') '
If @Sifra_Kup Is Not Null
Begin
If @KFSifra_Kup = 'D'
Set @SSQLUsl = @SSQLUsl + ' And (D.Sifra_Kup <> ''' + @Sifra_Kup + ''' Or D.Sifra_Kup Is Null) '
Else
Set @SSQLUsl = @SSQLUsl + ' And D.Sifra_Kup = ''' + @Sifra_Kup + ''' '
End
If @TipDokProd Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And D.Sifra_Dok In (' + @TipDokProd + ') '
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_Drg Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And KA.Sifra_Drg = ' + Cast(@Sifra_Drg as varchar(10)) + ' '
If @Sifra_Drg1 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And DR.Sifra_Drg1 = ' + Cast(@Sifra_Drg1 as varchar(10)) + ' '
If @Sifra_Podg Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And KA.Sifra_Podg = ''' + @Sifra_Podg + ''' '
If @Lokacija Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And KA.Lokacija = ''' + @Lokacija + ''' '
If @Sifra_Gr Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And P.Sifra_Gr = ''' + @Sifra_Gr + ''' '
If @APod1 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And KA.Drugo1 = ' + Cast(@APod1 as varchar(10)) + ' '
If @APod2 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And KA.Drugo2 = ' + Cast(@APod2 as varchar(10)) + ' '
If @APod3 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And KA.Drugo3 = ' + Cast(@APod3 as varchar(10)) + ' '
If @APod4 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And KA.Drugo4 = ' + Cast(@APod4 as varchar(10)) + ' '
If @APod5 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And KA.Drugo5 = ' + Cast(@APod5 as varchar(10)) + ' '
If @APod6 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And KA.Drugo6 = ' + Cast(@APod6 as varchar(10)) + ' '
If @APod7 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And KA.Drugo7 = ' + Cast(@APod7 as varchar(10)) + ' '
If @Kto Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And KA.Kto = ''' + @Kto + ''' '
If @Sifra_Tip Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Sifra_Tip=' + Cast(@Sifra_Tip As Varchar(10)) + ' '
If @Sifra_Nivo Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Sifra_Nivo=''' + @Sifra_Nivo + ''' '
If @TipKup Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.TipKup=''' + @TipKup + ''' '
If @Sifra_Pat IS NOT NULL
Begin
If @KomercKako = 'I'
SET @SSQLUsl = @SSQLUsl + ' AND D.Sifra_Pat = ' + Cast(@Sifra_Pat as varchar(5)) + ' '
Else
SET @SSQLUsl = @SSQLUsl + ' AND K.Sifra_Pat = ' + Cast(@Sifra_Pat as varchar(5)) + ' '
End
If @Sifra_Pat Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Sifra_Pat=' + Cast(@Sifra_Pat As Varchar(10)) + ' '
If @Koi_Gradovi Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Sifra_Grad In (' + @Koi_Gradovi + ') '
If @Koi_Regioni Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.Sifra_Reg In (' + @Koi_Regioni + ') '
If @Aktiven = 'D'
Set @SSQLUsl = @SSQLUsl + ' And (K.Aktiven <> ''N'' or K.Aktiven Is Null) '
Else If @Aktiven = 'N'
Set @SSQLUsl = @SSQLUsl + ' And K.Aktiven = ''N'' '
If @KPod1 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.KDrugo1=' + Cast(@KPod1 As Varchar(10)) + ' '
If @KPod2 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.KDrugo2=' + Cast(@KPod2 As Varchar(10)) + ' '
If @KPod3 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.KDrugo3=' + Cast(@KPod3 As Varchar(10)) + ' '
If @KPod4 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.KDrugo4=' + Cast(@KPod4 As Varchar(10)) + ' '
If @KPod5 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.KDrugo5=' + Cast(@KPod5 As Varchar(10)) + ' '
If @KPod6 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.KDrugo6=' + Cast(@KPod6 As Varchar(10)) + ' '
If @KPod7 Is Not Null
Set @SSQLUsl = @SSQLUsl + ' And K.KDrugo7=' + Cast(@KPod7 As Varchar(10)) + ' '
------------mesec vo minatata godina--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
If @VratiSto='K'
Set @SSQL=' Select K.ImeKup,K.TipKup,GT.ImeTipKup, '
--having Sum(Konsignacija) <> 0 or Sum(Prodavnica) <> 0 or sum(Faktura) <> 0
-- or sum(PKonsignacija) <> 0 or sum(PProdavnica) <> 0 or sum(PFaktura) <> 0
having Sum(Konsignacija + Prodavnica + Faktura) <> 0
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_prod_vrat]'))
drop procedure [dbo].[sp_prod_vrat]
Go
CREATE PROCEDURE [dbo].[sp_Prod_Vrat]
@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_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,
@Podred Char(1) = Null,
@Kto Char(6) = Null,
@Sifra_Gr Char(3) = Null,
@Sifra_Podg Char(6) = Null,
@Lokacija Varchar(10) = Null,
@TipKup Char(11) = Null,
@Koi_Gradovi varchar(200) = Null,
@Koi_Regioni varchar(200) = Null,
@TipDokProd varchar(200) = Null
AS
Set Nocount On
Declare @SSQL Varchar(4000)
Declare @SSQL1 Varchar(4000)
Declare @SSQL2 Varchar(4000)
Declare @SSQL3 Varchar(4000)
Declare @SSQLDat Varchar(4000)
Declare @SSQLL Varchar(8000)
Set @SSQLDat = ' '
Create Table #Tab1
(
Sifra_Kup char(6),
Sifra_Obj smallint,
VkProd decimal(18,6),
ProdLeb decimal(18,6),
VratLeb decimal(18,6),
ProdPec decimal(18,6),
VratPec decimal(18,6),
ProcVratLeb decimal(6,2),
ProcVratPec decimal(6,2)
)
--and S.Sifra_Podg In (101, 102) And D.Sifra_Za=1'
Set @SSQL = 'Select D.Sifra_Kup, D.Sifra_Obj, sum(S.kolic*S.DokCena)
From Stavr S
Inner Join KatArt K ON S.Sifra_Art=K.Sifra_Art
Inner Join Dokr D ON S.DokrID=D.DokrID '
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)
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 '
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'' and K.Sifra_Podg In (000101, 000102) And D.Sifra_Za=1 and S.kolic > 0 '
--print @SSQL
Set @SSQL1= ' And S.Sifra_art >=''000001'' and S.Sifra_art <= ''001999'' '
If @Sifra_Brand Is Not NULL
Set @SSQL1 = @SSQL1 + ' And K.Sifra_Drg=''' + Cast(@Sifra_Brand As Varchar(5)) + ''' '
If @Lokacija Is Not NULL
Set @SSQL1 = @SSQL1 + ' And K.Lokacija=''' + @Lokacija + ''' '
If @Kto Is Not NULL
Set @SSQL1 = @SSQL1 + ' And K.Kto=' + @Kto + ' '
If @Sifra_Podg Is Not NULL
Set @SSQL1 = @SSQL1 + ' And K.Sifra_Podg=' + @Sifra_Podg + ' '
If @Sifra_Gr Is Not NULL
Set @SSQL1 = @SSQL1 + ' And P.Sifra_Gr=' + @Sifra_Gr + ' '
If @Datum_Od Is Not NULL
Set @SSQLDat = @SSQLDat + ' And S.Datum_Dok >=''' + Cast(@Datum_Od As Varchar(35)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQLDat = @SSQLDat + ' And S.Datum_Dok <=''' + Cast(@Datum_Do As Varchar(35)) + ''' '
If @Pod1 Is Not NULL
Begin
Set @SSQL1 = @SSQL1 + ' 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 @SSQL1 = @SSQL1 + ' 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 @SSQL1 = @SSQL1 + ' 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 @SSQL1 = @SSQL1 + ' 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 @SSQL1 = @SSQL1 + ' 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 @SSQL1 = @SSQL1 + ' And KUP.Sifra_Tip=' + Cast(@Sifra_Tip As Varchar(6)) + ' '
If @Sifra_Kup_Od Is Not NULL
Set @SSQL1 = @SSQL1 + ' And D.Sifra_Kup>=' + Cast(@Sifra_Kup_Od As Varchar(6)) + ' '
If @Sifra_Kup_Do Is Not NULL
Set @SSQL1 = @SSQL1 + ' And D.Sifra_Kup<=' + Cast(@Sifra_Kup_Do As Varchar(6)) + ' '
If @Sifra_Art_Od Is Not NULL
Set @SSQL1 = @SSQL1 + ' And substring(S.Sifra_Art, 4, 3)>=''' + substring(@Sifra_Art_Od, 4, 3) + ''' '
If @Sifra_Art_Do Is Not NULL
Set @SSQL1 = @SSQL1 + ' And substring(S.Sifra_Art, 4, 3)<=''' + substring(@Sifra_Art_Do, 4, 3) + ''' '
If @TipKup Is Not NULL
Set @SSQL1 = @SSQL1 + ' And KUP.TipKup=''' + @TipKup + ''' '
If @KoiOE Is Not NULL
Set @SSQL1 = @SSQL1 + ' And S.Sifra_OE IN (' + @KoiOE + ') '
If @TipDokProd Is Not NULL
Set @SSQL1 = @SSQL1 + ' And S.Sifra_Dok IN (' + @TipDokProd + ') '
If @Koi_Gradovi Is Not NULL
Begin
Set @SSQL1 = @SSQL1 + ' 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 @SSQL1 = @SSQL1 + ' 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
Set @SSQL2 = ' Group By D.Sifra_Kup, D.Sifra_Obj '
Print @SSQL1
----------------------------------------------------------------- Prodazba Na Leb ----------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------- Prodazba Na Peciva ----------------------------------------------------------------------------------------------------------------------------------
Set @SSQL = ' '
Set @SSQL = 'Select D.Sifra_Kup, D.Sifra_Obj, Sum(S.kolic*S.DokCena)
From Stavr S
Inner Join KatArt K ON S.Sifra_Art=K.Sifra_Art
Inner Join Dokr D ON S.DokrID=D.DokrID '
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)
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 '
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'' and K.Sifra_Podg Not In (000101, 000102) And D.Sifra_Za=1 and S.kolic > 0 '
Set @SSQLDat = ' '
If @Datum_Od Is Not NULL
Set @SSQLDat = @SSQLDat + ' And S.Datum_Dok >=''' + Cast(@Datum_Od As Varchar(35)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQLDat = @SSQLDat + ' And S.Datum_Dok <=''' + Cast(@Datum_Do As Varchar(35)) + ''' '
WHERE D.Sifra_Kup IN (SELECT DISTINCT Sifra_Kup FROM #Tab1)
AND (Case When Len(S.Sifra_Art)<7 Then S.Sifra_Art Else Substring(S.Sifra_Art, 2, 6) End) IN (SELECT DISTINCT RTrim(Sifra_Art) FROM #Tab1) '
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 @KoiOE Is Not NULL
Set @SSQL = @SSQL+ ' And S.Sifra_OE IN (' + @KoiOE + ') '
If @TipDokProd Is Not NULL
Set @SSQL = @SSQL + ' And S.Sifra_Dok IN (' + @TipDokProd + ') '
Set @SSQL2 = ' Group By D.Sifra_Kup, D.Sifra_Obj, (Case When Len(S.Sifra_Art)<7 Then S.Sifra_Art Else Substring(S.Sifra_Art, 2, 6) End) '
INSERT INTO #Pom1 EXEC(@SSQL+ ' AND S.Kolic > 0 and D.sifra_za = 1 ' + @SSQL2)
Update #Pom1
Set Sifra_obj = 0 Where sifra_Obj is Null
Update #Tab1
Set Sifra_obj = 0 Where sifra_Obj is Null
Update #Pom1
Set Sifra_Kup = 0 Where sifra_Kup is Null
Update #Tab1
Set Sifra_kup = 0 Where sifra_kup is Null
UPDATE #Tab1 SET #Tab1.KolProd = #Pom1.Kolic, #Tab1.VredProd = #Pom1.Vred
FROM #Pom1
WHERE #Pom1.Sifra_Kup = #Tab1.Sifra_Kup AND #Pom1.Sifra_Obj = #Tab1.Sifra_Obj AND #Pom1.Sifra_Art = #Tab1.Sifra_Art
DELETE FROM #Pom1
INSERT INTO #Pom1 EXEC(@SSQL+ ' AND S.Kolic < 0' + @SSQL2)
Update #Pom1
Set Sifra_obj = 0 Where sifra_Obj is Null
Update #Pom1
Set Sifra_kup = 0 Where sifra_kup is Null
UPDATE #Tab1 SET KolVrat = #Pom1.Kolic, VredVrat = #Pom1.Vred FROM #Pom1
WHERE #Pom1.Sifra_Kup = #Tab1.Sifra_Kup AND #Pom1.Sifra_Obj = #Tab1.Sifra_Obj AND #Pom1.Sifra_Art = #Tab1.Sifra_Art
If @DaliPoKomint = 'D'
Begin
Set @SSQL= 'SELECT T.*, K.ImeKup, O.ImeObj, A.ImeArt
From #Tab1 T
INNER JOIN KatArt A ON T.Sifra_Art = A.Sifra_Art
LEFT OUTER JOIN Komint K on K.Sifra_Kup = T.Sifra_Kup
LEFT OUTER JOIN KObjekti O on O.Sifra_Kup = T.Sifra_Kup AND O.Sifra_Obj = T.Sifra_Obj '
If @Podred = 'S'
Set @SSQL=@SSQL + ' Order By T.Sifra_art '
If @Podred = 'A'
Set @SSQL=@SSQL + ' Order By A.ImeArt '
If @Podred = 'V'
Set @SSQL=@SSQL + ' Order By T.VredProd desc '
End
If @DaliPoKomint = 'N'
Begin
Set @SSQL= 'SELECT 0 as Sifra_Kup, 0 as Sifra_Obj, T.Sifra_Art, Sum(T.KolProd) KolProd, sum(T.KolVrat) KolVrat, sum(T.VredProd) VredProd,
sum(T.VredVrat) VredVrat, 0 as ImeKup, 0 as ImeObj, A.ImeArt
From #Tab1 T
INNER JOIN KatArt A ON T.Sifra_Art = A.Sifra_Art
LEFT OUTER JOIN Komint K on K.Sifra_Kup = T.Sifra_Kup
LEFT OUTER JOIN KObjekti O on O.Sifra_Kup = T.Sifra_Kup AND O.Sifra_Obj = T.Sifra_Obj
Group By T.Sifra_Art, A.ImeArt '
If @Podred = 'S'
Set @SSQL=@SSQL + ' Order By T.Sifra_art '
If @Podred = 'A'
Set @SSQL=@SSQL + ' Order By A.ImeArt '
If @Podred = 'V'
Set @SSQL=@SSQL + ' Order By sum(T.VredProd) desc '
End
Exec(@SSQL)
Set Nocount Off
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_prod_vrat_pooe]'))
drop procedure [dbo].[sp_prod_vrat_pooe]
Go
CREATE PROCEDURE [dbo].[sp_Prod_Vrat_PoOE]
@KoiOE Varchar(200) = 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,
@Podred Char(1) = Null,
@Kto Char(6) = Null,
@Sifra_Gr Char(3) = Null,
@Sifra_Podg Char(6) = Null,
@Lokacija Varchar(10) = Null
AS
Set Nocount On
Declare @SSQL Varchar(4000)
Declare @SSQL1 Varchar(4000)
Declare @SSQL2 Varchar(4000)
Declare @SSQL3 Varchar(4000)
Declare @SSQLDat Varchar(4000)
Declare @SSQLL Varchar(8000)
Set @SSQLDat = ' '
Create Table #Tab1
(
Sifra_Oe smallint,
VkProd decimal(18,6),
ProdLeb decimal(18,6),
VratLeb decimal(18,6),
ProdPec decimal(18,6),
VratPec decimal(18,6),
ProcVratLeb decimal(6,2),
ProcVratPec decimal(6,2)
)
--and S.Sifra_Podg In (101, 102) And D.Sifra_Za=1'
Set @SSQL = 'Select D.Sifra_Oe, sum(S.kolic*S.DokCena)
From Stavr S
Inner Join KatArt K ON S.Sifra_Art=K.Sifra_Art
Inner Join Dokr D ON S.DokrID=D.DokrID '
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'' and K.Sifra_Podg In (000101, 000102) And D.Sifra_Za=3 and D.VlIzl=''V'' And S.kolic > 0 '
--print @SSQL
Set @SSQL1= ' And S.Sifra_art >=''000001'' and S.Sifra_art <= ''001999'' '
If @Sifra_Brand Is Not NULL
Set @SSQL1 = @SSQL1 + ' And K.Sifra_Drg=''' + Cast(@Sifra_Brand As Varchar(5)) + ''' '
If @Lokacija Is Not NULL
Set @SSQL1 = @SSQL1 + ' And K.Lokacija=''' + @Lokacija + ''' '
If @Kto Is Not NULL
Set @SSQL1 = @SSQL1 + ' And K.Kto=' + @Kto + ' '
If @Sifra_Podg Is Not NULL
Set @SSQL1 = @SSQL1 + ' And K.Sifra_Podg=' + @Sifra_Podg + ' '
If @Sifra_Gr Is Not NULL
Set @SSQL1 = @SSQL1 + ' And P.Sifra_Gr=' + @Sifra_Gr + ' '
If @Datum_Od Is Not NULL
Set @SSQLDat = @SSQLDat + ' And S.Datum_Dok >=''' + Cast(@Datum_Od As Varchar(35)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQLDat = @SSQLDat + ' And S.Datum_Dok <=''' + Cast(@Datum_Do As Varchar(35)) + ''' '
If @Sifra_Art_Od Is Not NULL
Set @SSQL1 = @SSQL1 + ' And substring(S.Sifra_Art, 4, 3)>=''' + substring(@Sifra_Art_Od, 4, 3) + ''' '
If @Sifra_Art_Do Is Not NULL
Set @SSQL1 = @SSQL1 + ' And substring(S.Sifra_Art, 4, 3)<=''' + substring(@Sifra_Art_Do, 4, 3) + ''' '
If @KoiOE Is Not NULL
Set @SSQL1 = @SSQL1 + ' And S.Sifra_OE IN (' + @KoiOE + ') '
Set @SSQL2 = ' Group By D.Sifra_Oe '
Print @SSQL1
----------------------------------------------------------------- Prodazba Na Leb ----------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------- Prodazba Na Peciva ----------------------------------------------------------------------------------------------------------------------------------
Set @SSQL = ' '
Set @SSQL = 'Select D.Sifra_Oe, Sum(S.kolic*S.DokCena)
From Stavr S
Inner Join KatArt K ON S.Sifra_Art=K.Sifra_Art
Inner Join Dokr D ON S.DokrID=D.DokrID '
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'' and K.Sifra_Podg Not In (000101, 000102) And D.Sifra_Za=3 and D.VlIzl=''V'' And S.kolic > 0 '
Set @SSQLDat = ' '
If @Datum_Od Is Not NULL
Set @SSQLDat = @SSQLDat + ' And S.Datum_Dok >=''' + Cast(@Datum_Od As Varchar(35)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQLDat = @SSQLDat + ' And S.Datum_Dok <=''' + Cast(@Datum_Do As Varchar(35)) + ''' '
Set @SSQL = @SSQL + ' And K.Lokacija=''' + @Lokacija + ''' '
If @Kto Is Not NULL
Set @SSQL = @SSQL + ' And K.Kto=' + @Kto + ' '
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)) + ''' '
If @TipDokProd IS NOT NULL
Set @SSQL = @SSQL + ' And S.Sifra_Dok IN (' + @TipDokProd + ') '
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 @Sifra_Pat Is Not NULL
If @PatnikOd = 'D'
Set @SSQL = @SSQL + ' And D.Sifra_Pat=' + Cast(@Sifra_Pat As Varchar(6)) + ' '
Else
Set @SSQL = @SSQL + ' And KK.Sifra_Pat=' + Cast(@Sifra_Pat As Varchar(6)) + ' '
If @PoOBjekti = 'D'
Set @SSQL = @SSQL + ' Group By S.Sifra_Art, K.ImeArt, D.Sifra_Kup, KOM.ImeKup, D.Sifra_Obj, OB.ImeObj '
else
Set @SSQL = @SSQL + ' Group By S.Sifra_Art, K.ImeArt '
If @GroupPoArt = 'D'
Set @SSQL = @SSQL + ' '
Else
If @PatnikOd = 'D'
Set @SSQL = @SSQL + ', D.SIfra_Pat, PA.ImePat '
Else
Set @SSQL = @SSQL + ', KK.SIfra_Pat, PA.ImePat '
if @PoOBjekti = 'D'
begin
If @Podred = 'S'
Set @SSQL = @SSQL + ' Order By S.Sifra_Art, D.Sifra_Kup, D.Sifra_Obj '
Else
Set @SSQL = @SSQL + ' Order By K.ImeArt, KOM.ImeKup, OB.ImeObj '
end
else
begin
If @Podred = 'S'
Set @SSQL = @SSQL + 'Order By S.Sifra_Art '
Else If @Podred = 'A'
Set @SSQL = @SSQL + 'Order By K.ImeArt '
Else If @Podred = 'K'
Set @SSQL = @SSQL + 'Order By ProdKolic DESC'
Else If @Podred = 'V'
Set @SSQL = @SSQL + 'Order By ProdVred DESC'
end
print @SSQL
Exec(@SSQL)
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_prodaja_one2play]'))
drop procedure [dbo].[sp_prodaja_one2play]
Go
CREATE PROCEDURE sp_Prodaja_One2Play
@Datum_Od smalldatetime,
@Datum_Do smalldatetime
AS
Select Cast(D.Sifra_Oe as varchar(6))+'-'+Cast(D.Sifra_Dok as varchar(6))+'/'+Cast(D.Broj_Dok as varchar(10)) as BrojDok, D.Datum_Dok, DateAdd(Day,D.Rok,D.Datum_Dok) Datum_Dosp, D.Datum_Dok Datum_Knjiz,
Nar.Datum_Nar, D.Sifra_Kup, Kup.ImeKup NazivKupca, (Case When D.Sifra_Obj Is Not null Then D.Sifra_Obj Else D.Sifra_Kup End) DostavMjesto,
(Case When D.Sifra_Obj Is Not null Then KO.ImeObj Else Kup.ImeKup End) NazivDostavMjesto,
(Case When KO.TipKup Is Not Null Then KO.TipKup Else Kup.TipKup End) KategKupca, TK.ImeTipKup NazivKategKupca,
(Case When KO.SMesto Is Not Null Then KO.SMesto Else Kup.SMesto End) Mjesto,
(Case When KO.Posta Is Not Null Then KO.Posta Else Kup.Posta End) PostBroj,
(Case When KO.Sifra_Pat Is Not Null Then KO.Sifra_Pat Else Kup.Sifra_Pat End) SifraKomercijaliste, Pat.ImePat NazivKomercijaliste, '' GrupaKomerc,
Round(S.Kolic*(Case When S.DanDokCena='N' Then S.DokCena Else S.DokCena/(1+S.Posn/100) End), 4) ProdajnaVrijednostDok,
Round(S.Kolic*(Case When S.DanDokCena='N' Then S.DokCena Else S.DokCena/(1+S.Posn/100) End)*S.Uces/100 + S.Kolic*(Case When S.DanDokCena='N' Then S.DokCena Else S.DokCena/(1+S.Posn/100) End)*D.Kasa/100, 4) Rabati,
Round(S.Kolic*(Case When S.DanDokCena='N' Then S.DokCena Else S.DokCena/(1+S.Posn/100) End)*(1-S.Uces/100)*(1-D.Kasa/100), 4) NetoVrijedDok,
Set @SSQL = @SSQL + ' Sum(Case K.ImaKomerc When 0 Then S.kolic Else (S.Kolic/K.ImaKomerc) End ) '
Else If @PrikaziSto = 'L'
Set @SSQL = @SSQL + ' Sum(S.Kolic*K.Volumen/1000) '
Set @SSQL = @SSQL + ' From Dokr D
Inner Join Stavr S On S.DokrID=D.DokrID
Inner Join KatArt K ON K.Sifra_Art=S.Sifra_Art
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
Left Outer Join Patnici Pat On Pat.Sifra_Pat = D.Sifra_Pat '
If @TopKolku > 0
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 '
If @Sifra_ZBrand Is Not Null
Set @SSQL = @SSQL + 'Inner Join DrgPodel B On K.Sifra_Drg=B.Sifra_Drg '
Set @SSQLGroup = 'Group By S.Sifra_Art, K.ImeArt, '
If @Koi_Iminja = 'A'
Set @SSQLGroup = @SSQLGroup + ' D.Sifra_Pat, Pat.ImePat, (Case When D.Sifra_Obj Is Not Null Then Cast(D.Sifra_Obj as varchar(6)) Else D.Sifra_Kup End),
(Case When D.Sifra_Obj Is Not Null Then KO.ImeObj Else Kup.Alt_ImeKup End) ' -- treba Alt_ImeObj, ama odkako ke se dodajt vo tabelata
Else
Set @SSQLGroup = @SSQLGroup + ' D.Sifra_Pat, Pat.ImePat, (Case When D.Sifra_Obj Is Not Null Then Cast(D.Sifra_Obj as varchar(6)) Else D.Sifra_Kup End),
(Case When D.Sifra_Obj Is Not Null Then KO.ImeObj Else Kup.ImeKup End) '
If @PrikaziSto = 'K'
Set @SSQLGroup = @SSQLGroup + ' Order By Sum(S.Kolic) Desc '
Else If @PrikaziSto = 'T'
Set @SSQLGroup = @SSQLGroup + ' Order By Sum(S.Kolic*K.Tezina/1000) Desc '
Else If @PrikaziSto = 'V'
Set @SSQLGroup = @SSQLGroup + ' Order By Sum(dbo.fn_Vr_krajna(S.Kolic, S.DokCena, S.DanDokCena, S.Posn, S.Uces, D.Kasa)) Desc '
Else If @PrikaziSto = 'P'
Set @SSQLGroup = @SSQLGroup + ' Order By Sum(Case K.ImaKomerc When 0 Then S.kolic Else (S.Kolic/K.ImaKomerc) End ) Desc '
Else If @PrikaziSto = 'L'
Set @SSQLGroup = @SSQLGroup + ' Order By Sum(S.Kolic*K.Volumen/1000) Desc '
End
-- Promet vo prethodna godina za periodot od do datum
If @KojIzv <> 'P' -- Dokolku sakame izvestaj po patnici ne ni treba
Begin
Set @DatOd = dbo.fn_VratiDatumOdDo(Cast(Year(@Datum_Od)-1 as Varchar(4)), Cast(Month(@Datum_Od) as varchar(2)), Cast(Day(@Datum_Od) as varchar(2)))
Set @DatDo = dbo.fn_VratiDatumOdDo(Cast(Year(@Datum_Do)-1 as Varchar(4)), Cast(Month(@Datum_Do) as varchar(2)), Cast(Day(@Datum_Do) as varchar(2)))
Set @SSQLDat = ' And S.Datum_Dok>=''' + Cast(@DatOd As Varchar(25)) + ''' And S.Datum_Dok<=''' + Cast(@DatDo As Varchar(25)) + ''' '
If @Baza2 Is Not Null
Insert Into #Prod (Sifra_Kolona, Ime_Kolona, Sifra_Red, Ime_Red, Sifra_Red_2, Ime_Red_2, PrethGodTekPromet)
Select (Case When Sifra_Kolona Is Null Then ' ' Else Sifra_Kolona End) Sifra_Kolona, (Case When Ime_Kolona Is Null Then ' ' Else Ime_Kolona End) Ime_Kolona,
(Case When Sifra_Red Is Null Then ' ' Else Sifra_Red End) Sifra_Red, (Case When Ime_Red Is Null Then ' ' Else Ime_Red End) Ime_Red,
(Case When Sifra_Red_2 Is Null Then ' ' Else Sifra_Red_2 End) Sifra_Red_2, (Case When Ime_Red_2 Is Null Then ' ' Else Ime_Red_2 End) Ime_Red_2,
@NeraspredArt char(1) = 'D', -- Prikazi Neraspredeleni Artikli
@KlucniDobav varchar(500) = Null,
@APod1 Smallint = Null,
@APod2 Smallint = Null,
@APod3 Smallint = Null,
@APod4 Smallint = Null,
@APod5 Smallint = Null,
@APod6 Smallint = Null,
@APod7 Smallint = Null,
@Sifra_VPJ Smallint = Null,
@Alt_ImeArt char(1) = 'N',
@KoiPat varchar(300) = Null,
@KomercKako char(1) = 'I',
@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
@Sifra_Div smallint = Null,
@PrethBazaOd char(1) = 'N', -- K - Konfig (poleto PrethBaza) ?T? - Nekoja tabela (Fir Paral ili Nekoja Nova za vo idnina)
@ParalenliBazi varchar(200) = Null,
@BrKoloni int = Null OUTPUT,
@IzvBat char(1) = Null,
@GrKup varchar(500) = Null,
@GrArt varchar(500) = Null
AS
Declare @SSQL Varchar(8000)
Declare @SSQL1 Varchar(8000)
Declare @SSQL2 Varchar(8000)
Declare @SSQL3 Varchar(8000)
Declare @SSQL4 Varchar(8000)
Declare @SSQL5 Varchar(8000)
Declare @SSQLArt Varchar(8000)
Declare @SSQLArtJoin Varchar(8000)
Declare @SSQLArtGroup Varchar(8000)
Declare @SSQLFrom Varchar(8000)
Set @SSQL = ''
Set @SSQL1 = ''
Set @SSQL2 = ''
Set @SSQL3 = ''
Set @SSQL4 = ''
Set @SSQL5 = ''
Set @SSQLArt = ''
Set @SSQLArtJoin = ''
Set @SSQLArtGroup = ''
Set @SSQLFrom = ''
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)
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 @Podelba = Upper(@Podelba)
If @Podelba = 'D1'
Set @SSQL1 = 'Select KUP.KDrugo1 Tip, KD1.Ime_1K Ime, '
Else If @Podelba = 'D2'
Set @SSQL1 = 'Select KUP.KDrugo2 Tip, KD2.Ime_2K Ime, '
Else If @Podelba = 'D3'
Set @SSQL1 = 'Select KUP.KDrugo3 Tip, KD3.Ime_3K Ime, '
Else If @Podelba = 'D4'
Set @SSQL1 = 'Select KUP.KDrugo4 Tip, KD4.Ime_4K Ime, '
Else If @Podelba = 'D5'
Set @SSQL1 = 'Select KUP.KDrugo5 Tip, KD5.Ime_5K Ime, '
Else If @Podelba = 'D6'
Set @SSQL1 = 'Select KUP.KDrugo6 Tip, KD6.Ime_6K Ime, '
Else If @Podelba = 'D7'
Set @SSQL1 = 'Select KUP.KDrugo7 Tip, KD7.Ime_7K Ime, '
Else If @Podelba = 'TK'
Set @SSQL1 = 'Select KUP.TipKup Tip, GT.ImeTipKup Ime, '
Else If @Podelba = 'NI'
Set @SSQL1 = 'Select KUP.Sifra_Nivo Tip, NI.ImeNivo Ime, '
Else If @Podelba = 'GR'
Set @SSQL1 = 'Select KUP.Sifra_Grad Tip, GR.ImeGrad Ime, '
Else If @Podelba = 'RE'
Set @SSQL1 = 'Select KUP.Sifra_Reg Tip, RE.ImeRegion Ime, '
Else If @Podelba = 'ST'
Set @SSQL1 = 'Select KUP.Sifra_Tip Tip, TK.ImeTip Ime, '
Else If @Podelba = 'OE'
Set @SSQL1 = 'Select S.Sifra_Oe Tip, Oe.ImeOrg Ime, '
Else If @Podelba = 'KO'
Set @SSQL1 = 'Select D.Sifra_Kup Tip, Kup.ImeKup Ime, '
Else If @Podelba = 'OB'
Set @SSQL1 = 'Select D.Sifra_Kup + '' '' + (Case When D.Sifra_Obj Is Not Null Then dbo.fn_levonuli(Cast(D.Sifra_Obj as varchar(6)),3) Else '''' End) Tip,
Kup.ImeKup + '' '' + (Case When KO.ImeObj Is Not Null Then KO.ImeObj Else '''' End) Ime, '
Else If @Podelba = 'PI'
Set @SSQL1 = 'Select D.Sifra_Pat Tip, Pat.ImePat Ime, '
Else If @Podelba = 'PT'
Set @SSQL1 = 'Select KUP.Sifra_Pat Tip, Pat.ImePat Ime, '
Else If @Podelba = 'VP'
Set @SSQL1 = 'Select KUP.Sifra_Vpj Tip, VPJ.Ime_Vpj Ime, '
Else If @Podelba = 'ME'
Set @SSQL1 = 'Select (Case When Month(D.Datum_Dok) < 10 Then ''0'' Else '''' End) + Cast(Month(D.Datum_Dok) as varchar(2)) + ''/'' + Cast(Year(D.Datum_Dok) as varchar(4)) Tip, Null Ime, '
Else If @Podelba = 'KV'
Set @SSQL1 = 'Select ''0'' + Cast(DatePart(Quarter, D.Datum_Dok) as varchar(2)) + ''-'' + Cast(Year(D.Datum_Dok) as varchar(4)) Tip, Null Ime, '
Else If @Podelba = 'TD'
Set @SSQL1 = 'Select S.Sifra_Dok Tip, (Case When S.Sifra_Dok < 10 Then ''00'' When S.Sifra_Dok >=10 And S.Sifra_Dok < 100 Then ''0'' Else '''' End) + Cast(S.Sifra_Dok as varchar(6)) + '' '' + TD.ImeDok Ime, '
-- Set @SSQL = ' TS.Sifra_Sur Sifra_art, K.ImeArt,
Set @SSQL = ' Round(Sum(dbo.fn_vr_osnov(S.Kolic, S.DokCena, S.DanDokCena, S.POsn)), 4) as Vr_Osnov,
Round(Sum(dbo.fn_vr_sorabat(S.Kolic, S.DokCena, S.DanDokCena, S.POsn, S.Uces, D.Kasa)), 4) as Vr_SoRabat,
Round(Sum(dbo.fn_vr_krajna(S.Kolic, S.DokCena, S.DanDokCena, S.POsn, S.Uces, D.Kasa)), 4) as Vr_Krajna,
Round(Sum(S.Kolic*K.GotCena), 4) As Vr_NPS,
Round(Sum(S.Kolic*S.NabCena),4) Vr_Nabavna,
Count(Distinct D.Sifra_Kup) As Komintenti,
Count(Distinct D.DokrID) As BrojFakturi,
Round(Sum(S.Kolic),4) as Kolicina, Round(Sum(S.Kolic*TS.Ima_Kolic*dbo.FIX_BrandKolic(K.KolkuDrg)),4) as BrandKolic,
Round(Sum(S.Kolic*K.BTezina),4) as BrutoTezina, Round(Sum(S.Kolic*K.Tezina),4) as NetoTezina,
Round(Sum(TS.Ima_Kolic*S.Kolic*K.Tezina/100000), 4) As Hektolitri,
Round(Sum(TS.Ima_Kolic*S.Kolic*K.Volumen/1000), 4) As Volumen '
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 '
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 @Podelba = 'D1'
Set @SSQL2 = 'Left Outer Join KDrugo1 KD1 ON KUP.KDrugo1=KD1.Sifra_1K '
Else If @Podelba = 'D2'
Set @SSQL2 = 'Left Outer Join KDrugo2 KD2 ON KUP.KDrugo2=KD2.Sifra_2K '
Else If @Podelba = 'D3'
Set @SSQL2 = 'Left Outer Join KDrugo3 KD3 ON KUP.KDrugo3=KD3.Sifra_3K '
Else If @Podelba = 'D4'
Set @SSQL2 = 'Left Outer Join KDrugo4 KD4 ON KUP.KDrugo4=KD4.Sifra_4K '
Else If @Podelba = 'D5'
Set @SSQL2 = 'Left Outer Join KDrugo5 KD5 ON KUP.KDrugo5=KD5.Sifra_5K '
Else If @Podelba = 'D6'
Set @SSQL2 = 'Left Outer Join KDrugo6 KD6 ON KUP.KDrugo6=KD6.Sifra_6K '
Else If @Podelba = 'D7'
Set @SSQL2 = 'Left Outer Join KDrugo7 KD7 ON KUP.KDrugo7=KD7.Sifra_7K '
Else If @Podelba = 'TK'
Set @SSQL2 = 'Left Outer Join GTipKup GT ON KUP.TipKup=GT.TipKup '
Else If @Podelba = 'GR'
Set @SSQL2 = 'Left Outer Join Grad GR ON KUP.Sifra_Grad=GR.Sifra_Grad '
Else If @Podelba = 'RE'
Set @SSQL2 = 'Left Outer Join GREGION RE ON KUP.Sifra_Reg=RE.Sifra_Reg '
Else If @Podelba = 'NI'
Set @SSQL2 = 'Left Outer Join NIVO NI ON KUP.Sifra_Nivo=NI.Sifra_Nivo '
Else If @Podelba = 'ST'
Set @SSQL2 = 'Left Outer Join TipKomint TK ON KUP.Sifra_Tip=TK.Sifra_Tip '
Else If @Podelba = 'PT'
Set @SSQL2 = 'Left Outer Join Patnici Pat ON KUP.Sifra_Pat=Pat.Sifra_Pat '
Else If @Podelba = 'PI'
Set @SSQL2 = 'Left Outer Join Patnici Pat ON D.Sifra_Pat=Pat.Sifra_Pat '
Else If @Podelba = 'OE'
Set @SSQL2 = 'Left Outer Join Orged OE ON Oe.Sifra_Oe=S.Sifra_Oe '
Else If @Podelba = 'VP'
Set @SSQL2 = 'Left Outer Join VidProdObj VPJ On KUP.Sifra_Vpj=Vpj.Sifra_Vpj '
Else If @Podelba = 'TD'
Set @SSQL2 = 'Left Outer Join TipDok TD ON TD.Sifra_Dok=S.Sifra_Dok '
If @PodelArt = 'PG'
If @KolkuMesta Is Not Null
Set @SSQLArtJoin = @SSQLArtJoin + ' Left Outer Join Podgrupi PG On PG.Sifra_Podg = Substring(K.Sifra_Podg, 1, ' + cast(@KolkuMesta as varchar(1)) + ') '
Else
Set @SSQLArtJoin = @SSQLArtJoin + ' Left Outer Join Podgrupi PG On PG.Sifra_Podg = K.Sifra_Podg '
Else If @PodelArt = 'GR'
Set @SSQLArtJoin = @SSQLArtJoin + ' Left Outer Join Podgrupi PG On PG.Sifra_Podg = K.Sifra_Podg
Left Outer Join Grupi G On G.Sifra_Gr = PG.Sifra_Gr '
Else If @PodelArt = 'BR'
Set @SSQLArtJoin = @SSQLArtJoin + ' Left Outer Join DrgPodel BR On BR.Sifra_Drg = K.Sifra_Drg '
Else If @PodelArt = 'D1'
Set @SSQLArtJoin = @SSQLArtJoin + ' Left Outer Join Drugo1 D1 On D1.Sifra_1 = K.Drugo1 '
Else If @PodelArt = 'D2'
Set @SSQLArtJoin = @SSQLArtJoin + ' Left Outer Join Drugo2 D2 On D2.Sifra_2 = K.Drugo2 '
Else If @PodelArt = 'D3'
Set @SSQLArtJoin = @SSQLArtJoin + ' Left Outer Join Drugo3 D3 On D3.Sifra_3 = K.Drugo3 '
Else If @PodelArt = 'D4'
Set @SSQLArtJoin = @SSQLArtJoin + ' Left Outer Join Drugo4 D4 On D4.Sifra_4 = K.Drugo4 '
Else If @PodelArt = 'D5'
Set @SSQLArtJoin = @SSQLArtJoin + ' Left Outer Join Drugo5 D5 On D5.Sifra_5 = K.Drugo5 '
Else If @PodelArt = 'D6'
Set @SSQLArtJoin = @SSQLArtJoin + ' Left Outer Join Drugo6 D6 On D6.Sifra_6 = K.Drugo6 '
Else If @PodelArt = 'D7'
Set @SSQLArtJoin = @SSQLArtJoin + ' Left Outer Join Drugo7 D7 On D7.Sifra_7 = K.Drugo7 '
Else If @PodelArt = 'KT'
Set @SSQLArtJoin = @SSQLArtJoin + ' Left Outer Join Komint KT On KT.Sifra_Kup = K.Kto '
Else If @PodelArt = 'KH'
Set @SSQLArtJoin = @SSQLArtJoin + ' Left Outer Join KatHier KH On KH.Sifra_KHier = Substring(K.Sifra_KHier,1,2) '
Else If @PodelArt = 'H1'
Set @SSQLArtJoin = @SSQLArtJoin + ' Left Outer Join KatHier H1 On H1.Sifra_KHier=K.Sifra_KHier
Left Outer Join KatHier H2 On H2.Sifra_KHier=H1.Sifra_KHier_Hier
Left Outer Join KatHier H3 On H3.Sifra_KHier=H2.Sifra_KHier_Hier '
Else If @PodelArt = 'DI'
Set @SSQLArtJoin = @SSQLArtJoin + ' Left Outer Join Divizii DI On DI.Sifra_Div = K.Sifra_Div '
-- Else If @PodelArt = 'TD'
-- Set @SSQLArtJoin = @SSQLArtJoin + ' Left Outer Join TipDok TD ON TD.Sifra_Dok=S.Sifra_Dok '
Set @SSQL3 = ''
If @Sifra_Gr Is Not Null And @PodelArt Not in ('PG', 'GR')
Set @SSQL3 = @SSQL3 + 'Inner Join PodGrupi PG ON K.Sifra_Podg=PG.Sifra_Podg '
Set @SSQL3 = @SSQL3 + 'Where K.Iskluci <> ''D'' '
If @Sifra_Art_Od Is Not NULL --POSLE OVDE PROSIRI KAKO STO E ZA GRADOVI, REGIONI
Set @SSQL3 = @SSQL3 + ' And K.Sifra_Art >=''' + @Sifra_Art_Od + ''' '
If @Sifra_Art_Do Is Not NULL
Set @SSQL3 = @SSQL3 + ' And K.Sifra_Art <=''' + @Sifra_Art_Do + ''' '
If @TipKup Is Not NULL
Begin
Set @SSQL3 = @SSQL3 + ' And ((KO.TipKup Is Not Null And KO.TipKup In (' + @TipKup + '))
Or (KO.TipKup Is Null And Kup.TipKup In (' + @TipKup + '))) '
End
If @TipDokProd is not null
Set @SSQL3 = @SSQL3 + ' And S.Sifra_Dok IN (' + @TipDokProd + ') '
If @Pod1 Is Not NULL
If @KFPod1 = 'D'
Set @SSQL3 = @SSQL3 + ' 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 @SSQL3 = @SSQL3 + ' 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 @SSQL3 = @SSQL3 + ' 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 @SSQL3 = @SSQL3 + ' 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 @SSQL3 = @SSQL3 + ' 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 @SSQL3 = @SSQL3 + ' 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 @SSQL3 = @SSQL3 + ' 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 @SSQL3 = @SSQL3 + ' 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 @SSQL3 = @SSQL3 + ' 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 @SSQL3 = @SSQL3 + ' 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 @SSQL3 = @SSQL3 + ' 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 @SSQL3 = @SSQL3 + ' 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 @SSQL3 = @SSQL3 + ' 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 @SSQL3 = @SSQL3 + ' 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 @SSQL3 = @SSQL3 + ' And Kup.Sifra_Tip = ' + Cast(@Sifra_Tip As Varchar(6)) + ' '
If @Sifra_VPJ Is Not NULL
Begin
Set @SSQL3 = @SSQL3 + ' 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_Nivo Is Not NULL
Set @SSQL3 = @SSQL3 + ' And KUP.Sifra_Nivo=''' + @Sifra_Nivo + ''' '
If @Lokacija Is Not NULL
Set @SSQL3 = @SSQL3 + ' And K.Lokacija=''' + @Lokacija + ''' '
If @Kto Is Not NULL
Set @SSQL3 = @SSQL3 + ' And K.Kto=' + @Kto + ' '
If @Sifra_Podg Is Not Null
If @PocnuvaSo = 'D'
Set @SSQL3 = @SSQL3 + ' And K.Sifra_Podg Like ''' + Rtrim(@Sifra_Podg) + '%'' '
Else
Set @SSQL3 = @SSQL3 + ' And K.Sifra_Podg=' + @Sifra_Podg + ' '
If @Sifra_Gr Is Not NULL
Set @SSQL3 = @SSQL3 + ' And PG.Sifra_Gr=' + @Sifra_Gr + ' '
If @PoKojDatum = 'V'
Begin
If @Datum_Od Is Not NULL
Set @SSQL3 = @SSQL3 + ' And D.Datum_Vnes>=''' + Cast(@Datum_Od As Varchar(30)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQL3 = @SSQL3 + ' And D.Datum_Vnes<''' + Cast(@Datum_Do + 1 As Varchar(30)) + ''' '
End
Else
Begin
If @Datum_Od Is Not NULL
Set @SSQL3 = @SSQL3 + ' And S.Datum_Dok>=''' + cast(@Datum_Od As Varchar(30)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQL3 = @SSQL3 + ' And S.Datum_Dok<=''' + Cast(@Datum_Do As Varchar(30)) + ''' '
End
-- If @Datum_Od Is NOT Null
-- SET @SSQL3 = @SSQL3 + 'AND S.Datum_Dok >=''' + Cast(@Datum_Od As Varchar(35))+ ''' '
-- If @Datum_Do Is NOT Null
-- SET @SSQL3 = @SSQL3 + 'AND S.Datum_Dok <=''' + Cast(@Datum_Do As Varchar(35))+ ''' '
If @Sifra_Kup_Od Is Not NULL
Set @SSQL3 = @SSQL3 + ' And D.Sifra_Kup>=' + Cast(@Sifra_Kup_Od As Varchar(6)) + ' '
If @Sifra_Kup_Do Is Not NULL
Set @SSQL3 = @SSQL3 + ' And D.Sifra_Kup<=' + Cast(@Sifra_Kup_Do As Varchar(6)) + ' '
If @Sifra_Brand Is Not NULL
Set @SSQL3 = @SSQL3 + 'And K.Sifra_Drg=''' + Cast(@Sifra_Brand As Varchar(5)) + ''' '
If @APod1 Is Not NULL
Set @SSQL3 = @SSQL3 + 'And K.Drugo1=' + Cast(@APod1 As Varchar(5)) + ' '
If @APod2 Is Not NULL
Set @SSQL3 = @SSQL3 + 'And K.Drugo2=' + Cast(@APod2 As Varchar(5)) + ' '
If @APod3 Is Not NULL
Set @SSQL3 = @SSQL3 + 'And K.Drugo3=' + Cast(@APod3 As Varchar(5)) + ' '
If @APod4 Is Not NULL
Set @SSQL3 = @SSQL3 + 'And K.Drugo4=' + Cast(@APod4 As Varchar(5)) + ' '
If @APod5 Is Not NULL
Set @SSQL3 = @SSQL3 + 'And K.Drugo5=' + Cast(@APod5 As Varchar(5)) + ' '
If @APod6 Is Not NULL
Set @SSQL3 = @SSQL3 + 'And K.Drugo6=' + Cast(@APod6 As Varchar(5)) + ' '
If @APod7 Is Not NULL
Set @SSQL3 = @SSQL3 + 'And K.Drugo7=' + Cast(@APod7 As Varchar(5)) + ' '
If @Sifra_Div Is Not NULL
Set @SSQL3 = @SSQL3 + 'And K.Sifra_Div=' + Cast(@Sifra_Div As Varchar(5)) + ' '
If @Sifra_OE Is Not NULL
Set @SSQL3 = @SSQL3 + ' And S.Sifra_OE=' + Cast(@Sifra_OE As Varchar(5)) + ' '
If @KoiOE Is Not NULL
Set @SSQL3 = @SSQL3 + ' And S.Sifra_OE IN (' + @KoiOE + ') '
If @Koi_Gradovi Is Not NULL
Begin
Set @SSQL3 = @SSQL3 + ' 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 @SSQL3 = @SSQL3 + ' 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 @KoiPat IS NOT NULL
SET @SSQL3 = @SSQL3 + ' AND D.Sifra_Pat In (' + @KoiPat + ') '
If @KomercKako = 'T'
If @KoiPat IS NOT NULL
Set @SSQL3 = @SSQL3 + ' 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 + '))) '
If @KlucniDobav Is Not Null
Set @SSQL3 = @SSQL3 + ' And K.Kto IN (' + @KlucniDobav + ') '
If @Podelba = 'D1'
Set @SSQL4 = 'Group By KUP.KDrugo1, KD1.Ime_1k, '
Else If @Podelba = 'D2'
Set @SSQL4 = 'Group By KUP.KDrugo2, KD2.Ime_2K, '
Else If @Podelba = 'D3'
Set @SSQL4 = 'Group By KUP.KDrugo3, KD3.Ime_3K, '
Else If @Podelba = 'D4'
Set @SSQL4 = 'Group By KUP.KDrugo4, KD4.Ime_4K, '
Else If @Podelba = 'D5'
Set @SSQL4 = 'Group By KUP.KDrugo5, KD5.Ime_5K, '
Else If @Podelba = 'D6'
Set @SSQL4 = 'Group By KUP.KDrugo6, KD6.Ime_6K, '
Else If @Podelba = 'D7'
Set @SSQL4 = 'Group By KUP.KDrugo7, KD7.Ime_7K, '
Else If @Podelba = 'TK'
Set @SSQL4 = 'Group By KUP.TipKup, GT.ImeTipKup, '
Else If @Podelba = 'NI'
Set @SSQL4 = 'Group By KUP.Sifra_Nivo, NI.ImeNivo, '
Else If @Podelba = 'GR'
Set @SSQL4 = 'Group By KUP.Sifra_Grad, GR.ImeGrad, '
Else If @Podelba = 'RE'
Set @SSQL4 = 'Group By KUP.Sifra_Reg, RE.ImeRegion, '
Else If @Podelba = 'ST'
Set @SSQL4 = 'Group By KUP.Sifra_Tip, TK.ImeTip, '
Else If @Podelba = 'PT'
Set @SSQL4 = 'Group By KUP.Sifra_Pat, Pat.ImePat, '
Else If @Podelba = 'PI'
Set @SSQL4 = 'Group By D.Sifra_Pat, Pat.ImePat, '
Else If @Podelba = 'OE'
Set @SSQL4 = 'Group By S.Sifra_Oe, Oe.ImeOrg, '
Else If @Podelba = 'KO'
Set @SSQL4 = 'Group By D.Sifra_Kup, Kup.ImeKup, '
Else If @Podelba = 'OB'
Set @SSQL4 = 'Group By D.Sifra_Kup + '' '' + (Case When D.Sifra_Obj Is Not Null Then dbo.fn_levonuli(Cast(D.Sifra_Obj as varchar(6)),3) Else '''' End),
Kup.ImeKup + '' '' + (Case When KO.ImeObj Is Not Null Then KO.ImeObj Else '''' End), '
Else If @Podelba = 'VP'
Set @SSQL4 = 'Group By KUP.Sifra_Vpj, VPJ.Ime_Vpj, '
Else If @Podelba = 'ME'
Set @SSQL4 = 'Group By (Case When Month(D.Datum_Dok) < 10 Then ''0'' Else '''' End) + Cast(Month(D.Datum_Dok) as varchar(2)) + ''/'' + Cast(Year(D.Datum_Dok) as varchar(4)), '
Else If @Podelba = 'KV'
Set @SSQL4 = 'Group By ''0'' + Cast(DatePart(Quarter, D.Datum_Dok) as varchar(2)) + ''-'' + Cast(Year(D.Datum_Dok) as varchar(4)), '
Else If @Podelba = 'TD'
Set @SSQL4 = 'Group By S.Sifra_Dok, TD.ImeDok, '
If @PodelArt = 'AR'
If @Alt_ImeArt = 'D'
Set @SSQLArtGroup = @SSQLArtGroup + ' K.Alt_Sifra, K.Alt_Ime '
Else
Set @SSQLArtGroup = @SSQLArtGroup + ' TS.Sifra_Sur, K.ImeArt '
Else If @PodelArt = 'PG'
If @KolkuMesta Is Not Null
Set @SSQLArtGroup = @SSQLArtGroup + ' Substring(K.Sifra_Podg, 1, ' + cast(@KolkuMesta as varchar(1)) + '), PG.Ime_Podg '
Else
Set @SSQLArtGroup = @SSQLArtGroup + ' K.Sifra_Podg, PG.Ime_Podg '
Else If @PodelArt = 'GR'
Set @SSQLArtGroup = @SSQLArtGroup + ' PG.Sifra_Gr, G.Ime_Gr '
Else If @PodelArt = 'BR'
Set @SSQLArtGroup = @SSQLArtGroup + ' K.Sifra_Drg, BR.Ime '
Else If @PodelArt = 'D1'
Set @SSQLArtGroup = @SSQLArtGroup + ' K.Drugo1, D1.Ime_1 '
Else If @PodelArt = 'D2'
Set @SSQLArtGroup = @SSQLArtGroup + ' K.Drugo2, D2.Ime_2 '
Else If @PodelArt = 'D3'
Set @SSQLArtGroup = @SSQLArtGroup + ' K.Drugo3, D3.Ime_3 '
Else If @PodelArt = 'D4'
Set @SSQLArtGroup = @SSQLArtGroup + ' K.Drugo4, D4.Ime_4 '
Else If @PodelArt = 'D5'
Set @SSQLArtGroup = @SSQLArtGroup + ' K.Drugo5, D5.Ime_5 '
Else If @PodelArt = 'D6'
Set @SSQLArtGroup = @SSQLArtGroup + ' K.Drugo6, D6.Ime_6 '
Else If @PodelArt = 'D7'
Set @SSQLArtGroup = @SSQLArtGroup + ' K.Drugo7, D7.Ime_7 '
Else If @PodelArt = 'KT'
Set @SSQLArtGroup = @SSQLArtGroup + ' K.Kto, KT.ImeKup '
Else If @PodelArt = 'ME'
Set @SSQLArtGroup = @SSQLArtGroup + ' (Case When Month(D.Datum_Dok) < 10 Then ''0'' Else '''' End) + Cast(Month(D.Datum_Dok) as varchar(2)) + ''/'' + Cast(Year(D.Datum_Dok) as varchar(4)) '
Else If @PodelArt = 'KV'
Set @SSQLArtGroup = @SSQLArtGroup + ' ''0'' + Cast(DatePart(Quarter, D.Datum_Dok) as varchar(2)) + ''-'' + Cast(Year(D.Datum_Dok) as varchar(4)) '
Else If @PodelArt = 'KH'
Set @SSQLArtGroup = @SSQLArtGroup + ' Substring(K.Sifra_KHier,1,2), KH.Ime_KHier '
Else If @PodelArt = 'H1'
Set @SSQLArtGroup = @SSQLArtGroup + ' H3.Sifra_KHier, H3.Ime_KHier '
Else If @PodelArt = 'DI'
Set @SSQLArtGroup = @SSQLArtGroup + ' K.Sifra_Div, DI.ImeDiv '
-- Else If @PodelArt = 'TD'
-- Set @SSQLArtGroup = @SSQLArtGroup + ' S.Sifra_Dok, TD.ImeDok '
-- Set @SSQL5 = ' TS.Sifra_Sur, K.ImeArt '
Create Table #Rezultati
(
Tip char(30),
Ime varchar(80),
SifraPodel varchar(30),
ImePodel char(80),
Vr_Osnov decimal(18,6),
Vr_SoRabat decimal(18,6),
Vr_Krajna decimal(18,6),
Vr_NPS decimal(18,6),
Vr_Nabavna decimal(18,6),
Komitenti decimal(18,6),
BrFakturi int,
Kolicina decimal(18,6),
Procent decimal(18,6),
BrandKolic decimal(18,6),
BrutoTezina decimal(18,6),
NetoTezina decimal(18,6),
Hektolitri decimal(18,6),
Volumen decimal(18,6)
)
print '1'
print @SSQL3
Print'2'
Print @SSQL1+@SSQLArt+@SSQL+@SSQLFrom+@SSQL2+@SSQLArtJoin+@SSQL3+' And D.Sifra_Obj IS NULL '+@SSQL4+@SSQLArtGroup+@SSQL5
--/////// Ne moze da otpadne zatoa sto vo toj slucaj podelbite na objektite ke se zemaat samo od Komintentot a ne od podobjektot ------- 16.09.2004
If @Podelba = 'D1'
Set @SSQL1 = 'Select KO.KDrugo1 Tip, KD1.Ime_1K Ime, '
Else If @Podelba = 'D2'
Set @SSQL1 = 'Select KO.KDrugo2 Tip, KD2.Ime_2K Ime, '
Else If @Podelba = 'D3'
Set @SSQL1 = 'Select KO.KDrugo3 Tip, KD3.Ime_3K Ime, '
Else If @Podelba = 'D4'
Set @SSQL1 = 'Select KO.KDrugo4 Tip, KD4.Ime_4K Ime, '
Else If @Podelba = 'D5'
Set @SSQL1 = 'Select KO.KDrugo5 Tip, KD5.Ime_5K Ime, '
Else If @Podelba = 'D6'
Set @SSQL1 = 'Select KO.KDrugo6 Tip, KD6.Ime_6K Ime, '
Else If @Podelba = 'D7'
Set @SSQL1 = 'Select KO.KDrugo7 Tip, KD7.Ime_7K Ime, '
Else If @Podelba = 'TK'
Set @SSQL1 = 'Select KO.TipKup Tip, GT.ImeTipKup Ime, '
Else If @Podelba = 'NI'
Set @SSQL1 = 'Select KO.Sifra_Nivo Tip, NI.ImeNivo Ime, '
Else If @Podelba = 'GR'
Set @SSQL1 = 'Select KO.Sifra_Grad Tip, GR.ImeGrad Ime, '
Else If @Podelba = 'RE'
Set @SSQL1 = 'Select KO.Sifra_Reg Tip, RE.ImeRegion Ime, '
-- Else If @Podelba = 'ST'
-- Set @SSQL1 = 'Select KO.Sifra_Tip Tip, TK.ImeTip Ime, '
Else If @Podelba = 'ST'
Set @SSQL1 = 'Select Kup.Sifra_Tip Tip, TK.ImeTip Ime, '
Else If @Podelba = 'OE'
Set @SSQL1 = 'Select S.Sifra_Oe Tip, Oe.ImeOrg Ime, '
Else If @Podelba = 'KO'
Set @SSQL1 = 'Select D.Sifra_Kup Tip, Kup.ImeKup Ime, '
Else If @Podelba = 'OB'
Set @SSQL1 = 'Select D.Sifra_Kup + '' '' + (Case When D.Sifra_Obj Is Not Null Then dbo.fn_levonuli(Cast(D.Sifra_Obj as varchar(6)),3) Else '''' End) Tip,
Kup.ImeKup + '' '' + (Case When KO.ImeObj Is Not Null Then KO.ImeObj Else '''' End) Ime, '
Else If @Podelba = 'PI'
Set @SSQL1 = 'Select D.Sifra_Pat Tip, Pat.ImePat Ime, '
Else If @Podelba = 'PT'
Set @SSQL1 = 'Select KO.Sifra_Pat Tip, Pat.ImePat Ime, '
Else If @Podelba = 'VP'
Set @SSQL1 = 'Select KO.Sifra_Vpj Tip, VPJ.Ime_Vpj Ime, '
Else If @Podelba = 'ME'
Set @SSQL1 = 'Select (Case When Month(D.Datum_Dok) < 10 Then ''0'' Else '''' End) + Cast(Month(D.Datum_Dok) as varchar(2)) + ''/'' + Cast(Year(D.Datum_Dok) as varchar(4)) Tip, Null as Ime, '
Else If @Podelba = 'KV'
Set @SSQL1 = 'Select ''0'' + Cast(DatePart(Quarter, D.Datum_Dok) as varchar(2)) + ''-'' + Cast(Year(D.Datum_Dok) as varchar(4)) Tip, Null Ime, '
Else If @Podelba = 'TD'
Set @SSQL1 = 'Select S.Sifra_Dok Tip, (Case When S.Sifra_Dok < 10 Then ''00'' When S.Sifra_Dok >=10 And S.Sifra_Dok < 100 Then ''0'' Else '''' End) + Cast(S.Sifra_Dok as varchar(6)) + '' '' + TD.ImeDok Ime, '
-- Set @SSQL = ' TS.Sifra_Sur Sifra_art, K.ImeArt,
Set @SSQL = ' Round(Sum(dbo.fn_vr_osnov(S.Kolic, S.DokCena, S.DanDokCena, S.POsn)), 4) as Vr_Osnov,
Round(Sum(dbo.fn_vr_sorabat(S.Kolic, S.DokCena, S.DanDokCena, S.POsn, S.Uces, D.Kasa)), 4) as Vr_SoRabat,
Round(Sum(dbo.fn_vr_krajna(S.Kolic, S.DokCena, S.DanDokCena, S.POsn, S.Uces, D.Kasa)), 4) as Vr_Krajna,
Round(Sum(S.Kolic*K.GotCena), 4) As Vr_NPS,
Round(Sum(S.Kolic*S.NabCena),4) Vr_Nabavna,
Count(Distinct D.Sifra_Kup+cast(d.sifra_obj as varchar(6))) As Komintenti,
Count(Distinct D.DokrID) As BrojFakturi,
Round(Sum(S.Kolic),4) as Kolicina, Round(Sum(S.Kolic*TS.Ima_Kolic*dbo.fix_BrandKolic(K.KolkuDrg)),4) as BrandKolic,
Round(Sum(TS.Ima_Kolic*S.Kolic*K.Tezina/100000), 4) As Hektolitri,
Round(Sum(TS.Ima_Kolic*S.Kolic*K.Volumen/1000), 4) As Voumen '
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 '
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 @Podelba = 'D1'
Set @SSQL2 = 'Left Outer Join KDrugo1 KD1 ON KO.KDrugo1=KD1.Sifra_1K '
Else If @Podelba = 'D2'
Set @SSQL2 = 'Left Outer Join KDrugo2 KD2 ON KO.KDrugo2=KD2.Sifra_2K '
Else If @Podelba = 'D3'
Set @SSQL2 = 'Left Outer Join KDrugo3 KD3 ON KO.KDrugo3=KD3.Sifra_3K '
Else If @Podelba = 'D4'
Set @SSQL2 = 'Left Outer Join KDrugo4 KD4 ON KO.KDrugo4=KD4.Sifra_4K '
Else If @Podelba = 'D5'
Set @SSQL2 = 'Left Outer Join KDrugo5 KD5 ON KO.KDrugo5=KD5.Sifra_5K '
Else If @Podelba = 'D6'
Set @SSQL2 = 'Left Outer Join KDrugo6 KD6 ON KO.KDrugo6=KD6.Sifra_6K '
Else If @Podelba = 'D7'
Set @SSQL2 = 'Left Outer Join KDrugo7 KD7 ON KO.KDrugo7=KD7.Sifra_7K '
Else If @Podelba = 'TK'
Set @SSQL2 = 'Left Outer Join GTipKup GT ON KO.TipKup=GT.TipKup '
Else If @Podelba = 'GR'
Set @SSQL2 = 'Left Outer Join Grad GR ON KO.Sifra_Grad=GR.Sifra_Grad '
Else If @Podelba = 'RE'
Set @SSQL2 = 'Left Outer Join GREGION RE ON KO.Sifra_Reg=RE.Sifra_Reg '
Else If @Podelba = 'NI'
Set @SSQL2 = 'Left Outer Join NIVO NI ON KO.Sifra_Nivo=NI.Sifra_Nivo '
-- Else If @Podelba = 'ST'
-- Set @SSQL2 = 'Left Outer Join TipKomint TK ON KO.Sifra_Tip=TK.Sifra_Tip '
Else If @Podelba = 'ST'
Set @SSQL2 = 'Left Outer Join TipKomint TK ON Kup.Sifra_Tip=TK.Sifra_Tip '
Else If @Podelba = 'PT'
Set @SSQL2 = 'Left Outer Join Patnici Pat ON KO.Sifra_Pat=Pat.Sifra_Pat '
Else If @Podelba = 'PI'
Set @SSQL2 = 'Left Outer Join Patnici Pat ON D.Sifra_Pat=Pat.Sifra_Pat '
Else If @Podelba = 'OE'
Set @SSQL2 = 'Left Outer Join Orged OE ON OE.Sifra_Oe=S.Sifra_Oe '
Else If @Podelba = 'VP'
Set @SSQL2 = 'Left Outer Join VidProdObj VPJ ON KO.Sifra_Vpj=VPJ.Sifra_Vpj '
Else If @Podelba = 'TD'
Set @SSQL2 = 'Left Outer Join TipDok TD ON TD.Sifra_Dok=S.Sifra_Dok '
If @Podelba = 'D1'
Set @SSQL4 = 'Group By KO.KDrugo1, KD1.Ime_1k, '
Else If @Podelba = 'D2'
Set @SSQL4 = 'Group By KO.KDrugo2, KD2.Ime_2K, '
Else If @Podelba = 'D3'
Set @SSQL4 = 'Group By KO.KDrugo3, KD3.Ime_3K, '
Else If @Podelba = 'D4'
Set @SSQL4 = 'Group By KO.KDrugo4, KD4.Ime_4K, '
Else If @Podelba = 'D5'
Set @SSQL4 = 'Group By KO.KDrugo5, KD5.Ime_5K, '
Else If @Podelba = 'D6'
Set @SSQL4 = 'Group By KO.KDrugo6, KD6.Ime_6K, '
Else If @Podelba = 'D7'
Set @SSQL4 = 'Group By KO.KDrugo7, KD7.Ime_7K, '
Else If @Podelba = 'TK'
Set @SSQL4 = 'Group By KO.TipKup, GT.ImeTipKup, '
Else If @Podelba = 'NI'
Set @SSQL4 = 'Group By KO.Sifra_Nivo, NI.ImeNivo, '
Else If @Podelba = 'GR'
Set @SSQL4 = 'Group By KO.Sifra_Grad, GR.ImeGrad, '
Else If @Podelba = 'RE'
Set @SSQL4 = 'Group By KO.Sifra_Reg, RE.ImeRegion, '
-- Else If @Podelba = 'ST'
-- Set @SSQL4 = 'Group By KO.Sifra_Tip, TK.ImeTip, '
Else If @Podelba = 'ST'
Set @SSQL4 = 'Group By Kup.Sifra_Tip, TK.ImeTip, '
Else If @Podelba = 'PT'
Set @SSQL4 = 'Group By KO.Sifra_Pat, Pat.ImePat, '
Else If @Podelba = 'PI'
Set @SSQL4 = 'Group By D.Sifra_Pat, Pat.ImePat, '
Else If @Podelba = 'KO'
Set @SSQL4 = 'Group By D.Sifra_Kup, Kup.ImeKup, '
Else If @Podelba = 'OB'
Set @SSQL4 = 'Group By D.Sifra_Kup + '' '' + (Case When D.Sifra_Obj Is Not Null Then dbo.fn_levonuli(Cast(D.Sifra_Obj as varchar(6)),3) Else '''' End),
Kup.ImeKup + '' '' + (Case When KO.ImeObj Is Not Null Then KO.ImeObj Else '''' End), '
Else If @Podelba = 'VP'
Set @SSQL4 = 'Group By KO.Sifra_Vpj, VPJ.Ime_Vpj, '
Else If @Podelba = 'ME'
Set @SSQL4 = 'Group By (Case When Month(D.Datum_Dok) < 10 Then ''0'' Else '''' End) + Cast(Month(D.Datum_Dok) as varchar(2)) + ''/'' + Cast(Year(D.Datum_Dok) as varchar(4)), '
Else If @Podelba = 'KV'
Set @SSQL4 = 'Group By ''0'' + Cast(DatePart(Quarter, D.Datum_Dok) as varchar(2)) + ''-'' + Cast(Year(D.Datum_Dok) as varchar(4)), '
Exec(@SSQL1+@SSQLArt+@SSQL+@SSQLFrom+@SSQL2+@SSQLArtJoin+@SSQL3+' And D.Sifra_Obj IS NOT NULL '+@SSQL4+@SSQLArtGroup+@SSQL5)
Fetch Next From CursorBazi Into @ImeBaza
End
Close CursorBazi
Deallocate CursorBazi
End
End
---///////////----------------------------------------- DO OVDE ----------------------------------------------------------------------------------------------------------------
--select * from #rezultati
Declare @Vkupno decimal(18,6)
Set @Vkupno = (select Sum(Kolicina) From #Rezultati)
Update #Rezultati
Set #Rezultati.Procent = (Case When @Vkupno<>0 Then #Rezultati.Kolicina/@Vkupno*100 Else 0 End)
--select * from #rezultati
If @Podelba = 'ME'
Update #Rezultati Set Ime = Tip
If @PodelArt = 'ME'
Update #Rezultati Set ImePodel = SifraPodel
If @Podelba = 'KV'
Update #Rezultati Set Ime = substring(Tip, 1, 2) + ' kvartal ' + substring(Tip, 4, 4)
Set @SSQL = @SSQL + ' Left Outer Join Komint Kom on Kom.Sifra_Kup = R.Tip '
else if @PodelArt = 'AR'
Set @SSQL = @SSQL + ' Left Outer Join Katart Kata on Kata.SifrA_art = R.SifraPodel
left Outer Join Podgrupi Podg on Podg.SifrA_Podg = Kata.Sifra_Podg '
end
If @Podelba = 'OB'
Set @SSQL = @SSQL + ' Left Outer Join Komint K7 On K7.Sifra_Kup = Substring(R.Tip,1,6)
Left Outer Join KObjekti KO7 On KO7.Sifra_Kup = Substring(R.Tip,1,6) And KO7.Sifra_Obj = (Case When Substring(R.Tip,8,3) <> '''' Then Substring(R.Tip,8,3) Else Null End)
Left Outer Join KDrugo7 KD7 on KD7.Sifra_7K = (Case When KO7.KDrugo7 Is Not Null Then KO7.KDrugo7 Else K7.KDrugo7 End) '
If @NeraspredArt = 'N'
Set @SSQL = @SSQL + ' Where R.SifraPodel Is Not Null '
-- Dodadeno 24.12.2004 za Alma
If @NeraspredKom = 'N' and @NeraspredArt = 'D'
Set @SSQL = @SSQL + ' Where R.Tip Is Not Null '
If @NeraspredKom = 'N' and @NeraspredArt = 'N'
Set @SSQL = @SSQL + ' And R.Tip Is Not Null '
-------------------------------------------------
Set @SSQL = @SSQL + ' Group By R.Tip, R.Ime, R.SifraPodel, R.ImePodel '
If @Podelba = 'OB'
Set @SSQL = @SSQL + ', KD7.Sifra_7K, KD7.Ime_7K '
if @IzvBat = 'D'
begin
if @Podelba = 'KO'
Set @SSQL = @SSQL + ' , Kom.KDrugo1, Kom.KDrugo2 '
@Sifra_OE Smallint = Null, -- PI-Patnik istoriski (Dokr), PT-Patnik tekoven (Komint), VP-Vid na prodazen objekt, ME - Meseci, TD - Tip na dokument
@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,
@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,
@Sifra_Nivo Char(2) = Null,
@Sifra_Tip Smallint = Null,
@Koi_Gradovi varchar(200) = Null,
@Koi_Regioni varchar(200) = Null,
@Datum_Od Smalldatetime = Null,
@Datum_Do Smalldatetime = Null,
@Sifra_Brand Smallint = Null,
@Sifra_Kup_Od Char(6) = Null,
@Sifra_Kup_Do Char(6) = Null,
@Kto Char(6) = Null,
@Sifra_Gr Char(3) = Null,
@Sifra_Podg Char(6) = Null,
@Lokacija Varchar(10) = Null,
@Sifra_Art_Od varchar(20) = Null,
@Sifra_Art_Do varchar(20) = Null,
@RazbijSostav char(1) = 'N',
@PodelArt Varchar(2) = Null, -- AR - Artikl, PG - Podgrupa, GR - Grupa, BR - Brend, D(1,2,3,4,5,6,7) - Podelba(1,2,3,4,5,6,7), KT - Kto(Dobavuvac)
@BezPodelArtKup char(1) = 'K', -- A - Bez Podelba na artikli, K - Komitenti, ME - Mesec, KH - Hierarhii na artikli (6 Mesta), DI - Divizija
@TipDokProd VarChar(300) = Null,
@APod1 Smallint = Null,
@APod2 Smallint = Null,
@APod3 Smallint = Null,
@APod4 Smallint = Null,
@APod5 Smallint = Null,
@APod6 Smallint = Null,
@APod7 Smallint = Null,
@Sifra_VPJ Smallint = Null,
@KoiPat Varchar(300) = Null,
@PocnuvaSo char(1) = 'N', -- Se Odnesuva na podgrupite D, N
@KolkuMesta smallint = 6, -- Se Odnesuva na podgrupite 2, 3, 4, 5, 6
@KomercKako char(1) = 'I',
@PoKojDatum char(1) = 'D', -- D - Po Datum na Dokument, V - Po Datum Na Vnes
@Sifra_Div smallint = Null,
@GrKup varchar(500) = Null,
@GrArt varchar(500) = Null
AS
Declare @SSQL Varchar(8000)
Declare @SSQL1 Varchar(8000)
Declare @SSQL2 Varchar(8000)
Declare @SSQL3 Varchar(8000)
Declare @SSQL4 Varchar(8000)
Declare @SSQL5 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)
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 @Podelba = Upper(@Podelba)
If @Podelba = 'D1'
Set @SSQL1 = 'Select KUP.KDrugo1 Tip, KD1.Ime_1K Ime, '
Else If @Podelba = 'D2'
Set @SSQL1 = 'Select KUP.KDrugo2 Tip, KD2.Ime_2K Ime, '
Else If @Podelba = 'D3'
Set @SSQL1 = 'Select KUP.KDrugo3 Tip, KD3.Ime_3K Ime, '
Else If @Podelba = 'D4'
Set @SSQL1 = 'Select KUP.KDrugo4 Tip, KD4.Ime_4K Ime, '
Else If @Podelba = 'D5'
Set @SSQL1 = 'Select KUP.KDrugo5 Tip, KD5.Ime_5K Ime, '
Else If @Podelba = 'D6'
Set @SSQL1 = 'Select KUP.KDrugo6 Tip, KD6.Ime_6K Ime, '
Else If @Podelba = 'D7'
Set @SSQL1 = 'Select KUP.KDrugo7 Tip, KD7.Ime_7K Ime, '
Else If @Podelba = 'TK'
Set @SSQL1 = 'Select KUP.TipKup Tip, GT.ImeTipKup Ime, '
Else If @Podelba = 'NI'
Set @SSQL1 = 'Select KUP.Sifra_Nivo Tip, NI.ImeNivo Ime, '
Else If @Podelba = 'GR'
Set @SSQL1 = 'Select KUP.Sifra_Grad Tip, GR.ImeGrad Ime, '
Else If @Podelba = 'RE'
Set @SSQL1 = 'Select KUP.Sifra_Reg Tip, RE.ImeRegion Ime, '
Else If @Podelba = 'ST'
Set @SSQL1 = 'Select KUP.Sifra_Tip Tip, TK.ImeTip Ime, '
Else If @Podelba = 'PT'
Set @SSQL1 = 'Select KUP.Sifra_Pat Tip, Pat.ImePat Ime, '
Else If @Podelba = 'PI'
Set @SSQL1 = 'Select D.Sifra_Pat Tip, Pat.ImePat Ime, '
Else If @Podelba = 'OE'
Set @SSQL1 = 'Select S.Sifra_Oe Tip, Oe.ImeOrg Ime, '
Else If @Podelba = 'KO'
Set @SSQL1 = 'Select D.Sifra_Kup Tip, Kup.ImeKup Ime, '
Else If @Podelba = 'VP'
Set @SSQL1 = 'Select KUP.Sifra_Vpj Tip, VPJ.Ime_Vpj Ime, '
Else If @Podelba = 'ME'
Set @SSQL1 = 'Select (Case When Month(D.Datum_Dok) < 10 Then ''0'' Else '''' End) + Cast(Month(D.Datum_Dok) as varchar(2)) + ''/'' + Cast(Year(D.Datum_Dok) as varchar(4)) Tip, Null Ime, '
Else If @Podelba = 'TD'
Set @SSQL1 = 'Select S.Sifra_Dok Tip, (Case When S.Sifra_Dok < 10 Then ''00'' When S.Sifra_Dok >=10 And S.Sifra_Dok < 100 Then ''0'' Else '''' End) + Cast(S.Sifra_Dok as varchar(6)) + '' '' + TD.ImeDok Ime, '
Set @SSQL = ' TS.Sifra_Sur Sifra_art, K.ImeArt, D.Sifra_Kup, D.Sifra_Obj,
Round(Sum(S.Kolic),4) as Kolicina
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 '
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 @GrArt Is Not Null
Set @SSQL = @SSQL + ' Inner Join #GrArt GA On GA.Sifra_Art=K.Sifra_Art '
If @Podelba = 'D1'
Set @SSQL2 = 'Left Outer Join KDrugo1 KD1 ON KUP.KDrugo1=KD1.Sifra_1K '
Else If @Podelba = 'D2'
Set @SSQL2 = 'Left Outer Join KDrugo2 KD2 ON KUP.KDrugo2=KD2.Sifra_2K '
Else If @Podelba = 'D3'
Set @SSQL2 = 'Left Outer Join KDrugo3 KD3 ON KUP.KDrugo3=KD3.Sifra_3K '
Else If @Podelba = 'D4'
Set @SSQL2 = 'Left Outer Join KDrugo4 KD4 ON KUP.KDrugo4=KD4.Sifra_4K '
Else If @Podelba = 'D5'
Set @SSQL2 = 'Left Outer Join KDrugo5 KD5 ON KUP.KDrugo5=KD5.Sifra_5K '
Else If @Podelba = 'D6'
Set @SSQL2 = 'Left Outer Join KDrugo6 KD6 ON KUP.KDrugo6=KD6.Sifra_6K '
Else If @Podelba = 'D7'
Set @SSQL2 = 'Left Outer Join KDrugo7 KD7 ON KUP.KDrugo7=KD7.Sifra_7K '
Else If @Podelba = 'TK'
Set @SSQL2 = 'Left Outer Join GTipKup GT ON KUP.TipKup=GT.TipKup '
Else If @Podelba = 'GR'
Set @SSQL2 = 'Left Outer Join Grad GR ON KUP.Sifra_Grad=GR.Sifra_Grad '
Else If @Podelba = 'RE'
Set @SSQL2 = 'Left Outer Join GREGION RE ON KUP.Sifra_Reg=RE.Sifra_Reg '
Else If @Podelba = 'NI'
Set @SSQL2 = 'Left Outer Join NIVO NI ON KUP.Sifra_Nivo=NI.Sifra_Nivo '
Else If @Podelba = 'ST'
Set @SSQL2 = 'Left Outer Join TipKomint TK ON KUP.Sifra_Tip=TK.Sifra_Tip '
Else If @Podelba = 'PT'
Set @SSQL2 = 'Left Outer Join Patnici Pat ON KUP.Sifra_Pat=Pat.Sifra_Pat '
Else If @Podelba = 'PI'
Set @SSQL2 = 'Left Outer Join Patnici Pat ON D.Sifra_Pat=Pat.Sifra_Pat '
Else If @Podelba = 'OE'
Set @SSQL2 = 'Left Outer Join Orged OE ON Oe.Sifra_Oe=S.Sifra_Oe '
Else If @Podelba = 'VP'
Set @SSQL2 = 'Left Outer Join VidProdObj VPJ On VPJ.Sifra_Vpj=Kup.Sifra_Vpj '
Else If @Podelba = 'TD'
Set @SSQL2 = 'Left Outer Join TipDok TD ON TD.Sifra_Dok=S.Sifra_Dok '
Set @SSQL3 = ''
If @Sifra_Gr Is Not Null
Set @SSQL3 = @SSQL3 + 'Inner Join PodGrupi P ON K.Sifra_Podg=P.Sifra_Podg '
Set @SSQL3 = @SSQL3 + 'Where K.Iskluci <> ''D'' '
If @Sifra_Art_Od Is Not NULL --POSLE OVDE PROSIRI KAKO STO E ZA GRADOVI, REGIONI
Set @SSQL3 = @SSQL3 + ' And K.Sifra_Art >=''' + @Sifra_Art_Od + ''' '
If @Sifra_Art_Do Is Not NULL
Set @SSQL3 = @SSQL3 + ' And K.Sifra_Art <=''' + @Sifra_Art_Do + ''' '
If @TipKup Is Not NULL
Set @SSQL3 = @SSQL3 + ' And KUP.TipKup In (' + @TipKup + ') '
If @TipDokProd is not null
Set @SSQL3 = @SSQL3 + ' And S.Sifra_Dok IN (' + @TipDokProd + ') '
If @Pod1 Is Not NULL
If @KFPod1 = 'D'
Set @SSQL3 = @SSQL3 + ' 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 @SSQL3 = @SSQL3 + ' 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 @SSQL3 = @SSQL3 + ' 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 @SSQL3 = @SSQL3 + ' 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 @SSQL3 = @SSQL3 + ' 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 @SSQL3 = @SSQL3 + ' 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 @SSQL3 = @SSQL3 + ' 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 @SSQL3 = @SSQL3 + ' 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 @SSQL3 = @SSQL3 + ' 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 @SSQL3 = @SSQL3 + ' 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 @SSQL3 = @SSQL3 + ' 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 @SSQL3 = @SSQL3 + ' 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 @SSQL3 = @SSQL3 + ' 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 @SSQL3 = @SSQL3 + ' 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 @SSQL3 = @SSQL3 + ' And Kup.Sifra_Tip = ' + Cast(@Sifra_Tip As Varchar(6)) + ' '
If @Sifra_VPJ Is Not NULL
Begin
Set @SSQL3 = @SSQL3 + ' 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_Nivo Is Not NULL
Set @SSQL3 = @SSQL3 + ' And KUP.Sifra_Nivo=''' + @Sifra_Nivo + ''' '
If @Lokacija Is Not NULL
Set @SSQL3 = @SSQL3 + ' And K.Lokacija=''' + @Lokacija + ''' '
If @Kto Is Not NULL
Set @SSQL3 = @SSQL3 + ' And K.Kto=' + @Kto + ' '
If @Sifra_Podg Is Not Null
If @PocnuvaSo = 'D'
Set @SSQL3 = @SSQL3 + ' And K.Sifra_Podg Like ''' + Rtrim(@Sifra_Podg) + '%'' '
Else
Set @SSQL3 = @SSQL3 + ' And K.Sifra_Podg=' + @Sifra_Podg + ' '
If @Sifra_Gr Is Not NULL
Set @SSQL3 = @SSQL3 + ' And P.Sifra_Gr=' + @Sifra_Gr + ' '
If @PoKojDatum = 'V'
Begin
If @Datum_Od Is Not NULL
Set @SSQL3 = @SSQL3 + ' And D.Datum_Vnes>=''' + Cast(@Datum_Od As Varchar(30)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQL3 = @SSQL3 + ' And D.Datum_Vnes<''' + Cast(@Datum_Do + 1 As Varchar(30)) + ''' '
End
Else
Begin
If @Datum_Od Is Not NULL
Set @SSQL3 = @SSQL3 + ' And S.Datum_Dok>=''' + cast(@Datum_Od As Varchar(30)) + ''' '
If @Datum_Do Is Not NULL
Set @SSQL3 = @SSQL3 + ' And S.Datum_Dok<=''' + Cast(@Datum_Do As Varchar(30)) + ''' '
End
-- If @Datum_Od Is NOT Null
-- Set @SSQL3 = @SSQL3 + ' AND S.Datum_Dok >=''' + Cast(@Datum_Od As Varchar(35))+ ''' '
-- If @Datum_Do Is NOT Null
-- Set @SSQL3 = @SSQL3 + ' AND S.Datum_Dok <=''' + Cast(@Datum_Do As Varchar(35))+ ''' '
If @Sifra_Kup_Od Is Not NULL
Set @SSQL3 = @SSQL3 + ' And D.Sifra_Kup>=' + Cast(@Sifra_Kup_Od As Varchar(6)) + ' '
If @Sifra_Kup_Do Is Not NULL
Set @SSQL3 = @SSQL3 + ' And D.Sifra_Kup<=' + Cast(@Sifra_Kup_Do As Varchar(6)) + ' '
If @Sifra_Brand Is Not NULL
Set @SSQL3 = @SSQL3 + 'And K.Sifra_Drg=''' + Cast(@Sifra_Brand As Varchar(5)) + ''' '
If @APod1 Is Not NULL
Set @SSQL3 = @SSQL3 + 'And K.Drugo1=' + Cast(@APod1 As Varchar(5)) + ' '
If @APod2 Is Not NULL
Set @SSQL3 = @SSQL3 + 'And K.Drugo2=' + Cast(@APod2 As Varchar(5)) + ' '
If @APod3 Is Not NULL
Set @SSQL3 = @SSQL3 + 'And K.Drugo3=' + Cast(@APod3 As Varchar(5)) + ' '
If @APod4 Is Not NULL
Set @SSQL3 = @SSQL3 + 'And K.Drugo4=' + Cast(@APod4 As Varchar(5)) + ' '
If @APod5 Is Not NULL
Set @SSQL3 = @SSQL3 + 'And K.Drugo5=' + Cast(@APod5 As Varchar(5)) + ' '
If @APod6 Is Not NULL
Set @SSQL3 = @SSQL3 + 'And K.Drugo6=' + Cast(@APod6 As Varchar(5)) + ' '
If @APod7 Is Not NULL
Set @SSQL3 = @SSQL3 + 'And K.Drugo7=' + Cast(@APod7 As Varchar(5)) + ' '
If @Sifra_Div Is Not NULL
Set @SSQL3 = @SSQL3 + 'And K.Sifra_Div=' + Cast(@Sifra_Div As Varchar(5)) + ' '
If @Sifra_OE Is Not NULL
Set @SSQL3 = @SSQL3 + ' And S.Sifra_OE=' + Cast(@Sifra_OE As Varchar(5)) + ' '
If @KoiOE Is Not NULL
Set @SSQL3 = @SSQL3 + ' And S.Sifra_OE IN (' + @KoiOE + ') '
If @Koi_Gradovi Is Not NULL
Begin
Set @SSQL3 = @SSQL3 + ' 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 @SSQL3 = @SSQL3 + ' 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 @KoiPat IS NOT NULL
SET @SSQL3 = @SSQL3 + ' AND D.Sifra_Pat In (' + @KoiPat + ') '
If @KomercKako = 'T'
If @KoiPat IS NOT NULL
Set @SSQL3 = @SSQL3 + ' 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 + '))) '
If @Podelba = 'D1'
Set @SSQL4 = 'Group By KUP.KDrugo1, KD1.Ime_1k, '
Else If @Podelba = 'D2'
Set @SSQL4 = 'Group By KUP.KDrugo2, KD2.Ime_2K, '
Else If @Podelba = 'D3'
Set @SSQL4 = 'Group By KUP.KDrugo3, KD3.Ime_3K, '
Else If @Podelba = 'D4'
Set @SSQL4 = 'Group By KUP.KDrugo4, KD4.Ime_4K, '
Else If @Podelba = 'D5'
Set @SSQL4 = 'Group By KUP.KDrugo5, KD5.Ime_5K, '
Else If @Podelba = 'D6'
Set @SSQL4 = 'Group By KUP.KDrugo6, KD6.Ime_6K, '
Else If @Podelba = 'D7'
Set @SSQL4 = 'Group By KUP.KDrugo7, KD7.Ime_7K, '
Else If @Podelba = 'TK'
Set @SSQL4 = 'Group By KUP.TipKup, GT.ImeTipKup, '
Else If @Podelba = 'NI'
Set @SSQL4 = 'Group By KUP.Sifra_Nivo, NI.ImeNivo, '
Else If @Podelba = 'GR'
Set @SSQL4 = 'Group By KUP.Sifra_Grad, GR.ImeGrad, '
Else If @Podelba = 'RE'
Set @SSQL4 = 'Group By KUP.Sifra_Reg, RE.ImeRegion, '
Else If @Podelba = 'ST'
Set @SSQL4 = 'Group By KUP.Sifra_Tip, TK.ImeTip, '
Else If @Podelba = 'PT'
Set @SSQL4 = 'Group By KUP.Sifra_Pat, Pat.ImePat, '
Else If @Podelba = 'PI'
Set @SSQL4 = 'Group By D.Sifra_Pat, Pat.ImePat, '
Else If @Podelba = 'OE'
Set @SSQL4 = 'Group By S.Sifra_Oe, Oe.ImeOrg, '
Else If @Podelba = 'KO'
Set @SSQL4 = 'Group By D.Sifra_Kup, Kup.ImeKup, '
Else If @Podelba = 'VP'
Set @SSQL4 = 'Group By KUP.Sifra_Vpj, VPJ.Ime_Vpj, '
Else If @Podelba = 'ME'
Set @SSQL4 = 'Group By (Case When Month(D.Datum_Dok) < 10 Then ''0'' Else '''' End) + Cast(Month(D.Datum_Dok) as varchar(2)) + ''/'' + Cast(Year(D.Datum_Dok) as varchar(4)), '
Else If @Podelba = 'TD'
Set @SSQL4 = 'Group By S.Sifra_Dok, TD.ImeDok, '
Set @SSQL5 = ' TS.Sifra_Sur, K.ImeArt, D.Sifra_Kup, D.Sifra_Obj '
Create Table #Rezultati
(
Tip varchar(20),
Ime varchar(40),
Sifra_Art varchar(20),
ImeArt char(40),
Sifra_Kup char(6),
Sifra_Obj smallint,
Kolicina decimal(18,6)
)
Insert Into #Rezultati(Tip, Ime, Sifra_Art, ImeArt, Sifra_Kup, Sifra_Obj, Kolicina)
Exec(@SSQL1+@SSQL+@SSQL2+@SSQL3+' And D.Sifra_Obj IS NULL '+@SSQL4+@SSQL5)
---/////// Zatoa sto filterot po podelbi na komitenti i objekti gleda i od komintenti i od objekti sledniot del od procedurata moze da otpadne
--/////// Ne moze da otpadne zatoa sto vo toj slucaj podelbite na objektite ke se zemaat samo od Komintentot a ne od podobjektot ------- 16.09.2004
If @Podelba = 'D1'
Set @SSQL1 = 'Select KO.KDrugo1 Tip, KD1.Ime_1K Ime, '
Else If @Podelba = 'D2'
Set @SSQL1 = 'Select KO.KDrugo2 Tip, KD2.Ime_2K Ime, '
Else If @Podelba = 'D3'
Set @SSQL1 = 'Select KO.KDrugo3 Tip, KD3.Ime_3K Ime, '
Else If @Podelba = 'D4'
Set @SSQL1 = 'Select KO.KDrugo4 Tip, KD4.Ime_4K Ime, '
Else If @Podelba = 'D5'
Set @SSQL1 = 'Select KO.KDrugo5 Tip, KD5.Ime_5K Ime, '
Else If @Podelba = 'D6'
Set @SSQL1 = 'Select KO.KDrugo6 Tip, KD6.Ime_6K Ime, '
Else If @Podelba = 'D7'
Set @SSQL1 = 'Select KO.KDrugo7 Tip, KD7.Ime_7K Ime, '
Else If @Podelba = 'TK'
Set @SSQL1 = 'Select KO.TipKup Tip, GT.ImeTipKup Ime, '
Else If @Podelba = 'NI'
Set @SSQL1 = 'Select KO.Sifra_Nivo Tip, NI.ImeNivo Ime, '
Else If @Podelba = 'GR'
Set @SSQL1 = 'Select KO.Sifra_Grad Tip, GR.ImeGrad Ime, '
Else If @Podelba = 'RE'
Set @SSQL1 = 'Select KO.Sifra_Reg Tip, RE.ImeRegion Ime, '
-- Else If @Podelba = 'ST'
-- Set @SSQL1 = 'Select KO.Sifra_Tip Tip, TK.ImeTip Ime, '
Else If @Podelba = 'ST'
Set @SSQL1 = 'Select Kup.Sifra_Tip Tip, TK.ImeTip Ime, '
Else If @Podelba = 'PT'
Set @SSQL1 = 'Select KO.Sifra_Pat Tip, Pat.ImePat Ime, '
Else If @Podelba = 'PI'
Set @SSQL1 = 'Select D.Sifra_Pat Tip, Pat.ImePat Ime, '
Else If @Podelba = 'OE'
Set @SSQL1 = 'Select S.Sifra_Oe Tip, Oe.ImeOrg Ime, '
Else If @Podelba = 'KO'
Set @SSQL1 = 'Select D.Sifra_Kup Tip, Kup.ImeKup Ime, '
Else If @Podelba = 'VP'
Set @SSQL1 = 'Select KO.Sifra_Vpj Tip, VPJ.Ime_Vpj Ime, '
Else If @Podelba = 'ME'
Set @SSQL1 = 'Select (Case When Month(D.Datum_Dok) < 10 Then ''0'' Else '''' End) + Cast(Month(D.Datum_Dok) as varchar(2)) + ''/'' + Cast(Year(D.Datum_Dok) as varchar(4)) Tip, Null as Ime, '
Else If @Podelba = 'TD'
Set @SSQL1 = 'Select S.Sifra_Dok Tip, (Case When S.Sifra_Dok < 10 Then ''00'' When S.Sifra_Dok >=10 And S.Sifra_Dok < 100 Then ''0'' Else '''' End) + Cast(S.Sifra_Dok as varchar(6)) + '' '' + TD.ImeDok Ime, '
If @Podelba = 'D1'
Set @SSQL2 = 'Left Outer Join KDrugo1 KD1 ON KO.KDrugo1=KD1.Sifra_1K '
Else If @Podelba = 'D2'
Set @SSQL2 = 'Left Outer Join KDrugo2 KD2 ON KO.KDrugo2=KD2.Sifra_2K '
Else If @Podelba = 'D3'
Set @SSQL2 = 'Left Outer Join KDrugo3 KD3 ON KO.KDrugo3=KD3.Sifra_3K '
Else If @Podelba = 'D4'
Set @SSQL2 = 'Left Outer Join KDrugo4 KD4 ON KO.KDrugo4=KD4.Sifra_4K '
Else If @Podelba = 'D5'
Set @SSQL2 = 'Left Outer Join KDrugo5 KD5 ON KO.KDrugo5=KD5.Sifra_5K '
Else If @Podelba = 'D6'
Set @SSQL2 = 'Left Outer Join KDrugo6 KD6 ON KO.KDrugo6=KD6.Sifra_6K '
Else If @Podelba = 'D7'
Set @SSQL2 = 'Left Outer Join KDrugo7 KD7 ON KO.KDrugo7=KD7.Sifra_7K '
Else If @Podelba = 'TK'
Set @SSQL2 = 'Left Outer Join GTipKup GT ON KO.TipKup=GT.TipKup '
Else If @Podelba = 'GR'
Set @SSQL2 = 'Left Outer Join Grad GR ON KO.Sifra_Grad=GR.Sifra_Grad '
Else If @Podelba = 'RE'
Set @SSQL2 = 'Left Outer Join GREGION RE ON KO.Sifra_Reg=RE.Sifra_Reg '
Else If @Podelba = 'NI'
Set @SSQL2 = 'Left Outer Join NIVO NI ON KO.Sifra_Nivo=NI.Sifra_Nivo '
Else If @Podelba = 'ST'
Set @SSQL2 = 'Left Outer Join TipKomint TK ON Kup.Sifra_Tip=TK.Sifra_Tip '
-- Else If @Podelba = 'ST'
-- Set @SSQL2 = 'Left Outer Join TipKomint TK ON KO.Sifra_Tip=TK.Sifra_Tip '
Else If @Podelba = 'PT'
Set @SSQL2 = 'Left Outer Join Patnici Pat ON KO.Sifra_Pat=Pat.Sifra_Pat '
Else If @Podelba = 'PI'
Set @SSQL2 = 'Left Outer Join Patnici Pat ON D.Sifra_Pat=Pat.Sifra_Pat '
Else If @Podelba = 'OE'
Set @SSQL2 = 'Left Outer Join Orged OE ON OE.Sifra_Oe=S.Sifra_Oe '
Else If @Podelba = 'VP'
Set @SSQL2 = 'Left Outer Join VidProdObj VPJ ON KO.Sifra_Vpj=VPJ.Sifra_Vpj '
Else If @Podelba = 'TD'
Set @SSQL2 = 'Left Outer Join TipDok TD ON TD.Sifra_Dok=S.Sifra_Dok '
If @Podelba = 'D1'
Set @SSQL4 = 'Group By KO.KDrugo1, KD1.Ime_1k, '
Else If @Podelba = 'D2'
Set @SSQL4 = 'Group By KO.KDrugo2, KD2.Ime_2K, '
Else If @Podelba = 'D3'
Set @SSQL4 = 'Group By KO.KDrugo3, KD3.Ime_3K, '
Else If @Podelba = 'D4'
Set @SSQL4 = 'Group By KO.KDrugo4, KD4.Ime_4K, '
Else If @Podelba = 'D5'
Set @SSQL4 = 'Group By KO.KDrugo5, KD5.Ime_5K, '
Else If @Podelba = 'D6'
Set @SSQL4 = 'Group By KO.KDrugo6, KD6.Ime_6K, '
Else If @Podelba = 'D7'
Set @SSQL4 = 'Group By KO.KDrugo7, KD7.Ime_7K, '
Else If @Podelba = 'TK'
Set @SSQL4 = 'Group By KO.TipKup, GT.ImeTipKup, '
Else If @Podelba = 'NI'
Set @SSQL4 = 'Group By KO.Sifra_Nivo, NI.ImeNivo, '
Else If @Podelba = 'GR'
Set @SSQL4 = 'Group By KO.Sifra_Grad, GR.ImeGrad, '
Else If @Podelba = 'RE'
Set @SSQL4 = 'Group By KO.Sifra_Reg, RE.ImeRegion, '
-- Else If @Podelba = 'ST'
-- Set @SSQL4 = 'Group By KO.Sifra_Tip, TK.ImeTip, '
Else If @Podelba = 'ST'
Set @SSQL4 = 'Group By Kup.Sifra_Tip, TK.ImeTip, '
Else If @Podelba = 'PT'
Set @SSQL4 = 'Group By KO.Sifra_Pat, Pat.ImePat, '
Else If @Podelba = 'PI'
Set @SSQL4 = 'Group By D.Sifra_Pat, Pat.ImePat, '
Else If @Podelba = 'OE'
Set @SSQL4 = 'Group By S.Sifra_Oe, Oe.ImeOrg, '
Else If @Podelba = 'KO'
Set @SSQL4 = 'Group By D.Sifra_Kup, Kup.ImeKup, '
Else If @Podelba = 'VP'
Set @SSQL4 = 'Group By KO.Sifra_Vpj, VPJ.Ime_Vpj, '
Else If @Podelba = 'ME'
Set @SSQL4 = 'Group By (Case When Month(D.Datum_Dok) < 10 Then ''0'' Else '''' End) + Cast(Month(D.Datum_Dok) as varchar(2)) + ''/'' + Cast(Year(D.Datum_Dok) as varchar(4)), '