IF (EXISTS(Select * from sys.sysprocedure where LCase(proc_name) = LCase('FillServicesForBill'))) THEN Drop procedure FillServicesForBill END IF GO create procedure DBA.FillServicesForBill( in @ArticleNumber integer,in @ArticleName varchar(40),in @Qty integer,in @ArticlePrice double,in @CreditNo integer,in @TipDDS integer,in @ServiceNo integer,in @Discount double,in @RegDate date ) // Tazi procedura se izpolzva za popylwane vuv wremennata tablica #Articles // na opredelen red ot ServiceCredits begin declare @MaxQty integer; declare @MinQty integer; declare @ArticlePrWithDDS double; //nt declare @NameToInsert varchar(100); declare @RoomName varchar(40); declare @VatRate numeric(3,3); declare @DDSType integer; --message 'tuk sme pri FillServicesForBill @RegDate=' || @RegDate type info to console; if @Qty < 0 then set @MaxQty = 0; set @MinQty = @Qty else set @MaxQty = @Qty; set @MinQty = 0 end if; set @ArticlePrWithDDS = @ArticlePrice; //nt --message 'Cenata s dds - >'+cast(@ArticlePrWithDDS as varchar) type info to console; select if @TipDDS = 3 then 0 else VR.Rate endif, VR.DDSType into @VatRate,@DDSType from Services as S join VatRates as VR on S.VatRateN = VR.ID and S.ServiceNo = @ServiceNo; if @TipDDS = 1 then set @ArticlePrice = @ArticlePrice/(@VatRate+1); set @TipDDS = 2 end if; // vzima alternativno ime ako e zadadeno set @NameToInsert = isNull((select Stoinost from SvoServiceCreditsStn where Glava = @CreditNo and Svoistvo = 1),''); if @NameToInsert = '' then set @NameToInsert = @ArticleName end if; insert into #Articles( ArticleNumber,ArticleName,Measure,ArticleQty,MaxQty,MinQty,ArticlePrice,Discount,RegNo, CreditNo,ArticleSum,TipDDS,ServiceNo,PriceInvWithDDS,ArticleSumWithDDS,RegDate,VatRate,DDSType ) values( @ArticleNumber,@NameToInsert,'απ.',@Qty,@MaxQty,@MinQty,@ArticlePrice,@Discount,0, //nt // CreditNo,ArticleSum,TipDDS,ServiceNo) values(@ArticleNumber,@NameToInsert,'απ.',@Qty,@MaxQty,@MinQty,@ArticlePrice,0,0, @CreditNo,((@ArticlePrice*@Qty)-((@ArticlePrice*@Qty)*@Discount)/100),@TipDDS,@ServiceNo,@ArticlePrWithDDS, ((@ArticlePrWithDDS*@Qty)-((@ArticlePrWithDDS*@Qty)*@Discount)/100),@RegDate,@VatRate,@DDSType ) end //[v 18.02.2003] //[v 19.12.2008] Nixon - MON - dobaveno da pokazva alternativno ime ako e zadadeno --[v 18.07.2009] Yoan - @NameToInsert napraveno 100 simvola