IF (EXISTS(Select * from sys.sysprocedure where LCase(proc_name) = LCase('MoveToRoom'))) THEN Drop procedure MoveToRoom END IF GO create procedure DBA.MoveToRoom( in @OldRegNo integer,in @RoomNo integer,in @NowDate real,in @NumDays integer,in @KodAdmin integer,in @Price decimal(12,2),in @KodCurrency integer,in @PriceService decimal(12,2),in @PriceKind integer ) //Premestva daden gost ot edna staia v druga //Ako ima predplateni noshtuvki i sumata e razlichna ot novata suma dobavia edna usluga - "Noshtuvka" s razlikata v cenite begin atomic declare @OldLeftLodgings integer; declare @OldPayed integer; declare @GuestNo integer; declare @HumanKind integer; declare @OldWhoPays integer; declare @OldGroupPays integer; declare @OldContractPays integer; declare @OldPrice double; declare @OldKodCurrency integer; declare @OldRoomNo integer; declare @OldRoomName varchar(10); declare @NewRoomName varchar(10); declare @OldDateReg real; declare @NewNo integer; declare @NewPayed integer; declare @ServiceNoLodging integer; declare @SaleId integer; select PayedLodgings,Guest,WhoPays,GroupPays,ContractPays,Price,KodCurrency,Room,DateReg,Guests.HumanKind into @OldPayed, @GuestNo,@OldWhoPays,@OldGroupPays,@OldContractPays,@OldPrice, @OldKodCurrency,@OldRoomNo,@OldDateReg,@HumanKind from Book,Guests where RegNum = @OldRegNo and Book.Guest = Guests.GuestNum; set @OldLeftLodgings = ceiling(@NowDate-@OldDateReg); // //Ako ima predplateni dni wmukwa edna usluga s razlikata v cenite /*if @OldLeftLodgings < @OldPayed then if @PriceService <> 0 then set @NewNo = GetCounter('creditcounter'); if @HumanKind = 1 then set @ServiceNoLodging = -1 else set @ServiceNoLodging = -2 end if; insert into ServiceCredits( DateCredit,GuestNo,Service,SumCredit,KodCurrency,KodAdmin,NumberServices,CreditNo,PayedServices,WhoPays, GroupPays,ContractPays,RoomPays ) values( @NowDate,@GuestNo,@ServiceNoLodging,@PriceService,@KodCurrency,@KodAdmin,1,@NewNo,0,@OldWhoPays, @OldGroupPays,@OldContractPays,0 ) end if end if;*/ //Izchistva gosta ot starata staia if @OldLeftLodgings < @OldPayed then set @NewPayed = @OldLeftLodgings else set @NewPayed = @OldPayed end if; update Book set NumLodgings = @OldLeftLodgings,PayedLodgings = @NewPayed,Staying = 2 where RegNum = @OldRegNo; // update Rooms set Buzy = (if NumPeople = 1 then 0 else 2 endif), NumPeople = NumPeople-1 where RoomNum = @OldRoomNo; //Nastaniava gosta v novata staia set @NewNo = GetCounter('bookcounter'); set @NewPayed = (@OldPayed-@OldLeftLodgings); if @NewPayed < 0 then set @NewPayed = 0 end if; insert into Book( RegNum,DateReg,NumLodgings,PayedLodgings,Payed,Staying,PriceKind,KodAdmin,Room, Price,Guest,WhoPays,KodCurrency,GroupPays,ContractPays,IsRest ) values( @NewNo,@NowDate,@NumDays,@NewPayed, 0,1,@PriceKind,@KodAdmin,@RoomNo,@Price,@GuestNo,@OldWhoPays,@KodCurrency,@OldGroupPays,@OldContractPays,0 ) ; set @SaleID = (select first ID from SaleOrders where GuestNum = @GuestNo and DocType = 0); call FillSaleOrderLines_MoveOrChangePrice(@OldRegNo,@NewNo,@SaleId); //vmukva uslugite ot paketa call InsertPackage(@NewNo); //updejtva infoto za staita update Rooms set NumPeople = NumPeople+1,Buzy = 2 where RoomNum = @RoomNo; set @OldRoomName = (select RoomName from Rooms where RoomNum = @OldroomNo); set @NewRoomName = (select RoomName from Rooms where RoomNum = @RoomNo); insert into LogFile( UserN,Tip,LogText ) values( @KodAdmin,13,String('Преместване на гост ',@GuestNo,' от стая ',@OldRoomName,' в стая ',@NewRoomName) ) end //[v 01.02.26] //[v 22.10.2003] Jorko v insert na Book @OldKodCurrency --> @KodCurrency //[v 10.12.2008 MON] Nixon - Dobaven cenorazpis