/****** :  StoredProcedure [dbo].[sp_systemLogAdd]    ű: 02/01/2010 14:37:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

create PROCEDURE [dbo].[UP_GetDataList]
@tblName varchar(4000), -- 
@strGetFields varchar(4000) = '*', -- Ҫص 
@fldName varchar(255)='', -- ֶ
@PageSize int = 10, -- ҳߴ
@PageIndex int = 1, -- ҳ
@doCount bit = 0, -- ؼ¼,  0 ֵ򷵻
--@OrderType bit = 0, -- ,  0 ֵ
@strWhere nvarchar(4000) = '' -- ѯ (ע: Ҫ where)
AS

declare @strSQL varchar(8000) -- 
declare @strTmp varchar(110) -- ʱ
declare @strOrder varchar(400) -- 
declare @OrderType bit  -- 
SET @OrderType=0
begin
IF @fldName LIKE '% desc%'
begin
	set @OrderType =1
	set @fldName=REPLACE(@fldName,' desc','')
end
ELSE
	set @OrderType =0
if @OrderType != 0

begin
set @strTmp = '<(SELECT MIN'
set @strOrder = ' ORDER BY ' + @fldName +' DESC'

--@OrderType0ִн
end

else

begin

set @strTmp = '>(SELECT MAX'
set @strOrder = ' ORDER BY ' + @fldName +' ASC'

end

if @PageIndex = 1

begin

if @strWhere != '' 
set @strSQL = 'SELECT TOP ' + str(@PageSize) +' '+@strGetFields+ ' FROM ' + @tblName + ' WHERE ' + @strWhere + ' ' + @strOrder
else
set @strSQL = 'SELECT TOP ' + str(@PageSize) +' '+@strGetFields+ ' FROM '+ @tblName + ' '+ @strOrder

--ǵһҳִϴ룬ӿִٶ
end

else

begin

--´븳@strSQLִеSQL

set @strSQL = 'SELECT TOP ' + str(@PageSize) +' '+@strGetFields+ ' FROM '
+ @tblName + ' WHERE ' + @fldName + '' + @strTmp + '('+ @fldName + ') FROM (SELECT TOP ' + str((@PageIndex-1)*@PageSize) + ' '+ @fldName + ' FROM ' + @tblName + ' ' + @strOrder + ') AS tblTmp)'+ @strOrder

if @strWhere != ''
set @strSQL = 'SELECT TOP ' + str(@PageSize) +' '+@strGetFields+ ' FROM '
+ @tblName + ' WHERE ' + @fldName  + '' + @strTmp + '('
+ SUBSTRING(@fldName,CHARINDEX('.', @fldName)+1,LEN(@fldName)) + ') FROM (SELECT TOP ' + str((@PageIndex-1)*@PageSize) + ' '
+ @fldName + ' FROM ' + @tblName + ' WHERE ' + @strWhere + ' '
+ @strOrder + ') AS tblTmp) AND ' + @strWhere + ' ' + @strOrder
end 

end 

--SELECT @strSQL
exec (@strSQL)
IF (@doCount=0)
begin
if @strWhere !=''
set @strSQL = 'SELECT COUNT(*) AS Total FROM ' + @tblName + ' WHERE ' + @strWhere
else
set @strSQL = 'SELECT COUNT(*) AS Total FROM ' + @tblName
--select @strSQL
exec (@strSQL)
end
GO





GO

/****** :  StoredProcedure [dbo].[sp_systemLogAdd]    ű: 02/01/2010 14:37:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE proc [dbo].[sp_systemLogAdd]
@adminID int,
@classID int,
@content varchar(8000),
@historyRecord varchar(4000),
@result int = 0 output
as
   insert tbl_systemLog (userID,classID,[content],historyRecord)
   values(@adminID,@classID,@content,@historyRecord)
   if @@error = 0 
   begin
    set @result = 1
   end
  return @result


GO
/****** :  StoredProcedure [dbo].[sp_suiteMenuCopy]    ű: 02/01/2010 14:36:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_suiteMenuCopy]
@restID int,
@newRestID int
 AS
declare @result int
begin
    begin Tran 	
	--copy tbl_suiteMenuClass
	--update tbl_suiteMenuClass set isDelete=1 where restID=@newRestID
	delete tbl_suiteMenuClass where restID=@newRestID
	declare @classID int,@newClassID int
	declare @tbl_suiteMenuClass table (id int,nID int)
	declare curClassID cursor for select id from tbl_suiteMenuClass where restID=@restID and isDelete=0
	open curClassID
	fetch next from curClassID into @classID
	while(@@fetch_status=0) begin
		--if !exists(select * from tbl_suiteMenuClass where restID=@newRestID and name=(select name from tbl_suiteMenuClass where id=@classID)) begin
			insert into tbl_suiteMenuClass(restID,name,dayID,note,orderNumber,isDelete) 
							select @newRestID,name,dayID,note,orderNumber,isDelete from tbl_suiteMenuClass where id=@classID
			set @newClassID=@@identity
		--end else begin
		--	set @newClassID=(select id from tbl_suiteMenuClass where restID=@newRestID and name=(select name from tbl_suiteMenuClass where id=@classID))
		--end
		insert @tbl_suiteMenuClass(id,nID) values(@classID,@newClassID)
		fetch next from curClassID into @classID
	end
	close curClassID
	deallocate curClassID
	
	--copy tbl_suiteMenuTable
	--update tbl_suiteMenuTable set isDelete=1 where restID=@newRestID
	delete tbl_suiteMenuTable where restID=@newRestID
	declare @menuID int,@newMenuID int
	declare @tbl_suiteMenuTable table (id int,nID int)
	declare curMenuID cursor for select id from tbl_suiteMenuTable where restID=@restID and isDelete=0
	open curMenuID 
	fetch next from curMenuID into @menuID
	while(@@fetch_status=0) begin--ҪжǷڸ		
		insert into tbl_suiteMenuTable(restID,classID,name,url,mainNote,photoID,photoAddr,orderNumber,note,calorie,pabulum,taste,deliverDay,startTime,endTime,isDelete)
						select @newRestID,0,name,url,mainNote,photoID,photoAddr,orderNumber,note,calorie,pabulum,taste,deliverDay,startTime,endTime,isDelete from tbl_suiteMenuTable where id=@menuID
		set @newMenuID=@@identity
		insert into @tbl_suiteMenuTable(id,nID) values(@menuID,@newMenuID)		
		fetch next from curMenuID into @menuID
	end 
	close curMenuID
	deallocate curMenuID

	--copy tbl_suiteMenuList
	delete from tbl_suiteMenuList where classID in (select id from tbl_suiteMenuClass where restID=@newRestID)
	declare curMenuList cursor for select classID,menuID from tbl_suiteMenuList where classID in (select id from tbl_suiteMenuClass where restID=@restID)
	open curMenuList
	fetch next from curMenuList into @classID,@menuID
	while(@@fetch_status=0) begin
		if exists(select nID from @tbl_suiteMenuClass where id=@classID) and exists(select nID from @tbl_suiteMenuTable where id=@menuID) begin
			select @newClassID=nID from @tbl_suiteMenuClass where id=@classID
			select @newMenuID=nID from @tbl_suiteMenuTable where id=@menuID
			insert into tbl_suiteMenuList(classID,menuID) values(@newClassID,@newMenuID)
		end
		fetch next from curMenuList into @classID,@menuID
	end
	close curMenuList
	deallocate curMenuList

	--copy tbl_suiteMenuConfig
	--update tbl_suiteMenuConfig set isDelete=1 where restID=@newRestID
	delete tbl_suiteMenuConfig where restID=@newRestID
	declare @configID int,@newConfigID int
	declare @tbl_suiteMenuConfig table (id int,nID int)
	declare curConfigID cursor for select id from tbl_suiteMenuConfig where restID=@restID and  isDelete=0 
	open curConfigID 
	fetch next from curConfigID into @configID
	while(@@fetch_status=0) begin		
		set @newClassID=0
		if exists(select nID from @tbl_suiteMenuTable where id in (select menuID from tbl_suiteMenuConfig where id=@configID) ) begin
			select @newMenuID=nID from @tbl_suiteMenuTable where id in (select menuID from tbl_suiteMenuConfig where id=@configID) 
			insert into tbl_suiteMenuConfig(restID,classID,menuID,name,price,discount,integral,orderNumber,isDelete)
							select @newRestID,@newClassID,@newMenuID,name,price,discount,integral,orderNumber,isDelete from tbl_suiteMenuConfig where id=@configID
			set @newConfigID=@@identity
			insert into @tbl_suiteMenuConfig(id,nID) values(@configID,@newConfigID)
		end	
		fetch next from curConfigID into @configID
	end 
	close curConfigID
	deallocate curConfigID

	--copy tbl_suiteMenuElement
	--update tbl_suiteMenuElement set isDelete=1 where restID=@newRestID
	delete tbl_suiteMenuElement where restID=@newRestID
	declare @elementID int,@newElementID int
	declare @tbl_suiteMenuElement table (id int,nID int)
	declare curElementID cursor for select id from tbl_suiteMenuElement where restID=@restID and isDelete=0
	open curElementID 
	fetch next from curElementID into @elementID
	while(@@fetch_status=0) begin		
		insert into tbl_suiteMenuElement(restID,name,amount,classID,note,isDelete)
						select @newRestID,name,amount,classID,note,isDelete from tbl_suiteMenuElement where id=@elementID
		set @newElementID=@@identity
		insert into @tbl_suiteMenuElement(id,nID) values(@elementID,@newElementID)
		fetch next from curElementID into @elementID
	end 
	close curElementID
	deallocate curElementID
	
	--copy tbl_suiteMenuContent
	delete from tbl_suiteMenuContent where restID=@newRestID
	declare @contentID int,@newContentID int
	declare curContentID cursor for select ID from tbl_suiteMenuContent where restID=@restID
	open curContentID
	fetch next from curContentID into @contentID
	while(@@fetch_status=0) begin
		select @configID=configID,@elementID=elementID from tbl_suiteMenuContent where id=@contentID
		if exists(select nID from @tbl_suiteMenuConfig where id=@configID) and exists(select nID from @tbl_suiteMenuElement where id=@elementID)begin
			select @newConfigID=nID from @tbl_suiteMenuConfig where id=@configID
			select @newElementID=nID from @tbl_suiteMenuElement where id=@elementID
			insert into tbl_suiteMenuContent(restID,configID,elementID,classID) 
									select @newRestID,@newConfigID,@newElementID,classID from tbl_suiteMenuContent where id=@contentID
		end
		fetch next from curContentID into @contentID
	end
	close curContentID
	deallocate curContentID

IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
end


--select * from tbl_suiteMenuContent where restID=1376


GO
/****** :  StoredProcedure [dbo].[sp_restMenuCopy]    ű: 02/01/2010 14:34:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_restMenuCopy]
@restID int,
@newRestID int
 AS
declare @classID int
declare @newClassID int

declare curClassID cursor for select id  from tbl_menuClass where restID=@restID
begin 	
begin tran
	--update tbl_menuClass set isDelete=1 where restID=@newRestID
	delete tbl_menuClass where restID=@newRestID
	--update tbl_menuTable set state=-1 where restID=@newRestID
	delete tbl_menuTable where restID=@newRestID
	open curClassID
		fetch next from curClassID into @classID
		while (@@fetch_status=0) begin	
			insert into tbl_menuClass(restID,name,isDeliver,note,orderNumber,deliverDay) select @newRestID,name,isDeliver,note,orderNumber,deliverDay from tbl_menuClass where id=@classID and isDelete=0
			select @newClassID=@@IDENTITY	
			insert into tbl_menuTable(name,url,price,restID,classID,mainNote,calorie,pabulum,taste,photo,menuPhotoID,note,state,orderNumber,deliverDay,amount) select name,url,price,@newRestID,@newClassID,mainNote,calorie,pabulum,taste,photo,menuPhotoID,note,state,orderNumber,deliverDay,amount from tbl_menuTable where classID=@classID and state>-1
			fetch next from curClassID into @classID
		end
	CLOSE curClassID 
IF @@Error<>0
BEGIN

ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN

COMMIT TRANSACTION--ύ
END
deallocate curClassID
end


GO

/****** :  StoredProcedure [dbo].[sp_restChainRelationAdd]    ű: 02/01/2010 14:33:57 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [dbo].[sp_restChainRelationAdd]
@id bigint=0,
@mainRestID bigint=0,
@restID bigint=0
As
begin
--	if @id>0 
--		update tbl_restChainRelation set mainRestID=@mainRestID, restID=@restID where id=@id
--	else begin
--		if not exists(select * from tbl_restChainRelation where mainRestID=@mainRestID and restID=@restID) begin
--			insert into tbl_restChainRelation(mainRestID,restID) values(@mainRestID,@restID)
--		end
--	end
	declare @subRestID bigint
	set @subRestID=@restID
	 if @mainRestID>0 and @subRestID>0 and @mainRestID!=@subRestID begin		
		if not exists(select * from tbl_restChainRelation where restID=@subRestID and restID!=mainRestID)
			and not exists (select * from tbl_restChainRelation where mainRestID=@subRestID)
			and not exists (select * from tbl_restChainRelation where restID=@mainRestID and restID!=mainRestID) begin
			insert into tbl_restChainRelation (mainRestID,restID) values(@mainRestID,@subRestID)
			--mainRestID=restID ļ¼Ϊ,Ĭ
			if not exists(select * from tbl_restChainRelation where mainRestID=@mainRestID and restID=@mainRestID)
				insert into tbl_restChainRelation(mainRestID,restID) values(@mainRestID,@mainRestID)
			
		end 
			
	end 
		


end


GO
/****** :  StoredProcedure [dbo].[sp_restMapInfo_add]    ű: 02/01/2010 14:34:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE  [dbo].[sp_restMapInfo_add] 
@restID bigint=0,
@mapCity varchar(30),
@mapX bigint=0,
@mapY bigint=0
AS
declare @result int
set @result=-1
declare @cnt int
set @cnt=0
select @cnt=count(*) from tbl_restMapInfo where restID=@restID
if @cnt>0
		begin
			update tbl_restMapInfo set mapCity=@mapCity,mapX=@mapX,mapY=@mapY where restID=@restID
			set @result=1
		end
	else
		begin
		insert into tbl_restMapInfo (restID,mapCity,mapX,mapY) values(@restID,@mapCity,@mapX,@mapY)
		set @result=2
		end
--select @result

GO

/****** :  StoredProcedure [dbo].[sp_userIntegral]    ű: 02/01/2010 14:38:20 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE  [dbo].[sp_userIntegral] --ûִ洢
@userID bigint,
@orderID bigint,
@integral int,
@note varchar(50)
AS
begin
BEGIN TRAN
update tbl_userIntegral set integral=integral+@integral where userID=@userID
insert into tbl_userIntegralDetail(userID,orderID,amount,note)values(@userID,@orderID,@integral,@note)
IF @@Error<>0
BEGIN

ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN

COMMIT TRANSACTION--ύ
END
end
GO
/****** :  StoredProcedure [dbo].[sp_UserIntegralReport]    ű: 02/01/2010 14:38:24 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE proc [dbo].[sp_UserIntegralReport]
as
declare @sql varchar(8000)
declare @total float
declare @InIntegral float
declare @toIntegral float
declare @exGoodIntegral float --һĻ
declare @exMoneyIntegral float--һĿ۳
declare @exGoodSubmit1 float 
declare @exGoodCancle1 float
declare @exMoneySubmit1 float 
declare @exMoneyCancle1 float
declare @exGoodSubmit2 float 
declare @exGoodCancle2 float
declare @exMoneySubmit2 float
declare @exMoneyCancle2 float
select  @InIntegral =sum(amount) from tbl_userIntegralDetail where source<>5 or source<>-5

select  @total =isnull(sum(amount),0) from tbl_userIntegralDetail
where  (source = 0  or source = 1 or source = 2 or source = 6 or 
 source = -1 or source = -2 or source = -6 or source = -10 or source = -11 or source = 10 or source = 11
or source = 4 or source = -4 or source = 12 or source = -12 or source=13 or source =-13 or source=14 or source=-14
) 

select  @toIntegral =abs(isnull(sum(amount),0)) from tbl_userIntegralDetail
where( source = 3 or source = 7 or source = 8 or 
 source =9 or source = -3 or source = -7 or source = -8 or source = -9) 

select @exGoodSubmit1 = isnull(sum(amount),0) from tbl_userIntegralDetail
where source = -3
select @exGoodCancle1 = isnull(sum(amount),0) from tbl_userIntegralDetail 
where source = 3
select @exGoodSubmit2 = isnull(sum(amount),0) from tbl_userIntegralDetail
where source = -9
select @exGoodCancle2 = isnull(sum(amount),0) from tbl_userIntegralDetail 
where source = 9
set @exGoodIntegral = abs(@exGoodSubmit1 + @exGoodCancle1 +@exGoodSubmit2 + @exGoodCancle2) 

select @exMoneySubmit1 = isnull(sum(amount),0) from tbl_userIntegralDetail
where source = -8
select @exMoneyCancle1 = isnull(sum(amount),0) from tbl_userIntegralDetail
where source = 8
select @exMoneySubmit2 =isnull(sum(amount),0) from tbl_userIntegralDetail
where source = -7
select @exMoneyCancle2 = isnull(sum(amount),0) from tbl_userIntegralDetail
where source = 7

set @exMoneyIntegral = abs(@exMoneySubmit1 + @exMoneyCancle1 + @exMoneySubmit2 + @exMoneyCancle2) 
 

select @total as total ,@InIntegral as inIntegral,@toIntegral as toIntegral,
@exGoodIntegral as exGoodIntegral,@exMoneyIntegral as exMoneyIntegral

GO
/****** :  StoredProcedure [dbo].[sp_isRestManager]    ű: 02/01/2010 14:28:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_isRestManager]
@userID bigint,
@restID int,
@result int =0  output
 AS

select @result=count(*) from tbl_restaurant 
	where id=@restID and isDelete=0  
		and (userID=@userID or id in (select restID from tbl_restUser where  userID=@userID and restID=@restID))
select  @result


GO
/****** :  StoredProcedure [dbo].[sp_Member_Integral_UpdateNoReturn]    ű: 02/01/2010 14:29:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--ϸ
CREATE PROCEDURE [dbo].[sp_Member_Integral_UpdateNoReturn]
	@UserId bigint = 0,
	@RestId bigint = 0,
	@Source int = 1,
	@Integral bigint = 0,
	@Note varchar(8000) ='',
	@OrderId int = 0,
	@IntegralClassID int=0, --0ΪûС1Ϊѻ֡2Ϊƹ
	
	@adminID int = 0,
	@content varchar(8000)=''
AS
BEGIN
	SET NOCOUNT ON;
	
	Declare @Result int
	Declare @Count int
	Declare @historyRecord varchar(4000)
	Declare @spResult INT,@leaveAmount BIGINT--ʣ
	Declare @usedIntegral BIGINT                         
/*tbl_userIntegralDetail:
@Source:
0Ϊעû,1Ϊͻû,2ΪƼûͻû
-1Ϊͳ,-2ΪƼûͳ,-6Ϊٶ
[sp_Member_Integral_UpdateNoReturn] @UserId,@RestId,@Source,@Integral,@Note,@OrderId,@IntegralClassID*/

	SET XACT_ABORT ON  --  try  
BEGIN   
    BEGIN TRAN
	if @adminID > 0 begin
      set @historyRecord =''
		exec sp_systemLogAdd @adminID,1,@content,@historyRecord,@spResult output
	end else begin set @spResult = 1 end
	if @spResult =1 
	begin
		if @userID>0 begin			
			
			SELECT @Count=Count(*) FROM tbl_userIntegral WHERE userID=@UserId
			If @Count > 0 Begin
				if @IntegralClassID=0--ܻ
					UPDATE tbl_userIntegral SET integral=integral+@Integral WHERE userID=@UserId
				else if @IntegralClassID=1 begin--1Ϊѻ
					UPDATE tbl_userIntegral SET expendIntegral=expendIntegral+@Integral WHERE userID=@UserId
				end	else if @IntegralClassID=2 begin--2Ϊƹ
					UPDATE tbl_userIntegral SET spreadIntegral=spreadIntegral+@Integral WHERE userID=@UserId										
				end
				update tbl_userIntegral set integral=expendIntegral+spreadIntegral where userID=@UserId
			End Else Begin
				if @IntegralClassID=0
					INSERT INTO tbl_userIntegral (userID, integral) VALUES (@UserId, @Integral)
				else if @IntegralClassID=1
					INSERT INTO tbl_userIntegral (userID, integral,expendIntegral,spreadIntegral) VALUES (@UserId, @Integral,@Integral,0)
				else if @IntegralClassID=2
					INSERT INTO tbl_userIntegral (userID, integral,expendIntegral,spreadIntegral) VALUES (@UserId, @Integral,0,@Integral)
			END
			IF @Integral<0 --¼ȥ
				UPDATE tbl_userIntegral SET usedIntegral=usedIntegral-@Integral WHERE userID=@UserId
			--ȡʣ
			SELECT @leaveAmount=expendIntegral FROM tbl_userIntegral WHERE userID=@UserId
			INSERT INTO tbl_userIntegralDetail(userID, source, amount, note, orderID,adminid,leaveAmount) 
				VALUES (@UserId, @Source,@Integral, @Note, @OrderId,@adminid,@leaveAmount)
	end
END   
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
--SELECT @Result
END
end



go
/****** :  StoredProcedure [dbo].[sp_isRestManagerByMenuClassID]    ű: 02/01/2010 14:28:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

create procedure [dbo].[sp_isRestManagerByMenuClassID]
@userID bigint,
@menuClassID int
as
declare @restID int
select @restID=id from tbl_restaurant 
where ID = (select restID from tbl_menuClass where id=@menuClassID)
exec [sp_isRestManager] @userID,@restID
GO
/****** :  StoredProcedure [dbo].[sp_FoodMode_adds]    ű: 02/01/2010 14:25:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_FoodMode_adds]
@restID int,
@foodModeIDs varchar(200)
AS
if len(@foodModeIds)>0
begin
	declare @substr varchar(300),@m int,@n int  
	declare @splitStr char
	set @splitStr='|'
	set  @m=CHARINDEX(@splitStr,@foodModeIDs)  
	set  @n=1
	delete from tbl_foodMode2Rest where restID=@restID
	WHILE  @m>0  
	BEGIN  
		  set  @substr=substring(@foodModeIDs,@n,@m-@n)  
		--select @substr,@restID,left(@substr,5),right(@substr,5)
	   if(select count(*) from tbl_foodMode2Rest where restID=@restID and foodModeID=@substr)=0
   		 insert into tbl_foodMode2Rest(restID,foodModeID)values(@restID,@substr) 
		  set  @n=@m+1
		  set  @m=CHARINDEX(@splitStr,@foodModeIDs,@n)
	END
end
GO

/****** :  StoredProcedure [dbo].[sp_areaMapInfo_add]    ű: 02/01/2010 14:23:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create PROCEDURE  [dbo].[sp_areaMapInfo_add] 
@areaID bigint=0,
@mapCity varchar(30),
@mapX bigint=0,
@mapY bigint=0
AS
declare @result int
set @result=-1
declare @cnt int
set @cnt=0
select @cnt=count(*) from tbl_areaMapInfo where areaID=@areaID
if @cnt>0
	begin
		update tbl_areaMapInfo set mapCity=@mapCity,mapX=@mapX,mapY=@mapY where areaID=@areaID
		set @result=1
	end
else
	begin
	insert into tbl_areaMapInfo (areaID,mapCity,mapX,mapY) values(@areaID,@mapCity,@mapX,@mapY)
	set @result=2
	end
select @result
GO

/****** :  StoredProcedure [dbo].[sp_Order_updateState]    ű: 02/01/2010 14:30:57 ******/
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go




Create PROCEDURE [dbo].[sp_Order_updateState]
	@OrderId BIGINT = 0,
	@State INT = 0,
	@type int=0 /*0Ϊ򵥲˵1ΪƲ˵*/
AS
BEGIN
-- =============================================
-- Author:		<gcy>
-- Create date: <2007-9-5>
-- Description:	<¶״̬>
-- =============================================
-- ѣɶҪΪûӦĻ֣ȡɶҪȥӦĻ
/*tbl_userIntegralDetail:
@Source:
0Ϊעû,1Ϊͻû,2ΪƼûͻû,3Ʒ-ӻ
-1Ϊͳ,-2ΪƼûͳ֣-3Ʒ-ٻ,-6ٶ
[sp_Member_Integral_UpdateNoReturn] @UserId,@RestId,@Source,@Integral,@Note,@OrderId*/
	SET NOCOUNT ON;
    DECLARE @Result INT	
	
	declare @total float,@rate float,@baseIntegral float,@baseIntegralRate float,@orderIntegral float,@maxIntegral float,@integralNote varchar(50),@userID bigint,@userName as varchar(8000),@orderPostTime datetime,@deliverDate dateTime,@deliverSpan float
	declare @startPrice float,@endPrice float,@state0 int,@rowTbl_integralRate int,@orderAmount int,@activityRate float,@activityIntegral float,@deliverSpanRate float
	declare @restId int,@name varchar(50),@mobile varchar(50),@phone varchar(50),@address varchar(50),@areaid int
	/*ȡûֹ*/
	declare @commendOrderIntegral float,@commendOrderDateAmount int,@falseIntegral float,@orderRate float,@spreadDepth int,@extendUserID bigint,@Integral float			
	
	/*ƹ*/
	declare @DepthIntegralRuleClass int	

--	if @type=0 begin--öϢ
--		select @userID=userID,@total=total,@state0=state,@orderPostTime=date_time,@deliverDate=deliverDate from tbl_Order where id=@orderID
--	end else if @type=1 begin
--		select @userID=userID,@total=total,@state0=state,@orderPostTime=date_time,@deliverDate=deliverDate from tbl_suiteMenuOrder where id=@orderID
--	end	
	select @userID=userID,@total=total,@state0=state,@orderPostTime=date_time,@deliverDate=deliverDate,@restId=restId,
	@name=[name],@phone=Ltrim(Rtrim(phone)),@address=roomname,@areaid=areaid
	 from v_Order_GeneralList where id=@orderID
	set @orderAmount=@@rowcount
	--if @orderAmount>0 and @deliverDate<dateadd(d,-1,getDate()) and @state0=1 and @state=0   begin--ǰĶܻع
	if 1=0   begin--ǰĶܻع
		set @result=0
	end else if not((@state0=0 and @state=-1) 
				or  (@state0=0 and @state=-2) 
				or  (@state0=0 and @state=1) 
				or  (@state0=1 and @state=0)
				or  (@state0=-1 and @state=0)
				or  (@state0=-2 and @state=0))	begin
		set @result=0		
	end else begin
		BEGIN TRAN
			if @orderAmount>0 begin
				if @state0!=@state begin
					/*¶״̬  ʼ*/
					if @type=0 begin
						UPDATE tbl_Order SET state=@State WHERE id=@OrderId				
					end else if @type=1 begin
						UPDATE tbl_suiteMenuOrder SET state=@State WHERE id=@OrderId
					end
					--ˮ
					if @type=0 Or @type=1
						update tbl_runningOrder set state=@State where id=@OrderId
					
					/*¶״̬  */
					--select * from tbl_rest_manager
					/*tbl_rest_manager͹ݹҳݱ޸Ķ ʼ*/
					/*<option value="-3">ȫ</option>
                    <option value="-2"></option>
                    <option value="-1"></option>
                    <option value="0"></option>
                    <option value="1"></option>*/
			
					if @orderPostTime>=convert(varchar(10),getdate(),120)
					begin
						if @deliverDate >= convert(varchar(10),dateadd(d,1,getdate()),120)
						begin
							if @state0=0 and @state <>0 begin
							update tbl_rest_manager set waitOrderPre=waitOrderPre-1 where restid = @restid
							end
							else if @state0<>0 and @state =0 begin
							update tbl_rest_manager set waitOrderPre=waitOrderPre+1 where restid = @restid	
							end
						end
						else
						begin
							if @state0=0 and @state =-1 begin
							update tbl_rest_manager set waitOrder=waitOrder-1 ,cancelOrder=cancelOrder+1 where restid = @restid
							end 
							else if @state0=0 and @state=-2 begin
							update tbl_rest_manager set waitOrder=waitOrder-1 ,falseOrder=falseOrder+1 where restid = @restid
							end 
							else if @state0=0 and @state=1 begin
							update tbl_rest_manager set waitOrder=waitOrder-1 ,overOrder=overOrder+1 where restid = @restid
							end 
							else if @state0=1 and @state=0 begin
							update tbl_rest_manager set overOrder=overOrder-1 ,waitOrder=waitOrder+1 where restid = @restid
							end 
							else if @state0=-1 and @state=0 begin
							update tbl_rest_manager set cancelOrder=cancelOrder-1 ,waitOrder=waitOrder+1 where restid = @restid
							end 
							else begin
							update tbl_rest_manager set falseOrder=falseOrder-1 ,waitOrder=waitOrder+1 where restid = @restid
							end
						end
					end
					else
					begin --յδĶ
						if @state0=0 and @state <> 0 begin
						update tbl_rest_manager set waitOrderOld=waitOrderOld-1 where restid = @restid
						end 
					end

					/*tbl_rest_manager͹ݹҳݱ޸Ķ */
					/*1ȡĬֹ趨*/
					select top 1 @commendOrderIntegral=commendOrderIntegral,@commendOrderDateAmount=commendOrderDateAmount,@orderRate=orderRate,@falseIntegral = falseOrderIntegral,@spreadDepth=spreadDepth from tbl_integralRate
					set @rowTbl_integralRate=@@rowcount
					if @rowTbl_integralRate=0 begin
						select @commendOrderIntegral=0,@commendOrderDateAmount=0,@orderRate=0,@falseIntegral=0,@spreadDepth=0
					end	
			
					/*2ȡöֱ*/
--					select top 1 @baseIntegralRate=integral from tbl_orderBaseIntegralRule where getDate()>=startTime and getDate()<dateAdd(d,1,endTime) and isDelete=0
--					if @@rowCount=0 
--						set @baseIntegralRate=@orderRate	
						select  top 1 @baseIntegralRate=integral from tbl_suiteMenuOrder where id=@OrderId
						if @@rowCount=0 
							set @baseIntegralRate=@orderRate
					/*3ȡöͻֽ趨*/
					select top 1 @rate=rate  from tbl_orderIntegralRateClass a inner join tbl_orderIntegralRate b on b.classID=a.id 
							where getDate()>=a.startTime and getDate()<dateAdd(d,1,a.endTime) and a.isDelete=0
							and @total>=b.startMoney and @total<b.endMoney and b.isDelete=0										
					if @@rowcount=0 
						set @rate=0
					
					/*4ȡûֹ*/
					select top 1 @activityRate=rate,@activityIntegral=integral from tbl_activityIntegralRate 
							where @deliverDate>=startTime and @deliverDate<dateAdd(d,1,endTime) and isDelete=0
					if @@rowCount=0 begin
						set @activityRate=0
						set @activityIntegral=0
					end
					
					/*5ȡԤֹ*/
					set @deliverSpan=datediff(minute,@orderPostTime,@deliverDate)/60
					select @deliverSpanRate=b.rate from tbl_reserveIntegralRateClass a inner join tbl_reserveIntegralRate b on b.classID=a.id
							where getDate()>=a.startTime and getDate()<dateAdd(d,1,a.endTime) and a.isDelete=0
								and @deliverSpan>=b.startSpan and @deliverSpan<b.endSpan and b.isDelete=0
					if @@rowCount=0 begin
						set @deliverSpanRate=0
					end			
					
					set @baseIntegral=@baseIntegralRate--*@total
					/* ûͻû  ʼ*/	--(ͻ򣬶֣֣ǰԤͻ)								
					/*ȡ*/
					select @maxIntegral=max(a) from (
						select @rate*@baseIntegral as a
						union
						select @activityRate*@baseIntegral+@activityIntegral as a
						union
						select @deliverSpanRate*@baseIntegral as a
					) as t
					set @orderIntegral=Cast(@maxIntegral as Numeric(10,0))+@baseIntegral
				
				--select @rate*@baseIntegral,@activityRate*@baseIntegral+@activityIntegral,@deliverSpanRate*@baseIntegral,@deliverSpan,@deliverSpanRate

					if @state0=0 and @state=1 begin --δɡû		
--						set @integralNote='' + Cast(Cast(@total as Numeric(10,2)) as varchar(8000)) + 'Ԫ'
--						if @ordermode=1
--						begin
						--ûϢ
						declare @p varchar(20),@m varchar(20),@len int,@s varchar(1)
						select @len=charindex(' ',@phone,1)
						if @len>0
						begin
							select @p=substring(@phone,1,@len)
							select @m=substring(@phone,@len,len(@phone)-@len)
						end
						else
						begin
							select @s=substring(@phone,1,1)
							if @s='1'
							begin
								set @m=substring(@phone,1,len(@phone))
								set @p=''
							end
							else  begin
								set @p=substring(@phone,1,len(@phone))
								set @m=''
							end
						end
							if not exists (select * from tbl_orderuserinfo
							where (mobile=@m or phone=@p)
							and [name]=@name and address=@address 
							and areaid=@areaID)
							begin 
							insert into tbl_orderuserinfo(mobile,phone,[name],address,areaid)
							values(@m,@p,@name,@address,@areaID)
							end
--						end
						if @maxIntegral>0
						set @integralNote='' + Cast(Cast(@total as Numeric(10,2)) as varchar(8000)) + 'Ԫ<br/>'+Cast(Cast(@maxIntegral as Numeric(10,0)) as varchar(8000)) +''
						else
						set @integralNote='' + Cast(Cast(@total as Numeric(10,2)) as varchar(8000)) + 'Ԫ'
						exec [sp_Member_Integral_UpdateNoReturn] @UserId,0,1,@orderIntegral,@integralNote,@OrderId,1
						/*[sp_Member_Integral_UpdateNoReturn] @UserId,@RestId,@Source,@Integral,@Note,@OrderId,@IntegralClassID:1ѻ,2ƹ*/			
					end 								
					
				
					if @state0=1 and @state=0 begin --ɵδ
						select top 1 @orderIntegral=amount from tbl_userIntegralDetail where orderID=@orderID and source=1 order by id desc			
						if @@rowcount>0 begin
							set @integralNote='ͳ'
							set @orderIntegral=-@orderIntegral
							exec [sp_Member_Integral_UpdateNoReturn] @UserId,0,-1,@orderIntegral,@integralNote,@OrderId,1
							/*[sp_Member_Integral_UpdateNoReturn] @UserId,@RestId,@Source,@Integral,@Note,@OrderId,@IntegralClassID:1ѻ,2ƹ*/				
						end
					end
					/* ûͻû  */
							
					/* --------------------Ƽ˻û֡ʼ-----------------------------------------------*/

					/*ƹûֲûֱ*/
					select top 1 @DepthIntegralRuleClass=id from tbl_spreadDepthIntegralRuleClass a where getDate()>=a.startTime and getDate()<dateAdd(d,1,a.endTime) and a.isDelete=0	
					if @@rowCount=0 begin
						set @DepthIntegralRuleClass=0
					end	

					/*ƹûȹ*/	
					select top 1 @spreadDepth=depth from tbl_spreadDepthRule where getDate()>=startTime and getDate()<dateAdd(d,1,endTime) and isDelete=0				
					
					/*Ƽûͻֻȡ*/
					select top 1 @commendOrderDateAmount=days from tbl_commendDayRule where getDate()>=startTime and getDate()<dateAdd(d,1,endTime) and isDelete=0				
			
				/*ƹ˻ȡ֡ѭʼ---------------------*/
					declare @i int,@depthRate float,@extendRowCount int,@ExtendStr varchar(8000),@IntegralStr varchar(8000)
                    set @ExtendStr=''
                    set @IntegralStr=''
					set @i=1						
					if @spreadDepth>0 and @commendOrderDateAmount>0 and @state0=0 and @state=1 begin--δɡû					
						while @i<=@spreadDepth begin
							select top 1 @extendUserID=extendUserID from tbl_extendRelation where userID=@userID and dateAdd(d,@commendOrderDateAmount,extendTime) >= @orderPostTime
							set @extendRowCount=@@rowcount
                             
                              
							if @extendRowCount=0 break--ûƹˣ˳ѭ

                              if @ExtendStr =''
                                 set @ExtendStr=Cast(@extendUserID as varchar(50))
                              else
                                 set @ExtendStr=Cast(@extendUserID as varchar(50))+','+@ExtendStr

                               

							select top 1 @depthRate=rate from tbl_spreadDepthIntegralRule where classID=@DepthIntegralRuleClass and num=@i and isDelete=0						
							if @@rowcount>0 begin	
								set @Integral=@depthRate*@baseIntegral	

                                if @IntegralStr=''    
                                  set @IntegralStr=Cast(@Integral as varchar(50))	
                                else
                                  set @IntegralStr=cast(@Integral as varchar(50))+','+@IntegralStr
                                 		
								if @Integral>0 begin	
										select @userName=email from tbl_user where id=@userID									
										set @integralNote='Ƽ' + rtrim(ltrim(@userName))+ 'ûעᣬ'/*+ Cast(Cast(@total as Numeric(10,2)) as varchar(8000)) + 'Ԫ' */
										exec [sp_Member_Integral_UpdateNoReturn] @extendUserID,0,2,@Integral,@integralNote,@OrderId,2
										/*[sp_Member_Integral_UpdateNoReturn] @UserId,@RestId,@Source,@Integral,@Note,@OrderId,@IntegralClassID:1ѻ,2ƹ*/																																		
								end	
								/*select @extendUserID=extendUserID from tbl_extendRelation where userID=@userID*/				
							end
							
							set @userID=@extendUserID
							set @i=@i+1
						end
					end else				
					if @state0=1 and @state=0 begin --ɵδ
						while 1=1 begin	
							select top 1 @extendUserID=extendUserID from tbl_extendRelation where userID=@userID
							set @extendRowCount=@@rowcount	
							if @extendRowCount=0 break--ûƹˣ˳ѭ				
							select top 1 @Integral=amount from tbl_userIntegralDetail where orderID=@orderID and userID=@extendUserID and source=2 order by id desc			
							if @@rowcount>0 begin
								select @userName=email from tbl_user where id=@userID
								set @integralNote='Ƽ' + rtrim(ltrim(@userName))+ 'ûעᣬͳ'						
								set @Integral=-@Integral
								exec [sp_Member_Integral_UpdateNoReturn] @extendUserID,0,-2,@Integral,@integralNote,@OrderId,2
								/*[sp_Member_Integral_UpdateNoReturn] @UserId,@RestId,@Source,@Integral,@Note,@OrderId,@IntegralClassID:1ѻ,2ƹ*/
							end	
							set @userID=@extendUserID					
						end
					end
				/*ƹ˻ȡ֡ѭ---------------------*/
					
					/* Ƽ˻û֡*/			
					
					select top 1 @falseIntegral=integral from tbl_falseOrderRule where getDate()>=startTime and getDate()<dateAdd(d,1,endTime) and isDelete=0				
					/*ٶۻ  ʼ*/
					if @falseIntegral >0 and @state0 = 0 and @state = -2
					  begin
						set @falseIntegral = -@falseIntegral
						set @integralNote = 'ٶ۳ѻ'+cast(abs(@falseIntegral) as varchar(8000)) + ''
						exec [sp_Member_Integral_UpdateNoReturn] @UserId,0,-6,@falseIntegral,@integralNote,@OrderId ,1
						/*[sp_Member_Integral_UpdateNoReturn] @UserId,@RestId,@Source,@Integral,@Note,@OrderId,@IntegralClassID:1ѻ,2ƹ*/
					  end
					/*ٶۻ  */
					
					/*ٶ״̬  ʼ*/
					if @state0 = -2 and @state = 0 begin
						select top 1 @orderIntegral=amount from tbl_userIntegralDetail where orderID=@orderID and userID=@userID and source=-6 order by id desc			
						if @@rowcount>0 begin						  
							set @orderIntegral = -@orderIntegral
							set @integralNote = 'ٶعѻ'+cast(abs(@orderIntegral) as varchar(8000)) + ''
							exec [sp_Member_Integral_UpdateNoReturn] @UserId,0,6,@orderIntegral,@integralNote,@OrderId,1
							/*[sp_Member_Integral_UpdateNoReturn] @UserId,@RestId,@Source,@Integral,@Note,@OrderId,@IntegralClassID:1ѻ,2ƹ*/
						end
					end
					/*ٶ״̬  */
			end
		IF @@Error<>0
        BEGIN
        set @result=0
        ROLLBACK TRANSACTION--ع
        END
        ELSE
        BEGIN
        SET @Result = 1	
        COMMIT TRANSACTION--ύ
        END
	end
	SELECT @Result ,isnull(@ExtendStr,'') as ExtUserId ,isnull(@IntegralStr,'') as ExtIntegral
END
end









GO
/****** :  StoredProcedure [dbo].[sp_IntegralRangCheck]    ű: 02/01/2010 14:28:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--***********************
--Autor:wjh
--datetime:2007-11-12
--description:ֹΧж
--************************
CREATE PROCEDURE [dbo].[sp_IntegralRangCheck]
@id int = 0,
@tableName varchar(8000),
@start varchar(120),
@end varchar(120)
AS
begin 
declare @sql varchar(8000)
set @sql ='

declare @result int
set @result = 0
      
if @id = 0
begin
     if exists( select * from   @tableName  
where @start >= startTime and @start <= endTime and isDelete=0) 
begin set  @result=2 end 

     if exists( select * from  @tableName 
where @end >= startTime and @end <= endTime and isDelete=0) 
begin set  @result=2 end 
     
     if exists( select * from  @tableName 
where startTime >= @start and startTime <= @end and isDelete=0) 
begin set  @result=2 end 

     if exists( select * from  @tableName 
where endTime >= @start and endtime <= @end and isDelete=0) 
begin set  @result=2 end 
end
else
begin
 if exists( select * from   @tableName  
where @start >= startTime and @start <= endTime and isDelete=0 and id<>@id) 
begin set  @result=2 end 

     if exists( select * from  @tableName 
where @end >= startTime and @end <= endTime and isDelete=0 and id<>@id) 
begin set  @result=2 end 
     
     if exists( select * from  @tableName 
where startTime >= @start and startTime <= @end and isDelete=0 and id<>@id) 
begin set  @result=2 end 

     if exists( select * from  @tableName 
where endTime >= @start and endtime <= @end and isDelete=0 and id<>@id) 
begin set  @result=2 end 
end

if @result = 2 begin select -1 end
'
set @sql = replace(@sql,'@tableName',''+ @tableName +'')
set @sql = replace(@sql,'@start',''''+ @start +'''')
set @sql = replace(@sql,'@end',''''+ @end +'''')
set @sql = replace(@sql,'@id',''+ @id +'')
--set @sql = replace(@sql,'@result',''+ @result +'')
exec(@sql)

end


/****** :  StoredProcedure [dbo].[dt_displayoaerror]    ű: 02/01/2010 14:21:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[dt_displayoaerror]
    @iObject int,
    @iresult int
as

set nocount on

declare @vchOutput      varchar(255)
declare @hr             int
declare @vchSource      varchar(255)
declare @vchDescription varchar(255)

    exec @hr = master.dbo.sp_OAGetErrorInfo @iObject, @vchSource OUT, @vchDescription OUT

    select @vchOutput = @vchSource + ': ' + @vchDescription
    raiserror (@vchOutput,16,-1)

    return


GO
/****** :  StoredProcedure [dbo].[dt_setpropertybyid]    ű: 02/01/2010 14:22:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
**	If the property already exists, reset the valueGO otherwise add property
**		id -- the id in sysobjects of the object
**		property -- the name of the property
**		value -- the text value of the property
**		lvalue -- the binary value of the property (image)
*/
create procedure [dbo].[dt_setpropertybyid]
	@id int,
	@property varchar(64),
	@value varchar(255),
	@lvalue image
as
	set nocount on
	declare @uvalue nvarchar(255) 
	set @uvalue = convert(nvarchar(255), @value) 
	if exists (select * from dbo.dtproperties 
			where objectid=@id and property=@property)
	begin
		--
		-- bump the version count for this row as we update it
		--
		update dbo.dtproperties set value=@value, uvalue=@uvalue, lvalue=@lvalue, version=version+1
			where objectid=@id and property=@property
	end
	else
	begin
		--
		-- version count is auto-set to 0 on initial insert
		--
		insert dbo.dtproperties (property, objectid, value, uvalue, lvalue)
			values (@property, @id, @value, @uvalue, @lvalue)
	end


GO
/****** :  StoredProcedure [dbo].[dt_adduserobject_vcs]    ű: 02/01/2010 14:21:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[dt_adduserobject_vcs]
    @vchProperty varchar(64)

as

set nocount on

declare @iReturn int
    /*
    ** Create the user object if it does not exist already
    */
    begin
        select @iReturn = objectid from dbo.dtproperties where property = @vchProperty
        if @iReturn IS NULL
        begin
            insert dbo.dtproperties (property) VALUES (@vchProperty)
            update dbo.dtproperties set objectid=@@identity
                    where id=@@identity and property=@vchProperty
            select @iReturn = @@identity
        end
    commit
    return @iReturn
    end


GO
/****** :  StoredProcedure [dbo].[dt_getpropertiesbyid_vcs]    ű: 02/01/2010 14:21:56 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[dt_getpropertiesbyid_vcs]
    @id       int,
    @property varchar(64),
    @value    varchar(255) = NULL OUT

as

    set nocount on

    select  (
        select value
                from dbo.dtproperties
                where @id=objectid and @property=property
                )


GO
/****** :  StoredProcedure [dbo].[dp_getExtUserAndInt]    ű: 02/01/2010 14:20:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<ylm>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[dp_getExtUserAndInt]
	-- Add the parameters for the stored procedure here
	@orderid int=0
   -- @state int=0
AS
--BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	--SET NOCOUNT ON;
declare @userID int,@integralNote varchar(100),@userName as varchar(8000)
declare @total int, @state0 int ,@orderAmount int
declare @DepthIntegralRuleClass int	,@baseIntegral float,@baseIntegralRate float
declare @commendOrderIntegral float,@commendOrderDateAmount int,@falseIntegral float,@orderRate float,@spreadDepth int,@extendUserID bigint,@Integral float			

                   select @userID=userID,@total=total,@state0=state from v_Order_GeneralList where id=151604
                   --select @UserId
	              -- set @orderAmount=@@rowcount
                   --select @orderAmount
                  /*2ȡöֱ*/
					select top 1 @baseIntegralRate=integral from tbl_orderBaseIntegralRule where getDate()>=startTime and getDate()<dateAdd(d,1,endTime) and isDelete=0
					if @@rowCount=0 begin
						set @baseIntegralRate=@orderRate		
                        end
                  select top 1 @DepthIntegralRuleClass=id from tbl_spreadDepthIntegralRuleClass a where getDate()>=a.startTime and getDate()<dateAdd(d,1,a.endTime) and a.isDelete=0	
					if @@rowCount=0
                        begin
						set @DepthIntegralRuleClass=0
                       end
                  set @baseIntegral=@baseIntegralRate*@total
				/*ƹûȹ*/	
					select top 1 @spreadDepth=depth from tbl_spreadDepthRule where getDate()>=startTime and getDate()<dateAdd(d,1,endTime) and isDelete=0				
			    /*Ƽûͻֻȡ*/
					select top 1 @commendOrderDateAmount=days from tbl_commendDayRule where getDate()>=startTime and getDate()<dateAdd(d,1,endTime) and isDelete=0		
--				/*ƹ˻ȡ֡ѭʼ---------------------*/
					declare @i int,@depthRate float,@extendRowCount int,@ExtendStr varchar(8000),@IntegralStr varchar(8000)
                    set @ExtendStr=''
                    set @IntegralStr=''
					set @i=1						
				   -- if @spreadDepth>0 and @commendOrderDateAmount>0 and @state0=0 and @state=1 begin--δɡû		
						while @i<=@spreadDepth begin
							select top 1 @extendUserID=extendUserID from tbl_extendRelation where userID=@userID 
							set @extendRowCount=@@rowcount
                             
							if @extendRowCount=0 break--ûƹˣ˳ѭ

                              if @ExtendStr =''
                                 set @ExtendStr=Cast(@extendUserID as varchar(50))
                              else
                                 set @ExtendStr=@ExtendStr+','+Cast(@extendUserID as varchar(50))

							select top 1 @depthRate=rate from tbl_spreadDepthIntegralRule where classID=@DepthIntegralRuleClass and num=@i and isDelete=0						
							if @@rowcount>0 begin	
								set @Integral=@depthRate*@baseIntegral	
                                end

                               if @IntegralStr=''    
                                set @IntegralStr=Cast(@Integral as varchar(50))	
                                else
                                  set @IntegralStr=@IntegralStr+','+cast(@Integral as varchar(50))
                                 		
								--if @Integral>0 begin	
										--select @userName=email from tbl_user where id=@userID									
										--set @integralNote='Ƽ' + rtrim(ltrim(@userName))+ 'ûעᣬ'
										--exec [sp_Member_Integral_UpdateNoReturn] @extendUserID,0,2,@Integral,@integralNote,@OrderId,2
								--end			
							end
							
							set @userID=@extendUserID
							set @i=@i+1
						--end

select @ExtendStr,@IntegralStr,@i,@extendUserID,@IntegralStr,@baseIntegral,@total,@DepthIntegralRuleClass

GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[AspNet_SqlCachePollingStoredProcedure] AS
         SELECT tableName, changeId FROM dbo.AspNet_SqlCacheTablesForChangeNotification
         RETURN 0
GO
/****** :  StoredProcedure [dbo].[AspNet_SqlCacheQueryRegisteredTablesStoredProcedure]    ű: 02/01/2010 14:20:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[AspNet_SqlCacheQueryRegisteredTablesStoredProcedure] 
         AS
         SELECT tableName FROM dbo.AspNet_SqlCacheTablesForChangeNotification   
GO
/****** :  StoredProcedure [dbo].[AspNet_SqlCacheRegisterTableStoredProcedure]    ű: 02/01/2010 14:20:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[AspNet_SqlCacheRegisterTableStoredProcedure] 
             @tableName NVARCHAR(450) 
         AS
         BEGIN
         BEGIN TRAN
         DECLARE @triggerName AS NVARCHAR(3000) 
         DECLARE @fullTriggerName AS NVARCHAR(3000)
         DECLARE @canonTableName NVARCHAR(3000) 
         DECLARE @quotedTableName NVARCHAR(3000) 

         /* Create the trigger name */ 
         SET @triggerName = REPLACE(@tableName, '[', '__o__') 
         SET @triggerName = REPLACE(@triggerName, ']', '__c__') 
         SET @triggerName = @triggerName + '_AspNet_SqlCacheNotification_Trigger' 
         SET @fullTriggerName = 'dbo.[' + @triggerName + ']' 

         /* Create the cannonicalized table name for trigger creation */ 
         /* Do not touch it if the name contains other delimiters */ 
         IF (CHARINDEX('.', @tableName) <> 0 OR 
             CHARINDEX('[', @tableName) <> 0 OR 
             CHARINDEX(']', @tableName) <> 0) 
             SET @canonTableName = @tableName 
         ELSE 
             SET @canonTableName = '[' + @tableName + ']' 

         /* First make sure the table exists */ 
         IF (SELECT OBJECT_ID(@tableName, 'U')) IS NULL 
         BEGIN 
             RAISERROR ('00000001', 16, 1) 
             RETURN 
         END 

         begin
         /* Insert the value into the notification table */ 
         IF NOT EXISTS (SELECT tableName FROM dbo.AspNet_SqlCacheTablesForChangeNotification WITH (NOLOCK) WHERE tableName = @tableName) 
             IF NOT EXISTS (SELECT tableName FROM dbo.AspNet_SqlCacheTablesForChangeNotification WITH (TABLOCKX) WHERE tableName = @tableName) 
                 INSERT  dbo.AspNet_SqlCacheTablesForChangeNotification 
                 VALUES (@tableName, GETDATE(), 0)

         /* Create the trigger */ 
         SET @quotedTableName = QUOTENAME(@tableName, '''') 
         IF NOT EXISTS (SELECT name FROM sysobjects WITH (NOLOCK) WHERE name = @triggerName AND type = 'TR') 
             IF NOT EXISTS (SELECT name FROM sysobjects WITH (TABLOCKX) WHERE name = @triggerName AND type = 'TR') 
                 EXEC('CREATE TRIGGER ' + @fullTriggerName + ' ON ' + @canonTableName +'
                       FOR INSERT, UPDATE, DELETE AS BEGIN
                       SET NOCOUNT ON
                       EXEC dbo.AspNet_SqlCacheUpdateChangeIdStoredProcedure N' + @quotedTableName + '
                       END
                       ')
         COMMIT TRAN
         END
         end
   
GO
/****** :  StoredProcedure [dbo].[AspNet_SqlCacheUnRegisterTableStoredProcedure]    ű: 02/01/2010 14:20:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[AspNet_SqlCacheUnRegisterTableStoredProcedure] 
             @tableName NVARCHAR(450) 
         AS
         BEGIN

         BEGIN TRAN
         DECLARE @triggerName AS NVARCHAR(3000) 
         DECLARE @fullTriggerName AS NVARCHAR(3000)
         SET @triggerName = REPLACE(@tableName, '[', '__o__') 
         SET @triggerName = REPLACE(@triggerName, ']', '__c__') 
         SET @triggerName = @triggerName + '_AspNet_SqlCacheNotification_Trigger' 
         SET @fullTriggerName = 'dbo.[' + @triggerName + ']' 

         /* Remove the table-row from the notification table */ 
         IF EXISTS (SELECT name FROM sysobjects WITH (NOLOCK) WHERE name = 'AspNet_SqlCacheTablesForChangeNotification' AND type = 'U') 
             IF EXISTS (SELECT name FROM sysobjects WITH (TABLOCKX) WHERE name = 'AspNet_SqlCacheTablesForChangeNotification' AND type = 'U') 
             DELETE FROM dbo.AspNet_SqlCacheTablesForChangeNotification WHERE tableName = @tableName 

         /* Remove the trigger */ 
         IF EXISTS (SELECT name FROM sysobjects WITH (NOLOCK) WHERE name = @triggerName AND type = 'TR') 
             IF EXISTS (SELECT name FROM sysobjects WITH (TABLOCKX) WHERE name = @triggerName AND type = 'TR') 
             EXEC('DROP TRIGGER ' + @fullTriggerName) 

         COMMIT TRAN
         END
   
GO
/****** :  StoredProcedure [dbo].[AspNet_SqlCacheUpdateChangeIdStoredProcedure]    ű: 02/01/2010 14:20:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[AspNet_SqlCacheUpdateChangeIdStoredProcedure] 
             @tableName NVARCHAR(450) 
         AS

         BEGIN 
             UPDATE dbo.AspNet_SqlCacheTablesForChangeNotification WITH (ROWLOCK) SET changeId = changeId + 1 
             WHERE tableName = @tableName
         END
   
GO
/****** :  StoredProcedure [dbo].[dp_Activity_IntegralSale_Bid_append]    ű: 02/01/2010 14:20:17 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<VENSON>
-- Create date: <2008-4-23>
-- Description:	<ۼ¼>
-- =============================================
CREATE PROCEDURE [dbo].[dp_Activity_IntegralSale_Bid_append]
	@GroupId int = 0,
	@UserId bigint = 0,
	@Integral int = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    DECLARE @MaxIntegral int

	SELECT @MaxIntegral=MAX(Bid.Integral)
	FROM
		tbl_Activity_IntegralSale_Bid AS Bid
		INNER JOIN tbl_userIntegral AS UserIntegral ON UserIntegral.userID=Bid.UserId
	WHERE
		Bid.GroupId = @GroupId
		AND UserIntegral.spreadIntegral>10
		AND UserIntegral.expendIntegral>Bid.Integral

	IF @MaxIntegral >= @Integral
	BEGIN
		SELECT 0
	END
	ELSE
	BEGIN
		INSERT INTO tbl_Activity_IntegralSale_Bid (GroupId, UserId, Integral)
		VALUES (@GroupId, @UserId, @Integral)
		IF @@ERROR = 0
			SELECT 1
		ELSE
			SELECT 0
	END
END



GO
/****** :  StoredProcedure [dbo].[dp_Activity_IntegralSale_Bid_getList]    ű: 02/01/2010 14:20:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<VENSON>
-- Create date: <2008-4-23>
-- Description:	<ȡۼ¼б>
-- =============================================
CREATE PROCEDURE [dbo].[dp_Activity_IntegralSale_Bid_getList]
	@GroupId int = 0,
	@limit int=10
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

DECLARE @sql VARCHAR(8000)
set   @sql='SELECT TOP '+cast(@limit   as   varchar)+'  Bid.*, ISNULL(Users.Nickname, ''no nickname'') AS Nickname
	FROM
		tbl_Activity_IntegralSale_Bid AS Bid
		INNER JOIN tbl_userIntegral AS UserIntegral ON UserIntegral.userID=Bid.UserId
		INNER JOIN tbl_user AS Users ON Users.id=Bid.UserId
	WHERE
		Bid.GroupId = @GroupId
		AND UserIntegral.spreadIntegral>10
		AND UserIntegral.expendIntegral>Bid.Integral
	ORDER BY
		Bid.Id DESC'   
  EXEC (@sql)  
END




GO
/****** :  StoredProcedure [dbo].[dp_Activity_OnePrice_Order_append]    ű: 02/01/2010 14:20:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<gcy>
-- Create date: <2008-4-21>
-- Description:	<Ӷ>
-- =============================================
CREATE PROCEDURE [dbo].[dp_Activity_OnePrice_Order_append]
	@Id bigint=0,
	@UserId bigint=0,
	@RestId bigint=0 ,
	@ContactPerson varchar(50)='',-- ϵ
	@ContactTel varchar(50)='', --ϵ˵绰
	@AreaId bigint=0, --ʹ¥ID
	@Address varchar(255)='', --ȷַ	
	@DeliveryTime datetime=getdate, --ʹʱ
	@Total float=0, --ܽ
	@MenuName varchar(255)='', --Ʒ
	@Remark varchar(255)='' --ע
	
AS
BEGIN
	insert into tbl_Activity_OnePrice_Order(
		UserId,RestId,ContactPerson,ContactTel
		,AreaId, 
		Address,		
		DeliveryTime,
		Total,
		MenuName,
		Remark 
	)
	select @UserId,@RestId,@ContactPerson,@ContactTel,@AreaId, 
	@Address,	
	@DeliveryTime,
	@Total,
	@MenuName,
	@Remark 
	select @Id=@@identity
	select @Id
END


GO
/****** :  StoredProcedure [dbo].[dp_Activity_Oneprice_Order_GetList]    ű: 02/01/2010 14:20:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







CREATE PROCEDURE [dbo].[dp_Activity_Oneprice_Order_GetList] 
	@Restid int=0,
    @OrderId int=0,
	@PostDate  datetime=''
AS
BEGIN
    declare @Where varchar(8000)
    declare @Sql nvarchar(4000)
    declare @endTime datetime
    set @PostDate=Convert(varchar(10), @PostDate, 120)+' 0:0:0'
    set @endTime=Convert(varchar(10), @PostDate, 120)+' 23:59:59'
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	SET @Where = 'WHERE 1=1'
	if @RestId > 0 set @Where = @WHERE + ' and orders.RestId='+cast (@RestId as varchar(50))
    if @OrderId > 0 set @Where = @WHERE + ' and orders.Id='+cast (@OrderId as varchar(50))
	if @PostDate <> '' set @WHERE = @WHERE + ' and orders.PostTime > '''+ Convert(varchar(20), @PostDate) + ''' and orders.PostTime < ''' + Convert(varchar(20), @endTime) +'''' 
    set  @Sql='select orders.*,users.nickname,restr.name as RestName,restr.phone as RestPhone,resti.mobile as Restmobile,area.name as AreaName,area.regionname as RegionName from tbl_Activity_OnePrice_Order as orders inner join tbl_user as users on users.id=orders.userid 
inner join tbl_restaurant as restr on restr.id=orders.restid inner join tbl_restIntro as resti on resti.restid=orders.restid inner join v_Location_Area as area on area.id=orders.areaid ' + @WHERE + 'order by orders.id desc'
--select @sql  
exec (@Sql)
END







GO
/****** :  StoredProcedure [dbo].[dp_Activity_Oneprice_Order_GetListAmount]    ű: 02/01/2010 14:20:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







CREATE PROCEDURE [dbo].[dp_Activity_Oneprice_Order_GetListAmount] 
	@RestId int=0,
    @userID int=0,
	@PostDate  datetime=''
AS
BEGIN
    declare @Where varchar(8000)
    declare @Sql nvarchar(4000)
    declare @endTime datetime
    set @PostDate=Convert(varchar(10), @PostDate, 120)+' 0:0:0'
    set @endTime=Convert(varchar(10), @PostDate, 120)+' 23:59:59'
	SET NOCOUNT ON;
	SET @Where = 'WHERE 1=1'
	if @RestId > 0 set @Where = @WHERE + ' and orders.RestId='+cast(@RestId as varchar(50))
    if @UserID > 0 set @Where = @Where + ' and orders.UserId='+cast(@UserId as varchar(50)) 
	if @PostDate <> '' set @WHERE = @WHERE + ' and orders.PostTime > '''+ Convert(varchar(20), @PostDate) + ''' and orders.PostTime < ''' + Convert(varchar(20), @endTime) +'''' 
    set  @Sql='select count(orders.id) as amount from tbl_Activity_OnePrice_Order orders ' + @WHERE 
	exec (@Sql)
END







GO
/****** :  StoredProcedure [dbo].[dp_AreaManager_add]    ű: 02/01/2010 14:20:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<ylm>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[dp_AreaManager_add]
	-- Add the parameters for the stored procedure here
	@UserId int =0,
    @areaid varchar(8000)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
    declare @sql varchar(8000)
   
    set @sql='insert into tbl_areaManager2area select '+cast(@UserId as varchar(20))+',id from tbl_area where tbl_area.id in ('+@areaid+') 
and (select count(*) from tbl_areaManager2area where userid='+cast(@UserId as varchar(20))+' and areaID=tbl_area.id)=0'    
   exec(@sql)
   if @@error > 0
   select 1
   else
  select 0
END




GO
/****** :  StoredProcedure [dbo].[dp_AreaManager_del]    ű: 02/01/2010 14:20:24 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<ylm>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[dp_AreaManager_del] 
	-- Add the parameters for the stored procedure here
	@sqlstr varchar(8000)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
    declare @sql varchar(8000)
    -- Insert statements for procedure here
	set @sql='delete from tbl_AreaManager2Area where id in('+@sqlstr+')'
exec (@sql)
 if @@error > 0
 select 1
else
select 0
END


GO
/****** :  StoredProcedure [dbo].[dp_CheckOrderByUserId]    ű: 02/01/2010 14:20:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE proc [dbo].[dp_CheckOrderByUserId]
@userId int =0,
@orderId int = 0
as
declare @result int
select @result = count(id) from v_Order_GeneralList where userid = @userId and id = @orderId
select @result
GO
/****** :  StoredProcedure [dbo].[dp_CommendFriendList]    ű: 02/01/2010 14:20:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE proc [dbo].[dp_CommendFriendList]
@userId int = 0, --Ƽ
@email varchar(120)='',
@startDate varchar(120)='',
@endDate varchar(120)=''
as
declare @where varchar(8000)
set @where = ''
if @email<> ''
select @userid = id from tbl_user where email=@email
if @userId <>0
set @where = ' and extendUserid='+str(@userId)

if @startDate<> '' and @endDate<>''
begin
set @endDate = Convert(varchar(10),@endDate,120)+' 23:59:59'
set @where = @where +' and extendTime between '''+ @startDate +''' and '''+ @endDate +''''
end

declare @sql varchar(8000)

set @sql ='select extend.* ,users.nickName,users.email ,dbo.f_CommendFriendIntegral(extendUserid,userid) as integral
from tbl_extendRelation as extend left join tbl_user as users 
on extend.userid = users.id where 1=1'

set @sql = @sql + @where
exec(@sql)


GO
/****** :  StoredProcedure [dbo].[dp_CSS_getNewCount]    ű: 02/01/2010 14:20:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE PROCEDURE [dbo].[dp_CSS_getNewCount]	
as
begin  
	--1¶
	select count(state) from v_Order_GeneralList where state=0	
	--2Ʒ
	select count(id) from tbl_giftOrder  where isdelete=0  and state=0
	--3۸
	select count(id) from tbl_ShopComments where  isdelete=0 and auditing=0
	--4עû
	select count(id) from tbl_user where state=0 and pass=0	
	--5δ˲͹ݹ
	select count(b.id) from tbl_restBulletin b	left join tbl_restaurant r on r.id=b.restID
		where  r.isDelete=0 and r.state=1 and b.state=0 and b.isDelete=0
end



GO
/****** :  StoredProcedure [dbo].[dp_DeliveryAreaAdd]    ű: 02/01/2010 14:20:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





--Ӳ͹ͲͷΧ
CREATE proc [dbo].[dp_DeliveryAreaAdd]
@id varchar(8000) ='' ,
@shopId int = 0,
@areaIdArr varchar(8000)='',
@areaId int = 0,
@ResponseTime int = 0,
@DeliverMoney int = 0,
@result int = 0 output
as
if @id = ''
begin 
	declare @sql varchar(8000) 
	set @sql =
	'
	insert into tbl_shop2Area (areaId,restId,responseTime,DeliveryMoney)
	(
		(select id, ' + str(@shopId) + ','+ str(@responseTime) +' 
		,'+ str(@DeliverMoney) +' from v_Location_Area 
		where id in (' + @areaIdArr + ') and id not in(select areaid 
		from tbl_shop2area where restid='+ str(@shopId) +'))
	)
	'
	exec(@sql)
	if @@error = 0 
	set @result = 1
--	set @sql='select * into ##tmp from 
--	(select '''+replace(@areaIdArr,',','''as areaId union all select ''')+''')a'
--	exec(@sql)
--	--ɾѾڵͲ¥Id
--	delete from ##tmp where areaId in(select areaid from tbl_shop2Area where restId = @shopId)
--	insert into tbl_shop2Area(areaId,restId,responseTime,DeliveryMoney)select areaId,@shopId,@responseTime,@DeliverMoney from ##tmp
--	drop table ##tmp 
	
	--ɾʱ=======================
end
else
begin --޸ͲӦʱ䣬ͱ׼
    set @sql='update tbl_shop2Area set ResponseTime ='+cast( @responseTime as varchar(50))+',DeliveryMoney ='+cast( @deliverMoney as varchar(50))+' where id in ('+@Id+')'
    exec(@sql)
	if @@error = 0 
	set @result = 1
end 
select @result 
--select * from tbl_shop2Area where restid=6726 order by id desc
--select * from tbl_shop2Area order by id desc
--update tbl_shop2Area set restid = 6726 where id = 15048





GO
/****** :  StoredProcedure [dbo].[dp_DeliveryAreaCount]    ű: 02/01/2010 14:20:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--͹ͲͷΧ
CREATE proc [dbo].[dp_DeliveryAreaCount]
@shopId int = 0
as
select count(id) as totalCount from v_Shop_DeliverArea where shopId =@shopId


GO
/****** :  StoredProcedure [dbo].[dp_DeliveryAreaDelete]    ű: 02/01/2010 14:20:30 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


--ɾ͹¥Χ
CREATE proc [dbo].[dp_DeliveryAreaDelete]
@id varchar(8000)='',
@result int = 0 output
as
 declare @sql varchar(8000)

 set @sql='delete from tbl_shop2Area where id in ('+@id+')'
exec(@sql)
if @@error = 0
set @result = 1
select @result


GO
/****** :  StoredProcedure [dbo].[dp_GetBulletinByRestId]    ű: 02/01/2010 14:20:30 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE proc [dbo].[dp_GetBulletinByRestId]
@restId int = 0
as
select top 1 id,title from tbl_restBulletin 
where restid = @restId and classId = 2 and endTime >=Convert(varchar(10),getDate(),120)
order by id

GO
/****** :  StoredProcedure [dbo].[dp_GetCacelOrder]    ű: 02/01/2010 14:20:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--ȡ϶Ϣ
CREATE proc [dbo].[dp_GetCacelOrder]
@startDate varchar(120) ='',
@endDate varchar(120) = '',
@state int = -1,-- -1
@pageSize int = 0,
@pageIndex int = 1  
as
declare @sql varchar(8000)
declare @sql1 varchar(8000)
declare @where varchar(8000)
set @where = ''
if @startDate <>'' and @endDate <> ''
begin
set @endDate = Convert(varchar(120),Dateadd(d,1,Convert(Datetime,@endDate)),120)
set @where = @where + ' and date_time between '''+ @startDate +''' and '''+ @endDate +''''
end
set @where = @where + ' and state =' + str(@state) 
set @sql1 = 'select vOrder.*,dbo.f_GetOperatorUserName(operatorRole,operatorUserId) as operatorUserName,
tblcancelType.Name as CancelName,case operatorRole when 1 then ''û'' when 2 then ''͹ݹԱ''
when 3 then ''ͷ'' end as operatorRoleName
from v_Order_GeneralList as vOrder left join tbl_OrderCancelType as tblcancelType
on vOrder.CancelType = tblcancelType.id where 1=1' + @where

--ҳ
declare @startRow int
declare @endRow int
declare @totalCount int
declare @countPage int
--¼
declare @Sql2 nvarchar(4000)
SET @Sql2 = N'SELECT @TotalCountOut=Count(a.id) FROM ('+ @sql1 +') as a'
EXEC sp_executesql @Sql2, N'@TotalCountOut INT OUTPUT', @TotalCountOut=@TotalCount OUTPUT

if @pageSize = 0
begin
	set @countPage = 0
	set @pageIndex = 1
	set @sql = @sql1
end
else
begin
	set @countPage = ceiling((@totalCount+0.0)/@pageSize)
	--ǰҳҳ趨ǰҳҳ
	if @pageIndex > @countPage set @pageIndex = @countPage
	if @pageIndex < 1 set @pageIndex =1 
	set @startRow = (@pageIndex-1)*@pageSize+1
	set @endRow = @pageIndex * @pageSize
	set @sql ='select * from(
	select * ,() over(order by id desc) as row from ('+ @sql1 +') as b) as t 
	where row between'+ str(@startRow) +' and '+ str(@endRow)
end
--select @sql
exec (@sql)
SELECT @PageIndex AS PageIndex, @PageSize AS PageSize, @TotalCount AS TotalCount, @countPage AS TotalPage






GO
/****** :  StoredProcedure [dbo].[dp_GetDoodiiDeductByRestId]    ű: 02/01/2010 14:20:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE proc [dbo].[dp_GetDoodiiDeductByRestId]
@restId int = 0,
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1'
as
select * ,orderTotal*deduct as doodiiDeduct from(
select isnull((
 select sum(vo.total) from v_Order_GeneralList vo
where vo.state=1 and vo.deliverDate between @startDate and @endDate
and vo.restid=signup.restid 
and vo.deliverDate between signup.startDate 
and Convert(varchar(10),dateadd(d,1,signUp.fallInDate),120)
 ),0) as orderTotal,
isnull((
 select count(vo.id) from v_Order_GeneralList vo
where vo.state=1 and vo.deliverDate between @startDate and @endDate
and vo.restid=signup.restid 
and vo.deliverDate between signup.startDate 
and Convert(varchar(10),dateadd(d,1,signUp.fallInDate),120)
 ),0) as orderCount,
signUp.startDate,signUp.fallInDate,
signUp.deduct from tbl_restSignUpHistory as signUp
 where restid=@restId
)as t

GO

/****** :  StoredProcedure [dbo].[dp_getIntegral_Operate]    ű: 02/01/2010 14:20:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<ylm>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[dp_getIntegral_Operate]
	-- Add the parameters for the stored procedure here
@mail varchar(50)='',
@pagesize int =1,
@pageindex int=1
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	declare @sql nvarchar(4000)
    declare @where varchar(8000)
    declare @totalcount int
    declare @startRowId int
    declare @endRowId int
    declare @SqlCount nvarchar(4000)
     declare @totalpage int
--
    set @where =''
    if @mail <>''  set @where=' where u.email like ''%'+ @mail+ '%'''
--    
--
--
    set @sqlCount='select @TotalCountOut=count(*) from tbl_userIntegralDetail as ud left join tbl_user as u on ud.userid=u.id '+@where
    EXEC sp_executesql @Sqlcount, N'@TotalCountOut INT OUTPUT', @TotalCountOut=@totalcount OUTPUT
      --TotalPage
    
		SET @TotalPage = CEILING((@totalcount + 0.0) / @PageSize)

		--CheckPageIndex
		IF @PageIndex < 1 SET @PageIndex = 1
		IF @PageIndex > @TotalPage SET @PageIndex = @TotalPage

		--RowRange
		SET @StartRowId = (@PageIndex - 1) * @PageSize + 1
		set @EndRowId = @StartRowId + @PageSize - 1
       set @sql='select * from 
        (select ud.*,isnull(u.email,'''') as mail,s.truename,() over(order by ud.id desc) as RowId from tbl_userIntegralDetail as ud left join tbl_user as u on ud.userid=u.id left join tbl_systemuser as s on ud.adminid=s.id '+@where+')
         as t where RowId >= '+cast(@StartRowId as varchar(5))+' and RowId <='+cast(@endRowId as varchar(5))

       exec (@sql)
       select @totalpage as TotalPage,@pageindex as PageIndex
END




GO
/****** :  StoredProcedure [dbo].[dp_getRestMenuList]    ű: 02/01/2010 14:20:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[dp_getRestMenuList]
@classID int=-1,
@restId int=0,
@keyWord varchar(30)='',
@deliverDay int=0,
@sort int=0,
@orderByPrice float=0,
@pageIndex int=1,
@pageSize int=12,
@manage int=0 --0ȡò˵1ȡü۸
 AS
begin
declare @sqlCount varchar(8000),@sql varchar(8000),@sqlMain varchar(8000),@where varchar(8000)
declare @columnStr varchar(8000),@orderByStr varchar(8000)
set @sqlMain = ''
set @where = ''
set @columnStr = 't.id,t.name,t.price,t.restID,t.classID,t.calorie,t.pabulum,t.taste,t.menuPhotoID,t.state,t.orderNumber
	,t.deliverDay,t.amount,(case when c.id>0 then c.Name else ''ĬϷ'' end) as className'

if @restID>0
	set @where=@where+' and t.restId='+ ltrim(str(@restId))
if @classID>-1 
	 set @where=@where+'and t.classID='+ltrim(str(@classID))
if len(@keyWord)>1 begin
     set @where=@where+' and t.name like ''%'+@keyWord+'%'''
end
if @deliverDay>0
	set @where=@where+' and (t.deliverDay & ' + Cast(@DeliverDay as varchar(8000)) + ')>0' -- 1,2,4,8,16,32,64 δһ


if @manage=0 begin--ȡò˵
	if @sort =0
		 set @orderByStr=' t.orderNumber desc,t.price '
	if @sort =1
		 set @orderByStr=' t.price '
	if @sort =2
		 set @orderByStr=' t.price desc'
	if @sort =3
		set @orderByStr=' t.name '
	if @orderByPrice>0 
		set @orderByStr=' orderPrice '

	set @sqlCount = ' declare @PageIndex int,@PageSize int,@TotalCount int,@TotalPage int,@startRow int,@endRow int'
	set @sqlCount = @sqlCount + ' set @PageIndex=' + Cast(@PageIndex as varchar(8000))
	set @sqlCount = @sqlCount + ' set @PageSize=' + Cast(@PageSize as varchar(8000))
	set @sqlCount = @sqlCount + ' select @TotalCount=Count(t.id) from tbl_menuTable t left join tbl_menuClass c on t.classId=c.id  where t.state=0 '
	set @sqlCount = @sqlCount + @where 
				+ ' set @TotalPage=ceiLing((@TotalCount+0.0)/@PageSize)
					if @pageIndex<1 set @pageIndex=1
					if @pageIndex>@totalPage set @pageIndex=@totalPage
					set @startRow = (@PageIndex-1)*@PageSize+1
					set @endRow = @PageIndex*@PageSize '
	if @orderByPrice>0 begin
		set @sql = '
			select * from (	
				select *,() over(order by ' + @orderByStr + ') as row from (	
					select  ' + @columnStr + ' ,1 as orderPrice
						from tbl_menuTable t left join tbl_menuClass c on t.classId=c.id  
					where t.state=0 and t.price = ' + Cast(@orderByPrice as varchar(8000)) 
						+ @where +
				'	union
					select  ' + @columnStr + ' ,2 as orderPrice
						from tbl_menuTable t left join tbl_menuClass c on t.classId=c.id  
					where t.state=0 and t.price != ' + Cast(@orderByPrice as varchar(8000)) 
					+ @where +
				') as ta 
			) as tb  where row between @startRow and @endRow '
	end else begin
		set @sql = ' select * from (
			select ' + @columnStr + ',() over(order by ' + @orderByStr + ') as row from tbl_menuTable t 
				left join tbl_menuClass c on t.classId=c.id  
			where t.state=0 ' + @where 	+ 
		') as t  where row between @startRow and @endRow '
	end
	set @sql = @sqlCount + @sql + ' select @PageIndex as PageIndex,@PageSize as PageSize,@TotalCount as TotalCount,@TotalPage as TotalPage '
end else if @manage=1 begin--ȡò˵۸б
	set @sql = ' select distinct t.price from tbl_menuTable t 
					left join tbl_menuClass c on t.classId=c.id  
				where t.state=0 ' + @where
end
exec(@sql)
end

GO
/****** :  StoredProcedure [dbo].[dp_GetServerMain]    ű: 02/01/2010 14:20:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







-- =============================================
-- Author:		ylm
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[dp_GetServerMain]
	-- Add the parameters for the stored procedure here
	@UserId int =0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
if @userid > 0
    select isnull(sum(WaitOrderOld),0)as WaitOrderOld,isnull(sum(WaitOrderPre),0)as WaitOrderPre,isnull(sum(waitorder),0)as WaitOrder,
isnull(sum(OverOrder),0) as OverOrder,isnull(sum(CancelOrder),0) as CancelOrder
,isnull(sum(falseOrder),0) as FalseOrder,isnull(sum(newmessage),0) as newmessage,isnull(sum(finecommend),0)as finecommend,
isnull(sum(middlecommend),0) as middlecommend,isnull(sum(badcommend),0) as badcommend,isnull(sum(usercomplain),0) as usercomplain,
isnull(sum(newnotice),0) as newnotice,isnull(sum(oldnotice),0) as oldnotice,
isnull(sum(noticing),0) as noticing
 from tbl_rest_Manager where restid in(
SELECT id  FROM tbl_restaurant WHERE userID=@userid   UNION  SELECT restID FROM tbl_restUser WHERE userID=@userid) and restid in
(select id from tbl_restaurant  where isdelete=0 and sclassid=3)

select count(*) as stateCount,state from
(
select dbo.f_getShopBusinessStateStr(id) as state from tbl_restaurant
where (id in (select restid from tbl_restUser where userid=@userid
and restid in(select id from tbl_restaurant where state =1 and sclassId =3 and isdelete = 0))
or userid = @userid )
and state = 1 and sclassid = 3 and isdelete = 0
) as t group by state

select (select count(*) from tbl_giftOrder   
where state=0 and isDelete=0)as waitorder,(select count(*) from tbl_giftOrder   
where state=1 and isDelete=0)as okorder,(select count(*) from tbl_giftOrder   
where state=-1 and isDelete=0)as falseorder

END








GO
/****** :  StoredProcedure [dbo].[dp_ManagerArea_get]    ű: 02/01/2010 14:20:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<ylm>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[dp_ManagerArea_get]
	-- Add the parameters for the stored procedure here
	@userid int =0,
    @pageindex int=1,
    @pagesize int=1
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	declare @Sql nvarchar(4000)
	declare @totalcount int
    declare @startRowId int
    declare @endRowId int
    declare @TotalPage int
    declare @Sqlcount nvarchar(4000)

    -- Insert statements for procedure here
	 --TotoalCount 

        set @Sqlcount= 'select @TotalCountOut=count(manager.id) from tbl_AreaManager2Area as manager left join v_location_Area as v on manager.areaid=v.id where manager.userid='+cast(@userid as varchar(50))
        EXEC sp_executesql @Sqlcount, N'@TotalCountOut INT OUTPUT', @TotalCountOut=@totalcount OUTPUT
        --TotalPage
		SET @TotalPage = CEILING((@TotalCount + 0.0) / @PageSize)
	
		--CheckPageIndex
		IF @PageIndex < 1 SET @PageIndex = 1
		IF @PageIndex > @TotalPage SET @PageIndex = @TotalPage

		--RowRange
		SET @StartRowId = (@PageIndex - 1) * @PageSize + 1
		set @EndRowId = @StartRowId + @PageSize - 1

        set @sql='select * from(
select manager.id as managerid,manager.userid,manager.areaid,v.name,v.regionname,v.zonename,() OVER (order by manager.id desc) as RowId from tbl_AreaManager2Area as manager left join v_location_Area as v on manager.areaid=v.id where manager.userid='+cast(@userid as varchar(50))+'
) as t where RowId>=' + CAST(@StartRowId AS VARCHAR(5)) + ' and RowId<=' + CAST(@EndRowId AS VARCHAR(5))
       exec(@sql)
       select @totalpage as TotalPage,@pageindex as PageIndex, @PageSize as PageSize,@totalcount as totalcount
END




GO
/****** :  StoredProcedure [dbo].[dp_NewShopList]    ű: 02/01/2010 14:20:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		wangjh
-- Create date: 2008-8-19
-- Description:	µˣǩԼʱ룬ǩԼʱ併ֻʾǰn 
-- =============================================
CREATE PROCEDURE [dbo].[dp_NewShopList]
@areaId int = 0,
@num int =0 --ʾǰ
AS
BEGIN
declare @where varchar(8000)
set @where =''
declare @where1 varchar(8000)
set @where1 =''
declare @sql varchar(8000)

if @areaId<>0
set @where = ' and shop2Area.areaid ='+str(@areaId)
if @num <> 0
set @where1 = ' and rowid between 1 and '+str(@num)

set @sql='SELECT *,[dbo].[f_getShopBusinessStateStr](id) as BusinessStateStr FROM (
select  () over(order by signUp.date_time desc,rest.rank desc) as rowId,
rest.id,Rest.name AS RestName, Rest.logoPhotoID, Rest.address, 
Rest.SClassID, Rest.note,class.name as className,
shop2Area.areaid,shop2Area.deliveryMoney,shop2Area.responseTime from tbl_shop2area as shop2Area  
left join tbl_restaurant as rest on rest.id = shop2area.restid
left join tbl_restSignUp as signUp on rest.id = signUp.restid
left join  tbl_restClass AS Class ON Class.id = rest.classID where sclassid= 3  and state = 1 and rest.isdelete = 0'+ @where +') as a 
where 1=1'+@where1
exec(@sql)
   
END



GO
/****** :  StoredProcedure [dbo].[dp_NotinManagerArea]    ű: 02/01/2010 14:20:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<ylm>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[dp_NotinManagerArea]
	-- Add the parameters for the stored procedure here
	@zoneId int =0,
    @Managerid int=0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	select * from v_location_Area where state=1 and isdelete=0 and (id not in(select areaid from tbl_AreaManager2Area where  userid=@Managerid)) and zoneid=@zoneid order by name asc
END




GO
/****** :  StoredProcedure [dbo].[dp_orderAreaList]    ű: 02/01/2010 14:20:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
 CREATE proc [dbo].[dp_orderAreaList]
@startDate varchar(120)='',
@endDate varchar(120)='',
@restId int = 0,
@state int = -3,
@userId int = 0,
@areaName varchar(120)=''
as
declare @where varchar(8000)
set @where = ''
if @startDate <>'' and @endDate <>''
begin
set @endDate =convert(varchar(10), cast(@endDate as datetime), 120)+' 23:59:59'
set @where = @where+' and date_time between '''+ @startDate +''' and '''+ @endDate +''''
end
if @restId<>''
set @where =@where+ ' and restid ='''+ str(@restId) +''''
if @state <>-3
set @where = @where+' and state ='''+ str(@state) +''''
if @areaName<>''
begin
set @areaName ='%'+ @areaName +'%'
set @where =@where+ ' and (areaName like '''+ @areaName +''' or qpy like '''+ @areaName +''' or spy like '''+ @areaName +''')'
end
if @userid <>0
begin
set @where = @where +' and restid in ((select restid from tbl_restUser where userid ='''+ str(@userid) +''') union(select id from tbl_restaurant where userid = '''+ str(@userId) +'''))'
end
declare @sql varchar(8000)
set @sql='select areaid,areaname,count(id) as orderCount from v_Order_GeneralList 
where areaid <>0'+ @where +' group by areaid,areaname'
exec(@sql)


GO
/****** :  StoredProcedure [dbo].[dp_OrderCancel_get]    ű: 02/01/2010 14:20:43 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [dbo].[dp_OrderCancel_get]
	@orderID bigint=0	
as 
begin	

	select * from v_order_generalList
	where id=@orderID
	
end

GO
/****** :  StoredProcedure [dbo].[dp_OrderCancel_set]    ű: 02/01/2010 14:20:43 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [dbo].[dp_OrderCancel_set]
	@orderID bigint=0,
	@OperatorRole int=0,
	@OperatorUserId bigint=0, --ûID
	@CancelType int=0, --Ĭ0Ϊ
	@CancelNote varchar(8000)='', --˵
	@UpdateTime datetime=getdate ,--ʱ
	@OperatorUserIP varchar(120)=''
as 
begin	
	declare @orderType int,@result int	
	select @orderType=0,@result=1
	select @ordertype=orderType from v_order_generalList where id=@orderID
	if (@ordertype=1)
		update tbl_order set OperatorRole=@OperatorRole,OperatorUserId=@OperatorUserId
			,CancelType=@CancelType
			,CancelNote=@CancelNote
			,UpdateTime=@UpdateTime
			,OperatorUserIP =@OperatorUserIP
		where id=@orderID
	else if (@orderType=2)
		update tbl_suiteMenuOrder set OperatorRole=@OperatorRole,OperatorUserId=@OperatorUserId
			,CancelType=@CancelType
			,CancelNote=@CancelNote
			,UpdateTime=@UpdateTime
			,OperatorUserIP =@OperatorUserIP
		where id=@orderID
	else
		set @result=0
	if (@ordertype=1) or (@orderType=2)
		update tbl_runningOrder set OperatorRole=@OperatorRole,OperatorUserId=@OperatorUserId
			,CancelType=@CancelType
			,CancelNote=@CancelNote
			,UpdateTime=@UpdateTime
			,OperatorUserIP =@OperatorUserIP
		where id=@orderID
	select @result
end



GO
/****** :  StoredProcedure [dbo].[dp_OrderCancelType_get]    ű: 02/01/2010 14:20:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[dp_OrderCancelType_get]
	@id int=0
as
begin
	if @ID>0
		select * from tbl_orderCancelType where id=@id
	else
		select * from tbl_orderCancelType

end


GO
/****** :  StoredProcedure [dbo].[dp_PremiumDown_Up]    ű: 02/01/2010 14:20:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[dp_PremiumDown_Up]
	-- Add the parameters for the stored procedure here
	@id int=0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	if @id>0
update tbl_premium set DownNum=DownNum+1 where id=@id
if @@error >0
select  1
else
select  0
END

GO
/****** :  StoredProcedure [dbo].[dp_QYJL_get]    ű: 02/01/2010 14:20:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<ylm>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[dp_QYJL_get]
	-- Add the parameters for the stored procedure here
	
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	select id,name,truename from V_QYJL where code='qyjl' order by truename
END




GO
/****** :  StoredProcedure [dbo].[dp_Reports_GetHoldOrderUserDefail]    ű: 02/01/2010 14:20:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Venson>
-- Create date: <2008-6-19>
-- Description:	<Ϳͻ춯ͳƣȶͻϸ>
-- =============================================
CREATE PROCEDURE [dbo].[dp_Reports_GetHoldOrderUserDefail] 
	@Date datetime,
	@AreaId bigint
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    select distinct(UserId), UserEmail,
	(
	select top 1 ContactPerson+','+ContactPhone + ' ' + ContactMobile
		+ ',' + RegionName + ' ' + AreaName + ' ' + Address
	from v_userAddress where userid=orders.userID order by PostTime desc
	) as UserAddress,
	(
	select top 1 date_time from v_Order_GeneralList
	where userID=orders.userID and state=1 order by id
	) as FirstDateTime,
	(
	select top 1 date_time from v_Order_GeneralList
	where userID=orders.userID and state=1 order by id desc
	) as LastDateTime,
	(
	select count(id) from v_Order_GeneralList
	where userID=orders.userID and state=1
	) as OrderCount
	from v_Order_GeneralList as orders
	where state=1 and userid<>0 and areaid=@AreaId and date_time<@Date and date_time>=@Date-6
END

GO
/****** :  StoredProcedure [dbo].[dp_Reports_GetLostOrderUserDefail]    ű: 02/01/2010 14:20:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<venson>
-- Create date: <2008-6-19>
-- Description:	<Ϳͻ춯ͳƣʧͻϸ>
-- =============================================
CREATE PROCEDURE [dbo].[dp_Reports_GetLostOrderUserDefail]
	@Date datetime,
	@AreaId bigint
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	select distinct(UserId), UserEmail,
	(
		select top 1 ContactPerson+','+ContactPhone + ' ' + ContactMobile
			+ ',' + RegionName + ' ' + AreaName + ' ' + Address
		from v_userAddress where userid=orders.userID order by PostTime desc
	) as UserAddress,
	(
		select top 1 date_time from v_Order_GeneralList
		where userID=orders.userID and state=1 order by date_time
	) as FirstDateTime,
	(
		select top 1 date_time from v_Order_GeneralList
		where userID=orders.userID and state=1 order by date_time desc
	) as LastDateTime,
	(
		select count(id) from v_Order_GeneralList
		where userID=orders.userID and state=1
	) as OrderCount
	from v_Order_GeneralList as orders
	where date_time<@Date-6 and userID<>0 and state=1 and areaId=@AreaId
		and userID not in(
			select userID
			from v_Order_GeneralList
			where date_time>=@Date-6 and date_time<@Date+1 and userID<>0
				and state=1 and areaId=@AreaId
		)
END

GO
/****** :  StoredProcedure [dbo].[dp_Rest_Manager]    ű: 02/01/2010 14:20:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








CREATE PROC [dbo].[dp_Rest_Manager]
AS
DECLARE @startDate  VARCHAR(120)
DECLARE @endDate    VARCHAR(120)
SET @startDate = CONVERT(VARCHAR(10), GETDATE(), 120)
SET @endDate = CONVERT(VARCHAR(10), DATEADD(d, 1, GETDATE()), 120)
UPDATE tbl_rest_manager
SET    waitOrder = (
           SELECT COUNT(id)
           FROM   v_Order_GeneralList
           WHERE  STATE = 0
                  AND restid = tbl_rest_manager.restid
                  AND date_time BETWEEN @startDate AND @endDate
                  AND deliverDate BETWEEN @startDate AND @endDate
       ),
       waitOrderPre = (
           SELECT COUNT(id)
           FROM   v_Order_GeneralList
           WHERE  STATE = 0
                  AND restid = tbl_rest_manager.restid
                  AND date_time >= @startDate
                  AND deliverDate >= @endDate
       ),
       waitOrderOld = (
           SELECT COUNT(id)
           FROM   v_Order_GeneralList
           WHERE  STATE = 0
                  AND restid = tbl_rest_manager.restid
                  AND date_time < @startDate
       ),
       overOrder = (
           SELECT COUNT(id)
           FROM   v_Order_GeneralList
           WHERE  STATE = 1
                  AND date_time BETWEEN @startDate AND @endDate
                  AND deliverDate BETWEEN @startDate AND @endDate
                  AND restid = tbl_rest_manager.restid
       ),
       cancelOrder = (
           SELECT COUNT(id)
           FROM   v_Order_GeneralList
           WHERE  STATE = -1
                  AND date_time BETWEEN @startDate AND @endDate
                  AND deliverDate BETWEEN @startDate AND @endDate
                  AND restid = tbl_rest_manager.restid
       ),
       falseOrder = (
           SELECT COUNT(id)
           FROM   v_Order_GeneralList
           WHERE  STATE = -2
                  AND date_time BETWEEN @startDate AND @endDate
                  AND deliverDate BETWEEN @startDate AND @endDate
                  AND restid = tbl_rest_manager.restid
       ),
       newMessage = (
           SELECT COUNT(id)
           FROM   tbl_ShopComments
           WHERE  isdelete = 0
                  AND auditing = 0
                  AND replySource = 0
                  AND shopid = tbl_rest_manager.restid
       ),
       fineCommend = 0,
       middleCommend = 0,
       badCommend = 0,
       userComplain = (
           SELECT COUNT(id)
           FROM   tbl_userComplain
           WHERE  isdelete = 0
                  AND STATE = 0
                  AND tbl_userComplain.restid = tbl_rest_manager.restId
       ),
       newNotice = (
           SELECT COUNT(id)
           FROM   tbl_restBulletin
           WHERE  STATE = 0
                  AND isdelete = 0
                  AND tbl_restBulletin.restid = tbl_rest_manager.restId
       ),
       oldNotice = (
           SELECT COUNT(id)
           FROM   tbl_restBulletin
           WHERE  endtime < CONVERT(VARCHAR(10), GETDATE(), 120)
                  AND STATE = 1
                  AND isdelete = 0
                  AND tbl_restBulletin.restid = tbl_rest_manager.restId
                  and classid in(1,2,3)
       ),
       noticing = (
           SELECT COUNT(id)
           FROM   tbl_restBulletin
           WHERE  endtime >= CONVERT(VARCHAR(10), GETDATE(), 120)
                  AND STATE = 1
                  AND isdelete = 0
                  AND startTime <= CONVERT(VARCHAR(10), GETDATE(), 120)
                  AND tbl_restBulletin.restid = tbl_rest_manager.restId
                  and classid in(1,2,3)
       )
       
       --select * from tbl_rest_manager
       --select * from tbl_ShopComments
       --select * from tbl_restBulletin
       --select * from tbl_userComplain
       --select * from v_Order_GeneralList where date_time >=convert(varchar(10),getdate(),120)
       
       --select * from tbl_rest_manager where 
       







GO
/****** :  StoredProcedure [dbo].[dp_rest_manager_CommendUpdate]    ű: 02/01/2010 14:20:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		wangjh
-- Create date: 2008-10-24
-- Description:	޸Ĳ͹ҳʾ
-- =============================================
CREATE PROCEDURE [dbo].[dp_rest_manager_CommendUpdate]
	@restid int = 0,
	@state int = 0,--1--2--3,--0ȫ
	@userId int = 0
AS
BEGIN
	--жûǷǲ͹ݹԱ
	if((select count(*) from tbl_restUser where restid = @restid and userid=@userid)<=0
	and (select count(id) from tbl_restaurant where id = @restid and userid = @userid)<=0)
    begin
		select 0 return
	end
	--ǲ͹ݹԱ,޸Ĳ͹ҳʾ
	if @state = 2 begin
	update tbl_rest_manager set middleCommend = 0 where restid = @restid
	end 
	else if @state = 1 begin
	update tbl_rest_manager set fineCommend = 0 where restid = @restid
	end
	else if @state = 3 begin
	update tbl_rest_manager set badCommend = 0 where restid = @restid
	end
	else --ȫΪ0
	begin
	update tbl_rest_manager set badCommend = 0,fineCommend = 0,middleCommend = 0 where restid = @restid
	end
	if @@error <>0
	begin
	  select -1 return
	end
	else begin
		select 1 return
	end
END
--select * from tbl_rest_manager

GO
/****** :  StoredProcedure [dbo].[dp_Rest_ManagerSelect]    ű: 02/01/2010 14:20:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE proc [dbo].[dp_Rest_ManagerSelect]
@userId int = 0
as
select * from tbl_rest_Manager
where restid in(select restid from tbl_restuser where userid = @userId and restid 
in(select id from tbl_restaurant where state =1 and sclassId =3 ))

select count(*) as stateCount,state from(
select dbo.f_getShopBusinessStateStr(id) as state from tbl_restaurant
where (id in (select restid from tbl_restUser where userid=@userId
and restid in(select id from tbl_restaurant where state =1 and sclassId =3 and isdelete = 0))
or userid = @userId )
and state = 1 and sclassid = 3 and isdelete = 0
) as t group by state

GO
/****** :  StoredProcedure [dbo].[dp_restSignUpHistoryList]    ű: 02/01/2010 14:20:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--ǩԼ͹б
CREATE proc [dbo].[dp_restSignUpHistoryList]
@restId int=0
as
select signUp.*,sysUser.name as userName,
sys.nickName as operateName
from tbl_restSignUpHistory as signUp
left join tbl_systemUser as sysUser on sysUser.id = signUp.userId
left join tbl_SystemUser as sys on sys.id = signUp.operateUserId
where signUp.restid = @restId order by signUp.id desc






GO
/****** :  StoredProcedure [dbo].[dp_restSignUpList]    ű: 02/01/2010 14:20:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--ǩԼ͹б
CREATE proc [dbo].[dp_restSignUpList]
@restName varchar(120)='',
@type int = 0 --0ȫǩԼ͹ݣ1һµڵĲ͹ݣ2ѵڲ͹
as
declare @where varchar(8000)
declare @startDate varchar(120)
declare @endDate varchar(120)
set @where = ''
if @restName <>''
begin
set @restName = '%'+ @restName +'%'
set @where =@where+ ' and rest.name like '''+ @restName +''''
end
if @type =1
begin
set @startDate = Convert(varchar(10),getdate(),120)
set @EndDate = Convert(varchar(10),dateadd(M,1,getdate()),120) +' 23:59:59'
set @where =@where+ ' and signUp.fallInDate between '''+ @startDate +''' and '''+ @EndDate +''''
end
if @type = 2
begin
set @where =@where+ ' and signUp.fallInDate < getDate()'
end

declare @sql varchar(8000)
set @sql ='select () over(order by signUp.fallInDate) as row, signUp.*,sysUser.name as userName,rest.name as restName
from tbl_restSignUp as signUp
left join tbl_restaurant as rest on rest.id = signUp.restId
left join tbl_systemUser as sysUser on sysUser.id = signUp.userId
where rest.isdelete = 0 and rest.sclassID=3'+@where
exec(@sql)



GO
/****** :  StoredProcedure [dbo].[dp_RestState_chang]    ű: 02/01/2010 14:20:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<ylm>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[dp_RestState_chang]
	-- Add the parameters for the stored procedure here
	@state int,
    @shopid int =0,
    @content varchar(8000)='',
    @oretime varchar(50)='',
    @userid int =0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
 
	update tbl_ShopBusinessState set state=@state,content=@content,restoretime=@oretime,updateuserid=@userid,updatetime=getdate() where shopid=@shopid

   if @@error > 0  
   select 1
   else
   select 0
END



GO
/****** :  StoredProcedure [dbo].[dp_RestState_info]    ű: 02/01/2010 14:20:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<ylm>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[dp_RestState_info]
	-- Add the parameters for the stored procedure here
	@shopid int=0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	if @shopid >0
  select * from tbl_ShopBusinessState where shopid=@shopid
END

GO
/****** :  StoredProcedure [dbo].[dp_RestUserAddBatch]    ű: 02/01/2010 14:20:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--autor:wangjunhong
--date:2008-06-25
CREATE proc [dbo].[dp_RestUserAddBatch]
@userEmail varchar(8000) = '',
@restIDStr varchar(8000) = ''
as
declare @Result int 
set @result = 0
declare @sql varchar(8000)
declare @userId int 
if((select count(id) from tbl_user where email = @userEmail and state<>-1)=0)
begin
set @result = -1
return @result
end
select @userId = id from tbl_user where email = @userEmail and state<>-1
set @sql = 'insert into tbl_restUser(userId,restId)
( 
	select '+ str(@userId) +', id from tbl_restaurant where id in('+@restIDStr+') 
	 and  id not in(select restid from tbl_restUser where userid='+str(@userId)+ ') and sclassId = 3 and isDelete = 0 and state = 1 '
+')'
if @@error =0 set @result = 1
exec (@sql)
select @result




GO
/****** :  StoredProcedure [dbo].[dp_RestUserDeleteBatch]    ű: 02/01/2010 14:20:56 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


--autor:wangjunhong
--date:2008-06-25
CREATE proc [dbo].[dp_RestUserDeleteBatch]
@userEmail varchar(8000) = '',
@restIDStr varchar(8000) = ''
as
declare @Result int 
set @result = 0
declare @sql varchar(8000)
declare @userId int 
if((select count(id) from tbl_user where email = @userEmail)=0)
begin
set @result = -1
return @result
end
select @userId = id from tbl_user where email = @userEmail
set @sql = 'delete from  tbl_restUser where restId in('+@restIDStr+') 
and userid='+str(@userId)
if @@error =0 set @result = 1
exec (@sql)
select @result

GO
/****** :  StoredProcedure [dbo].[dp_restUserHistory]    ű: 02/01/2010 14:20:57 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


--˲͹ݵûЩ͹
CREATE proc [dbo].[dp_restUserHistory]
@restId int =0
as
select top 4 t.restId as Id,restName as name,LogoPhotoId, 
Rate, class.Name as ClassName,signUp.date_time as signUpDate,[dbo].[f_getShopBusinessStateStr](t.restId) as BusinessStateStr 
from(
select restId,restName from v_Order_GeneralList vo
where vo.userid 
in(select userid from v_Order_GeneralList 
where restid =@restId and deliverDate between Convert(varchar(10),dateAdd(d,-7,getdate()),120) 
and convert(varchar(10),dateadd(d,1,getDate()),120) and userid <>0 group by userid) 
and deliverDate  
between Convert(varchar(10),dateAdd(d,-7,getdate()),120)
and convert(varchar(10),dateadd(d,1,getDate()),120) and restId <>@restId
group by restId,restName )as t 
left join tbl_restaurant rest on rest.id = t.restid 
left join tbl_restClass AS Class ON Class.id = rest.classID
left join tbl_restSignUp as signUp on signUp.restid = t.restId
order by rate



GO
/****** :  StoredProcedure [dbo].[dp_runningOrder_clearBefore]    ű: 02/01/2010 14:20:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


create proc [dbo].[dp_runningOrder_clearBefore]
as
delete from tbl_runningOrder where deliverDate<Cast(Convert(varchar(10),getDate(),120) as datetime)




GO
/****** :  StoredProcedure [dbo].[dp_ServiceMain_List]    ű: 02/01/2010 14:20:59 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		ylm
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[dp_ServiceMain_List]
	-- Add the parameters for the stored procedure here
	@UserId int=0,
    @set int=0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
    declare @sql varchar(8000)
    declare @where varchar(8000)
    set @where=' '
    if @set=1
    set @where =@where +' and NewMessage >0'
    if @set=2
    set @where=@where+ ' and finecommend >0'
    if @set=3
    set @where=@where +' and middlecommend>0'
    if @set=4
    set @where=@where +' and badcommend >0' 
    if @set=5
    set @where=@where+' and  newnotice>0'
    if @set=6
    set @where=@where +' and oldnotice >0'
    if @set =7
    set @where=@where+' and noticing >0'
    -- Insert statements for procedure here
	set @sql='select * from tbl_Rest_ManAger   where restid in(
SELECT id  FROM tbl_restaurant WHERE userID='+cast(@userid as varchar(10))+'   UNION  SELECT restID FROM tbl_restUser WHERE userID='+cast(@userid as varchar(10))+') and restid in
(select id from tbl_restaurant  where isdelete=0 and sclassid=3) '+@where
exec(@sql)
--select (@sql)
END

GO
/****** :  StoredProcedure [dbo].[dp_SetUserIsCs]    ű: 02/01/2010 14:21:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE Procedure [dbo].[dp_SetUserIsCs]
   @UserId int=0, 
   @cs int=0
as 
 if @userid >0
update tbl_user set iscs=@cs where id=@userid
if @@error >0
select 1
else
select 0 

GO
/****** :  StoredProcedure [dbo].[dp_Shop_getState]    ű: 02/01/2010 14:21:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<ylm>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[dp_Shop_getState]
	-- Add the parameters for the stored procedure here
	@UserId int =0,
    @shopname varchar(50)='',
    @state int=0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	declare @Sql nvarchar(4000)
	declare @totalcount int
    declare @startRowId int
    declare @endRowId int
    declare @TotalPage int
    declare @where varchar(8000)
    declare @Sqlcount nvarchar(4000)



    set @Sqlcount= 'select count(*)from tbl_ShopBusinessState left join tbl_restaurant as rest left join tbl_restUser as users  where (rest.userID=' + Cast(@UserId as varchar(8000)) + ' or tbl_restaurant.id in (select restID from users where  userID=' + Cast(@userID as varchar(8000)) + '))'
        EXEC sp_executesql @Sqlcount, N'@TotalCountOut INT OUTPUT', @TotalCountOut=@totalcount OUTPUT
    -- Insert statements for procedure here
   select @sqlcount
END


GO
/****** :  StoredProcedure [dbo].[dp_ShopBusinessStateGetStr]    ű: 02/01/2010 14:21:02 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE proc [dbo].[dp_ShopBusinessStateGetStr]
@shopId int = 0
as
if @shopId <> 0
begin
select id as shopId,[dbo].f_getShopBusinessStateStr(id) as stateStr from tbl_restaurant 
where id = @shopId
end
else
begin
select id as shopId,[dbo].f_getShopBusinessStateStr(id) as stateStr from tbl_restaurant 
end


GO
/****** :  StoredProcedure [dbo].[dp_ShopBusinessTime_add]    ű: 02/01/2010 14:21:02 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<ylm>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[dp_ShopBusinessTime_add]
	-- Add the parameters for the stored procedure here
	@shopid int =0,
    @businessTimes varchar(8000) 
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

declare @substr  varchar(300),@m  int,@n  int  
declare @splitStr char
set @splitStr='|'
set  @m=CHARINDEX(@splitStr,@businessTimes)  
set  @n=1
delete from tbl_ShopBusinessTime where shopid=@shopid

WHILE  @m>0  
BEGIN  
      set  @substr=substring(@businessTimes,@n,@m-@n)  
	--select @substr,@restID,left(@substr,5),right(@substr,5)
   if(select count(*) from tbl_ShopBusinessTime where shopid=@shopid and spantime=@substr)=0
   	 insert into tbl_ShopBusinessTime(shopid,startClock,endClock,spantime)values(@shopid,left(@substr,CHARINDEX('-',@substr)-1),right(@substr,len(@substr)-CHARINDEX('-',@substr)),replace(@substr,'.',':')) 
      set  @n=@m+1  
      set  @m=CHARINDEX(@splitStr,@businessTimes,@n)  
END

END



GO
/****** :  StoredProcedure [dbo].[dp_ShopBusinessTimeSelect]    ű: 02/01/2010 14:21:03 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create proc [dbo].[dp_ShopBusinessTimeSelect]
@shopId int = 0
as
select * from tbl_ShopBusinessTime where shopId = @shopId
GO
/****** :  StoredProcedure [dbo].[dp_ShopDeliveryAreaNotIn]    ű: 02/01/2010 14:21:04 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






--ȡڲ͹ͲͷΧڵı׼¥
CREATE proc [dbo].[dp_ShopDeliveryAreaNotIn]
@shopId int = 0,
@RegionId int = 0,
@ZoneId int = 0,
@areaName varchar(120)='',
@provinceId int =0,
@cityId int = 0
as
declare @Where varchar(8000)
set @where =' and provinceId = '+str(@provinceId)+' and cityId='+str(@cityId)
--if @shopId <> 0
--set @where = @where+' and restId = '+str(@shopId)
if @RegionId <> 0
set @where = @where+' and regionId='+ str(@regionId)
if @zoneId <> 0
set @where =@where+ ' and zoneId = '+ str (@zoneId)
if @areaName <>''
begin
set @areaName = '%'+ @areaName +'%'
set @where =@where+' and name like '''+ @areaName +'''OR Spy LIKE '''+ @areaName +''' OR Qpy LIKE '''+ @areaName +''')' 
end

declare @sql varchar(8000)
set @sql = 'select * from v_location_Area where state=1 and (id not in(select areaid from tbl_shop2Area where restId = '+ str(@shopId) +')) '+@where
+' order by name'
exec (@sql)
--set @sql = 1
--select @sql






GO
/****** :  StoredProcedure [dbo].[dp_suiteMenuTable_GetPriceList]    ű: 02/01/2010 14:21:06 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<gcy>
-- Create date: <2008-4-1>
-- Description:	<ȡò˵۸б>
-- =============================================
create procedure [dbo].[dp_suiteMenuTable_GetPriceList]
	@menuID int	
AS
BEGIN	
		select distinct price from tbl_suiteMenuConfig where isDelete=0 and menuID=@menuID
END



GO
/****** :  StoredProcedure [dbo].[dp_suiteMenuTableGet]    ű: 02/01/2010 14:21:07 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--use doodiiv5


-- =============================================
-- Author:		<gcy>
-- Create date: <2008-4-1>
-- Description:	<ȡò˵>
-- =============================================
CREATE PROCEDURE [dbo].[dp_suiteMenuTableGet]	
	@restID bigint=0,
	@classID bigint=-1,	
	@menuID bigint=0,
	@deliverDay int=0,	
	@orderByPrice float=0.0,
	@pageSize int=12,
	@pageIndex int=1,
	@manage int=0 --0ȡò˵1ȡü۸
AS
BEGIN	
declare @sqlCount varchar(8000),@sql varchar(8000),@sqlMain varchar(8000),@where varchar(8000),@orderByStr varchar(8000)
declare @sqlColumn varchar(8000)
set @sqlMain = ''
set @where = ''
set @orderByStr = ''
if @menuID>0
	set @where = @where + ' and smt.ID=' + cast(@menuID as varchar(8000))
if @restID>0
	set @where = @where + ' and smt.restID=' + cast(@restID as varchar(8000))
if @classID>0
	set @where = @where + ' and smt.id in ( select menuID from  tbl_suiteMenuList where classID=' + cast(@classID as varchar(8000)) + ')'

if @deliverDay>0
	set @where = @where + ' and (smt.deliverDay & ' + cast(@deliverDay as varchar(8000)) + ')>0 ' -- 1,2,4,8,16,32,64 δһ
/*if @orderByPrice>0
	set @where = @where + ' and smt.id in(
		( select menuID from suiteMenuConfig where isDelete=0 and menuID=smt.id and price=' + cast(@price as varchar(8000)) + ' )'
*/
/*if @orderByPrice>0
	set @orderByStr = ' dbo.[f_suiteMenuTable_isIncludePrice](smt.id,' + Cast(@orderByPrice as varchar(8000)) + ') desc'
else
	*/
if @manage=0 begin--ȡò˵
	set @orderByStr = ' id desc'
	set @sqlCount = ' declare @PageIndex int,@PageSize int,@TotalCount int,@TotalPage int,@startRow int,@endRow int'
	 + ' set @PageIndex=' + Cast(@PageIndex as varchar(8000))
	 + ' set @PageSize=' + Cast(@PageSize as varchar(8000))
	 
	if @orderByPrice>0 begin --۸ǰ	
		set @sqlCount = @sqlCount + '
			set @TotalCount=(select count(id) from 
			(
				select id from tbl_suitemenuTable smt 
					where smt.isDelete=0 ' + @where + '
					and smt.id in (
						select top 1 menuID from tbl_suiteMenuConfig where isDelete=0 and menuID = smt.id and price=' + cast(@orderByPrice as varchar(8000)) + '
					)
				union
				select id from tbl_suitemenuTable smt 
					where smt.isDelete=0 ' + @where + '
					and smt.id not in (
						select top 1 menuID from tbl_suiteMenuConfig where isDelete=0 and menuID = smt.id and price=' + cast(@orderByPrice as varchar(8000)) + '
					)	
			) as tt) '
	end else begin
		set @sqlCount = @sqlCount + ' select @TotalCount=Count(id) from tbl_suitemenuTable smt where smt.isdelete=0 '
		+ @where  
	end
	set @sqlCount = @sqlCount + ' set @TotalPage=ceiLing((@TotalCount+0.0)/@PageSize)
	if @pageIndex<1 set @pageIndex=1
	if @pageIndex>@totalPage set @pageIndex=@totalPage
	set @startRow = (@PageIndex-1)*@PageSize+1
	set @endRow = @PageIndex*@PageSize '

	set @sqlColumn = ' smt.id,smt.restID,smt.name,smt.photoID,dbo.f_suiteMenuTable_GetPriceListStr(smt.id) as priceStr ,orderNumber'
	if @orderByPrice>0 begin --۸ǰ
		set @sql = '
			select * from (
				select *,row_number() over(order by  orderType desc,orderNumber desc) as row from 
				(
					select ' + @sqlColumn + ',1 as orderType from tbl_suitemenuTable smt 
						where smt.isDelete=0 ' + @where + '
						and smt.id in (
							select top 1 menuID from tbl_suiteMenuConfig where isDelete=0 and menuID = smt.id and price=' + cast(@orderByPrice as varchar(8000)) + '
						)
					union
					select ' + @sqlColumn + ',0 as orderType from tbl_suitemenuTable smt 
						where smt.isDelete=0 ' + @where + '
						and smt.id not in (
							select top 1 menuID from tbl_suiteMenuConfig where isDelete=0 and menuID = smt.id and price=' + cast(@orderByPrice as varchar(8000)) + '
						)	
				) as tt	
			) as t  where row between @startRow and @endRow '
	end else BEGIN
		SET @sqlColumn=@sqlColumn+', row_number() over(order by  id desc) as row'
		set @sql = ''
	end
	set @sqlCount = @sqlCount + ' select @PageIndex as PageIndex,@PageSize as PageSize,@TotalCount as TotalCount,@TotalPage as TotalPage '	
end else if @manage=1 begin--ȡò˵۸б
	set @sql = ' select distinct smc.price from tbl_suitemenuConfig smc 
				left join tbl_suitemenuTable smt on smt.ID=smc.menuid 
			where smt.isDelete=0 and smc.isDelete=0 ' + @where
END
SET @Where='isDelete=0 '+@Where
EXEC  UP_GetDataList @strGetFields=@sqlColumn,@doCount=1,
@tblName='tbl_suitemenuTable as smt',@fldName=@orderByStr, @PageSize=@PageSize, @PageIndex=@PageIndex,@strWhere=@Where
exec(@sqlCount)
--select (@sql)
END

















GO
/****** :  StoredProcedure [dbo].[dp_TopOrderRestList]    ű: 02/01/2010 14:21:08 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		wangjh
-- Create date: 2008-8-19
-- Description:	(ǰµһɶܶ,ʾn)
-- =============================================
CREATE PROCEDURE [dbo].[dp_TopOrderRestList]
@areaId int = 0,
@num int = 0 --ʾǰ
AS
BEGIN
declare @where varchar(8000)
set @where =''
declare @where1 varchar(8000)
set @where1 =''
declare @sql varchar(8000)

if @areaId<>0
set @where = ' and shop2Area.areaid ='+str(@areaId)
if @num <> 0
set @where1 = ' and rowid between 1 and '+str(@num)

declare @startDate varchar(120)
set @startDate = Convert(varchar(10), dateadd(month,-1,getdate()),120)
declare @endDate varchar(120)
set @endDate = dateadd(ms,-3,DATEADD(mm,  DATEDIFF(mm,0,getdate()),  0))
set @sql='select * from(
select  () over(
order by isnull(
(select sum(isnull(total,0)) from v_Order_GeneralList as v 
where v.restid = rest.id 
and v.state = 1   and deliverDate 
between '''+ @startDate +''' and '''+ @endDate +'''
 group by rest.id),0) desc,rest.rank desc
  ) as rowId,
isnull(
(select sum(isnull(total,0)) from v_Order_GeneralList as v where v.restid = rest.id 
and v.state = 1   and deliverDate 
between '''+ @startDate +''' and '''+ @endDate +''' 
and restid = rest.id 
group by rest.id)
,0)as total,[dbo].[f_getShopBusinessStateStr](rest.id) as BusinessStateStr,
rest.id,Rest.name AS RestName, Rest.logoPhotoID, Rest.address, 
Rest.SClassID, Rest.note,class.name as className,
shop2Area.areaid,shop2Area.deliveryMoney,shop2Area.responseTime ,rest.rank
from tbl_restaurant as rest 
left join  tbl_shop2area as shop2Area  
 on rest.id = shop2area.restid
left join tbl_restSignUp as signUp on rest.id = signUp.restid
left join  tbl_restClass AS Class ON Class.id = rest.classID
where sclassid = 3 and state =1 and isdelete = 0 
'+ @where +'
) as t  where 1=1'+@where1
exec( @sql)
END




GO
/****** :  StoredProcedure [dbo].[dp_User_Commend_Area_append]    ű: 02/01/2010 14:21:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		wangjh
-- Create date: 2008-4-29
-- Description:	ûƼ¥Сб
-- =============================================
CREATE proc [dbo].[dp_User_Commend_Area_append]
@id int = 0,
@userId int = 0,
@areaName varchar(8000) = '',
@regionId int = 0,
@photoId int = 0,
@address varchar(8000)=''
as
declare @result int
set @result = 0
if @id = 0 begin
insert into tbl_user_commend_area (userId,areaName,regionid,photoId,address)
values(@userId,@areaName,@regionId,@photoId,@address)
if @@error = 0
set @result = 1
end
else begin
if(@photoId = 0)
select @photoId = photoId from tbl_user_commend_area where id= @id
update tbl_user_commend_area set regionid = @regionId,areaName = @areaName,address = @address,photoId = @photoId ,postTime = getdate(),state =0 where id = @id
if @@error = 0
set @result = 1
end
select @result




	




GO
/****** :  StoredProcedure [dbo].[dp_User_Commend_Area_auditing]    ű: 02/01/2010 14:21:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









-- =============================================
-- Author:		wangjh
-- Create date: 2008-4-29
-- Description:	ûƼ¥С
-- =============================================
CREATE proc [dbo].[dp_User_Commend_Area_auditing]
@id int = 0,
@adminId int = 0,
@state int = 0,-- 0 δˣ-1˲ͨ1ͨ
@zoneId int = 0,
@feedback varchar(8000)='',
@sysCommendAreaId int = 0
as
declare @commendId int
declare @result int
set @result = 0
declare @regionId int
declare @userId int
declare @photoId int
declare @address varchar(8000)
declare @name varchar(8000)
declare @integral int


--
select @integral=userCommendArea from tbl_integralRate
--¥
select @regionid = regionid,@name = areaname,@photoId = photoId,@userid = userid,@address =address
from tbl_user_commend_area where id = @id


if @state =1 --ͨ
begin
	insert into tbl_area (name,photoId,regionId,zoneId,userId,address,provinceID,cityId,state)
	values(@name,@photoId,@regionId,@zoneId,@userId,@address,6,6,2)
	set @commendId = @@identity
	update tbl_area set parentId = @commendId where id=@commendId
	update tbl_user_commend_area set auditingTime =getdate(),auditingAdminId = @adminId,state = 1
		,feedback = @feedback,sysCommendAreaId=@commendId where id = @id
	--exec sp_Member_Integral_UpdateNoReturn @userID,11,@integral,2,0,N'ûƼ¥ƹ',0,@adminID,N'ûƼ¥ƹ'
	exec sp_Member_Integral_UpdateNoReturn @userID,0,13,@integral,N'ûƼ¥ƹ',0,2,@adminID,N'ûƼ¥ƹ'
	if @@error = 0 
	begin
		set @result = 1
	end
end
else
if @state=-1 
begin --˲ͨ
	if @sysCommendAreaId <> 0 
	begin --˲ͨʱͷƼ¥
		select @regionId = regionId,@name = name,@zoneId = zoneId from tbl_area where id = @sysCommendAreaId
		update tbl_user_commend_area set auditingTime = getdate(),auditingAdminId = @adminId,state = -1
		,feedback = @feedback,syscommendAreaId = @sysCommendAreaId,regionId = @regionId where id=@id
		if @@error =0
		begin
			set @result = 1
		end
	end
	else
	begin --˲ͨʱͷƼ¥
		update tbl_user_commend_area set auditingTime = getdate(),auditingAdminId = @adminId,state = -1
		,feedback = @feedback where id=@id
		if @@error =0
		begin
			set @result = 1
		end
	end
end
else
begin--ش
	delete from tbl_area where id = (select syscommendAreaId from tbl_user_commend_area where id =@id ) 
	update tbl_user_commend_area set auditingTime = getdate(),auditingAdminId = @adminId,state = 0
	,feedback = '',syscommendAreaId = 0 where id=@id
	set @integral = -@integral
	exec sp_Member_Integral_UpdateNoReturn @userID,0,-13,@integral,N'ûƼ¥ƹ',0,2,@adminID,N'ûƼ¥ƹ'
	if @@error =0
	begin
		set @result = 1
	end
end
select @result














GO
/****** :  StoredProcedure [dbo].[dp_User_Commend_Area_getInfo]    ű: 02/01/2010 14:21:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		wangjh
-- Create date: 2008-4-29
-- Description:	ûƼ¥Сid
-- =============================================
create proc [dbo].[dp_User_Commend_Area_getInfo]
@id int = 0,
@SysCommendAreaId int = 0
as
declare @sql varchar(8000)
declare @where varchar(8000)
set @where = ''
if @id<>0
set @where = ' and commendArea.id='+str(@id)
if @SysCommendAreaId <> 0
set @where = ' and commendArea.id='+str(@SysCommendAreaId)

set @sql = 'select commendArea.*,users.email as userEmail,users.nickName as userNickName,
admin.nickName as adminNickName,region.name as regionName from tbl_user_commend_area as commendArea
left join tbl_user as users on commendArea.userId = users.id
left join tbl_systemUser as admin on commendArea.auditingAdminId = admin.id
left join tbl_region as region on commendArea.regionId = region.id where 1=1'
set @sql = @sql + @where
exec(@sql)




	



GO
/****** :  StoredProcedure [dbo].[dp_User_Commend_Area_getList]    ű: 02/01/2010 14:21:13 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		wangjh
-- Create date: 2008-4-29
-- Description:	ûƼ¥Сб
-- =============================================
CREATE proc [dbo].[dp_User_Commend_Area_getList] 
@userId int = 0,
@userEmail varchar(8000) = '',
@state int = -2, -- -2ȫ,-1˲ͨ,0δˣ1ͨ
@regionId int = 0,
@areaName varchar(8000) = '',
@sortType int = 0 ,-- 0ύʱţ1
@pageSize int = 0,
@pageIndex int = 1,
@startDate varchar(120)='',
@endDate varchar(120) =''
as
--ҳϢ
	declare @startRow int
	declare @endRow int
	declare @totalCount int
	declare @countPage int
	set @totalCount = 0
	set @countPage = 0
declare @sortStr varchar(8000)
declare @where varchar(8000)
set @where = ''
declare @sql nvarchar(4000)
if @userId <>0
set @where =@where + ' and commendArea.userId =' + str(@userId)
if @userEmail <> ''
set @where = @where +' and users.email='''+ @userEmail +''''
if @state <> -2
set @where =@where + ' and commendArea.state='+str(@state)
if @regionId <> 0
set @where = @where +' and commendArea.regionId='+ str(@regionId)
if @areaName <> '' begin
set @areaName = '%'+ @areaName +'%'
set @where = @where + ' and commendArea.areaName like '''+ @areaName +''''
end
if @startDate <>'' and @endDate <>''
begin
set @endDate = Convert(varchar(10),@endDate,120)+' 23:59:59'
set @where = @where +' and commendArea.postTime between '''+ @startDate +''' and '''+ @endDate +''''
end
if @sortType <>0 begin
set @sortStr = ' order by a.postTime desc' end
else begin
set @sortStr = ' order by a.postTime' end
declare @tempSql varchar(8000)
set @tempSql = 'select commendArea.*,users.email as userEmail,users.nickName as userNickName,
admin.nickName as adminNickName, region.name as regionName,area.name as sysCommendAreaName ,
area.regionId as sysCommendRegionId, area.regionName as sysCommendRegionName from tbl_user_commend_area as commendArea
left join tbl_user as users on commendArea.userId = users.id
left join tbl_systemUser as admin on commendArea.auditingAdminId = admin.id
left join tbl_region as region on commendArea.regionId = region.id left join v_area as area on commendArea.sysCommendAreaId = area.id'

--¼
	SET @Sql = N'SELECT @TotalCountOut=Count(*) FROM ('+ @tempSql +' where 1=1 '+@where+') as a'
	EXEC sp_executesql @Sql, N'@TotalCountOut INT OUTPUT', @TotalCountOut=@TotalCount OUTPUT
	if @pageSize = 0 begin -- ҳ
	set @sql =@tempSql + ' where 1 = 1' +@where + @sortStr
	end
	else begin -- ҳʼ
	set @countPage = ceiling((@totalCount+0.0)/@pageSize)
	--ǰҳҳ趨ǰҳҳ
	if @pageIndex > @countPage set @pageIndex = @countPage
	if @pageIndex < 1 set @pageIndex =1
	set @startRow = (@pageIndex-1)*@pageSize+1
	set @endRow = @pageIndex * @pageSize
	
	set @sql =' select * from('
	+'select * ,() over('+ @sortStr +') as row 
	from ('+ @tempSql +' where 1=1 '+ @where+') as a'
	+') as t where row between '+ str(@startRow)+' and '+ str(@endRow)
	end
exec(@sql)
--select @sql
SELECT @PageIndex AS PageIndex, @PageSize AS PageSize, @TotalCount AS TotalCount, @countPage AS TotalPage


	





GO
/****** :  StoredProcedure [dbo].[dp_User_Commend_Area_GetTotal]    ű: 02/01/2010 14:21:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








-- =============================================
-- Author:		wangjh
-- Create date: 2008-5-4
-- Description:	ûƼ¥С
-- =============================================
CREATE proc [dbo].[dp_User_Commend_Area_GetTotal] 
@userId int = 0,
@userEmail varchar(8000) = '',
@state int = -2, -- -2ȫ,-1˲ͨ,0δˣ1ͨ
@regionId int = 0,
@areaName varchar(8000)= '',
@startDate varchar(120)='',
@endDate varchar(120) =''
as
declare @where1 varchar(8000)
declare @where varchar(8000)
set @where = ''
set @where1 = ''
if @userId <>0
begin
set @where =@where + ' and commendArea.userId =' + str(@userId)
set @where1 = ' and commendArea.userId =' + str(@userId)
end
if @userEmail <> ''
set @where = @where +' and users.email='''+ @userEmail +''''
if @regionId <> 0
set @where = @where +' and commendArea.regionId='+ str(@regionId)
if @areaName <> '' begin
set @areaName = '%'+ @areaName +'%'
set @where = @where + ' and commendArea.areaName like '''+ @areaName +''''
end
if @startDate <>'' and @endDate<>''
begin
set @endDate = Convert(varchar(10),@endDate,120)+' 23:59:59'
set @where = @where +' and commendArea.postTime between '''+ @startDate +''' and '''+ @endDate +''''
end
declare @sql varchar(8000)
set @sql ='declare @Total int
declare @AudintingNo int
declare @AudintingFail int
declare @AudintingSuccess int'
set @sql =@sql+ ' select @Total = count(commendArea.id) from tbl_user_commend_area as commendArea left join tbl_user as users on commendArea.userId = users.id where 1=1'+@where
set @sql =@sql+' ;select @AudintingNo = count(commendArea.id) from tbl_user_commend_area as commendArea left join tbl_user as users on commendArea.userId = users.id where 1=1 and commendArea.state=0'+@where
set @sql =@Sql+' ;select @AudintingFail = count(commendArea.id) from tbl_user_commend_area as commendArea left join tbl_user as users on commendArea.userId = users.id where 1=1 and commendArea.state=-1'+@where
set @sql =@Sql+' ;select @AudintingSuccess = count(commendArea.id) from tbl_user_commend_area as commendArea left join tbl_user as users on commendArea.userId = users.id where 1=1 and commendArea.state=1'+@where
set @sql = @sql +' ;select @Total as total,@audintingno as AudintingNo,@audintingFail as AudintingFail ,@audintingSuccess as AudintingSuccess'
exec(@sql)



	








GO
/****** :  StoredProcedure [dbo].[dp_User_Commend_Restaurant_append]    ű: 02/01/2010 14:21:17 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<ylm>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE  [dbo].[dp_User_Commend_Restaurant_append] 
	@UserId int=0,
    @RestName varchar(8000)='',
    @ContactTel varchar(8000)='',
    @Address varchar(8000)='',
    @ContactPerson varchar(8000)='',
    @DeliveryInfo varchar(8000)='',
    @MultipleShopInfo varchar(8000)='',
    @Remark varchar(8000)='',
    @SysCommendRestId int =0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	insert into tbl_User_Commend_Restaurant(userid,restname,contacttel,address,contactperson,deliveryinfo,multipleshopinfo,SysCommendRestId,remark)
    values(@UserId,@RestName,@ContactTel,@Address,@ContactPerson,@DeliveryInfo,@MultipleShopInfo,@SysCommendRestId,@remark)
    if @@Rowcount > 0
    select 0
    else
    select 1
END




GO
/****** :  StoredProcedure [dbo].[dp_User_Commend_Restaurant_auditing]    ű: 02/01/2010 14:21:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- =============================================
-- Author:		ylm
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[dp_User_Commend_Restaurant_auditing]
--  0ˣ1ͨ-1˲ͨ
	@State int =0,
    @Id int= 0,
    @AuditingAdminId int =0,
    @FeedBack varchar(50),
    @jifen int=0,
    @userid int=0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
   if @id > 0 
    

    if @state=1

     begin
     exec sp_Member_Integral_UpdateNoReturn 
     @userID=@userid,@source=14,@integral=@jifen,@IntegralClassID=2,@restId=0,@note=N'ûƼ͹ͨƹ',@orderID=0,@adminID=1,@content=N'ûƼ͹ͨƹ'
 
     end
    if @state=0

     begin 
      set @jifen=-@jifen
      exec sp_Member_Integral_UpdateNoReturn 
      @userID=@userid,@source=-14,@integral=@jifen,@IntegralClassID=2,@restId=0,@note=N'Ƽ͹ݣٻ',@orderID=0,@adminID=1,@content=N'Ƽ͹ݣٻ'
     end 
    update tbl_User_Commend_Restaurant set state=@State,AuditingAdminId=@AuditingAdminId,AuditingTime=getdate(),feedback=@feedback where Id=@Id  

  if @@Rowcount >0
select 0
else
 select 1
   
END







GO
/****** :  StoredProcedure [dbo].[dp_User_Commend_Restaurant_getinfo]    ű: 02/01/2010 14:21:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<ylm>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[dp_User_Commend_Restaurant_getinfo]
	@Id int=0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    select rest.*,users.email as UserMail,users.nickname as usernickname from tbl_User_Commend_Restaurant as rest inner join tbl_user  as users on users.id=rest.userid where rest.id=@id
END


GO
/****** :  StoredProcedure [dbo].[dp_User_Commend_Restaurant_getList]    ű: 02/01/2010 14:21:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[dp_User_Commend_Restaurant_getList]
	@PageIndex int =1,
	@PageSize int = 1,
	@RestName varchar(8000)='',
    @UserId int =0,
    @State int =2,
    @email varchar(8000)='',
	@startDate varchar(120)='',
	@endDate varchar(120)='',
    @time int =0 --0Ϊ 1Ϊ
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.  0ȴ 1 ͨ  1 ͨ
	SET NOCOUNT ON;

    declare @Sql nvarchar(4000)
	declare @totalcount int
    declare @startRowId int
    declare @endRowId int
    declare @TotalPage int
    declare @where varchar(8000)
    declare @Sqlcount nvarchar(4000)
    declare @auditing int
    declare @audited int
    declare @jifen int
    declare @Sqlauditing nvarchar(4000)
    declare @Sqlaudited nvarchar(4000)
    declare @by varchar(100)
    if @time =0 set @by='order by rest.PostTime desc'
    if @time =1 set @by='order by rest.PostTime asc' 
    set @where=''
    if @RestName <>'' set @where=@where + ' and rest.RestName like ''%'+@RestName+'%'''
    if @UserId <> 0 set @where =@where + ' and rest.UserId ='+cast(@UserId as varchar(50))
    if @State <> 2 set @where = @where + ' and rest.State ='+cast(@State as varchar(50))
    if @email <>'' set @where=@where+ ' and users.email='''+@email+''''
	if @startDate <>'' and @endDate <>''
	begin
		set @endDate = Convert(varchar(10),@endDate,120)+' 23:59:59'
		set @where =@where + ' and postTime between '''+ @startDate +''' and '''+ @endDate +''''
	end
        select @jifen=UserCommendRestaurant from tbl_integralRate
        if @UserId = 0
         begin
          set @SqlCount='select @totalcountOut= count(*) from tbl_User_Commend_Restaurant as rest inner join tbl_user as users on users.id=rest.userid where 1=1 '+@where
          EXEC sp_executesql @Sqlcount, N'@TotalCountOut INT OUTPUT', @TotalCountOut=@totalcount OUTPUT
          set @Sqlauditing='select @auditingOut=count(*) from tbl_user_commend_restaurant as rest inner join tbl_user as users on users.id=rest.userid where rest.state=0 '+@where
          EXEC sp_executesql @Sqlauditing, N'@auditingOut INT OUTPUT', @auditingOut=@auditing OUTPUT
  
          set @Sqlaudited='select @auditedOut=count(*) from tbl_user_commend_restaurant as rest inner join tbl_user as users on users.id=rest.userid where rest.state=1'+@where
          EXEC sp_executesql @Sqlaudited, N'@auditedOut INT OUTPUT', @auditedOut=@audited OUTPUT

         end
        else
         begin
          set @SqlCount='select @totalcountOut= count(*) from tbl_User_Commend_Restaurant as rest inner join tbl_user as users on users.id=rest.userid where 1=1'+@where
          EXEC sp_executesql @Sqlcount, N'@TotalCountOut INT OUTPUT', @TotalCountOut=@totalcount OUTPUT

          set @Sqlauditing='select @auditingOut=count(*) from tbl_user_commend_restaurant as rest inner join tbl_user as users on users.id=rest.userid where rest.state=0'+@where
          EXEC sp_executesql @Sqlauditing, N'@auditingOut INT OUTPUT', @auditingOut=@auditing OUTPUT

          set @Sqlaudited='select @auditedOut=count(*) from tbl_user_commend_restaurant as rest inner join tbl_user as users on users.id=rest.userid where rest.state=1'+@where
          EXEC sp_executesql @Sqlaudited, N'@auditedOut INT OUTPUT', @auditedOut=@audited OUTPUT
         end

        --TotalPage
		SET @TotalPage = CEILING((@TotalCount + 0.0) / @PageSize)
	
		--CheckPageIndex
		IF @PageIndex < 1 SET @PageIndex = 1
		IF @PageIndex > @TotalPage SET @PageIndex = @TotalPage

		--RowRange
		SET @StartRowId = (@PageIndex - 1) * @PageSize + 1
		set @EndRowId = @StartRowId + @PageSize - 1


     set @sql=
     'select * from (select rest.*,users.email as UserMail,users.nickname as usernickname,sys.nickname as auditingname,sys.name as realname,() OVER ( '+@by+') as RowId  from tbl_User_Commend_Restaurant as rest inner join tbl_user  as users on users.id=rest.userid left join tbl_systemuser as sys on sys.id=rest.auditingadminid where 1=1 '+@where+') as t where RowId>=' + CAST(@StartRowId AS VARCHAR(5)) + ' and RowId<= ' + CAST(@EndRowId AS VARCHAR(5))
     exec(@sql)
     --select(@sql)
     select @PageIndex as PageIndex,@PageSize as PageSize ,@TotalPage as TotalPage,@totalcount as totalcount,@auditing as auditing,@audited as audited,@jifen as jifen 

END














GO
/****** :  StoredProcedure [dbo].[dp_usercomplain_add]    ű: 02/01/2010 14:21:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<ylm>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[dp_usercomplain_add]
	-- Add the parameters for the stored procedure here
	@orderid int=0,
    @classname varchar(50)='',
    @userid int=0,
    @content varchar(8000)='',
    @useremail varchar(50)=''
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
    -- Insert statements for procedure here
	declare @restId int 
	select @restid = restid from v_order_generalList where id = @orderId
	insert into tbl_userComplain (restid,orderid,classname,content,userid,useremail) values(@restid,@orderid,@classname,@content,@userid,@useremail)
    update tbl_rest_manager set userComplain = userComplain+1 where restid = @restid 
  if @@error >0
select 1
else
select 0
END



GO
/****** :  StoredProcedure [dbo].[dp_usercomplain_get]    ű: 02/01/2010 14:21:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<ylm>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[dp_usercomplain_get]
	-- Add the parameters for the stored procedure here
    @PageIndex int =1,
	@PageSize int = 1,
	@state int=0   --0 1 2 -3ȫ
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
   	declare @Sql nvarchar(4000)
	declare @totalcount int
    declare @startRowId int
    declare @endRowId int
    declare @TotalPage int
    declare @where varchar(8000)
    declare @Sqlcount nvarchar(4000)
    declare @waitcount nvarchar(4000)
    declare @waitingcount nvarchar(4000)
    declare @completecount nvarchar(4000)
    declare @waitnum int
    declare @waitingnum int
    declare @completenum int

    declare @SqlTcount nvarchar(4000)
    declare @Tcount int
    -- Insert statements for procedure here
       set @where=''
       if @state<>-3 set @where= ' where state= '+cast (@state as varchar(50))


    --TotoalCount 
        set @Sqlcount= 'select @sqlcountout=count(id) from tbl_userComplain '+@where
        EXEC sp_executesql @Sqlcount, N'@sqlcountout INT OUTPUT', @sqlcountout=@totalcount OUTPUT

        set @SqlTcount= 'select @SqlTcountout=count(id) from tbl_userComplain '
        EXEC sp_executesql @SqlTcount, N'@SqlTcountout INT OUTPUT', @SqlTcountout=@Tcount OUTPUT        

        set @waitcount= 'select @waitcountout=count(id) from tbl_userComplain where state=0 '
        EXEC sp_executesql @waitcount, N'@waitcountout INT OUTPUT', @waitcountout=@waitnum OUTPUT
        
        set @waitingcount= 'select @waitingcountout=count(id) from tbl_userComplain where state=1 '
        EXEC sp_executesql @waitingcount, N'@waitingcountout INT OUTPUT', @waitingcountout=@waitingnum OUTPUT

       set @completecount= 'select @completecountout=count(id) from tbl_userComplain where state=2 '
        EXEC sp_executesql @completecount, N'@completecountout INT OUTPUT', @completecountout=@completenum OUTPUT
        
        --TotalPage
		SET @TotalPage = CEILING((@TotalCount + 0.0) / @PageSize)
	
		--CheckPageIndex
		IF @PageIndex < 1 SET @PageIndex = 1
		IF @PageIndex > @TotalPage SET @PageIndex = @TotalPage

		--RowRange
		SET @StartRowId = (@PageIndex - 1) * @PageSize + 1
		set @EndRowId = @StartRowId + @PageSize - 1


	SET @Sql = 
'select * from(select *,() OVER (order by id desc) as RowId from tbl_userComplain ' +@where+ ') as t 
 where RowId>=' + CAST(@StartRowId AS VARCHAR(5)) + ' and RowId<=' + CAST(@EndRowId AS VARCHAR(5))
--select @sql
EXEC(@Sql)
select @pageindex as PageIndex, @totalpage as Totalpage ,@totalcount as totalcount,@PageSize as PageSize,@waitnum as waitnum,@waitingnum as waitingnum,@completenum as completenum,@Tcount as tcount
END




GO
/****** :  StoredProcedure [dbo].[dp_usercomplain_getinfo]    ű: 02/01/2010 14:21:26 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<ylm>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[dp_usercomplain_getinfo]
	-- Add the parameters for the stored procedure here
	@id int=0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	select * from tbl_usercomplain where id=@id
END

GO
/****** :  StoredProcedure [dbo].[dp_usercomplain_iscp]    ű: 02/01/2010 14:21:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<ylm>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[dp_usercomplain_iscp]
	-- Add the parameters for the stored procedure here
	@orderid int =0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	select count(id) from tbl_usercomplain where orderid=@orderid
END

GO
/****** :  StoredProcedure [dbo].[dp_usercomplain_set]    ű: 02/01/2010 14:21:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<ylm>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[dp_usercomplain_set]
	@id int=0,
    @state int=0,
    @tracklog varchar(8000)=''
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	declare @restid int
	
	select @restid = restid from v_order_generalList 
	where id = (select orderId from tbl_userComplain where id = @id)
	update tbl_usercomplain set state=@state,tracklog=@tracklog where id=@id
	update tbl_rest_manager set userComplain = userComplain -1 where restid = @restid
	if @@error >0
	select 1
	else 
	select 0

END



GO
/****** :  StoredProcedure [dbo].[dp_UserIsServer]    ű: 02/01/2010 14:21:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [dbo].[dp_UserIsServer]
     
     @userid int =0
as 
     select iscs from tbl_user where id=@userid 

GO
/****** :  StoredProcedure [dbo].[dp_userOrderRateAddOrUpdate]    ű: 02/01/2010 14:21:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










-- =============================================
-- Author:		<wangjh>
-- Create date: <2008-7-14>
-- Description:	<޸ûԲ͹ݵ>
-- =============================================
CREATE proc [dbo].[dp_userOrderRateAddOrUpdate]
@id int =0,
@restId int = 0,
@userId int = 0,
@orderId int = 0,
@userEmail varchar(120) ='',
@remark varchar(8000) ='',
@amount int = 0,
@nickname varchar(200)=''
as
--
declare @count int
--ж϶ǷûĶ
if @userId <> 0
begin
	select @count =count(id) from v_order_generalList where id = @orderId and userId = @userId
	if @count <= 0 begin select -3 return end
end

if @id = 0
begin
	select @count = count(id) from tbl_userOrderRate where orderId = @orderId
	if @count>0
	begin
		select -1
		return
	end
	else begin
		declare @tempEmail varchar(100)
		select @restId = restId,@userId = userId,@tempEmail = userEmail from v_Order_GeneralList where id = @orderId
		if @userEmail =''
		begin
			set @userEmail =@tempEmail 
		end
		--exec [sp_Member_Integral_UpdateNoReturn] @userId,0,15,1,'ûۻƹ',@orderid,2,0,''
--		if @@error <>0 begin
--				select -2 return
--			end
		insert into tbl_userOrderRate(RestId,userId,orderId,userEmail,Remark,Amount,nickname)
		values(@restId,@userId,@orderid,@userEmail,@remark,@amount,@nickname)
		if @@error <>0 begin
				select -2 return
			end
		update tbl_restaurant set rate = rate + @amount where id = @restId
		if @@error <>0 begin
				select -2 return
			end
		--͹ݹҳı޸۸ ʼ
		if @amount = 1
		update tbl_rest_manager set fineCommend = fineCommend +1 where restId = @restId
		else if @amount = -1
		update tbl_rest_manager set badCommend = badCommend +1 where restId = @restId
		else
		update tbl_rest_manager set middleCommend = middleCommend +1 where restId = @restId
		--͹ݹҳı޸۸ 
		if @@error =0 
			begin
				select 1 return
			end
	end
end
else begin 
	declare @primaryAmount int 
	declare @tempAmount int
	declare @tempRemark varchar(500)
	
	select @primaryAmount = amount,@restId = restId from tbl_userOrderRate where id = @id
	--
	if @primaryAmount = 1 begin
	return
    end
	--Ϊ,͹ݵrateָԭȻ1,Խ@tempAmount =2
	if @primaryAmount = -1 begin
	set @tempAmount = 2 
	end
	--ĺ
	if @primaryAmount = 0 begin
	set @tempAmount = 1
	end
	
	update tbl_userOrderRate set updateTime = getdate(),
	remark = @remark,amount = @amount where id = @id
	if @@error <>0 begin
			select -2 return
		end
	update tbl_restaurant set rate = rate + @tempAmount where id = @restId
	if @@error <>0 
		begin
			select -2 return
		end
	--͹ݹҳı޸۸ ʼ
		if @primaryAmount = -1
		update tbl_rest_manager set fineCommend = fineCommend +1,badCommend = badCommend-1 where restId = @restId
		else if @primaryAmount = 0
		update tbl_rest_manager set fineCommend = fineCommend +1,middleCommend = middleCommend -1  where restId = @restId
		--͹ݹҳı޸۸ 
	if @@error =0 begin select 1 return end
	else begin select -2 return end
end











GO
/****** :  StoredProcedure [dbo].[dp_userOrderRateDelete]    ű: 02/01/2010 14:21:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<wangjh>
-- Create date: <2008-7-14>
-- Description:	<̨ûԲ͹ݵϢ>
-- =============================================
CREATE proc [dbo].[dp_userOrderRateDelete]
@id int = 0
as
declare @amount int
declare @restId int 
select @amount = amount ,@restId = restId from tbl_userOrderRate where id = @id
update tbl_restaurant set rate = rate - @amount where id = @restId
update tbl_userOrderRate set isDelete = 1 where id = @id
select 1




GO
/****** :  StoredProcedure [dbo].[dp_userOrderRateSelect]    ű: 02/01/2010 14:21:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









-- =============================================
-- Author:		<wangjh>
-- Create date: <2008-7-14>
-- Description:	<ûԲ͹ݵϢ>
-- =============================================
CREATE proc [dbo].[dp_userOrderRateSelect]
@id int = 0,
@orderId int = 0, 
@restId int = 0,
@userId int = 0,
@startDate varchar(120) = '',
@endDate varchar(120) = '',
@restName varchar(40) = '',
@amount int = -3,-- -3ȫ
@isDelete int =0,
@pageSize int = 0,
@pageIndex int = 1
as
declare @where varchar(8000)
set @where = ''
if @id <>0
set @where = @where + ' and rate.id='+str(@id)
if @orderId <> 0
set @where =@where + ' and rate.orderId='+str(@orderId)
if @restId <> 0
set @where = @where + ' and rate.restId='+str(@restId)
if @userId <> 0
set @where = @where + ' and rate.userId='+str(@userId)
if @isDelete <> 0
set @where = @where +' and rate.isdelete ='+str(@isDelete-1)
if @amount <> -3 -- -3ȫ 
set @where = @where +' and rate.amount = '+ str(@amount)
if @restName <> '' begin
set @restName = '''%'+ @restName +'%'''
set @where = @where +' and v.restName like ' + @restName
end
if @startDate <> '' and @endDate<>''
begin 
set @endDate = @endDate +' 23:59:59'
set @where = @where + ' and rate.updatetime between '''+ @startDate +''' and '''+ @endDate +''''
end

--ҳϢ
declare @totalCount int
declare @totalPage int
declare @startRow int
declare @endRow int
set @totalPage = 0
declare @sql nvarchar(4000)
set @sql ='select @totalCountOut = count(rate.id) from tbl_userOrderRate as rate left join v_Order_GeneralList as v
 on rate.orderId = v.id where 1=1'+ @where
exec sp_executesql @sql ,N'@totalCountOut int output',@totalCountOut = @totalCount output

set @sql = 'select rate.*,v.name as userName,v.phone,v.mobile,v.deliverDate,v.restName,v.address,v.state,v.usernickname from tbl_UserOrderRate as rate left join v_Order_GeneralList as v
 on rate.orderId = v.id where 1= 1'+@where

if @pageSize <> 0
begin
	set @totalPage = ceiling((@totalCount+0.0)/@pageSize)
--ǰҳҳ趨ǰҳҳ
if @pageIndex > @totalPage set @pageIndex = @totalPage
if @pageIndex < 1 set @pageIndex =1 
set @startRow = (@pageIndex-1)*@pageSize+1
set @endRow = @pageIndex * @pageSize
set @sql ='
select * from(
select * ,() over(order by updatetime desc) as row from ('+ @sql +')as a) as t 
where row between '+ str(@startRow) +' and '+ str(@endRow)
end
exec (@sql)
SELECT @PageIndex AS PageIndex, @PageSize AS PageSize, @TotalCount AS TotalCount, @TotalPage AS TotalPage











GO
/****** :  StoredProcedure [dbo].[dp_UserOrderRateSystemUpdate]    ű: 02/01/2010 14:21:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		<wangjh>
-- Create date: <2008-7-18>
-- Description:	<ϵͳԶδ۵ĶΪ>
-- =============================================
CREATE proc [dbo].[dp_UserOrderRateSystemUpdate]
as
declare @result int 
set @result = 0
declare @temp1 table (restId int,rate int)
set xact_abort on
begin 
begin
BEGIN TRAN
insert into @temp1(restid,rate)
	select restid,Count(id) as rate from v_Order_GeneralList 
	where id not in (select orderid from tbl_userOrderRate) and (getDate() - updatetime)>7 and state = 1 group by restid

update tbl_restaurant  set tbl_restaurant.rate = tbl_restaurant.rate +(select rate from @temp1  where tbl_restaurant.id =restid )
 where tbl_restaurant.id  in (select restid from @temp1)
	
	insert into tbl_userOrderRate(orderid,restId,userId,userEmail,amount,remark)
	(
		select id,restId,userId,userEmail,1,'ϵͳԶ' from v_order_generalList where id not in (select orderid from tbl_userOrderRate)
		and (getDate() - updatetime)>7 and state=1
	)

end 
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @result
end





GO
/****** :  StoredProcedure [dbo].[dp_userOrderRateTotal]    ű: 02/01/2010 14:21:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<wangjh>
-- Create date: <2008-7-18>
-- Description:	<ͳƲ͹ݵĸ۵>
-- =============================================
CREATE proc [dbo].[dp_userOrderRateTotal]
@restId int
as 
declare @haoCount int
declare @chaCount int
declare @zhongCount int
select @haoCount = count(id) from tbl_userOrderRate 
where restid = @restId and amount = 1
select @chaCount = count(id) from tbl_userOrderRate 
where restid = @restId and amount = -1
select @zhongCount = count(id) from tbl_userOrderRate 
where restid = @restId and amount = 0
select @haoCount as haoCount ,@chaCount as chaCount,@zhongCount as zhongCount
GO
/****** :  StoredProcedure [dbo].[dp_UserRate_set]    ű: 02/01/2010 14:21:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<ylm>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[dp_UserRate_set]
	-- Add the parameters for the stored procedure here
	@userid int =0,
    @set int=0 , -- 0  1  -1 ԭ
    @state int=-3,
    @linshi int=0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
      if @set=1
      
       update tbl_user set userrate=userrate+1 where id=@userid

      else if @set=0 begin
         set @linshi=((select userrate from tbl_user where id=@userid )-1)
         if @linshi >=0
         update tbl_user set userrate=userrate-1 where id=@userid
         else
         update tbl_user set userrate=0 where id=@userid
         end
     else if @set=-1
       if @state =1
        update tbl_user set userrate=userrate-1 where id=@userid
       else 
        update tbl_user set userrate=userrate+1 where id=@userid
        

   if @@error >0
   select -1
   else 
   select 0
END


GO
/****** :  StoredProcedure [dbo].[dp_UserSelect]    ű: 02/01/2010 14:21:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE proc [dbo].[dp_UserSelect]
@id int = 0,
@email varchar(50) ='',
@pass int = -1,-- -1ȫ0δ1Ķ2.ѷ
@startDate varchar(50)='',
@endDate varchar(50) = '',
@pageIndex int = 1,
@pageSize int= 0
as
declare @where varchar(8000)
set @where = ''
declare @sql varchar(8000)
if @id <> 0
set @where = @where +' and tbl_user.id='+str(@id)
if @email<>''
begin
set @email = '%'+ @email +'%'
set @where = @where + ' and tbl_user.email like '''+@email+''''
end
if @pass<>-1
set @where = @where+' and pass='+str(@pass)
if @startDate <>'' and @endDate <>''
begin
set @endDate = Convert(varchar(120),Dateadd(d,1,Convert(Datetime,@endDate)),120)
set @where = @where +' and regTime between '''+ @startDate +''' and '''+ @endDate +''''
end

declare @sql1 varchar(8000)
set @sql1 = 'select tbl_user.* ,tbl_userDetail.phone as phone,tbl_userDetail.mobile as mobile ,tbl_systemUser.trueName as adminName
from tbl_user left join tbl_userDetail on tbl_user.id = tbl_userDetail.id left join tbl_systemUser on tbl_user.adminId = tbl_systemUser.id where 1=1 '+@where

	
--ҳ
declare @startRow int
declare @endRow int
declare @totalCount int
declare @countPage int
--¼
declare @Sql2 nvarchar(4000)
SET @Sql2 = N'SELECT @TotalCountOut=Count(a.id) FROM ('+ @sql1 +') as a'
EXEC sp_executesql @Sql2, N'@TotalCountOut INT OUTPUT', @TotalCountOut=@TotalCount OUTPUT
if @pageSize = 0
begin
	set @countPage = 0
	set @pageIndex = 1
	set @sql = @sql1
end
else
begin
	set @countPage = ceiling((@totalCount+0.0)/@pageSize)
	--ǰҳҳ趨ǰҳҳ
	if @pageIndex > @countPage set @pageIndex = @countPage
	if @pageIndex < 1 set @pageIndex =1 
	set @startRow = (@pageIndex-1)*@pageSize+1
	set @endRow = @pageIndex * @pageSize
	set @sql ='select * from(
	select * ,() over(order by regTime desc) as row from ('+ @sql1 +') as b) as t 
	where row between'+ str(@startRow) +' and '+ str(@endRow)
end
exec (@sql)
SELECT @PageIndex AS PageIndex, @PageSize AS PageSize, @TotalCount AS TotalCount, @countPage AS TotalPage




GO
/****** :  StoredProcedure [dbo].[dp_UserUpdatePass]    ű: 02/01/2010 14:21:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--̨עûĲ
--0δ 1Ķ 2ѻط
--autor:wangjh
CREATE proc [dbo].[dp_UserUpdatePass]
@id int = 0,
@pass int = 0,
@adminId int = 0,
@callNote varchar(8000)
as
declare @result int
set @result = 0
update tbl_user set pass = @pass,adminId = @adminId,callNote= @callNote where id = @id
if @@error = 0
set @result = 1
select @result

GO
/****** :  StoredProcedure [dbo].[dp_yahooAPI_restBulletin_get]    ű: 02/01/2010 14:21:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE PROCEDURE [dbo].[dp_yahooAPI_restBulletin_get]
	@id bigint=0
AS
begin
if @id>0
	select *,r.name as restName from tbl_restBulletin rb
			left join tbl_restaurant r on r.id=rb.restID
	where rb.isDelete=0 and r.isdelete=0 and rb.id=@id and r.state=1
else
	select top 100 *,r.name as restName from tbl_restBulletin rb
			left join tbl_restaurant r on r.id=rb.restID
	where rb.isDelete=0 and r.isdelete=0 and r.state=1 order by rb.id desc 

end 

GO
/****** :  StoredProcedure [dbo].[dp_yahooAPI_restMenu_get]    ű: 02/01/2010 14:21:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [dbo].[dp_yahooAPI_restMenu_get]
	@menuType int=-1,
	@id int=0,
	@top int=100
as
if @id>0 and @menuType>-1 begin
	select r.name as restName,r.regionID,r.note,t.* from (
		select  restID,0 as menuType, id,name,menuPhotoID as photoID
			from tbl_menuTable 
			where deliverDay>0 and state=0 and classID>0 			
		union
		select restID,1 as menuType,id,name,photoID
			from tbl_suiteMenuTable 
			where classID>0 and deliverDay>0 and isDelete=0			
	) as t left join tbl_restaurant r on r.id=t.restID
		   left join tbl_ShopBusinessState rs on rs.shopID=r.id
		where r.sclassID>0 and r.isDelete=0 and r.state=1 and rs.state=0
			and t.menuType=r.menuType
			and t.menuType=@menuType and t.id=@id	
end else begin
DECLARE @sql VARCHAR(8000)
set   @sql='	select top '+cast(@top   as   varchar)+' r.name as restName,r.regionID,r.note,t.* from (
		select  restID,0 as menuType, id,name,menuPhotoID as photoID
			from tbl_menuTable 
			where deliverDay>0 and state=0 and classID>0 			
		union
		select  restID,1 as menuType,id,name,photoID
			from tbl_suiteMenuTable 
			where classID>0 and deliverDay>0 and isDelete=0			
	) as t left join tbl_restaurant r on r.id=t.restID
		   left join tbl_ShopBusinessState rs on rs.shopID=r.id
		where r.sclassID>0 and r.isDelete=0 and r.state=1 and rs.state=0
			and t.menuType=r.menuType
		order by t.menuType desc,t.id desc'  
		 
  EXEC (@sql)   
		
end


GO
/****** :  StoredProcedure [dbo].[dt_addtosourcecontrol]    ű: 02/01/2010 14:21:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create proc [dbo].[dt_addtosourcecontrol]
    @vchSourceSafeINI varchar(255) = '',
    @vchProjectName   varchar(255) ='',
    @vchComment       varchar(255) ='',
    @vchLoginName     varchar(255) ='',
    @vchPassword      varchar(255) =''

as

set nocount on

declare @iReturn int
declare @iObjectId int
select @iObjectId = 0

declare @iStreamObjectId int
select @iStreamObjectId = 0

declare @VSSGUID varchar(100)
select @VSSGUID = 'SQLVersionControl.VCS_SQL'

declare @vchDatabaseName varchar(255)
select @vchDatabaseName = db_name()

declare @iReturnValue int
select @iReturnValue = 0

declare @iPropertyObjectId int
declare @vchParentId varchar(255)

declare @iObjectCount int
select @iObjectCount = 0

    exec @iReturn = master.dbo.sp_OACreate @VSSGUID, @iObjectId OUT
    if @iReturn <> 0 GOTO E_OAError


    /* Create Project in SS */
    exec @iReturn = master.dbo.sp_OAMethod @iObjectId,
											'AddProjectToSourceSafe',
											NULL,
											@vchSourceSafeINI,
											@vchProjectName output,
											@@SERVERNAME,
											@vchDatabaseName,
											@vchLoginName,
											@vchPassword,
											@vchComment


    if @iReturn <> 0 GOTO E_OAError

    /* Set Database Properties */

    begin 
    begin tran
    /* add high level object */

    exec @iPropertyObjectId = dbo.dt_adduserobject_vcs 'VCSProjectID'

    select @vchParentId = CONVERT(varchar(255),@iPropertyObjectId)

    exec dbo.dt_setpropertybyid @iPropertyObjectId, 'VCSProjectID', @vchParentId , NULL
    exec dbo.dt_setpropertybyid @iPropertyObjectId, 'VCSProject' , @vchProjectName , NULL
    exec dbo.dt_setpropertybyid @iPropertyObjectId, 'VCSSourceSafeINI' , @vchSourceSafeINI , NULL
    exec dbo.dt_setpropertybyid @iPropertyObjectId, 'VCSSQLServer', @@SERVERNAME, NULL
    exec dbo.dt_setpropertybyid @iPropertyObjectId, 'VCSSQLDatabase', @vchDatabaseName, NULL

    if @@error <> 0 GOTO E_General_Error

    commit tran SetProperties
    
    select @iObjectCount = 0;

CleanUp:
    select @vchProjectName
    select @iObjectCount
    return

E_General_Error:
    /* this is an all or nothing.  No specific error messages */
    goto CleanUp

E_OAError:
    exec dbo.dt_displayoaerror @iObjectId, @iReturn
    goto CleanUp
end


GO
/****** :  StoredProcedure [dbo].[dt_adduserobject]    ű: 02/01/2010 14:21:43 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
**	Add an object to the dtproperties table
*/
create procedure [dbo].[dt_adduserobject]
as
	set nocount on
	/*
	** Create the user object if it does not exist already
	*/
	begin
		insert dbo.dtproperties (property) VALUES ('DtgSchemaOBJECT')
		update dbo.dtproperties set objectid=@@identity 
			where id=@@identity and property='DtgSchemaOBJECT'
	commit
	return @@identity
    end
GO

/****** :  StoredProcedure [dbo].[dt_checkinobject]    ű: 02/01/2010 14:21:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create proc [dbo].[dt_checkinobject]
    @chObjectType  char(4),
    @vchObjectName varchar(255),
    @vchComment    varchar(255)='',
    @vchLoginName  varchar(255),
    @vchPassword   varchar(255)='',
    @iVCSFlags     int = 0,
    @iActionFlag   int = 0,   /* 0 => AddFile, 1 => CheckIn */
    @txStream1     Text = '', /* drop stream   */ /* There is a bug that if items are NULL they do not pass to OLE servers */
    @txStream2     Text = '', /* create stream */
    @txStream3     Text = ''  /* grant stream  */


as

	set nocount on

	declare @iReturn int
	declare @iObjectId int
	select @iObjectId = 0
	declare @iStreamObjectId int

	declare @VSSGUID varchar(100)
	select @VSSGUID = 'SQLVersionControl.VCS_SQL'

	declare @iPropertyObjectId int
	select @iPropertyObjectId  = 0

    select @iPropertyObjectId = (select objectid from dbo.dtproperties where property = 'VCSProjectID')

    declare @vchProjectName   varchar(255)
    declare @vchSourceSafeINI varchar(255)
    declare @vchServerName    varchar(255)
    declare @vchDatabaseName  varchar(255)
    declare @iReturnValue	  int
    declare @pos			  int
    declare @vchProcLinePiece varchar(255)

    
    exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSProject',       @vchProjectName   OUT
    exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSSourceSafeINI', @vchSourceSafeINI OUT
    exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSSQLServer',     @vchServerName    OUT
    exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSSQLDatabase',   @vchDatabaseName  OUT
    begin tran
    if @chObjectType = 'PROC'
    begin
        if @iActionFlag = 1
        begin
            /* Procedure Can have up to three streams
            Drop Stream, Create Stream, GRANT stream */

            begin

            /* try to compile the streams */
            exec (@txStream1)
            if @@error <> 0 GOTO E_Compile_Fail

            exec (@txStream2)
            if @@error <> 0 GOTO E_Compile_Fail

            exec (@txStream3)
            if @@error <> 0 GOTO E_Compile_Fail
        end

        exec @iReturn = master.dbo.sp_OACreate @VSSGUID, @iObjectId OUT
        if @iReturn <> 0 GOTO E_OAError

        exec @iReturn = master.dbo.sp_OAGetProperty @iObjectId, 'GetStreamObject', @iStreamObjectId OUT
        if @iReturn <> 0 GOTO E_OAError
        
        if @iActionFlag = 1
        begin
            
            declare @iStreamLength int
			
			select @pos=1
			select @iStreamLength = datalength(@txStream2)
			
			if @iStreamLength > 0
			begin
			
				while @pos < @iStreamLength
				begin
						
					select @vchProcLinePiece = substring(@txStream2, @pos, 255)
					
					exec @iReturn = master.dbo.sp_OAMethod @iStreamObjectId, 'AddStream', @iReturnValue OUT, @vchProcLinePiece
            		if @iReturn <> 0 GOTO E_OAError
            		
					select @pos = @pos + 255
					
				end
            
				exec @iReturn = master.dbo.sp_OAMethod @iObjectId,
														'CheckIn_StoredProcedure',
														NULL,
														@sProjectName = @vchProjectName,
														@sSourceSafeINI = @vchSourceSafeINI,
														@sServerName = @vchServerName,
														@sDatabaseName = @vchDatabaseName,
														@sObjectName = @vchObjectName,
														@sComment = @vchComment,
														@sLoginName = @vchLoginName,
														@sPassword = @vchPassword,
														@iVCSFlags = @iVCSFlags,
														@iActionFlag = @iActionFlag,
														@sStream = ''
                                        
			end
        end
        else
        begin
        
            select colid, text into #ProcLines
            from syscomments
            where id = OBJECT_ID(@vchObjectName)
            order by colid

            declare @iCurProcLine int
            declare @iProcLines int
            select @iCurProcLine = 1
            select @iProcLines = (select count(*) from #ProcLines)
            while @iCurProcLine <= @iProcLines
            begin
                select @pos = 1
                declare @iCurLineSize int
                select @iCurLineSize = len((select text from #ProcLines where colid = @iCurProcLine))
                while @pos <= @iCurLineSize
                begin                
                    select @vchProcLinePiece = convert(varchar(255),
                        substring((select text from #ProcLines where colid = @iCurProcLine),
                                  @pos, 255 ))
                    exec @iReturn = master.dbo.sp_OAMethod @iStreamObjectId, 'AddStream', @iReturnValue OUT, @vchProcLinePiece
                    if @iReturn <> 0 GOTO E_OAError
                    select @pos = @pos + 255                  
                end
                select @iCurProcLine = @iCurProcLine + 1
            end
            drop table #ProcLines

            exec @iReturn = master.dbo.sp_OAMethod @iObjectId,
													'CheckIn_StoredProcedure',
													NULL,
													@sProjectName = @vchProjectName,
													@sSourceSafeINI = @vchSourceSafeINI,
													@sServerName = @vchServerName,
													@sDatabaseName = @vchDatabaseName,
													@sObjectName = @vchObjectName,
													@sComment = @vchComment,
													@sLoginName = @vchLoginName,
													@sPassword = @vchPassword,
													@iVCSFlags = @iVCSFlags,
													@iActionFlag = @iActionFlag,
													@sStream = ''
        end

        if @iReturn <> 0 GOTO E_OAError

        if @iActionFlag = 1
        begin
            commit tran compile_all
            if @@error <> 0 GOTO E_Compile_Fail
        end

    end

CleanUp:
	return

E_Compile_Fail:
	declare @lerror int
	select @lerror = @@error
	rollback tran compile_all
	RAISERROR (@lerror,16,-1)
	goto CleanUp

E_OAError:
	if @iActionFlag = 1 rollback tran compile_all
	exec dbo.dt_displayoaerror @iObjectId, @iReturn
	goto CleanUp
end


GO
/****** :  StoredProcedure [dbo].[dt_checkoutobject]    ű: 02/01/2010 14:21:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create proc [dbo].[dt_checkoutobject]
    @chObjectType  char(4),
    @vchObjectName varchar(255),
    @vchComment    varchar(255),
    @vchLoginName  varchar(255),
    @vchPassword   varchar(255),
    @iVCSFlags     int = 0,
    @iActionFlag   int = 0/* 0 => Checkout, 1 => GetLatest, 2 => UndoCheckOut */

as

	set nocount on

	declare @iReturn int
	declare @iObjectId int
	select @iObjectId =0

	declare @VSSGUID varchar(100)
	select @VSSGUID = 'SQLVersionControl.VCS_SQL'

	declare @iReturnValue int
	select @iReturnValue = 0

	declare @vchTempText varchar(255)

	/* this is for our strings */
	declare @iStreamObjectId int
	select @iStreamObjectId = 0

    declare @iPropertyObjectId int
    select @iPropertyObjectId = (select objectid from dbo.dtproperties where property = 'VCSProjectID')

    declare @vchProjectName   varchar(255)
    declare @vchSourceSafeINI varchar(255)
    declare @vchServerName    varchar(255)
    declare @vchDatabaseName  varchar(255)
    exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSProject',       @vchProjectName   OUT
    exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSSourceSafeINI', @vchSourceSafeINI OUT
    exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSSQLServer',     @vchServerName    OUT
    exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSSQLDatabase',   @vchDatabaseName  OUT

    if @chObjectType = 'PROC'
    begin
        /* Procedure Can have up to three streams
           Drop Stream, Create Stream, GRANT stream */

        exec @iReturn = master.dbo.sp_OACreate @VSSGUID, @iObjectId OUT

        if @iReturn <> 0 GOTO E_OAError

        exec @iReturn = master.dbo.sp_OAMethod @iObjectId,
												'CheckOut_StoredProcedure',
												NULL,
												@sProjectName = @vchProjectName,
												@sSourceSafeINI = @vchSourceSafeINI,
												@sObjectName = @vchObjectName,
												@sServerName = @vchServerName,
												@sDatabaseName = @vchDatabaseName,
												@sComment = @vchComment,
												@sLoginName = @vchLoginName,
												@sPassword = @vchPassword,
												@iVCSFlags = @iVCSFlags,
												@iActionFlag = @iActionFlag

        if @iReturn <> 0 GOTO E_OAError


        exec @iReturn = master.dbo.sp_OAGetProperty @iObjectId, 'GetStreamObject', @iStreamObjectId OUT

        if @iReturn <> 0 GOTO E_OAError

        create table #commenttext (id int identity, sourcecode varchar(255))


        select @vchTempText = 'STUB'
        while @vchTempText is not null
        begin
            exec @iReturn = master.dbo.sp_OAMethod @iStreamObjectId, 'GetStream', @iReturnValue OUT, @vchTempText OUT
            if @iReturn <> 0 GOTO E_OAError
            
            if (@vchTempText = '') set @vchTempText = null
            if (@vchTempText is not null) insert into #commenttext (sourcecode) select @vchTempText
        end

        select 'VCS'=sourcecode from #commenttext order by id
        select 'SQL'=text from syscomments where id = OBJECT_ID(@vchObjectName) order by colid

    end

CleanUp:
    return

E_OAError:
    exec dbo.dt_displayoaerror @iObjectId, @iReturn
    GOTO CleanUp


GO

/****** :  StoredProcedure [dbo].[dt_droppropertiesbyid]    ű: 02/01/2010 14:21:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
**	Drop one or all the associated properties of an object or an attribute 
**
**	dt_dropproperties objid, null or '' -- drop all properties of the object itself
**	dt_dropproperties objid, property -- drop the property
*/
create procedure [dbo].[dt_droppropertiesbyid]
	@id int,
	@property varchar(64)
as
	set nocount on

	if (@property is null) or (@property = '')
		delete from dbo.dtproperties where objectid=@id
	else
		delete from dbo.dtproperties 
			where objectid=@id and property=@property


GO
/****** :  StoredProcedure [dbo].[dt_dropuserobjectbyid]    ű: 02/01/2010 14:21:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
**	Drop an object from the dbo.dtproperties table
*/
create procedure [dbo].[dt_dropuserobjectbyid]
	@id int
as
	set nocount on
	delete from dbo.dtproperties where objectid=@id

GO
/****** :  StoredProcedure [dbo].[dt_generateansiname]    ű: 02/01/2010 14:21:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/* 
**	Generate an ansi name that is unique in the dtproperties.value column 
*/ 
create procedure [dbo].[dt_generateansiname](@name varchar(255) output) 
as 
	declare @prologue varchar(20) 
	declare @indexstring varchar(20) 
	declare @index integer 
 
	set @prologue = 'MSDT-A-' 
	set @index = 1 
 
	while 1 = 1 
	begin 
		set @indexstring = cast(@index as varchar(20)) 
		set @name = @prologue + @indexstring 
		if not exists (select value from dtproperties where value = @name) 
			break 
		 
		set @index = @index + 1 
 
		if (@index = 10000) 
			goto TooMany 
	end 
 
Leave: 
 
	return 
 
TooMany: 
 
	set @name = 'DIAGRAM' 
	goto Leave 

GO
/****** :  StoredProcedure [dbo].[dt_getobjwithprop]    ű: 02/01/2010 14:21:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
**	Retrieve the owner object(s) of a given property
*/
create procedure [dbo].[dt_getobjwithprop]
	@property varchar(30),
	@value varchar(255)
as
	set nocount on

	if (@property is null) or (@property = '')
	begin
		raiserror('Must specify a property name.',-1,-1)
		return (1)
	end

	if (@value is null)
		select objectid id from dbo.dtproperties
			where property=@property

	else
		select objectid id from dbo.dtproperties
			where property=@property and value=@value

GO
/****** :  StoredProcedure [dbo].[dt_getobjwithprop_u]    ű: 02/01/2010 14:21:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
**	Retrieve the owner object(s) of a given property
*/
create procedure [dbo].[dt_getobjwithprop_u]
	@property varchar(30),
	@uvalue nvarchar(255)
as
	set nocount on

	if (@property is null) or (@property = '')
	begin
		raiserror('Must specify a property name.',-1,-1)
		return (1)
	end

	if (@uvalue is null)
		select objectid id from dbo.dtproperties
			where property=@property

	else
		select objectid id from dbo.dtproperties
			where property=@property and uvalue=@uvalue

GO
/****** :  StoredProcedure [dbo].[dt_getpropertiesbyid]    ű: 02/01/2010 14:21:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
**	Retrieve properties by id's
**
**	dt_getproperties objid, null or '' -- retrieve all properties of the object itself
**	dt_getproperties objid, property -- retrieve the property specified
*/
create procedure [dbo].[dt_getpropertiesbyid]
	@id int,
	@property varchar(64)
as
	set nocount on

	if (@property is null) or (@property = '')
		select property, version, value, lvalue
			from dbo.dtproperties
			where  @id=objectid
	else
		select property, version, value, lvalue
			from dbo.dtproperties
			where  @id=objectid and @property=property

GO
/****** :  StoredProcedure [dbo].[dt_getpropertiesbyid_u]    ű: 02/01/2010 14:21:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
**	Retrieve properties by id's
**
**	dt_getproperties objid, null or '' -- retrieve all properties of the object itself
**	dt_getproperties objid, property -- retrieve the property specified
*/
create procedure [dbo].[dt_getpropertiesbyid_u]
	@id int,
	@property varchar(64)
as
	set nocount on

	if (@property is null) or (@property = '')
		select property, version, uvalue, lvalue
			from dbo.dtproperties
			where  @id=objectid
	else
		select property, version, uvalue, lvalue
			from dbo.dtproperties
			where  @id=objectid and @property=property

GO

/****** :  StoredProcedure [dbo].[dt_getpropertiesbyid_vcs_u]    ű: 02/01/2010 14:21:57 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[dt_getpropertiesbyid_vcs_u]
    @id       int,
    @property varchar(64),
    @value    nvarchar(255) = NULL OUT

as

    -- This procedure should no longer be calledGO  dt_getpropertiesbyid_vcsshould be called instead.
	-- Calls are forwarded to dt_getpropertiesbyid_vcs to maintain backward compatibility.
	set nocount on
    exec dbo.dt_getpropertiesbyid_vcs
		@id,
		@property,
		@value output


GO
/****** :  StoredProcedure [dbo].[dt_isundersourcecontrol]    ű: 02/01/2010 14:21:59 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create proc [dbo].[dt_isundersourcecontrol]
    @vchLoginName varchar(255) = '',
    @vchPassword  varchar(255) = '',
    @iWhoToo      int = 0 /* 0 => Just check projectGO 1 => get list of objs */

as

	set nocount on

	declare @iReturn int
	declare @iObjectId int
	select @iObjectId = 0

	declare @VSSGUID varchar(100)
	select @VSSGUID = 'SQLVersionControl.VCS_SQL'

	declare @iReturnValue int
	select @iReturnValue = 0

	declare @iStreamObjectId int
	select @iStreamObjectId   = 0

	declare @vchTempText varchar(255)

    declare @iPropertyObjectId int
    select @iPropertyObjectId = (select objectid from dbo.dtproperties where property = 'VCSProjectID')

    declare @vchProjectName   varchar(255)
    declare @vchSourceSafeINI varchar(255)
    declare @vchServerName    varchar(255)
    declare @vchDatabaseName  varchar(255)
    exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSProject',       @vchProjectName   OUT
    exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSSourceSafeINI', @vchSourceSafeINI OUT
    exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSSQLServer',     @vchServerName    OUT
    exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSSQLDatabase',   @vchDatabaseName  OUT

    if (@vchProjectName = '')	set @vchProjectName		= null
    if (@vchSourceSafeINI = '') set @vchSourceSafeINI	= null
    if (@vchServerName = '')	set @vchServerName		= null
    if (@vchDatabaseName = '')	set @vchDatabaseName	= null
    
    if (@vchProjectName is null) or (@vchSourceSafeINI is null) or (@vchServerName is null) or (@vchDatabaseName is null)
    begin
        RAISERROR('Not Under Source Control',16,-1)
        return
    end

    if @iWhoToo = 1
    begin

        /* Get List of Procs in the project */
        exec @iReturn = master.dbo.sp_OACreate @VSSGUID, @iObjectId OUT
        if @iReturn <> 0 GOTO E_OAError

        exec @iReturn = master.dbo.sp_OAMethod @iObjectId,
												'GetListOfObjects',
												NULL,
												@vchProjectName,
												@vchSourceSafeINI,
												@vchServerName,
												@vchDatabaseName,
												@vchLoginName,
												@vchPassword

        if @iReturn <> 0 GOTO E_OAError

        exec @iReturn = master.dbo.sp_OAGetProperty @iObjectId, 'GetStreamObject', @iStreamObjectId OUT

        if @iReturn <> 0 GOTO E_OAError

        create table #ObjectList (id int identity, vchObjectlist varchar(255))

        select @vchTempText = 'STUB'
        while @vchTempText is not null
        begin
            exec @iReturn = master.dbo.sp_OAMethod @iStreamObjectId, 'GetStream', @iReturnValue OUT, @vchTempText OUT
            if @iReturn <> 0 GOTO E_OAError
            
            if (@vchTempText = '') set @vchTempText = null
            if (@vchTempText is not null) insert into #ObjectList (vchObjectlist ) select @vchTempText
        end

        select vchObjectlist from #ObjectList order by id
    end

CleanUp:
    return

E_OAError:
    exec dbo.dt_displayoaerror @iObjectId, @iReturn
    goto CleanUp



GO
/****** :  StoredProcedure [dbo].[dt_removefromsourcecontrol]    ű: 02/01/2010 14:22:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[dt_removefromsourcecontrol]

as

    set nocount on

    declare @iPropertyObjectId int
    select @iPropertyObjectId = (select objectid from dbo.dtproperties where property = 'VCSProjectID')

    exec dbo.dt_droppropertiesbyid @iPropertyObjectId, null

    /* -1 is returned by dt_droppopertiesbyid */
    if @@error <> 0 and @@error <> -1 return 1

    return 0



GO
/****** :  StoredProcedure [dbo].[dt_setpropertybyid_u]    ű: 02/01/2010 14:22:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
**	If the property already exists, reset the valueGO otherwise add property
**		id -- the id in sysobjects of the object
**		property -- the name of the property
**		uvalue -- the text value of the property
**		lvalue -- the binary value of the property (image)
*/
create procedure [dbo].[dt_setpropertybyid_u]
	@id int,
	@property varchar(64),
	@uvalue nvarchar(255),
	@lvalue image
as
	set nocount on
	-- 
	-- If we are writing the name property, find the ansi equivalent. 
	-- If there is no lossless translation, generate an ansi name. 
	-- 
	declare @avalue varchar(255) 
	set @avalue = null 
	if (@uvalue is not null) 
	begin 
		if (convert(nvarchar(255), convert(varchar(255), @uvalue)) = @uvalue) 
		begin 
			set @avalue = convert(varchar(255), @uvalue) 
		end 
		else 
		begin 
			if 'DtgSchemaNAME' = @property 
			begin 
				exec dbo.dt_generateansiname @avalue output 
			end 
		end 
	end 
	if exists (select * from dbo.dtproperties 
			where objectid=@id and property=@property)
	begin
		--
		-- bump the version count for this row as we update it
		--
		update dbo.dtproperties set value=@avalue, uvalue=@uvalue, lvalue=@lvalue, version=version+1
			where objectid=@id and property=@property
	end
	else
	begin
		--
		-- version count is auto-set to 0 on initial insert
		--
		insert dbo.dtproperties (property, objectid, value, uvalue, lvalue)
			values (@property, @id, @avalue, @uvalue, @lvalue)
	end

GO
/****** :  StoredProcedure [dbo].[dt_validateloginparams]    ű: 02/01/2010 14:22:03 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create proc [dbo].[dt_validateloginparams]
    @vchLoginName  varchar(255),
    @vchPassword   varchar(255)
as

set nocount on

declare @iReturn int
declare @iObjectId int
select @iObjectId =0

declare @VSSGUID varchar(100)
select @VSSGUID = 'SQLVersionControl.VCS_SQL'

    declare @iPropertyObjectId int
    select @iPropertyObjectId = (select objectid from dbo.dtproperties where property = 'VCSProjectID')

    declare @vchSourceSafeINI varchar(255)
    exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSSourceSafeINI', @vchSourceSafeINI OUT

    exec @iReturn = master.dbo.sp_OACreate @VSSGUID, @iObjectId OUT
    if @iReturn <> 0 GOTO E_OAError

    exec @iReturn = master.dbo.sp_OAMethod @iObjectId,
											'ValidateLoginParams',
											NULL,
											@sSourceSafeINI = @vchSourceSafeINI,
											@sLoginName = @vchLoginName,
											@sPassword = @vchPassword
    if @iReturn <> 0 GOTO E_OAError

CleanUp:
    return

E_OAError:
    exec dbo.dt_displayoaerror @iObjectId, @iReturn
    GOTO CleanUp



GO
/****** :  StoredProcedure [dbo].[dt_vcsenabled]    ű: 02/01/2010 14:22:04 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create proc [dbo].[dt_vcsenabled]

as

set nocount on

declare @iObjectId int
select @iObjectId = 0

declare @VSSGUID varchar(100)
select @VSSGUID = 'SQLVersionControl.VCS_SQL'

    declare @iReturn int
    exec @iReturn = master.dbo.sp_OACreate @VSSGUID, @iObjectId OUT
    if @iReturn <> 0 raiserror('', 16, -1) /* Can't Load Helper DLLC */



GO
/****** :  StoredProcedure [dbo].[dt_verstamp006]    ű: 02/01/2010 14:22:04 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
**	This procedure returns the version number of the stored
**    procedures used by legacy versions of the Microsoft
**	Visual Database Tools.  Version is 7.0.00.
*/
create procedure [dbo].[dt_verstamp006]
as
	select 7000

GO
/****** :  StoredProcedure [dbo].[dt_verstamp007]    ű: 02/01/2010 14:22:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
**	This procedure returns the version number of the stored
**    procedures used by the the Microsoft Visual Database Tools.
**	Version is 7.0.05.
*/
create procedure [dbo].[dt_verstamp007]
as
	select 7005

GO
/****** :  StoredProcedure [dbo].[dt_whocheckedout]    ű: 02/01/2010 14:22:06 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create proc [dbo].[dt_whocheckedout]
        @chObjectType  char(4),
        @vchObjectName varchar(255),
        @vchLoginName  varchar(255),
        @vchPassword   varchar(255)

as

set nocount on

declare @iReturn int
declare @iObjectId int
select @iObjectId =0

declare @VSSGUID varchar(100)
select @VSSGUID = 'SQLVersionControl.VCS_SQL'

    declare @iPropertyObjectId int

    select @iPropertyObjectId = (select objectid from dbo.dtproperties where property = 'VCSProjectID')

    declare @vchProjectName   varchar(255)
    declare @vchSourceSafeINI varchar(255)
    declare @vchServerName    varchar(255)
    declare @vchDatabaseName  varchar(255)
    exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSProject',       @vchProjectName   OUT
    exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSSourceSafeINI', @vchSourceSafeINI OUT
    exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSSQLServer',     @vchServerName    OUT
    exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSSQLDatabase',   @vchDatabaseName  OUT

    if @chObjectType = 'PROC'
    begin
        exec @iReturn = master.dbo.sp_OACreate @VSSGUID, @iObjectId OUT

        if @iReturn <> 0 GOTO E_OAError

        declare @vchReturnValue varchar(255)
        select @vchReturnValue = ''

        exec @iReturn = master.dbo.sp_OAMethod @iObjectId,
												'WhoCheckedOut',
												@vchReturnValue OUT,
												@sProjectName = @vchProjectName,
												@sSourceSafeINI = @vchSourceSafeINI,
												@sObjectName = @vchObjectName,
												@sServerName = @vchServerName,
												@sDatabaseName = @vchDatabaseName,
												@sLoginName = @vchLoginName,
												@sPassword = @vchPassword

        if @iReturn <> 0 GOTO E_OAError

        select @vchReturnValue

    end

CleanUp:
    return

E_OAError:
    exec dbo.dt_displayoaerror @iObjectId, @iReturn
    GOTO CleanUp



GO
/****** :  StoredProcedure [dbo].[IntegralReport]    ű: 02/01/2010 14:22:07 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

create proc [dbo].[IntegralReport]
as
declare @sql varchar(8000)
declare @total int
declare @InIntegral int
declare @toIntegral int
select @total = sum(amount) from tbl_userIntegralDetail
select @InIntegral = sum(amount) from tbl_userIntegralDetail
where source >= 0
select @InIntegral = sum(amount) from tbl_userIntegralDetail
where source < 0
select @total,@InIntegral,@InIntegral

GO
/****** :  StoredProcedure [dbo].[Member_getCountry]    ű: 02/01/2010 14:22:08 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[Member_getCountry]
@code int
AS
	select name as country,(select name from regionAll where code=@code) as city from regionAll where class='c0' and province=(
		select province from regionAll where region=(
			select region from regionAll where code=@code
		)
	)
	RETURN

GO
/****** :  StoredProcedure [dbo].[NewInsertCommand]    ű: 02/01/2010 14:22:08 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[NewInsertCommand]
(
	@code int,
	@province varchar(3),
	@name varchar(30),
	@region varchar(30),
	@class char(2),
	@acreage int,
	@population int,
	@station varchar(30),
	@postCode varchar(6),
	@phoneCode int
)
AS
	SET NOCOUNT OFF;
INSERT INTO [regionAll] ([code], [province], [name], [region], [class], [acreage], [population], [station], [postCode], [phoneCode]) VALUES (@code, @province, @name, @region, @class, @acreage, @population, @station, @postCode, @phoneCode)
GO
/****** :  StoredProcedure [dbo].[NewSelectCommand]    ű: 02/01/2010 14:22:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[NewSelectCommand]
(
	@code int
)
AS
	SET NOCOUNT ON;
SELECT regionAll.*
FROM regionAll where code=@code
GO
/****** :  StoredProcedure [dbo].[sp_38Order_General_getList]    ű: 02/01/2010 14:22:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--=============================================
-- Author:		<Venson>
-- Create date: <2007-9-14>
-- Description:	<ȡͨöб>
-- =============================================
CREATE PROCEDURE [dbo].[sp_38Order_General_getList]
	@RestId BIGINT = 0,--(0:ȫ͹)
	@RestUserId BIGINT = 0, --(͹ݹԱID)
	@UserId BIGINT = 0,--ûID
	@UserEmail VARCHAR(50) = '',--ûEmail(Ϊȫ)
	@UserType INT = 0,--û(0:ȫ, 1:עû, 2:δעû)
	@OrderId BIGINT = 0,--
	@Name varchar(8000) = '',--ͻ
	@ProvinceId INT = 0, --ʡID
	@CityId INT = 0, --ID
	@RegionId INT = 0, --ID
	@ZoneId INT = 0, --ƬID
	@AreaId INT = 0, --С/¥ID
	@RoomName varchar(8000) = '',--
	@BeginDateTime DATETIME = null,--µʼʱ
	@EndDateTime DATETIME = null,--µʱ
	@BeginDeliverDate DATETIME = NULL,--Ͳʼʱ
	@EndDeliverDate DATETIME = NULL,--Ͳͽʱ
	@State BIGINT = -3,--(-3:ȫ, -2:, -1:, 0:, 1:)
	@SourceId INT = -1,--Դ(-1:ȫ, 0:վ, 1:MSN)
	@PageIndex INT = 1,
	@PageSize INT = 15
AS
BEGIN
	SET NOCOUNT ON;

	DECLARE @Sql nvarchar(4000)
	DECLARE @Where varchar(8000)

	DECLARE @StrUserId varchar(8000)
	DECLARE @StrRestUserId varchar(8000)
	DECLARE @BeginDateTimeStr varchar(8000)
	DECLARE @EndDateTimeStr varchar(8000)
	DECLARE @BeginDeliverDateStr varchar(8000)
	DECLARE @EndDeliverDateStr varchar(8000)

	DECLARE @TotalCount INT
	DECLARE @TotalPage INT
	DECLARE @StartRowId INT
    DECLARE @EndRowId INT

	DECLARE @TotalOrderAmount MONEY--ܽ
	DECLARE @TotalOrderCount INT--ܱ

	SET @StrUserId = CAST(@UserId AS varchar(8000))
	SET @StrRestUserId = CAST(@RestUserId AS varchar(8000))

	--Where	
	SET @Where = 'WHERE 1=1'
	IF @RestUserId > 0 SET @Where = @Where + ' AND restID IN (SELECT id FROM tbl_restaurant'
		+ ' WHERE userID=' + @StrRestUserId + ' OR MuserID=' + @StrRestUserId
		+ ' UNION SELECT restID FROM tbl_restUser WHERE userID=' + @StrRestUserId + ')'
	IF @UserType > 0 BEGIN
		IF @UserType = 1 SET @Where = @Where + ' AND userID>0'
		IF @UserType = 2 SET @Where = @Where + ' AND userID=0'
	END
	IF @UserId > 0 SET @Where = @Where + ' AND userID=' + @StrUserId
	IF @UserEmail <> '' SET @Where = @Where + ' AND UserEmail=''' + @UserEmail + ''''
	IF @RestId > 0 SET @Where = @Where + ' AND RestId=' + CAST(@RestId AS varchar(8000))
	IF @OrderId > 0 SET @Where = @Where + ' AND id=' + CAST(@OrderId AS varchar(8000))
	IF @State > -3 SET @Where = @Where + ' AND State=' + CAST(@State AS varchar(8000))
	IF @Name <> '' SET @Where = @Where + ' AND Name LIKE ''' + @Name + ''''
	IF @ProvinceId > 0 SET @Where = @Where + ' AND ProvinceId=' + CAST(@ProvinceId AS VARCHAR(50))
	IF @CityId > 0 SET @Where = @Where + ' AND CityId=' + CAST(@CityId AS VARCHAR(50))
	IF @RegionId > 0 SET @Where = @Where + ' AND RegionId=' + CAST(@RegionId AS VARCHAR(50))
	IF @ZoneId > 0 SET @Where = @Where + ' AND ZoneId=' + CAST(@ZoneId AS VARCHAR(50))
	IF @AreaId > 0 SET @Where = @Where + ' AND AreaId=' + CAST(@AreaId AS VARCHAR(50))
	IF @RoomName <> '' SET @Where = @Where + ' AND RoomName LIKE ''%' + @RoomName + '%'''
	IF @SourceId > -1 SET @Where = @Where + ' AND SourceId=' + CAST(@SourceId AS VARCHAR(10))
	IF @OrderId = 0 BEGIN
		IF @BeginDateTime IS NOT NULL BEGIN
			/*SET @BeginDateTimeStr = CAST(YEAR(@BeginDateTime) AS varchar(8000)) + '-'
				+ CAST(MONTH(@BeginDateTime) AS varchar(8000)) + '-'
				+ CAST(DAY(@BeginDateTime) AS varchar(8000)) + ' 0:0:0'*/
			SET @Where = @Where + ' AND date_time>=''' + CAST(@BeginDateTime AS varchar(8000)) + ''''
		END
		IF @EndDateTime IS NOT NULL BEGIN
			/*SET @EndDateTimeStr = CAST(YEAR(@EndDateTime) AS varchar(8000)) + '-'
				+ CAST(MONTH(@EndDateTime) AS varchar(8000)) + '-'
				+ CAST(DAY(@EndDateTime) AS varchar(8000)) + ' 23:59:59'*/
			SET @Where = @Where + ' AND date_time<=''' + CAST(@EndDateTime AS varchar(8000)) + ''''
		END
		IF @BeginDeliverDate IS NOT NULL BEGIN
			SET @BeginDeliverDateStr = CAST(YEAR(@BeginDeliverDate) AS varchar(8000)) + '-'
				+ CAST(MONTH(@BeginDeliverDate) AS varchar(8000)) + '-'
				+ CAST(DAY(@BeginDeliverDate) AS varchar(8000)) + ' 0:0:0'
			SET @Where = @Where + ' AND deliverDate>=''' + @BeginDeliverDateStr + ''''
		END
		IF @EndDeliverDate IS NOT NULL BEGIN
			SET @EndDeliverDateStr = CAST(YEAR(@EndDeliverDate) AS varchar(8000)) + '-'
				+ CAST(MONTH(@EndDeliverDate) AS varchar(8000)) + '-'
				+ CAST(DAY(@EndDeliverDate) AS varchar(8000)) + ' 23:59:59'
			SET @Where = @Where + ' AND deliverDate<=''' + @EndDeliverDateStr + ''''
		END
	END

	--TotoalCount
	SET @Sql = N'SELECT @TotalCountOut=Count(id) FROM v_Order_GeneralList ' + @Where
	EXEC sp_executesql @Sql, N'@TotalCountOut INT OUTPUT', @TotalCountOut=@TotalCount OUTPUT

	if @PageSize=-1 begin-- -1Ϊȫ
		SELECT @PageIndex=1, @TotalPage=1
		SET @Sql = 'SELECT * FROM (SELECT *, () OVER(ORDER BY id DESC) as RowId FROM v_Order_GeneralList 
					' + @Where + ') AS T '
		select @sql
	end else begin
		--TotalPage
		SET @TotalPage = CEILING((@TotalCount + 0.0) / @PageSize)
		
		--CheckPageIndex
		IF @PageIndex < 1 SET @PageIndex = 1
		IF @PageIndex > @TotalPage SET @PageIndex = @TotalPage

		--RowRange
		SET @StartRowId = (@PageIndex - 1) * @PageSize + 1
		set @EndRowId = @StartRowId + @PageSize - 1

		--PagedTable
		SET @Sql = 'SELECT * FROM (SELECT *, () OVER(ORDER BY Id DESC) as RowId FROM v_Order_GeneralList ' + @Where
		SET @Sql = @Sql + ') AS T WHERE RowId BETWEEN ' + CAST(@StartRowId AS VARCHAR(50)) + ' AND ' + CAST(@EndRowId AS VARCHAR(50))
	end
	--Output table
	EXEC (@Sql)

	--Output pageinfo
	SELECT @PageIndex AS PageIndex, @PageSize AS PageSize, @TotalCount AS TotalCount, @TotalPage AS TotalPage

	--Output sum
	SET @Sql = 'SELECT @TotalOrderAmountOut=ISNULL(Sum(total), 0) FROM v_Order_GeneralList ' + @Where
	EXEC sp_executesql @Sql, N'@TotalOrderAmountOut FLOAT OUTPUT', @TotalOrderAmountOut=@TotalOrderAmount OUTPUT

	SET @TotalOrderCount = @TotalCount

--	SET @Sql = 'SELECT @OrderAvgAmountOut=Count(id) FROM v_Order_GeneralList ' + @Where
--	EXEC sp_executesql @Sql, N'@OrderAvgAmountOut FLOAT OUTPUT', @OrderAvgAmountOut=@OrderAvgAmount OUTPUT

	SELECT @TotalOrderAmount AS TotalOrderAmount, @TotalOrderCount AS TotalOrderCount
	
END














GO
/****** :  StoredProcedure [dbo].[sp_ActivityIntegralRateInfoAdd]    ű: 02/01/2010 14:22:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






--***********************
--Autor:wjh
--datetime:2007-11-12
--description:ӻֹ
--************************
CREATE PROCEDURE [dbo].[sp_ActivityIntegralRateInfoAdd]
@name varchar(8000)='',
@startTime varchar(120),
@endTime varchar(120),
@rate float=0,
@integral float = 0,
@adminID int = 0,
@content varchar(8000)='',
@result int=0  output
AS
SET XACT_ABORT ON  --  try  
BEGIN  
    begin
    begin tran
	declare @spResult int
	declare @str varchar(4000)
set @str = ''

if (select count(*) from tbl_ActivityIntegralRate where isDelete=0 )=0
 begin
     exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
   insert into tbl_ActivityIntegralRate(name,startTime,endTime,rate,integral,postTime) 
values(@name,@startTime,@endTime,@rate,@integral,getdate())
      if @@error=0 begin
      set @result=1
      end  else begin
      set @result=0 end
end 
else 
begin 
      /************************************/
     if exists( select * from  tbl_ActivityIntegralRate 
where @startTime between startTime and endTime and isDelete=0) 
begin set  @result=2 end 

     if exists( select * from  tbl_ActivityIntegralRate 
where @endTime between startTime and endTime and isDelete=0) 
begin set  @result=2 end 
     
     if exists( select * from  tbl_ActivityIntegralRate 
where startTime between @startTime and @endTime and isDelete=0) 
begin set  @result=2 end 

     if exists( select * from  tbl_ActivityIntegralRate 
where endTime between @startTime and @endTime and isDelete=0) 
begin set  @result=2 end 
       /************************************/

    if @result<>2 begin
exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
     insert into tbl_ActivityIntegralRate(name,startTime,endTime,rate,integral,postTime) 
values(@name,@startTime,@endTime,@rate,@integral,getdate())
          if @@error=0 begin
          set @result=1
          end else begin
          set @result=0 end
    end
end

END 
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
--set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result


end











GO
/****** :  StoredProcedure [dbo].[sp_ActivityIntegralRateInfoDelete]    ű: 02/01/2010 14:22:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--ɾֹ
CREATE PROCEDURE [dbo].[sp_ActivityIntegralRateInfoDelete]
@id int=0,
@adminID int = 0,
@content varchar(8000)='',
@result int=0  output
AS
SET XACT_ABORT ON  --  try  
BEGIN   
    begin
    begin tran
	declare @spResult int
	declare @str varchar(4000)
set @str = ''
exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
update tbl_ActivityIntegralRate set isDelete=1 where id=@id
  if @@error=0 begin
  set @result=1
  end
END   
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result

end




GO
/****** :  StoredProcedure [dbo].[sp_ActivityIntegralRateInfoSelect]    ű: 02/01/2010 14:22:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





--б

CREATE PROCEDURE [dbo].[sp_ActivityIntegralRateInfoSelect]
@id int=0
AS
if @id=0
begin
select id,[name],startTime,endTime,rate,(cast(rate*100 as varchar(8000)) + '%') as rateShow   ,integral,postTime from tbl_ActivityIntegralRate where isDelete=0  order by startTime desc 
end else begin
select id, [name],startTime,endTime,rate,(cast(rate*100 as varchar(8000)) + '%') as rateShow ,integral,postTime from tbl_ActivityIntegralRate where isDelete=0 and id=@id  order by startTime desc
end












GO
/****** :  StoredProcedure [dbo].[sp_ActivityIntegralRateInfoUpdate]    ű: 02/01/2010 14:22:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








CREATE PROCEDURE [dbo].[sp_ActivityIntegralRateInfoUpdate]
@id int=0,
@name varchar(8000),
@startTime datetime,
@endTime datetime,
@rate float,
@integral float,
@adminID int = 0,
@content varchar(8000)='',
@result int=0  output
AS
SET XACT_ABORT ON  --  try  
BEGIN   
    begin
    begin tran
	declare @spResult int
	declare @str varchar(4000)
set @str = ''

     /************************************/
     if exists( select * from  tbl_ActivityIntegralRate 
where @startTime between startTime and endTime and isDelete=0 and id<>@id ) 
begin set  @result=2 end 

     if exists( select * from  tbl_ActivityIntegralRate 
where @endTime between startTime and endTime and isDelete=0  and id<>@id  ) 
begin set  @result=2 end 
     
     if exists( select * from  tbl_ActivityIntegralRate 
where startTime between @startTime and @endTime and isDelete=0  and id<>@id  ) 
begin set  @result=2 end 

     if exists( select * from  tbl_ActivityIntegralRate 
where endTime between @startTime and @endTime and isDelete=0  and id<>@id  ) 
begin set  @result=2 end 
       /************************************/
    if @result<>2 begin 
exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
update tbl_ActivityIntegralRate  
set [name] =@name, startTime = @startTime ,endTime=@endTime ,rate=@rate ,integral = @integral,posttime=getdate() where id=@id
  if @@error=0 begin
  set @result=1
  end
  end 
END   
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
--set @Result = 1
COMMIT TRANSACTION--ύ
END 
select @Result

end










GO
/****** :  StoredProcedure [dbo].[sp_activityLeaveBoard_add]    ű: 02/01/2010 14:22:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




create procedure [dbo].[sp_activityLeaveBoard_add]
@ID int,
@activityID bigint,
@postUserID bigint=0,
@title varchar(50),
@Posttime datetime,
@content text,
@result int =0 output
 AS
begin
   if @ID>0 
	begin
	update tbl_activityLeaveBoard set activityID=@activityID,@postUserID=@postUserID,title=@title,Posttime=@PostTime,content=@content where id=@id
	set @result=1
	end
   else
	begin
	insert into tbl_activityLeaveBoard(activityID,postUserID,title,PostTime,content) values(@activityID,@postUserID,@title,@PostTime,@content)
	set @result=2
	end
end
select @result




GO
/****** :  StoredProcedure [dbo].[sp_activityLeaveBoard_delete]    ű: 02/01/2010 14:22:24 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





create procedure [dbo].[sp_activityLeaveBoard_delete]
@ID int,
@result int =0 output
 AS
begin
   if @ID>0 
	begin
	update tbl_activityLeaveBoard set isDelete=1 where id=@id
	set @result=1
	end
   
end
select @result





GO
/****** :  StoredProcedure [dbo].[sp_activityLeaveBoard_get]    ű: 02/01/2010 14:22:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









CREATE procedure [dbo].[sp_activityLeaveBoard_get]
@ID int=0,
@activityID bigint=0,
@userID bigint=0,
@limit int=0,
@strOrder varchar(50)='id desc'
 AS
begin
	declare @sql varchar(500)
	declare @where varchar(500)	
	declare @str varchar(50)
	set @where = ''
	set @str=''
	if @limit>0
		set @str=' top ' + ltrim(str(@limit))
	set @sql = 'select ' + @str + ' a.*,u.nickName as postUserName,u.photo as uPhoto,ud.interest from tbl_activityLeaveBoard a '
	set @sql = @sql + ' left join tbl_user u on a.postUserID=u.id left join tbl_userDetail ud on u.id=ud.id '
	set @where=@where + ' and a.activityID in (select id from tbl_activityData where isDelete=0) '
	if @id>0		
		set @where=@where + ' and a.id=' + ltrim(str(@id))	
	if @activityID>0
		set @where=@where + ' and a.activityID=' + ltrim(str(@activityID))
	if @userID>0		
		set @where=@where + ' and a.postUserID=' + ltrim(str(@userID))		
	set @where=@where + ' and a.isDelete=0'
	if len(@where)>0
		set @where=substring(@where,5,len(@where)-4)
	if len(@where)>0
		set @sql=@sql + ' where ' + @where + ' order by a.' + @strOrder
	else
		set @sql=@sql + 'order by a.' + @strOrder
--select @sql
	exec(@sql)  
	select @@rowcount 
end










GO
/****** :  StoredProcedure [dbo].[sp_activityLeaveBoard_isDelete]    ű: 02/01/2010 14:22:26 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





create procedure [dbo].[sp_activityLeaveBoard_isDelete]
@ID int,
@activityID bigint,
@result int =0 output
 AS
begin
   if @ID>0 
	begin
	update tbl_activityLeaveBoard set isDelete=1 where id=@id
	set @result=1
	end   
end
select @result





GO
/****** :  StoredProcedure [dbo].[sp_activityUser_add]    ű: 02/01/2010 14:22:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










CREATE PROCEDURE [dbo].[sp_activityUser_add]		
	@activityID bigint=0,	
	@userID bigint=0,		
	@level int=0,	
	@ret int=0 output
AS
BEGIN	
	SET NOCOUNT ON	
	declare @cnt int	
	set @cnt=0	
	select @cnt=count(*) from tbl_activityUser where activityID=@activityID and userID=@userID
	if @cnt=0
		begin	
			insert tbl_activityUser(activityID,userID,level) values(@activityID,@userID,@level)			
			set @ret=1
		end
	else
		begin
			update tbl_activityUser set level=@level where activityID=@activityID and userID=@userID
			set @ret=2
		end
    select @ret
END










GO
/****** :  StoredProcedure [dbo].[sp_activityUser_delete]    ű: 02/01/2010 14:22:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO












CREATE PROCEDURE [dbo].[sp_activityUser_delete]		
	@activityID bigint=0,	
	@userID bigint=0,		
	@level int=0,	
	@ret int=0 output
AS
BEGIN	
	SET NOCOUNT ON	
	if @level>=0
		delete tbl_activityUser where activityID=@activityID and userID=@userID and level=@level
	else
		delete tbl_activityUser where activityID=@activityID and userID=@userID
    select @ret
END












GO
/****** :  StoredProcedure [dbo].[sp_activityUser_get]    ű: 02/01/2010 14:22:30 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO












CREATE PROCEDURE [dbo].[sp_activityUser_get]		
	@activityID bigint=0,	
	@userID bigint=0,		
	@level int=-2,
	@strOrder varchar(50)='activityID desc'	
AS
BEGIN	
	SET NOCOUNT ON
	declare @sql varchar(500)
	declare @where varchar(500)	
	set @where = ''
	set @sql = 'select a.*,u.nickName as userName from tbl_activityUser a left join tbl_user u on a.userID=u.id '	
	set @where=@where + ' and (a.activityID in (select id from tbl_activityData where isDelete=0)) '
	if @activityID>0		
		set @where=@where + ' and a.activityID=' + ltrim(str(@activityID))	
	if @userID>0
		set @where=@where + ' and a.userID=' + ltrim(str(@userID))
	if @level=-3--ȫ
		set @where=@where + ' and a.level>=-1'
	if @level=-2--Ѿ
		set @where=@where + ' and a.level>=0'
	else if @level>=-1--
		set @where=@where + ' and a.level=' + ltrim(str(@level))
	if len(@where)>0
		set @where=substring(@where,5,len(@where)-4)
	if len(@where)>0
		set @sql=@sql + ' where ' + @where + ' order by a.' + @strOrder
	else
		set @sql=@sql + ' order by ' + @strOrder
	exec(@sql)
    select @@rowcount
END












GO
/****** :  StoredProcedure [dbo].[sp_add_SystemLabel]    ű: 02/01/2010 14:22:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_add_SystemLabel]
@type int,
@tag varchar(100)
AS
declare @tl varchar(50)
declare @index int
set @tag = ltrim((rtrim(@tag)))
set @index = charindex(' ',@tag)

	while(@index<>0)
	begin
		set @tl = ltrim(rtrim(left(@tag, @index)))
		if @tl<>''
			if exists(select * from tbl_SystemLabel where labelString = @tl and [type] = @type)
				update tbl_SystemLabel set amount = amount + 1 where labelString = @tl and [type] = @type
			else
				insert into tbl_SystemLabel(labelString,[type]) values(@tl, @type)

		set @tag = right(@tag, len(@tag) - @index)
		set @index = charindex(' ' ,@tag)
	end

	if exists(select * from tbl_SystemLabel where labelString = @tag and [type] = @type)
		update tbl_SystemLabel set amount = amount + 1 where labelString = @tag and [type] = @type
	else
		insert into tbl_SystemLabel(labelString,[type]) values(@tag, @type)

GO
/****** :  StoredProcedure [dbo].[sp_add2MonthTop10]    ű: 02/01/2010 14:22:33 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_add2MonthTop10]
@id int,
@userID int
 AS
declare @amount int
select @amount=count(*) from tbl_monthTop10 where restID=@id
if(@amount=0)
begin
	insert into tbl_monthTop10(restID,addUserID)values(@id,@userID)
	update tbl_monthTop10 set id=id+1
	select 1
end
else
	select -1
GO
/****** :  StoredProcedure [dbo].[sp_add2NewRestTop10]    ű: 02/01/2010 14:22:35 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_add2NewRestTop10]
@id int,
@userID int
 AS
declare @amount int
select @amount=count(*) from tbl_newRest where restID=@id
if(@amount=0)
begin
	insert into tbl_newRest(restID,addUserID)values(@id,@userID)
	update tbl_newRest set id=id+1
	select 1
end
else
	select -1
GO
/****** :  StoredProcedure [dbo].[sp_add2WeekTop10]    ű: 02/01/2010 14:22:36 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_add2WeekTop10]
@id int,
@userID int
 AS
declare @amount int
select @amount=count(*) from tbl_weekTop10 where restID=@id
if(@amount=0)
begin
	insert into tbl_weekTop10(restID,addUserID)values(@id,@userID)
	update tbl_weekTop10 set id=id+1
	select 1
end
else
	select -1
GO
/****** :  StoredProcedure [dbo].[sp_AddAnswer]    ű: 02/01/2010 14:22:37 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_AddAnswer]
@ID int=0,
@questionID Int=0 ,
@dealUserID int=0,
@dealContent text,
@dealTime DateTime,
@result int =0 output
AS

if @ID>0
	begin
		upDate tbl_answer Set questionID=@questionID,dealUserID=@dealUserID,dealContent=@dealContent,
			dealTime=@dealTime
			where ID=@ID
		set @result=2	

	end
else
	begin
		insert into tbl_answer(questionID,dealUserID,dealContent,dealTime) 
			values(@questionID,@dealUserID,@dealContent,@dealTime)
		set @result=1
	end
if @questionID>0
	update tbl_question set state=2 where ID=@questionID
select @result
GO
/****** :  StoredProcedure [dbo].[sp_addArea]    ű: 02/01/2010 14:22:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE PROCEDURE  [dbo].[sp_addArea] 
@id int=0,
@provinceID int,
@cityID int,
@regionID int,
@zoneID int,
@name varchar(40),
@address varchar(50),
@note varchar(50),
@userID bigint=0,
@userName varchar(16)='',
@classID int,
@mapCity varchar(30)='',
@mapX bigint=0,
@mapY bigint=0,
@state int=-1,
@photoId int = 0,
@label varchar(100) = '',
@result int =0 output
AS
--declare @userID bigint
--if @id=0
--begin
--	select @userID=id from tbl_user where name=@userName
--	if @userID>0
--		set @userID=@userID
--	else
--		set  @userID=0
--end

--жû¥
if(select count(*) from tbl_area where zoneId=@zoneID and name=@name and id<>@id and isdelete=0)=0 begin
	if @id=0 begin --
		declare @aID int	
		begin tran	
		begin
			insert into tbl_area(provinceID,cityID,regionID,zoneID,name,userID,address,note,classID,photoID,label)values(@provinceID,@cityID,@regionID,@zoneID,@name,@userID,@address,@note,@classID,@photoID,@label)
			set @aID=@@IDENTITY
			if len(@mapCity)>0 and @mapX>0 and @mapY>0
				exec [sp_areaMapInfo_add] @aID,@mapCity,@mapX,@mapY
				
		if @@error>0 begin
			Rollback Tran
			set @result=-1
		end else begin
			Commit Tran
			set @result=@aID
		end
	end 
	end
	else begin --޸
		update tbl_area set provinceID=@provinceID,cityID=@cityID,regionID=@regionID,zoneID=@zoneID,name=@name,address=@address,note=@note,classID=@classID ,label = @label where id=@id
	end
end
else begin --ģͷ¥ID
	select @result=id from tbl_area where zoneId=@zoneID and name=@name and id<>@id and isdelete=0
		/*begin
			if @state>=0 begin
				update tbl_area set provinceID=@provinceID,cityID=@cityID,regionID=@regionID,zoneID=@zoneID,name=@name,address=@address,note=@note,classID=@classID where id=@id and state=@state
				if exists(select * from tbl_area where id=@id and state=@state) begin
					if len(@mapCity)>0 and @mapX>0 and @mapY>0
						exec [sp_areaMapInfo_add] @id,@mapCity,@mapX,@mapY			
				end
			end else begin
				update tbl_area set provinceID=@provinceID,cityID=@cityID,regionID=@regionID,zoneID=@zoneID,name=@name,address=@address,note=@note,classID=@classID where id=@id
				if len(@mapCity)>0 and @mapX>0 and @mapY>0
					exec [sp_areaMapInfo_add] @id,@mapCity,@mapX,@mapY			
			end
		If @@Error>0 Begin
			RollBack Tran
			Set @result=-1
		End Else Begin
			Commit Tran
			Set @result=@id
		End*/	
end
select @result






GO
/****** :  StoredProcedure [dbo].[sp_addAreaStand]    ű: 02/01/2010 14:22:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







--̨ӱ׼¥

CREATE PROCEDURE  [dbo].[sp_addAreaStand] 
@id int=0,
@provinceID int,
@cityID int,
@regionID int,
@zoneID int,
@name varchar(40),
@address varchar(50),
@photoId int = 0,
@label varchar(100) = '',
@state int = 0,
@result int =0 output
AS
declare @aID int
--жû¥
if(select count(*) from tbl_area where zoneId=@zoneID and name=@name and id<>@id and isdelete=0 and parentId = id)=0 begin
	if @id=0 begin --
			insert into tbl_area(provinceID,cityID,regionID,zoneID,name,address,photoID,label,state)values(@provinceID,@cityID,@regionID,@zoneID,@name,@address,@photoID,@label,@state)
			set @aID=@@IDENTITY
			update tbl_area set parentId = id where id = @aID
			if @@error = 0 begin set @result = 1 end
	end else begin --޸
		update tbl_area set provinceID=@provinceID,cityID=@cityID,regionID=@regionID,zoneID=@zoneID,address=@address ,label = @label where id=@id
		if @@error = 0 begin set @result = 1 end
	end
end	else begin --ģͷ¥ID
	select @result=id from tbl_area where zoneId=@zoneID and name=@name and id<>@id and isdelete=0
end
select @result









GO
/****** :  StoredProcedure [dbo].[sp_addDeliverTime]    ű: 02/01/2010 14:22:45 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_addDeliverTime]
@restID int,
@deliverTime varchar(200)
AS
declare @substr  varchar(300),@m  int,@n  int  
declare @splitStr char
set @splitStr='|'
set  @m=CHARINDEX(@splitStr,@deliverTime)  
set  @n=1
delete from tbl_deliverTime where restID=@restID
WHILE  @m>0  
BEGIN  
      set  @substr=substring(@deliverTime,@n,@m-@n)  
	--select @substr,@restID,left(@substr,5),right(@substr,5)
   if(select count(*) from tbl_deliverTime where restID=@restID and deliverTimeS=@substr)=0
   	 insert into tbl_deliverTime(restID,startClock,endClock,deliverTimeS)values(@restID,left(@substr,CHARINDEX('-',@substr)-1),right(@substr,len(@substr)-CHARINDEX('-',@substr)),@substr) 
      set  @n=@m+1  
      set  @m=CHARINDEX(@splitStr,@deliverTime,@n)  
END
GO
/****** :  StoredProcedure [dbo].[sp_addFoodMode2Rest]    ű: 02/01/2010 14:22:46 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_addFoodMode2Rest]
@foodModeID int=0,
@restID int=0
 AS
if(select count(*) from tbl_foodMode2Rest where foodModeID=@foodModeID and restID=@restID)=0
begin
	insert into tbl_foodMode2Rest(restID,foodModeID)values(@restID,@foodModeID)
	select 1
end
else
	select -1
GO
/****** :  StoredProcedure [dbo].[sp_addMenu]    ű: 02/01/2010 14:22:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE PROCEDURE  [dbo].[sp_addMenu]
@restID int =0,
@id int=0,
@classID int,
@name nvarchar(40),
@price float,
@MainNote varchar(50),
@Calorie varchar(20),
@Pabulum varchar(30),
@Taste varchar(30),
@photo varchar(100),
@MenuPhotoID bigint,
@note text,
@deliverDay int,
@amount int=0,
@result int =0 output
AS
if @id>0 and @restID>0
begin
begin tran
		if(right(@photo,6)='df.jpg')
			update tbl_menuTable set classID=@classID,name=@name,price=@price,MainNote=@MainNote,calorie=@calorie,
			pabulum=@pabulum,taste=@taste,MenuPhotoID=@MenuPhotoID,note=@note,deliverDay=@deliverDay,amount=@amount
			where id=@id
		else
			update tbl_menuTable set classID=@classID,name=@name,price=@price,MainNote=@MainNote,calorie=@calorie,
			pabulum=@pabulum,taste=@taste,photo=@photo,note=@note,deliverDay=@deliverDay,amount=@amount
			where id=@id
		If @MenuPhotoID>0 Begin
			update tbl_menuTable set MenuPhotoID=@MenuPhotoID Where id=@id	
		End
	If @@Error>0 Begin
		Rollback Tran
		set @result=-1	
	End Else Begin
		Commit Tran
		set @result=@id
	End
	
end
else
begin
	insert into tbl_menuTable(restID,classID,name,price,MainNote,calorie,pabulum,taste,photo,MenuPhotoID,note,deliverDay,amount)
	values(@restID,@classID,@name,@price,@MainNote,@calorie,@pabulum,@taste,@photo,@MenuPhotoID,@note,@deliverDay,@amount)
	set @result=@@identity
end
select @result





GO
/****** :  StoredProcedure [dbo].[sp_AddQuestion]    ű: 02/01/2010 14:22:50 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_AddQuestion]
@ID int=0,
@userID bigInt=0 ,
@classID int=0,
@answerDept int=0,
@title varchar(100),
@postTime DateTime,
@content text, 
@state int=0,
@isDelete int=0,
@result int =0 output
AS

if @ID>0
	begin
		upDate tbl_question Set userID=@userID,classID=@classID,answerdept=@answerDept,title=@title,postTime=@postTime,content=@content,state=@state,isDelete=@isDelete where ID=@ID
		set @result=1	
	end
else
	begin
		insert into tbl_question(userID,classID,answerdept,title,postTime,content,state,isDelete)
			values(@userID,@classID,@answerdept,@title,@postTime,@content,@state,@isDelete)
		set @result=1
	end
select @result
GO
/****** :  StoredProcedure [dbo].[sp_addQuestionClass]    ű: 02/01/2010 14:22:52 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE  [dbo].[sp_addQuestionClass] 
@ID int=0,
@name varchar(50),
@note text,
@result int=0 output
AS
if @ID>0 
	begin
		update tbl_questionClass Set name=@name,note=@note where ID=@ID
		set @result=1
	end
else
	begin
		insert into tbl_questionClass(name,note) values(@name,@note)
		set @result=1
	end
select @result
GO
/****** :  StoredProcedure [dbo].[sp_addQuestionClickAmount]    ű: 02/01/2010 14:22:54 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_addQuestionClickAmount]
@ID int=0,
@result int=0 output
AS
declare @clickAmount bigint

select @clickAmount=clickAmount from tbl_question where ID=@ID  And isDelete=0

update tbl_question set clickAmount=@clickAmount+1 where ID=@ID  And isDelete=0		

select @clickAmount=ClickAmount from tbl_question where ID=@ID  And isDelete=0

set @result=@clickAmount

select @result
GO
/****** :  StoredProcedure [dbo].[sp_addRestaurant]    ű: 02/01/2010 14:22:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE  [dbo].[sp_addRestaurant]
@id int=0,
@provinceID int,
@cityID int,
@regionID int,
@zoneID int,
@classID int,
@name varchar(40),
@linkMan varchar(16),
@phone varchar(20),
@address varchar(30),
@logo varchar(100),
@note text,
@userName varchar(16),
@result int =0 output
AS
declare @userID bigint
if @id=0
begin
	select @userID=id from tbl_user where name=@userName
	if @userID>0
		set @userID=@userID
	else
		set  @userID=0
end

if(select count(*) from tbl_restaurant where zoneId=@zoneID and name=@name and id<>@id)=0
	if @id=0
	begin 
		insert into tbl_restaurant(provinceID,cityID,regionID,zoneID,classID,name,linkMan,phone,address,logo,userID,note)values(@provinceID,@cityID,@regionID,@zoneID,@classID,@name,@linkMan,@phone,@address,@logo,@userID,@note)
		set @result =1
	end
	else
	begin 
	   if(right(@logo,10)='doodii.jpg')
		update tbl_restaurant set provinceID=@provinceID,cityID=@cityID,regionID=@regionID,zoneID=@zoneID,name=@name,linkMan=@linkMan,phone=@phone,address=@address,note=@note,classID=@classID where id=@id
	   else
		update tbl_restaurant set provinceID=@provinceID,cityID=@cityID,regionID=@regionID,zoneID=@zoneID,name=@name,linkMan=@linkMan,phone=@phone,address=@address,logo=@logo,note=@note,classID=@classID where id=@id		
	set @result =2
	end
else
		set @result =-1
select @result
GO
/****** :  StoredProcedure [dbo].[sp_addRestDetail]    ű: 02/01/2010 14:22:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[sp_addRestDetail]
@restID int,
@classID int,
@mobile varchar(15),
@fax varchar(20),
@email varchar(50),
@url varchar(100),
@expenditure int,
@discount float,
@policy varchar(30),
@deliverMoney int,
@deliverNote varchar(40),
@chainMessage varchar(50),
@Posttime datetime,
@content text,
@userID bigint,
@result int =0 output
 AS  
if @restID>0 
begin
	declare @userIDV bigint
	select @userIDV=userID from tbl_restaurant where id=@restID
	if @userIDV=@userID or @userID=-1

	begin
		if(select count(*) from tbl_restIntro where Restid=@restID)=1
			begin
			update tbl_restIntro set classid=@classid,mobile=@mobile,fax=@fax,email=@email,url=@url,expenditure=@expenditure,discount=@discount,policy=@policy,
			deliverMoney=@deliverMoney,deliverNote=@deliverNote,chainMsg=@chainMessage,Posttime=@Posttime,content=@content where restid=@restID
			set @result=1
			--select @content
			end
		else
			begin
			insert into tbl_restIntro(restID,classID,mobile,fax,email,url,expenditure,discount,policy,deliverMoney,deliverNote,chainMsg,postTime,content)
			values(@restID,@classID,@mobile,@fax,@email,@url,@expenditure,@discount,@policy,@deliverMoney,@deliverNote,@chainMessage,@postTime,@content)
			set @result=2
			end
	end
	else
	set @result =-1
end
   else
	set @result=-2
select @result
GO
/****** :  StoredProcedure [dbo].[sp_addRestToFavorite]    ű: 02/01/2010 14:23:01 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE  [dbo].[sp_addRestToFavorite]
@restID int,
@userID bigint
 AS
declare @name varchar(40)
select name from tbl_restaurant where id=@restID
if(select count(*) from tbl_userFavorite where userID=@userID and restID=((@restID)))=0
begin
	insert into tbl_userFavorite(userID,name,restID,url,classID)values(@userID,@name,@restID,ltrim(str(@restID)),0)
	select 1
end
else
	select -1
GO
/****** :  StoredProcedure [dbo].[sp_addServiceDept]    ű: 02/01/2010 14:23:02 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE  [dbo].[sp_addServiceDept]
@ID int=0,
@name varchar(30),
@note text,
@deptManager varchar(20), 
@result int=0 output
AS
if @ID>0 
	begin
		update tbl_serviceDept Set name=@name,note=@note,deptManager=@deptManager where ID=@ID
		set @result=1
	end
else
	begin
		insert into tbl_serviceDept(name,note,deptManager) values(@name,@note,@deptManager)
		set @result=1
	end
select @result
GO
/****** :  StoredProcedure [dbo].[sp_addServiceUser]    ű: 02/01/2010 14:23:04 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE  [dbo].[sp_addServiceUser]
@ID int=0,
@name varchar(50),
@password varchar(40),
@nickName varchar(30),
@email varchar(50),
@deptID int,
@phone varchar(40),
@note text,
@result int=0 output
AS
declare @cnt int
if @ID>0 
	begin
		select @cnt=(count(*)) from tbl_serviceUser where Id<>@ID and name=@name
		if @cnt=0
			begin	
				update tbl_ServiceUser Set 
					name=@name,nickName=@nickName,email=@email,deptID=@deptID,
					phone=@phone,note=@note			
					where ID=@ID
				if @password!=""
					begin
						update tbl_serviceUser set password=@password where ID=@ID
					end
				set @result=2
			end
		else
			set @result=-1
	end
else
	begin
		select @cnt=(count(*)) from tbl_serviceUser where name=@name
		if @cnt=0
			begin
				insert into 
					tbl_ServiceUser(name,password,nickName,email,deptID,phone,note) 
					values(@name,@password,@nickName,@email,@deptID,@phone,@note)
				set @result=1
			end
		else
			set @result=-1
	end
select @result
GO
/****** :  StoredProcedure [dbo].[sp_addShop]    ű: 02/01/2010 14:23:06 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE  [dbo].[sp_addShop]
@id int=0,--͹ID
@provinceID int,--ʡid
@cityID int,--ID
@regionID int,--ID
@zoneID int,--ƬID
@classID int,--͹
@name varchar(40),--͹
@address varchar(100),--ַ
@phone varchar(20),--绰
@mobile varchar(20),--ֻ
@fax varchar(20),---
@isDeliver int,--Ƿ
@responseTime int,--Ӧʱ
@deliverTime varchar(200),--ʱ
@deliverMoney int,--ͽ
@deliverNote varchar(200),--˵׼
@deliverArea varchar(100),--
@linkMan varchar(16),--ϵ
@note text,--͹˵
@userId bigint,
@userName varchar(16)='',--¼
@email varchar(50),--email
@msnqq varchar(50),--ϵʽ
@url varchar(100),--ַ
@LogoPhotoId bigint=0,
@logo varchar(100)='',--ͼ
@addrPhoto varchar(100),--ַ
@settlement varchar(50),--㷽ʽ
@OrderNote varchar(20),--ǷԶ
@expenditure int,--˾
@stallAmount int,--ͣλ
@PAmount int,--
@BAmount int,--
@policy varchar(50),--Ѳ
@Discount  float,--ۿ
@discountNote varchar(50),--ۿ˵
@traffic varchar(100),--ͨ·
@chainMsg varchar(100)='',--Ϣ
@foodModeIds varchar(200)='',
@result int =0 output
AS
declare @muserID bigint
declare @rID int
declare @chainmessage varchar(20)
select @chainmessage=''
set @muserId=@userId
--if @id=0
--begin
--	select @muserID=id from tbl_user where name=@userName
--	if @muserID>0
--		set @userID=@muserID
--	else
--		set  @muserID=0
--end
--select @logo
if(select count(*) from tbl_restaurant where zoneId=@zoneID and name=@name and id<>@id)=0
	if @id=0
	begin 
		insert into tbl_restaurant(provinceID,cityID,regionID,zoneID,classID,name,linkMan,phone,address,LogoPhotoId,logo,addrPhoto,userID,muserID,isDeliver,responseTime,note)values(@provinceID,@cityID,@regionID,@zoneID,@classID,@name,@linkMan,@phone,@address,@LogoPhotoId,@logo,@addrPhoto,@userID,@muserID,@isDeliver,@responseTime,@note)
		select @rID=@@IDENTITY
		insert into tbl_restIntro(restID,classID,mobile,fax,email,msnQQ,url,expenditure,discountNote,settlement,orderNote,policy,deliverMoney,deliverNote,chainMsg,deliverArea,pAmount,bAmount,stallAmount,traffic)
			values(@rID,@classID,@mobile,@fax,@email,@msnQQ,@url,@expenditure,@discountNote,@settlement,@orderNote,@policy,@deliverMoney,@deliverNote,@chainMessage,@deliverArea,@pAmount,@bamount,@stallAmount,@traffic)
		exec sp_addDeliverTime @rID,@deliverTime
		exec [sp_FoodMode_adds] @rID,@foodModeIds
		set @result=1
	end
	else
	begin
		update tbl_restaurant set provinceID=@provinceID,cityID=@cityID,regionID=@regionID,zoneID=@zoneID,classID=@classID,name=@name,linkMan=@linkMan,phone=@phone,address=@address,logo=@logo,userID=@userID,muserID=@muserID,isDeliver=@isDeliver,responseTime=@responseTime,note=@note where id=@id
		if @LogoPhotoId>0
			update tbl_restaurant set LogoPhotoId=@LogoPhotoId where id=@id
		if @addrPhoto>0						
			update tbl_restaurant set addrPhoto=@addrPhoto where id=@id			
		update tbl_restIntro set classID=@classID,mobile=@mobile,fax=@fax,email=@email,msnQQ=@msnQQ,url=@url
			,expenditure=@expenditure,discountNote=@discountNote,settlement=@settlement,orderNote=@orderNote
			,policy=@policy,deliverMoney=@deliverMoney,deliverNote=@deliverNote,chainMsg=@chainMsg,traffic=@traffic
			,deliverArea=@deliverArea,pAmount=@pAmount,bAmount=@bAmount,stallAmount=@stallAmount	
			where restId=@id
		exec sp_addDeliverTime @id,@deliverTime
		exec [sp_FoodMode_adds] @id,@foodModeIds
		set @result=2
	end
else
		set @result=-1
select @result




GO
/****** :  StoredProcedure [dbo].[sp_addShopUser]    ű: 02/01/2010 14:23:12 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_addShopUser]
@shopID int,
@userName varchar(16)
AS
declare @userID bigint
select @userID=id from tbl_user where name=@userName
if @userID>0  and @shopID>0
begin
	if(select count(*) from tbl_restUser where restID=@shopID and userID=@userID)=0
		insert into tbl_restUser(restID,userID)values(@shopID,@userID)
end
GO
/****** :  StoredProcedure [dbo].[sp_addUserAddress]    ű: 02/01/2010 14:23:14 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_addUserAddress]
@ID int,
@userID bigint,
@addressClass int=0,
@address varchar(50),
@regionID int=0,
@zoneID int=0,
@areaID int=0,
@result int=0 output

 AS
declare @class0 int



if @ID>0
begin
	Select @class0=Count(*)  From tbl_userAddress Where userID=@userID And ID<>@ID And addressClass=@addressClass	
	if @class0>=3 
		begin
			set @result=0
		end
	else
		Begin	
			update tbl_userAddress Set userId=@userId,addressClass=@addressClass,regionID=@regionID,zoneID=@zoneID,areaID=@areaID,address=@address where ID=@ID And userID=@userID
			set @result=1
		End
end
else
begin	
	Select @class0=Count(*) From tbl_userAddress Where userID=@userID And addressClass=@AddressClass 
	if @class0>=3
		Begin
			Set @result=0
		End
	Else
		Begin
			insert into tbl_userAddress(userID,addressClass,regionID,zoneID,areaID,address) values(@userID,@addressClass,@regionID,@zoneID,@areaID,@address)
			set @result=1
		End
		
end

Select @result
GO
/****** :  StoredProcedure [dbo].[sp_Admin_addPopAlbum]    ű: 02/01/2010 14:23:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_Admin_addPopAlbum]
@albumID bigint
as
declare @result int
	set @result = 0
	if exists(select * from tbl_topAlbum where albumid=@albumID)
		set @result = -1
	else
		insert into tbl_topAlbum values(@albumID,0)
	select @result
GO
/****** :  StoredProcedure [dbo].[sp_admin_addStarSpace]    ű: 02/01/2010 14:23:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

create PROCEDURE [dbo].[sp_admin_addStarSpace]
@userID bigint
AS

	if exists(select * from tbl_spaceStar where userID=@userID)
		return
	else
	begin
		insert into tbl_spaceStar(userID,orderNumber) 
			(select @userID, case when max(orderNumber)+1 is null then 0 else max(orderNumber)+1 end from tbl_spaceStar)
	end

GO
/****** :  StoredProcedure [dbo].[sp_Admin_addTopPhoto]    ű: 02/01/2010 14:23:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_Admin_addTopPhoto]
@photoID bigint
AS
	declare @result int
	if exists(select * from tbl_topuserphoto where photoID=@photoID)
		set @result=-1
	else
	begin
		insert into tbl_topuserphoto(photoID) values(@photoID)
		set @result=1
	end
	select @result
GO
/****** :  StoredProcedure [dbo].[sp_admin_commandSpace]    ű: 02/01/2010 14:23:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_admin_commandSpace]
@userID bigint
AS

	if exists(select * from tbl_topPerson where userID=@userID)
		return
	else
	begin
		insert into tbl_topPerson(userID,orderNumber) 
			(select @userID, case when max(orderNumber)+1 is null then 0 else max(orderNumber)+1 end from tbl_topPerson)
	end
GO
/****** :  StoredProcedure [dbo].[sp_Admin_deleteStarSpace]    ű: 02/01/2010 14:23:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create PROCEDURE [dbo].[sp_Admin_deleteStarSpace]
@userID bigint
AS
	declare @orderNumber int
	select @orderNumber=orderNumber from tbl_spaceStar where userID=@userID

	delete from tbl_spaceStar where userID = @userID
	
	update tbl_spaceStar set orderNumber = orderNumber-1 where orderNumber>@orderNumber
	
GO
/****** :  StoredProcedure [dbo].[sp_Admin_delUser]    ű: 02/01/2010 14:23:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_Admin_delUser] 
@id bigint
AS
	update tbl_user set state=-1 where id=@id
	select @@rowcount
	RETURN

GO
/****** :  StoredProcedure [dbo].[sp_Admin_getAblum]    ű: 02/01/2010 14:23:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_Admin_getAblum]

as

select * from tbl_userPhotoClass order by createTime desc

select @@rowcount
GO
/****** :  StoredProcedure [dbo].[sp_Admin_IP_append]    ű: 02/01/2010 14:23:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Venson>
-- Create date: <2007-10-15>
-- Description:	<Ӻ̨ûIPȨ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Admin_IP_append]
	@IP VARCHAR(50) = ''
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    IF @IP <> '' INSERT INTO tbl_AdminIP (IP) VALUES (@IP)

	IF @@ROWCOUNT > 0
		SELECT 1
	ELSE
		SELECT 0
END

GO
/****** :  StoredProcedure [dbo].[sp_Admin_IP_getList]    ű: 02/01/2010 14:23:24 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Venson>
-- Create date: <2007-10-15>
-- Description:	<ȡ̨û½IPȨ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Admin_IP_getList] 
	@BeginDateTime DATETIME = NULL,--趨ʱ(ʼʱ)
	@EndDateTime DATETIME = NULL, --趨ʱ(ֹʱ)
	@IP VARCHAR(50) = ''--IP
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @Sql nvarchar(4000)
	DECLARE @Where varchar(8000)

	DECLARE @BeginDateTimeStr VARCHAR(50)
	DECLARE @EndDateTimeStr VARCHAR(50)

    -- Insert statements for procedure here
	SET @Where = '1=1'
	IF @BeginDateTime IS NOT NULL BEGIN
		SET @BeginDateTimeStr = CONVERT(VARCHAR(50), @BeginDateTime, 102) + ' 0:0:0'
		SET @Where = @Where + ' AND Date_time>=''' + @BeginDateTimeStr + ''''
	END
	IF @EndDateTime IS NOT NULL BEGIN
		SET @EndDateTimeStr = CONVERT(VARCHAR(50), @EndDateTime, 102) + ' 23:59:59'
		SET @Where = @Where + ' AND date_time<=''' + @EndDateTimeStr + ''''
	END
	IF @IP <> '' SET @Where = @Where + ' AND IP=''' + @IP + ''''
	
	--SQL
	SET @Sql = 'SELECT * FROM tbl_AdminIP WHERE ' + @Where + ' ORDER BY ID DESC'
	
	EXEC(@Sql)
END


GO
/****** :  StoredProcedure [dbo].[sp_Admin_PhotoManage]    ű: 02/01/2010 14:23:26 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_Admin_PhotoManage]
@value varchar(50),
@isSearch varchar(10),
@term varchar(10)
AS
	declare @sql varchar(8000)
	set @sql = 'select tp.*,tu.nickName,tu.email,tu.Name userName,
		(select count(*) from tbl_userLeaveBoard tb where photoID=tp.id and isDelete>-1) commentAmount from tbl_userPhoto 
		tp,tbl_user tu where tp.userID=tu.id and tu.state > -1'
	if @isSearch = 'true'
	begin
		if @term='name'
			set @sql = @sql + ' and tu.name like ''%' + @value + '%'' order by uploadTime desc'
		else if @term='id'
			set @sql = @sql + ' and tu.id = ' + @value + ' order by uploadTime desc'
	end
exec (@sql)
select @@rowcount
GO
/****** :  StoredProcedure [dbo].[sp_Admin_sortSpace]    ű: 02/01/2010 14:23:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_Admin_sortSpace]
@userID bigint,
@value int
AS
	declare @max int
	declare @orderNumber int
	select @max=max(orderNumber) from tbl_topPerson
	select @orderNumber=orderNumber from tbl_topPerson where userID=@userID

	update tbl_topPerson set orderNumber = 
		case userID when @userID then 
			(case @value when 1 then
				(case orderNumber when @max then orderNumber else orderNumber+@value end)
			when -1 then
				(case orderNumber when 0 then orderNumber else orderNumber+@value end)
			end)
		else
			case orderNumber when @orderNumber+@value then orderNumber+(-@value) else orderNumber end
		end
GO
/****** :  StoredProcedure [dbo].[sp_Admin_sortStarSpace]    ű: 02/01/2010 14:23:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create PROCEDURE [dbo].[sp_Admin_sortStarSpace]
@userID bigint,
@value int
AS
	declare @max int
	declare @orderNumber int
	select @max=max(orderNumber) from tbl_spaceStar
	select @orderNumber=orderNumber from tbl_spaceStar where userID=@userID

	update tbl_spaceStar set orderNumber = 
		case userID when @userID then 
			(case @value when 1 then
				(case orderNumber when @max then orderNumber else orderNumber+@value end)
			when -1 then
				(case orderNumber when 0 then orderNumber else orderNumber+@value end)
			end)
		else
			case orderNumber when @orderNumber+@value then orderNumber+(-@value) else orderNumber end
		end
GO
/****** :  StoredProcedure [dbo].[sp_adminUser_set]    ű: 02/01/2010 14:23:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_adminUser_set] --ʹ˵user_set_sp ƷIDʽʾonshowɾdelete
@id int=0,
@set_kind varchar(10)= '' ,
@result int=0 output
AS
begin
if @set_kind='stop'
	update tbl_systemUser set state=-1 where id=@id
if @set_kind='delete'
	update tbl_systemUser set state=-2 where id=@id	
if @set_kind='init'
	update tbl_systemUser set state=0 where id=@id	
if @@error>0 
	begin
	rollback TRAN
	select @result=0
	end
else
begin
	commit	TRAN
	declare @temp varchar(50)
	select @temp =@set_kind + '  user id is  ' + str(@id)
	--exec sp_write_adminlog 1,@userID,@url,'0.0.0.0',@temp
	select @result=1
end
select @result
end

GO
/****** :  StoredProcedure [dbo].[sp_AllOrdersDeductsReportStatis]    ű: 02/01/2010 14:23:30 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_AllOrdersDeductsReportStatis]
               @ProvinceID INT  = 0,
               @CityID     INT  = 0,
               @RegionID   INT  = 0,
               @ZoneID     INT  = 0,
               @StartDate  DATETIME  = '1900-1-1',
               @EndDate    DATETIME  = '9999-1-1'
AS
  BEGIN
    DECLARE @Sql NVARCHAR ( 4000 )    
    DECLARE @Where VARCHAR ( 8000 )    
    DECLARE @ProvinceIdStr VARCHAR ( 8000 )
    DECLARE @CityIdStr VARCHAR ( 8000 )
    DECLARE @RegionIdStr VARCHAR ( 8000 )
    DECLARE @ZoneIdStr VARCHAR ( 8000 )
    SET @ProvinceIdStr = CAST ( @ProvinceID AS VARCHAR ( 4000 ) )
    SET @CityIdStr = CAST ( @CityID AS VARCHAR ( 4000 ) )
    SET @RegionIdStr = CAST ( @RegionID AS VARCHAR ( 4000 ) )
    SET @ZoneIdStr = CAST ( @ZoneID AS VARCHAR ( 4000 ) )
    SET @Where = ''
    IF @ProvinceID > 0 OR @CityID > 0 OR @RegionID > 0 OR @ZoneID > 0
      BEGIN
        IF @ProvinceId > 0
          SET @Where = @Where + ' AND c.ProvinceId=' + @ProvinceIdStr + ' AND '
        IF @CityId > 0
          SET @Where = @Where + ' c.CityId=' + @CityIdStr + ' AND '
        IF @RegionId > 0
          SET @Where = @Where + ' c.RegionId=' + @RegionIdStr + ' AND '
        IF @ZoneId > 0
          SET @Where = @Where + ' c.ZoneId=' + @ZoneIdStr + ' AND '
        SET @Where = Substring(@Where,1,Len(@Where) - 4)
      END
---ܵǩԼ˵
set @sql=' select a1.name,a1.TotalRestCount,
a2.TotalOrderCount,a2.TotalMoney,a2.TotalDeduct 
from  ( 
SELECT a.userID userID,b.name name,COUNT(*) AS TotalRestCount
FROM  dbo.tbl_restSignUp AS a 
LEFT JOIN  dbo.tbl_restaurant c ON a.restID = c.id
left join  tbl_systemUser b on a.userid=b.id
where  a.date_time >=  ''' +  CAST(@StartDate AS VARCHAR(20)) + 
'''   and  a.date_time <  ''' + CAST(@EndDate AS VARCHAR(20)) + ''' '  
+ @Where + '  GROUP BY a.userID,b.name ) a1  left join '
---ܵɶ
set @sql=@sql + '
(  
select   
userID=T.userID ,
TotalOrderCount=sum(T.TotalOrderCount),  
TotalMoney=sum(T.TotalMoney),
TotalDeduct=sum(T.TotalDeduct)
from
(
select d.userID userID,
TotalOrderCount=count(*),
TotalMoney=sum(a.total),
TotalDeduct=sum(a.total)*d.deduct
from v_Order_GeneralList a ,tbl_restaurant c ,tbl_restSignUp d ,
tbl_systemUser b   where  a.state=1    
and  a.restID=c.id and a.restID = d.restID and d.userid=b.id     
and  a.date_time >=  ''' +  CAST(@StartDate AS VARCHAR(20)) +  
'''   and  a.date_time <  ''' + CAST(@EndDate AS VARCHAR(20)) +  
'''   and d.date_time >=  ''' +  CAST(@StartDate AS VARCHAR(20)) +  
'''   and  d.date_time <  ''' + CAST(@EndDate AS VARCHAR(20)) + ''' '   
+ @Where + ' GROUP BY d.userID,d.deduct 
) T   GROUP BY  T.userID
) a2  on   a1.userID=a2.userID   order by a2.TotalDeduct desc '
             
EXEC( @sql)
END
 








GO
/****** :  StoredProcedure [dbo].[sp_AllRestHotVegeStatis]    ű: 02/01/2010 14:23:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_AllRestHotVegeStatis]
@StartDateStr datetime='1900-1-1',
@EndDateStr datetime='9999-1-1'
AS
begin

select top 50 ccc.id id,
ccc.MenuName MenuName,
sum(ccc.OrderCount) OrderCount,
sum(ccc.OrderMoney) OrderMoney
from 
(
select a.menuID id,c.name MenuName,
sum(a.amount) OrderCount,
sum(a.menuSum)  OrderMoney
from
tbl_orderDetail a 
left join tbl_order b on a.orderid=b.id
left join tbl_menuTable c on a.menuID=c.id
left join tbl_restaurant d on b.restID=d.id
where b.date_time >=  CAST(@StartDateStr as varchar(20))
and  b.date_time <  CAST(@EndDateStr as varchar(20)) 
and  d.SClassID=3
group by a.menuID,c.name

union all

select a.menuID id,c.name MenuName,
sum(a.amount) OrderCount,
sum(a.menuSum)  OrderMoney
from
tbl_suiteMenuOrderDetail a 
left join tbl_suiteMenuOrder b on a.orderid=b.id
left join tbl_suiteMenuTable c on a.menuID=c.id
left join tbl_restaurant d on b.restID=d.id
where b.date_time >=  CAST(@StartDateStr as varchar(20))
and  b.date_time <  CAST(@EndDateStr as varchar(20)) 
and  d.SClassID=3
group by a.menuID,c.name

) ccc
where ccc.MenuName is not null
group  by  ccc.id,ccc.MenuName
order by OrderCount desc ,OrderMoney desc

end







GO
/****** :  StoredProcedure [dbo].[sp_AllSignsDeductsReportStatis]    ű: 02/01/2010 14:23:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_AllSignsDeductsReportStatis]
               @ProvinceID INT  = 0,
               @CityID     INT  = 0,
               @RegionID   INT  = 0,
               @ZoneID     INT  = 0,
               @StartDate  DATETIME  = '1900-1-1',
               @EndDate    DATETIME  = '9999-1-1'
AS
  BEGIN
  DECLARE @Sql NVARCHAR ( 4000 )
    
    DECLARE @Where VARCHAR ( 8000 )
    
    DECLARE @ProvinceIdStr VARCHAR ( 8000 )
    
    DECLARE @CityIdStr VARCHAR ( 8000 )
    
    DECLARE @RegionIdStr VARCHAR ( 8000 )
    
    DECLARE @ZoneIdStr VARCHAR ( 8000 )
    
    SET @ProvinceIdStr = CAST ( @ProvinceID AS VARCHAR ( 8000 ) )
    
    SET @CityIdStr = CAST ( @CityID AS VARCHAR ( 8000 ) )
    
    SET @RegionIdStr = CAST ( @RegionID AS VARCHAR ( 8000 ) )
    
    SET @ZoneIdStr = CAST ( @ZoneID AS VARCHAR ( 8000 ) )
    
    SET @Where = ''
    
    IF @ProvinceID > 0
        OR @CityID > 0
        OR @RegionID > 0
        OR @ZoneID > 0
      BEGIN
        IF @ProvinceId > 0
          SET @Where = @Where + ' AND b.ProvinceId=' + @ProvinceIdStr + ' AND '
        
        IF @CityId > 0
          SET @Where = @Where + ' b.CityId=' + @CityIdStr + ' AND '
        
        IF @RegionId > 0
          SET @Where = @Where + ' b.RegionId=' + @RegionIdStr + ' AND '
        
        IF @ZoneId > 0
          SET @Where = @Where + ' b.ZoneId=' + @ZoneIdStr + ' AND '
        
        SET @Where = Substring(@Where,1,Len(@Where) - 4)
      END
    
SET @Sql='select name=ccc.name,
TotalCount=sum(ccc.TotalCount),
Deducts=sum(ccc.Deducts) from  ( '
    SET @Sql = @Sql + '  select c.name as name,
        count(*) as TotalCount,
        Deducts=count(*)*a.getmoney
        from tbl_restSignUp a
        left join tbl_restaurant b on a.restID=b.id
        left join tbl_systemUser c on a.userID=c.id
        where  a.date_time >=  '' ' + 
CAST(@StartDate AS VARCHAR(20)) + '''  and  a.date_time < ''' + 
CAST(@EndDate AS VARCHAR(20)) + '''  ' + 
@Where + ' GROUP BY c.name,a.getmoney  )   ccc   
GROUP BY  ccc.name   order by  Deducts desc  '

    EXEC( @sql)

  END





GO
/****** :  StoredProcedure [dbo].[sp_apply]    ű: 02/01/2010 14:23:36 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_apply]
@userID bigint
 AS
declare @r int
select @r=result from tbl_apply where userID=@userID
if @r=0
	select -1
else if @r=1
		select -2
	else
		 begin
			insert into tbl_apply(userID)values(@userID)
			select 1
    		end
GO
/****** :  StoredProcedure [dbo].[sp_applyDeal]    ű: 02/01/2010 14:23:37 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_applyDeal]
@userID bigint
 AS
update tbl_user set userClass=2 where id=@userID
update tbl_apply set result=1 where userID=@userID

GO
/****** :  StoredProcedure [dbo].[sp_AreaAdd]    ű: 02/01/2010 14:23:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_AreaAdd]
@AreaName varchar(40)='',
@note varchar(50) ='',
@address varchar(100)='',
@userName varchar(16)='',
@classID int=0,
@provinceID int=0,
@cityID int=0,
@RegionID int=0,
@ZoneID int=0,
@result int=0 output
AS
declare @userID int
begin
if (select count(*) from tbl_user where name=ltrim(@userName))=0
begin
set @userID=0
end
else
begin
set @userID=(select id from tbl_user where name=ltrim(@userName))
end
insert into tbl_area(Name,note,address,
userID,classID,provinceID,cityID,RegionID,ZoneID) 
values(@AreaName,@note,@address,
@userID,@classID,@provinceID,@cityID,@RegionID,@ZoneID)
set @result =1
end
select @result


GO
/****** :  StoredProcedure [dbo].[sp_AreaDelete]    ű: 02/01/2010 14:23:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE  PROCEDURE [dbo].[sp_AreaDelete]
@Id int=0,
@state int=0,
@result int=0 output
AS
begin
update tbl_area set isDelete=1 where id=@Id
set @result =1
end
select @result

GO
/****** :  StoredProcedure [dbo].[sp_AreaMap_update]    ű: 02/01/2010 14:23:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Venson>
-- Create date: <2007-9-17>
-- Description:	<Сͼ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_AreaMap_update]
	@AreaId BIGINT = 0,
	@MapX INT = 0,
	@MapY INT = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	DECLARE @Count INT
	SELECT @Count=COUNT(*) FROM tbl_areaMapInfo WHERE areaID=@AreaId
	IF @Count > 0 BEGIN
		UPDATE tbl_areaMapInfo SET mapX=@MapX, mapY=@MapY WHERE areaID=@AreaId
	END ELSE BEGIN
		INSERT INTO tbl_areaMapInfo (areaID, mapX, mapY) VALUES (@AreaId, @MapX, @MapY)
	END
	IF @@ROWCOUNT > 0
		SELECT 1
	ELSE
		SELECT 0
END


GO

/****** :  StoredProcedure [dbo].[sp_areaMapInfo_get]    ű: 02/01/2010 14:23:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create PROCEDURE  [dbo].[sp_areaMapInfo_get] 
@areaID bigint=0
AS

if @areaID>0
	begin
		select areaID,mapCity,mapX,mapY from tbl_areaMapInfo where areaID=@areaID		
	end
	
GO
/****** :  StoredProcedure [dbo].[sp_AreaParentIDSelect]    ű: 02/01/2010 14:23:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--***********************************
--autorwjh
--datetime2007-12-5
--decription:¥׼ѯ
--***********************************
CREATE proc [dbo].[sp_AreaParentIDSelect]
@ID int = 0,
@ParentID int = 0,
@provinceID int = 0,
@cityID int = 0,
@regionID int = 0,
@zoneID int =0,
@keyWord varchar(8000) = '',
@startTime varchar(8000) = '',
@endTime varchar(8000) = '',
@stand int = 0 --1Ϊ׼¥0Ϊδ׼¥2Ϊ׼¥Ӽ
as
declare @sql varchar(8000)
set @sql = 'select a.id,a.name,a.provinceID,a.cityID,a.regionID,a.zoneID,a.classID,a.userID,a.address,a.note,a.state, convert(varchar(10),postTime,120) as postTime,a.parentID,b.name as regionName from tbl_area as a left join tbl_zone as b on a.zoneID = b.id where isdelete = 0'
if @id <> 0 begin
set @sql = @sql + ' and a.id= '+ str(@id) +''
end
if @parentID <> 0 begin
set @sql = @sql + ' and a.parentID = '+ str(@parentID) +' and a.id <> a.parentID' end
if @provinceID <> 0 begin
set @sql = @sql + ' and a.provinceID = '+ str(@provinceID) +'' end
if @cityID <> 0 begin
set @sql = @sql +' and a.cityID = '+ str(@cityID) +'' end
if @regionID <> 0 begin
set @sql = @sql + ' and a.regionID = '+ str(@regionID) +'' end
if @zoneID <> 0 begin
set @sql = @sql + ' and a.zoneID = '+ str(@zoneID) +' ' end
if @keyWord <> '' begin
set @keyWord ='%'+ @keyword + '%'
set @sql = @sql + ' and a.name like '''+ @keyWord +'''' end
if @startTime <> '' and @endTime <> '' begin
set @endTime = Dateadd(dd,1,Convert(dateTime,@endTime))
set @sql = @sql + ' and a.postTime between '''+ @startTime +''' and '''+ @endTime +''''
end
if @stand = 1 begin
set @sql = @sql + ' and a.id = a.parentID' end
else if @stand = 0 begin 
set @sql = @sql + ' and a.parentID = 0' end
set @sql = @sql + ' order by a.postTime desc, a.ID desc,a.zoneID,a.name'
exec(@sql)
select @@rowcount






GO
/****** :  StoredProcedure [dbo].[sp_AreaParentIDUpdate]    ű: 02/01/2010 14:23:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--***********************************
--autorwjh
--datetime2007-12-5
--decription:¥׼
--***********************************
CREATE proc [dbo].[sp_AreaParentIDUpdate]
@ID int,
@ParentID int = 0,
@Result int = 0
as
declare @count int
set @count = 0
select @count = count(id) from tbl_area where isdelete = 0 and id <> parentID and parentID = @id
if @count > 0 begin 
set @Result = -1 end
else begin
update tbl_area set parentID = @parentID where id = @id
if @@error = 0 begin
set @Result = 1 end
end
select @Result




GO
/****** :  StoredProcedure [dbo].[sp_AreaSelect]    ű: 02/01/2010 14:23:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_AreaSelect]
@AreaName varchar(40)='',
@provinceID int=0,
@cityID int=0,
@RegionID int=0,
@ZoneID int=0
AS
begin
DECLARE @Sql nvarchar(4000)
DECLARE @Where varchar(8000)
DECLARE @ProvinceIdStr varchar(8000)
DECLARE @CityIdStr varchar(8000)
DECLARE @RegionIdStr varchar(8000)
DECLARE @ZoneIdStr varchar(8000)
SET @ProvinceIdStr = CAST(@ProvinceID AS varchar(8000))
SET @CityIdStr = CAST(@CityID AS varchar(8000))
SET @RegionIdStr = CAST(@RegionID AS varchar(8000))
SET @ZoneIdStr = CAST(@ZoneID AS varchar(8000))
SET @Where = ''
IF @provinceID > 0 OR @cityID > 0 OR @RegionID > 0 OR @ZoneID > 0
BEGIN
IF @provinceID > 0 SET @Where = @Where + ' AND a.ProvinceId=' + @ProvinceIdStr + ' AND '
IF @cityID > 0 SET @Where = @Where + ' a.CityId=' + @CityIdStr + ' AND '
IF @RegionID > 0 SET @Where = @Where + ' a.RegionId=' + @RegionIdStr + ' AND '
IF @ZoneID > 0 SET @Where = @Where + ' a.ZoneId=' + @ZoneIdStr + ' AND '
SET @Where = SUBSTRING(@Where, 1, LEN(@Where)-4)
END
set @Sql= ' select a.id,a.name,e.id,e.name,d.id,d.name,c.id,c.name,
b.id,b.name,f.id,f.name,g.id,g.name,a.address,
a.note,a.isDelete,a.state 
from  tbl_area a
left join tbl_province b on a.provinceID =b.id
left join tbl_city c on a.cityID =c.id
left join tbl_region d on a.regionID =d.id 
left join tbl_zone e on a.zoneID =e.id 
left join tbl_buildingClass f on a.classID =f.id
left join tbl_user g on a.userID =g.id 
where a.name like  ''' + '%' + @AreaName + '%' + 
'''  and  a.isDelete=0  ' + @Where + '  order by a.id desc '
exec(@sql)
end


GO
/****** :  StoredProcedure [dbo].[sp_AreaSelectByName]    ű: 02/01/2010 14:23:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_AreaSelectByName]
@AreaName varchar(40)='',
@provinceID int=0,
@cityID int=0,
@RegionID int=0,
@ZoneID int=0
AS
begin
DECLARE @Sql nvarchar(4000)
DECLARE @Where varchar(8000)
DECLARE @ProvinceIdStr varchar(8000)
DECLARE @CityIdStr varchar(8000)
DECLARE @RegionIdStr varchar(8000)
DECLARE @ZoneIdStr varchar(8000)
SET @ProvinceIdStr = CAST(@ProvinceID AS varchar(8000))
SET @CityIdStr = CAST(@CityID AS varchar(8000))
SET @RegionIdStr = CAST(@RegionID AS varchar(8000))
SET @ZoneIdStr = CAST(@ZoneID AS varchar(8000))
SET @Where = ''
IF @provinceID > 0 OR @cityID > 0 OR @RegionID > 0 OR @ZoneID > 0
BEGIN
IF @provinceID > 0 SET @Where = @Where + ' AND ProvinceId=' + @ProvinceIdStr 
IF @cityID > 0 SET @Where = @Where + ' AND CityId=' + @CityIdStr 
IF @RegionID > 0 SET @Where = @Where + ' and RegionId=' + @RegionIdStr 
IF @ZoneID > 0 SET @Where = @Where + ' and ZoneId=' + @ZoneIdStr 
--SET @Where = SUBSTRING(@Where, 1, LEN(@Where)-4)
END
set @Sql= ' select top 1 * 
from  tbl_area where name = ''' 
+  @AreaName +'''  and  isDelete=0  '
+ @Where

exec(@sql)
end
GO
/****** :  StoredProcedure [dbo].[sp_AreaUpdate]    ű: 02/01/2010 14:23:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_AreaUpdate]
@AreaId int =0,
@state int=0,
@result int=0 output
AS
declare @userID int
if @state<>0 and @state<>1 
begin
set @result =0
end
else 
begin
update tbl_area set state=@state where id=@AreaId
set @result =1
end
select @result


GO
/****** :  StoredProcedure [dbo].[sp_buildingClass_get]    ű: 02/01/2010 14:23:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








CREATE PROCEDURE [dbo].[sp_buildingClass_get]
@id int =0
AS

if @id>0
	select * from tbl_buildingClass where id=@id
else
	select * from tbl_buildingClass order by id asc




GO
/****** :  StoredProcedure [dbo].[sp_BuildingClassAdd]    ű: 02/01/2010 14:23:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_BuildingClassAdd]
@name varchar(30)='',
@note varchar(50)='',
@result int=0 output
AS
begin
insert into tbl_buildingClass(name,note) values(@name,@note)
set @result=1
end
select @result

GO
/****** :  StoredProcedure [dbo].[sp_BuildingClassDelete]    ű: 02/01/2010 14:23:56 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_BuildingClassDelete]
@id int =0,
@result int=0 output
AS
begin
delete from tbl_buildingClass where id=@id
set @result=1
end
select @result

GO
/****** :  StoredProcedure [dbo].[sp_BuildingClassSelect]    ű: 02/01/2010 14:23:57 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_BuildingClassSelect]
@id int=0
AS
if @id=0
begin
select * from tbl_buildingClass
end
else
begin
select * from tbl_buildingClass where id=@id
end

GO
/****** :  StoredProcedure [dbo].[sp_BuildingClassUpdate]    ű: 02/01/2010 14:23:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_BuildingClassUpdate]
@id int =0,
@name varchar(30)='',
@note varchar(50)='',
@result int=0 output
AS
begin
update tbl_buildingClass set name=@name,note=@note where id=@id
set @result=1
end
select @result

GO
/****** :  StoredProcedure [dbo].[sp_BuildingCountMonitorStatis]    ű: 02/01/2010 14:23:59 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_BuildingCountMonitorStatis]
AS
begin
	DECLARE  @Total  BIGINT
	DECLARE  @ValidatedC  BIGINT 
	DECLARE  @NotvalidatedC   BIGINT
	DECLARE  @DeleteCount BIGINT
   
    select @Total=count(*) from tbl_area

    select @ValidatedC=count(*) from tbl_area WHERE STATE=1
    
    select @NotvalidatedC=count(*) from tbl_area WHERE STATE<>1
     
    select @DeleteCount=count(*) from tbl_area WHERE ISDELETE<>0
    
    SELECT  @Total   Total,
  @ValidatedC    ValidatedC,
  @NotvalidatedC   NotvalidatedC,
  @DeleteCount  DeleteCount
end






















GO
/****** :  StoredProcedure [dbo].[sp_changeAdminUserPassword]    ű: 02/01/2010 14:24:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_changeAdminUserPassword]
@userID int,
@oldPassword varchar(32),
@newPassword varchar(32)
 AS
if(select count(*) from tbl_systemUser where id=@userID and password =@oldPassword)=1
	begin
		update tbl_systemUser set password=@newPassword where id=@userID
		select 1
	end
else
	select -1

GO
/****** :  StoredProcedure [dbo].[sp_changeShopUser]    ű: 02/01/2010 14:24:01 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_changeShopUser]
@shopID int,
@user varchar(16),
@extender varchar(16)
 AS
declare @userID bigint
declare @extenderID bigint
select @userID=id from tbl_user where name=@user
select @extenderID =id from tbl_user where name=@extender
if @userID>0
	update tbl_restaurant set userID=@userID where id=@shopID
if @extenderID>0
	update tbl_restaurant set MuserID=@extenderID where id=@shopID
GO
/****** :  StoredProcedure [dbo].[sp_changeUserDetailInfo]    ű: 02/01/2010 14:24:03 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_changeUserDetailInfo]
@id bigint,
--add zwmyxzs 2006-10-16 start
@email varchar(50),
@sex int,
@birthDay datetime,
@regionID int,
@MarryState smallint,
@frieldTarget varchar(50),
--add zwmyxzs 2006-10-16 end
@nickName varchar(16),
@trueName varchar(20),
@cardID varchar(20),
@phone varchar(20),
@mobile varchar(15),
@fax varchar(16),
@msn varchar(40),
@qq varchar(15),
@address varchar(50),
@postCode varchar(6),
--add zwmyxzs 2007-01-30 start
@school varchar(50),
@speciality varchar(40),
@enrollmentTime datetime,
@graduateTime datetime,
--add zwmyxzs 2007-01-30 end
--add zwmyxzs 2007-04-03 start
@company varchar(50),
@workContent varchar(100),
@duty varchar(20),
@privacyClass int,
--add zwmyxzs 2007-04-03 end
@result int=0 output
 AS
begin
begin tran
	update tbl_user set nickName=@nickName,--modify zwmyxzs//provinceID=@provinceID,cityID=@cityID,
	email=@email,sex=@sex,regionID=@regionID where id=@id

	update tbl_userDetail set trueName=@trueName,cardID=@cardID,phone=@phone,mobile=@mobile,fax=@fax,msn=@msn,
	qq=@qq,address=@address,postCode=@postCode,birthDay=@birthDay,MarryState=@MarryState,
	frieldTarget=@frieldTarget,school=@school,speciality=@speciality,enrollmentTime=@enrollmentTime,
	graduateTime=@graduateTime,company=@company,workContent=@workContent,duty=@duty,privacyClass=@privacyClass
	where id=@id
if @@error>0
	begin
		rollback tran
		set @result=-1
	end
else
	begin
		commit tran
		set @result=1
	end
select  @result
end
GO
/****** :  StoredProcedure [dbo].[sp_changeUserPassword]    ű: 02/01/2010 14:24:08 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_changeUserPassword]
@userID bigint,
@oldPassword varchar(32),
@newPassword varchar(32),
@result int=0 output
 AS
if @userID>0
begin
	declare @userIDV bigint
	declare @PasswordV varchar(32)
	select @userIDV=id,@PasswordV=password from tbl_user where id=@userID
	if @userID=@userIDV 
	    begin
		if @passwordV=@oldPassword
		    begin
			update tbl_user set password=@newPassword where id=@userID
			set @result =1
	 	     end
		else
			set @result =-3
	    end
	else
	  set @result=-2
end
else
	set @result =-1
select @result
GO
/****** :  StoredProcedure [dbo].[sp_chat_message_add]    ű: 02/01/2010 14:24:10 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_chat_message_add]
	@id bigint=0,
	@restID bigint=0,
	@fromUserID bigint=0,
	@toUserID bigint=0,
	@content varchar(8000)='',
	@logTime dateTime=getDate
AS
BEGIN
	declare @toUserOnline int
	if @id>0 begin
		--update tbl_chat_message	set restID=@restID,fromUserID=@fromUserID,toUserID=@toUserID,[content]=@content where id=@id
		select 2
	end else begin
		insert into tbl_chat_message (restID,fromUserID,toUserID,[content],logTime)	values(@restID,@fromUserID,@toUserID,@content,@logTime)
		if exists(select state from tbl_Chat_User where userID=@toUserID)
			select @toUserOnline=state from tbl_Chat_User where userID=@toUserID
		else
			set @toUserOnline=0
		--set @toUserOnline=1
		select @toUserOnline
	end
END




GO
/****** :  StoredProcedure [dbo].[sp_chat_message_get]    ű: 02/01/2010 14:24:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO












-- =============================================
-- Author:		<gcy>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_chat_message_get]
	@id bigint=0,
	@restID bigint=0,
	@fromUserID bigint=0,
	@toUserID bigint=0,
	@state int=-1, /* -1Ϊȫ,ڵ0Ϊ״̬*/
	@startTime varchar(10)='',
	@endTime varchar(10)='',	
	@isGetAmount int=0, /* 0Ϊȡñ1Ϊȡ */	
	@isGetHistory int=0,
	@limit int=0 --ȡ
AS
BEGIN
	declare @sql varchar(8000),@where varchar(8000),@whereUpdate varchar(8000),@sqlUpdate varchar(8000)
	declare @sqlLimit varchar(8000)
	if @limit>0
		set @sqlLimit = ' top ' + cast(@limit as varchar(8000)) + ' '
	else
		set @sqlLimit = ''
	set @sql = ' select ' + @sqlLimit + ' a.*,frU.email as fromEmail,frU.nickName as fromNickName,frU.name as fromUserName,toU.email as toEmail,toU.nickName as toNickName,toU.name as toUserName,'
	--set @sql = @sql + ' cu.state as chatState ,'
	set @sql = @sql + ' CONVERT(char(19), a.logTime, 121) as timeString,b.name as restName from tbl_chat_message a left join tbl_restaurant b on b.id=a.restID '
	set @sql = @sql + ' left join tbl_user toU on toU.id=a.toUserID '
	set @sql = @sql + ' left join tbl_user frU on frU.id=a.fromUserID '
	--set @sql = @sql + ' left join tbl_chat_user cu on cu.userID=a.fromUserID '
	set @where = ''
	set @whereUpdate = ''
	set @sqlUpdate = ''
	
	if @id>0 
		set @where = @where + ' and a.id=' + cast(@id as varchar(50))
	if @restID>0
		set @where = @where + ' and a.restID=' + cast(@restID as varchar(50))

	if @isGetHistory=1 begin
		set @where = @where + ' and ( ( a.fromUserID=' + cast(@fromUserID as varchar(50)) + ' and a.toUserID=' + cast(@toUserID as varchar(50)) + ')'
		set @where = @where + ' or ( a.toUserID=' + cast(@fromUserID as varchar(50))+ ' and a.fromUserID=' + cast(@toUserID as varchar(50)) + '))'
	end else begin
		if @fromUserID>0
			set @where = @where + ' and a.fromUserID=' + cast(@fromUserID as varchar(50))
		if @toUserID>0
			set @where = @where + ' and a.toUserID=' + cast(@toUserID as varchar(50))
	end

	if @state>-1 ---1Ϊȫ
		set @where = @where + ' and a.state=' + cast(@state as varchar(10))
	
	if len(@startTime)>0 and len(@endTime)>0
		set @where = @where + ' and a.logTime between ''' + cast(@startTime as varchar(8000)) + ''' and  dateadd(d,1,''' + @endTime + ''')'
	

	if @isGetAmount=0 begin --ȡϢ
		set @sql = @sql + ' where  1=1 ' + @where + ' order by a.id desc '
		--if @isGetHistory=1
			set @sql = @sql + ' select @@rowcount '
		exec(@sql)
		
		if @state=0 begin -- 
			if @id>0 
				set @whereUpdate = @whereUpdate + ' and id=' + cast(@id as varchar(50))
			if @restID>0
				set @whereUpdate = @whereUpdate + ' and restID=' + cast(@restID as varchar(50))
			if @fromUserID>0
				set @whereUpdate = @whereUpdate + ' and fromUserID=' + cast(@fromUserID as varchar(50))
			if @toUserID>0
				set @whereUpdate = @whereUpdate + ' and toUserID=' + cast(@toUserID as varchar(50))
			if @state>-1 ---1Ϊȫ
				set @whereUpdate = @whereUpdate + ' and state=' + cast(@state as varchar(10))		
			set @sqlUpdate = ' update tbl_chat_message set state=1 where 1=1 ' + @whereUpdate
			exec(@sqlUpdate)
		end			
	end else begin --ȡ
		set @sql = 'select count(a.id) amount from tbl_chat_message a where 1=1 ' + @where 	
		exec(@sql)
	end
	
END













GO
/****** :  StoredProcedure [dbo].[sp_chat_message_get1]    ű: 02/01/2010 14:24:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO













-- =============================================
-- Author:		<gcy>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_chat_message_get1]
	@id bigint=0,
	@restID bigint=0,
	@fromUserID bigint=0,
	@toUserID bigint=0,
	@state int=-1, /* -1Ϊȫ,ڵ0Ϊ״̬*/
	@startTime varchar(10)='',
	@endTime varchar(10)='',	
	@isGetAmount int=0, /* 0Ϊȡñ1Ϊȡ */	
	@isGetHistory int=0,
	@limit int=0, --ȡ
	@pageSize int=0,
	@pageIndex int=1
AS
BEGIN
	declare @sql varchar(8000),@where varchar(8000),@whereUpdate varchar(8000),@sqlUpdate varchar(8000),@startRow int,@endRow int
	declare @sqlLimit varchar(8000),@sqlHead varchar(8000),@sqlCount varchar(8000),@sqlBetween varchar(8000)
	set @where = ''
	set @whereUpdate = ''
	set @sqlUpdate = ''

	if @PageSize>0 begin
		if @pageIndex <=0 
			set @pageIndex=1	
		set @startRow = (@PageIndex-1)*@PageSize+1
		set @endRow = @PageIndex*@PageSize
	end
	
	set @sqlHead=' select * from ('
	set @sqlCount=' select count(*) as amount from ('
	if @limit>0
		set @sqlLimit = ' top ' + cast(@limit as varchar(8000)) + ' '
	else
		set @sqlLimit = ''
	set @sql = ' select ' + @sqlLimit + ' a.*,frU.email as fromEmail,frU.nickName as fromNickName,frU.name as fromUserName,toU.email as toEmail,toU.nickName as toNickName,toU.name as toUserName,'
	set @sql = @sql + ' CONVERT(char(19), a.logTime, 121) as timeString,b.name as restName '	
	set @sql = @sql + ',() OVER(Order BY a.id desc) as ROW '
	set @sql = @sql + ' from tbl_chat_message a left join tbl_restaurant b on b.id=a.restID '
	set @sql = @sql + ' left join tbl_user toU on toU.id=a.toUserID '
	set @sql = @sql + ' left join tbl_user frU on frU.id=a.fromUserID '	
	
	
	if @id>0 
		set @where = @where + ' and a.id=' + cast(@id as varchar(50))
	if @restID>0
		set @where = @where + ' and a.restID=' + cast(@restID as varchar(50))

	if @isGetHistory=1 begin
		set @where = @where + ' and ( ( a.fromUserID=' + cast(@fromUserID as varchar(50)) + ' and a.toUserID=' + cast(@toUserID as varchar(50)) + ')'
		set @where = @where + ' or ( a.toUserID=' + cast(@fromUserID as varchar(50))+ ' and a.fromUserID=' + cast(@toUserID as varchar(50)) + '))'
	end else begin
		if @fromUserID>0
			set @where = @where + ' and a.fromUserID=' + cast(@fromUserID as varchar(50))
		if @toUserID>0
			set @where = @where + ' and a.toUserID=' + cast(@toUserID as varchar(50))
	end

	if @state>-1 ---1Ϊȫ
		set @where = @where + ' and a.state=' + cast(@state as varchar(10))
	
	if len(@startTime)>0 and len(@endTime)>0
		set @where = @where + ' and a.logTime between ''' + cast(@startTime as varchar(8000)) + ''' and  dateadd(d,1,''' + @endTime + ''')'
	
	set @sqlBetween = ' where ROW BETWEEN ' + Cast(@startRow as varchar(8000)) + ' and ' + Cast(@endRow as varchar(8000))
	

	if @isGetAmount=0 begin --ȡϢ
		if @PageSize>0 --ҳ
			exec(@sqlHead + @sql + ' where  1=1 ' + @where + ') as t ' + @sqlBetween)		
		else
			exec(@sqlHead + @sql + ' where  1=1 ' + @where + ') as t ')
		exec(@sqlCount + @sql + ' where  1=1 ' + @where + ') as t ')
		
		if @state=0 begin -- 
			if @id>0 
				set @whereUpdate = @whereUpdate + ' and id=' + cast(@id as varchar(50))
			if @restID>0
				set @whereUpdate = @whereUpdate + ' and restID=' + cast(@restID as varchar(50))
			if @fromUserID>0
				set @whereUpdate = @whereUpdate + ' and fromUserID=' + cast(@fromUserID as varchar(50))
			if @toUserID>0
				set @whereUpdate = @whereUpdate + ' and toUserID=' + cast(@toUserID as varchar(50))
			if @state>-1 ---1Ϊȫ
				set @whereUpdate = @whereUpdate + ' and state=' + cast(@state as varchar(10))		
			set @sqlUpdate = ' update tbl_chat_message set state=1 where 1=1 ' + @whereUpdate
			exec(@sqlUpdate)
		end			
	end else begin --ȡ
		set @sql = 'select count(a.id) amount from tbl_chat_message a where 1=1 ' + @where 	
		exec(@sql)
	end
	
END














GO
/****** :  StoredProcedure [dbo].[sp_chat_message_getLastUser]    ű: 02/01/2010 14:24:17 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











-- =============================================
-- Author:		<gcy>
-- Create date: <Create Date,,>
-- Description:	<ȡϵб>
-- =============================================
CREATE PROCEDURE [dbo].[sp_chat_message_getLastUser]	
	@userID bigint=0,	
	@limit int=0, --ȡ
	@searchColumn varchar(8000)='',
	@searchKeyword varchar(8000)='',
	@orderColumn varchar(8000)='',
	@orderDirect varchar(8000)=''
AS
BEGIN
	declare @sql varchar(8000),@limitStr varchar(8000),@where varchar(8000)
	set @limitStr = ''
	set @where = ''
	if @limit>0
		set @limitStr = ' top ' + cast(@limit as varchar(8000)) + '  '
	set @sql='select ' + @limitStr + ' t.userID,MAX(t.logTime) as date_time,count(t.userID) as amount ,u.email,(case when len(u.nickName)>0 then u.nickName else u.name end) as nickName,u.name as userName from 
			(select logTime,
				 case when fromUserID=' + cast(@userID as varchar(8000)) + ' then toUserID
						when toUserID=' + cast(@userID as varchar(8000)) + ' then fromUserID end as userID
			from tbl_chat_message 
			where (fromUserID=' + cast(@userID as varchar(8000)) + ' or toUserID=' + cast(@userID as varchar(8000)) + ') and fromUserID>0 and toUserID>0
		) as t	inner join tbl_user u on u.id=t.userID '
	
	if len(@searchColumn)>0 and len(@searchKeyword)>0 begin
		set @where = @where + ' and ' + @searchColumn + ' like ''%' + @searchKeyword + '%'''
	end
	set @sql = @sql + @where
	set @sql = @sql + ' group by t.userID,u.email,u.nickName ,u.name '
	
	
	if len(@orderColumn)>0
		set @sql = @sql + ' order by ' + @orderColumn + '  ' + @orderDirect
	else
		set @sql = @sql + ' order by date_time desc '
	exec(@sql)
--select @sql
	select @@rowcount
	
END












GO
/****** :  StoredProcedure [dbo].[sp_chat_message_getOnlineUserList]    ű: 02/01/2010 14:24:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<gcy>
-- Create date: <Create Date,,>
-- Description:	<ȡƹб>
-- =============================================
CREATE PROCEDURE [dbo].[sp_chat_message_getOnlineUserList]	
	@restID bigint=0,
	@onlineState int=1
AS
BEGIN
	select a.*,isnull(b.state, 0) as onlineState from tbl_user a left join tbl_chat_user b on b.userID=a.id
	where a.state!=-1 	--and b.state=@onlineState
			and (
					a.id in (select userID from tbl_restaurant where id=@restID and isDelete=0)
					--or a.id in (select userID from tbl_restUser where  restID=@restID)
				)	
	
 
END




GO
/****** :  StoredProcedure [dbo].[sp_Chat_Message_getStatInfo]    ű: 02/01/2010 14:24:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Venson>
-- Create date: <2007-11-6>
-- Description:	<ȡδϢͳϢ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Chat_Message_getStatInfo] 
	@UserId BIGINT = 0 --ûID
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	SELECT Data.RestId,
		ISNULL(Rest.Name, '') AS RestName,
		Data.FromUserId,
		FromUsers.Email AS FromUserEmail,
		(CASE WHEN LEN(FromUsers.NickName) > 0 THEN FromUsers.NickName ELSE FromUsers.[Name] END) AS FromUserNickName,
		COUNT(Data.ID) AS Amount
FROM tbl_Chat_Message AS Data
	LEFT JOIN tbl_user AS FromUsers ON FromUsers.id=Data.fromUserId
	LEFT JOIN tbl_restaurant AS Rest ON Rest.id=Data.restID
WHERE Data.State=0 AND Data.ToUserId=@UserId
GROUP BY Data.FromUserId, Data.RestId, Rest.Name, FromUsers.Email, (CASE WHEN LEN(FromUsers.NickName) > 0 THEN FromUsers.NickName ELSE FromUsers.[Name] END)
END


GO
/****** :  StoredProcedure [dbo].[sp_chat_message_historyReport]    ű: 02/01/2010 14:24:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


--ʷ¼
CREATE procedure [dbo].[sp_chat_message_historyReport]
	@orderColumn varchar(8000)='',
	@orderDirect varchar(8000)=''
as
	declare @sql varchar(8000)
	set @sql = ''
	
	set @sql = '
	select a.*		
		,(select count(id) from tbl_chat_message where fromUserID=t.userID) as fromAmount
		,(select count(id) from tbl_chat_message where toUserID=t.userID) as toAmount
	 from  (
		select  distinct fromUserID as userID from tbl_chat_message 
		union
		select  distinct toUserID as userID from tbl_chat_message 
	  ) t
	inner join tbl_user a on a.id=t.userID '
	if len(@orderColumn)>0 begin
		set @sql=@sql + ' order by ' + @orderColumn + ' ' + @orderDirect
	end
	exec(@sql)
select @@rowcount



GO
/****** :  StoredProcedure [dbo].[sp_chat_message_RestReport]    ű: 02/01/2010 14:24:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[sp_chat_message_RestReport]
as
	select t.*,a.* from (
		select restID,count(restID) as restMsgAmount from tbl_chat_message group by restID
	)  t 
		inner join tbl_restaurant a on a.id=t.restID where a.isdelete=0
select @@rowCount
GO
/****** :  StoredProcedure [dbo].[sp_Chat_User_getInfo]    ű: 02/01/2010 14:24:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Venson>
-- Create date: <2007-11-2>
-- Description:	<ȡûϢ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Chat_User_getInfo]
	@UserId BIGINT = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @Count INT

    -- Insert statements for procedure here
	SELECT @Count=COUNT(*) FROM tbl_Chat_User WHERE UserId=@UserId
	IF @Count = 0
	BEGIN
		INSERT INTO tbl_Chat_User (UserId) VALUES (@UserId)
	END
	SELECT Data.*, Users.Email, Users.Sex, Users.NickName, Users.Photo FROM tbl_Chat_User AS Data LEFT JOIN tbl_user AS Users ON Users.ID=Data.UserId WHERE UserId=@UserId
END

GO
/****** :  StoredProcedure [dbo].[sp_Chat_User_updateSign]    ű: 02/01/2010 14:24:24 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Venson>
-- Create date: <2007-11-27>
-- Description:	<ûǩ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Chat_User_updateSign]
	@UserId BIGINT = 0,
	@Sign VARCHAR(50) = ''
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    UPDATE tbl_Chat_User SET [sign]=@Sign WHERE userID=@UserId
	IF @@ROWCOUNT > 0
		SELECT 1
	ELSE
		SELECT 0
END

GO
/****** :  StoredProcedure [dbo].[sp_Chat_User_updateState]    ű: 02/01/2010 14:24:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Venson>
-- Create date: <2007-11-2>
-- Description:	<û״̬>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Chat_User_updateState]
	@UserId BIGINT = 0,
	@State INT = 0, --0ߣ 1
	@SessionCode VARCHAR(50) = ''
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	IF @State > 0
		UPDATE tbl_Chat_User SET State=@State, SessionCode=@SessionCode, LastLogTime=GETDATE() WHERE UserId=@UserId
	ELSE
		UPDATE tbl_Chat_User SET State=0 WHERE UserId=@UserId

	IF @@ROWCOUNT > 0
		SELECT 1
	ELSE
		SELECT 0
END



GO
/****** :  StoredProcedure [dbo].[sp_checkAdminLevel]    ű: 02/01/2010 14:24:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_checkAdminLevel]
@adminUserID int,
@levelName varchar(30)
AS
declare @role int
declare @result int
declare @levelID int
select @role=0
select @result=0
select @levelID =0
--"UserID"õûɫ"powerID"
select @role=role  from tbl_systemUser 
where id = @adminUserID
--"ģȨ"õģȨޱ"moduleID"
select @levelID = id from tbl_systemPowerModule  
where cnName=@levelName
--жǷȨ
select @result=count(*) from tbl_systemPowerDetail 
where powerID =@role and moduleID=@levelID
if (select name from tbl_systemPower where id=@role)='Ա'
begin
set @result=1
end
select @result--,@role,@levelid




GO
/****** :  StoredProcedure [dbo].[sp_CheckAreaName]    ű: 02/01/2010 14:24:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










CREATE PROCEDURE  [dbo].[sp_CheckAreaName] 
@id int=0,
@zoneID int,
@name varchar(40),
@result int =0 output
AS
--жû¥
if(select count(*) from tbl_area where zoneId=@zoneID and name=@name and id<>@id and isdelete=0 and parentId = id)>0 begin
	set @result = 1
end
select @result













GO
/****** :  StoredProcedure [dbo].[sp_CheckNewRest]    ű: 02/01/2010 14:24:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE proc [dbo].[sp_CheckNewRest]
@restID int = 0,
@adminID int = 0,
@Result int =0 output
as
declare @content varchar(8000)
declare @ispost int 
SET XACT_ABORT ON  --  try  
BEGIN   
    begin
    begin tran
	declare @spResult int
	declare @str varchar(4000)
set @str = ''
set @content ='͹'
	exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
	update tbl_restIntro set ispost = 1 where restID = @restID 
END   
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result
end

GO
/****** :  StoredProcedure [dbo].[sp_CityAdd]    ű: 02/01/2010 14:24:30 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_CityAdd]
@provinceID int=0,
@name varchar(15),
@result int=0 output
AS
begin
	if exists(select * from tbl_city where [name]=@name and provinceID=@provinceID)
	begin
		set @result=-1
	end
	else
	begin
		insert into tbl_city(name,provinceID) values(@name,@provinceID)
		set @result=1
	end
end
select @result

GO
/****** :  StoredProcedure [dbo].[sp_CityDelete]    ű: 02/01/2010 14:24:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_CityDelete]
@ID int=0,
@result int=0 output
AS
begin
delete from tbl_city where id=@ID
delete from tbl_region where cityID=@id
delete from tbl_zone where cityID=@id
delete from tbl_area where cityID=@id
set @result=1
end
select @result


GO
/****** :  StoredProcedure [dbo].[sp_CitySelect]    ű: 02/01/2010 14:24:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_CitySelect]
@provinceID int=0
AS
begin
if @provinceID=0
begin 
select c.id as CityId ,c.name as CityName,p.id as ProvinceId
,p.name as ProvinceName from tbl_city c left join tbl_province p 
on c.provinceID=p.id
end
else
begin
select c.id as CityId ,c.name as CityName,p.id as ProvinceId
,p.name as ProvinceName from tbl_city c left join tbl_province p 
on c.provinceID=p.id where c.provinceID=@provinceID 
end
end




GO
/****** :  StoredProcedure [dbo].[sp_CityUpdate]    ű: 02/01/2010 14:24:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_CityUpdate]
@ID int=0,
@name varchar(15),
@result int=0 output
AS
begin
update tbl_city set name=@name where id=@ID
set @result=1
end
select @result

GO
/****** :  StoredProcedure [dbo].[sp_CommendDayRuleAdd]    ű: 02/01/2010 14:24:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








--***********************
--Autor:wjh
--datetime:2007-11-23
--description:Ƽûͻֻȡ
--************************
--drop proc [sp_CommendDayRuleAdd]
CREATE PROCEDURE [dbo].[sp_CommendDayRuleAdd]
@name varchar(8000)='',
@startTime varchar(120),
@endTime varchar(120),
@days int = 0,
@note varchar(8000),
@adminID int = 0,
@content varchar(8000),
@result int=0  output
AS
SET XACT_ABORT ON  --  try  
BEGIN   
    begin
    begin tran
	declare @spResult int
	declare @str varchar(4000)
set @str = ''

if (select count(*) from tbl_CommendDayRule where isDelete=0 )=0
 begin
     exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
   insert into tbl_CommendDayRule(name,startTime,endTime,days) 
values(@name,@startTime,@endTime,@days)
      if @@error=0 begin
      set @result=1
      end  else begin
      set @result=0 end
end 
else 
begin 
     exec sp_IntegralRangCheck 0,'tbl_CommendDayRule',@startTime,@endTime
if @@rowCount = 0 
begin
exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
     insert into tbl_CommendDayRule(name,startTime,endTime,days) 
values(@name,@startTime,@endTime,@days)
          if @@error=0 begin
          set @result=1
          end else begin
          set @result=0 end
    end  else begin
    set @result=0 end
end 

END   
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result



end













GO
/****** :  StoredProcedure [dbo].[sp_CommendDayRuleDelete]    ű: 02/01/2010 14:24:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










--***********************
--Autor:wjh
--datetime:2007-11-23
--description:Ƽûͻֻȡɾ
--************************
CREATE PROCEDURE [dbo].[sp_CommendDayRuleDelete]
@id int = 0,
@adminID int = 0,
@content varchar(8000),
@result int = 0 output
AS
SET XACT_ABORT ON  --  try  
BEGIN   
    begin
    begin tran
	declare @spResult int
	declare @str varchar(4000)
set @str = ''

exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
  update tbl_CommendDayRule set isDelete = 1 where id = @id
if @@error = 0
begin
 set @result = 1 
end
END   
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result
end



















GO
/****** :  StoredProcedure [dbo].[sp_CommendDayRuleSelect]    ű: 02/01/2010 14:24:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









--***********************
--Autor:wjh
--datetime:2007-11-23
--description:Ƽûͻֻȡѯ
--************************
CREATE PROCEDURE [dbo].[sp_CommendDayRuleSelect]
@id int = 0
AS
   declare @sql varchar(8000)
set @sql =' select id,name,days,note,Convert(varchar(10),startTime,120) as startTime ,Convert(varchar(10),endTime,120) as endTime from  tbl_CommendDayRule  where isdelete = 0 order by startTime desc'
if @id <> 0
begin
 set @sql = @sql + ' and id = @id'
end
exec(@sql)
select @@rowcount



















GO
/****** :  StoredProcedure [dbo].[sp_CommendDayRuleUpdate]    ű: 02/01/2010 14:24:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











--***********************
--Autor:wjh
--datetime:2007-11-23
--description:Ƽûͻֻȡ޸
--************************
CREATE PROCEDURE [dbo].[sp_CommendDayRuleUpdate]
@id int,
@name varchar(8000)='',
@startTime varchar(8000),
@endTime varchar(8000),
@days int = 0,
@note varchar(8000),
@adminID int = 0,
@content varchar(8000),
@result int=0  output
AS
SET XACT_ABORT ON  --  try  
BEGIN   
    begin
    begin tran
	declare @spResult int
	declare @str varchar(4000)
set @str = ''
     exec sp_IntegralRangCheck @id,'tbl_CommendDayRule',@startTime,@endTime
if @@rowCount = 0 
begin
exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
     update tbl_CommendDayRule set name = @name,startTime = @startTime,
endTime = @endTime,days = @days,note = @note where id = @id 
          if @@error=0 begin
          set @result=1
          end else begin
          set @result=0 end
    end  else begin
    set @result=0 end 

END   
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result
end



















GO
/****** :  StoredProcedure [dbo].[sp_Complain_append]    ű: 02/01/2010 14:24:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Venson>
-- Create date: <2007-9-14>
-- Description:	<Ͷ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Complain_append]
	@UserId BIGINT = 0,
	@RestId BIGINT = 0,
	@Content varchar(8000) =''	
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    INSERT tbl_userComplain (restID, userID, [content]) VALUES (@RestId, @UserId, @Content)
	IF @@ROWCOUNT > 0
		SELECT 1
	ELSE
		SELECT 0
END

GO
/****** :  StoredProcedure [dbo].[sp_Complain_getRestListByUserId]    ű: 02/01/2010 14:24:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Venson>
-- Create date: <2007-9-13>
-- Description:	<ȡûͶߵĲ͹б>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Complain_getRestListByUserId]
	@UserId INT = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    SELECT RestId, RestName
	FROM v_Order_GeneralList
	WHERE userId=@UserId
	GROUP BY restID, RestName
END

GO
/****** :  StoredProcedure [dbo].[sp_ComplainListSelect]    ű: 02/01/2010 14:24:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_ComplainListSelect]
@state int=0,
@StartTime datetime='1900-1-1',
@EndTime datetime='2900-1-1'
AS 
begin
	if @state=2 begin
		select a.*,b.name restName,c.email userEmail 
		from  tbl_userComplain  a  
		left join tbl_restaurant b on a.restID=b.id
		left join tbl_user c on a.userID=c.id
		where postTime between @StartTime and @EndTime  order by a.id desc
	end else begin
		select a.*,b.name restName,c.email userEmail 
		from  tbl_userComplain  a  
		left join tbl_restaurant b on a.restID=b.id
		left join tbl_user c on a.userID=c.id
		where postTime between @StartTime and @EndTime and a.state=@state order by a.id desc
    end
end




GO
/****** :  StoredProcedure [dbo].[sp_ComplainListStateUpdate]    ű: 02/01/2010 14:24:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_ComplainListStateUpdate]
@id int=0,
@result int=0 output
AS 
begin
	update tbl_userComplain set state=1 where id=@id
	if @@error=0 begin
		set @result=1
	end else begin
		set @result=0
	end   		 
end
select @result
GO
/****** :  StoredProcedure [dbo].[sp_Cps_Log_append]    ű: 02/01/2010 14:24:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Venson>
-- Create date: <2007-9-30>
-- Description:	<CPSˮ¼>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Cps_Log_append]
	@Url varchar(8000) = '',
	@FromIP VARCHAR(50) = ''
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	INSERT tbl_cpsLog (url, IP) VALUES (@Url, @FromIP)
	IF @@ROWCOUNT > 0
		SELECT 1
	ELSE
		SELECT 0
END

GO
/****** :  StoredProcedure [dbo].[sp_Cps_Order_append]    ű: 02/01/2010 14:24:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Venson>
-- Create date: <2007-9-30>
-- Description:	<CPS¼>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Cps_Order_append]
	@OrderId BIGINT = 0,
	@UserId BIGINT = 0,
	@WebsiteId VARCHAR(10) = '',
	@EuId VARCHAR(40) = '',
	@Result varchar(8000) = ''
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	INSERT tbl_cpsOrder (orderID, userID, website_id, eu_id, result) VALUES (@OrderId, @UserId, @WebsiteId, @EuId, @Result)
	IF @@ROWCOUNT > 0
		SELECT 1
	ELSE
		SELECT 0
END



GO
/****** :  StoredProcedure [dbo].[sp_deleteAnswer]    ű: 02/01/2010 14:24:49 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_deleteAnswer]
@ID int=0,
@dealUserID int=0,
@result int=0 output	
AS
declare @cnt int,@questionID int,@state int

select @questionID=(questionID) from tbl_answer Where ID=@ID

if @dealUserID>0 and @ID>0
	begin
		delete from tbl_answer where ID=@ID and dealUserID=@dealUserID
			set @result=1
	end
else
if @ID>0
	
	begin
		delete from tbl_answer where ID=@ID	
			set @result=1
	end


if @ID>0
	begin
		
		select @cnt=(count(*)) from tbl_answer where questionID=@questionID
		if @cnt<=0 
			begin
				select @state=(state) from tbl_question where ID=@questionID
				if @state=1 or @state=2
					update tbl_question set state=0 where ID=@questionID			
			end
	end
select @result
GO
/****** :  StoredProcedure [dbo].[sp_deleteMenu]    ű: 02/01/2010 14:24:50 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_deleteMenu]
@id int=0,
@userID int=0
 AS
declare @rID int
select @rID=restID from tbl_menuTable where id=@id
if(select count(*) from tbl_restaurant where id=@rID and userID=@userID or id in (select restID from tbl_restUser where  userID=@userID))=1
	begin
	update  tbl_menuTable set state=-1 where id=@id
	select 1
	end
else
	select -1
GO
/****** :  StoredProcedure [dbo].[sp_deleteMyOrder]    ű: 02/01/2010 14:24:51 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_deleteMyOrder]
@userID bigint,
@orderID int
AS
declare @state int
select @state=state from tbl_order where id=@orderID
if @state=0
	begin
	update tbl_order set state=-1 where id=@orderID and userID=@userID
	--if @userID>0
		insert into tbl_userHistory(userID,operation)values(@userID,'Delete the order Record id is '+str(@orderID))
	select 1
	end
else
	select -1
GO
/****** :  StoredProcedure [dbo].[sp_deleteMyOrderM]    ű: 02/01/2010 14:24:52 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_deleteMyOrderM]
@userID bigint,
@orderID int
AS
declare @state int
declare @restID int
select @state=state,@restID=restID from tbl_order where id=@orderID
declare @flag int
exec sp_isRestManager @userID,@restID,@result=@flag output
if @flag>0
begin
if @state=0
	begin
	update tbl_order set state=-1 where id=@orderID
	--if @userID>0
		insert into tbl_userHistory(userID,operation)values(@userID,'Manager Delete the order Record , id is '+str(@orderID))
	select 1
	end
else
	select -1
end
else
	select -1
GO
/****** :  StoredProcedure [dbo].[sp_deleteQuestion]    ű: 02/01/2010 14:24:54 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_deleteQuestion]
@ID int=0,
@isDelete int=1,
@result int=0 output	
AS

if @ID>0
	if @isDelete>=0	
		begin
			update tbl_question set isDelete=@isDelete where ID=@ID	
			set @result=1			
		end
	else
		begin
			
			delete from tbl_question where ID=@ID
			delete from tbl_answer where questionID=@ID
			set @result=1
		end
select @result
GO
/****** :  StoredProcedure [dbo].[sp_deleteQuestionClass]    ű: 02/01/2010 14:24:55 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_deleteQuestionClass]
@ID int=0,
@result int=0 output	
AS
declare @cnt int
if @ID>0
	
	begin
		select @cnt=Count(classId) from tbl_question where classID=@ID
		if @cnt>0
			begin
			set @result=0
			end
		else
			begin
			delete from tbl_questionClass where ID=@ID	
			set @result=1
			end	
	end
select @result
GO
/****** :  StoredProcedure [dbo].[sp_deleteServiceDept]    ű: 02/01/2010 14:24:56 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_deleteServiceDept]
@ID int=0,
@result int=0 output	
AS
declare @cnt int
if @ID>0
	
	begin
		select @cnt=Count(answerDept) from tbl_question where answerDept=@ID
		if @cnt=0
			begin
			select @cnt=Count(deptID) from tbl_serviceUser where deptID=@ID
			end
		if @cnt>0
			begin
			set @result=0
			end
		else
			begin
			delete from tbl_serviceDept where ID=@ID	
			set @result=1
			end	
	end
select @result
GO
/****** :  StoredProcedure [dbo].[sp_deleteServiceUser]    ű: 02/01/2010 14:24:58 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_deleteServiceUser]
@ID int=0,
@result int=0 output	
AS
declare @cnt int
if @ID>0
	
	begin
		select @cnt=Count(dealUserID) from tbl_answer where dealUserID=@ID		
		if @cnt>0
			begin
			set @result=0
			end
		else
			begin
			delete from tbl_serviceUser where ID=@ID	
			set @result=1
			end	
	end
select @result
GO
/****** :  StoredProcedure [dbo].[sp_deleteShopUser]    ű: 02/01/2010 14:24:59 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_deleteShopUser]
@shopID int,
@userID bigint
  AS
delete from tbl_restUser where restID=@shopID and userID=@userID
GO
/****** :  StoredProcedure [dbo].[sp_delUserAddress]    ű: 02/01/2010 14:25:00 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_delUserAddress]
@ID int,
@userID bigint
 AS
if @ID>0
begin
	delete From tbl_userAddress where ID=@ID And userID=@userID
end
GO
/****** :  StoredProcedure [dbo].[sp_demand_add]    ű: 02/01/2010 14:25:01 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_demand_add]
@id int=0,
@userID bigint,
@title varchar(50),
@regionID int,
@company varchar(50),
@contactPerson varchar(20),
@address varchar(50),
@phone varchar(30),
@email varchar(50),
@amount int,
@classID int,
@note text,
@postTime datetime,
@state int=-2,
@result int=0 output 
 AS
if @id>0
	begin
		update tbl_demand set userID=@userID,title=@title,regionID=@regionID,company=@company,contactPerson=@contactPerson,address=@address,phone=@phone
			,email=@email,amount=@amount,classID=@classID,note=@note,postTime=@postTime where id=@id
		if @state>=0
		update tbl_demand set state=@state where id=@id		
		set @result=@id	
	end
else
	begin
		if @state=-2
			set @state=0
		insert into tbl_demand(userID,title,regionID,company,contactPerson,address,phone,email,amount,classID,note,state,postTime) 
			values(@userID,@title,@regionID,@company,@contactPerson,@address,@phone,@email,@amount,@classID,@note,@state,@postTime)
		select top 1 @result=id from tbl_demand order by id desc		
	end
select @result
GO
/****** :  StoredProcedure [dbo].[sp_demand_delete]    ű: 02/01/2010 14:25:04 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_demand_delete]
@id int=0,
@result int=0 output
 AS
set @result=0
if @id>0
	begin		
		update tbl_demand set state=-1 where id=@id
		set @result=1
	end
select @result
GO
/****** :  StoredProcedure [dbo].[sp_demand_get]    ű: 02/01/2010 14:25:06 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_demand_get]
@id int=0,
@classID int=0,
@state int=-2,
@isShow int=0,
@limit int=0
 AS
declare @sql varchar(500)
if @limit>0
	begin
	set @sql='select top' +str(@limit)+' a.*,b.name as className,c.name as regionName from  tbl_demand a left  join tbl_demandClass b on a.classID=b.id left join tbl_region c on a.regionID=c.ID where  a.state>0 order by a.state , a.id desc'
	--select @sql
	exec(@sql)
	end
------
else if @isShow>0	
begin
 if @id>0
	begin		
		select a.*,b.name as className,c.name as regionName from  tbl_demand a left  join tbl_demandClass b on a.classID=b.id left join tbl_region c on a.regionID=c.ID  where a.id=@id and a.state>0 order by a.state , a.id desc	
	end
else if @classID>0
	begin		
		select a.*,b.name as className,c.name as regionName from  tbl_demand a left  join tbl_demandClass b on a.classID=b.id left join tbl_region c on a.regionID=c.ID where a.classID=@classID and a.state>0 order by a.state , a.id desc
	end
else
	begin		
		select a.*,b.name as className,c.name as regionName from  tbl_demand a left  join tbl_demandClass b on a.classID=b.id left join tbl_region c on a.regionID=c.ID where  a.state>0 order by a.state , a.id desc
	end
end
else-----------------------
begin
 if @id>0
	begin
		if @state>=0
		select a.*,b.name as className,c.name as regionName from  tbl_demand a left  join tbl_demandClass b on a.classID=b.id left join tbl_region c on a.regionID=c.ID  where a.id=@id and a.state=@state 
		else if @state=-2
		select a.*,b.name as className,c.name as regionName from  tbl_demand a left  join tbl_demandClass b on a.classID=b.id left join tbl_region c on a.regionID=c.ID where a.id=@id and a.state>=0 
	end
else if @classID>0
	begin
		if @state>=0
		select a.*,b.name as className,c.name as regionName from  tbl_demand a left  join tbl_demandClass b on a.classID=b.id left join tbl_region c on a.regionID=c.ID where a.classID=@classID and a.state=@state order by a.id desc
		else if @state=-2
		select a.*,b.name as className,c.name as regionName from  tbl_demand a left  join tbl_demandClass b on a.classID=b.id left join tbl_region c on a.regionID=c.ID where a.classID=@classID and a.state>=0  order by a.id desc
	end
else
	begin
		if @state>=0
		select a.*,b.name as className,c.name as regionName from  tbl_demand a left  join tbl_demandClass b on a.classID=b.id left join tbl_region c on a.regionID=c.ID where  a.state=@state order by a.id desc
		else if @state=-2
		select a.*,b.name as className,c.name as regionName from  tbl_demand a left  join tbl_demandClass b on a.classID=b.id left join tbl_region c on a.regionID=c.ID where a.state>=0  order by a.id desc
	end
end
GO
/****** :  StoredProcedure [dbo].[sp_demandClass_add]    ű: 02/01/2010 14:25:07 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_demandClass_add] 
@id int=0,
@name varchar(30),
@note varchar(200),
@result int=0 output
AS

if @id>0
	begin
	update tbl_demandClass set name=@name,note=@note where id=@id
	set @result=1
	end
else 
	begin
	insert into tbl_demandClass ( name,note) values(@name,@note)
	set @result=2 
	end
select @result
GO
/****** :  StoredProcedure [dbo].[sp_demandClass_delete]    ű: 02/01/2010 14:25:09 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_demandClass_delete]
@id int=0,
@result int=0 output
AS
set @result=0
declare @cnt int 
set @cnt=0
if @id>0
	begin	
		select @cnt=count(*) from tbl_demand where classID=@id and state>=0
		if @cnt=0
		begin
			delete from  tbl_demandClass  where id=@id
			set @result=1
		end
	end
Select @result
GO
/****** :  StoredProcedure [dbo].[sp_demandClass_get]    ű: 02/01/2010 14:25:10 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_demandClass_get]
@id int=0
AS
if @id>0
	begin
	select * from  tbl_demandClass  where id=@id	
	end
else 
	select * from  tbl_demandClass
GO
/****** :  StoredProcedure [dbo].[sp_DisplayOrdersDeductsInfo]    ű: 02/01/2010 14:25:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_DisplayOrdersDeductsInfo]
@RestId int=0,
@StartTime datetime='1900-1-1',
@EndTime datetime='9999-1-1',
@UserName varchar(8000)=''
AS
begin
select a.id as orderid,a.orderContent as orderContent,
a.date_time as ordertime,a.deliverDate as deliverDate,
a.deliverTime as deliverTime,a.total as ordermoney,
orderstate=
case 
when a.state='-2'then ''
when a.state='-1' then ''
when a.state='0' then ''
when a.state='1' then ''
end
from tbl_order a
,tbl_restSignUp b  
,tbl_systemUser c  
where a.restID=@RestId 
and a.restID=b.restID and b.userid=c.id
and a.deliverDate between @StartTime and @EndTime
and c.name =@UserName AND a.state=1

union all
select a.id as orderid,a.orderContent as orderContent,
a.date_time as ordertime,a.deliverDate as deliverDate,
a.deliverTime as deliverTime,a.total as ordermoney,
orderstate=
case 
when a.state='-2'then ''
when a.state='-1' then ''
when a.state='0' then ''
when a.state='1' then ''
end
from tbl_suiteMenuOrder a
,tbl_restSignUp b  
,tbl_systemUser c  
where a.restID=@RestId 
and a.restID=b.restID  and  b.userid=c.id
and a.deliverDate between @StartTime and @EndTime
and c.name =@UserName AND a.state=1

end
 






GO
/****** :  StoredProcedure [dbo].[sp_DoodiiDeductsReportStatis]    ű: 02/01/2010 14:25:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE PROCEDURE [dbo].[sp_DoodiiDeductsReportStatis]
@ProvinceID int=0,
@CityID int=0,
@RegionID int=0,
@ZoneID int=0,
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1',
@state int=1,
@restName varchar(20)='',
@SClassID int=-100
AS
begin
DECLARE @Sql nvarchar(4000)
DECLARE @Where varchar(8000)
DECLARE @ProvinceIdStr varchar(8000)
DECLARE @CityIdStr varchar(8000)
DECLARE @RegionIdStr varchar(8000)
DECLARE @ZoneIdStr varchar(8000)
SET @ProvinceIdStr = CAST(@ProvinceID AS varchar(8000))
SET @CityIdStr = CAST(@CityID AS varchar(8000))
SET @RegionIdStr = CAST(@RegionID AS varchar(8000))
SET @ZoneIdStr = CAST(@ZoneID AS varchar(8000))
SET @Where = ' and 1=1 '
IF @ProvinceID > 0 OR @CityID > 0 OR @RegionID > 0 OR @ZoneID > 0
BEGIN
	IF @ProvinceId > 0 SET @Where = @Where + ' AND b.ProvinceId=' + @ProvinceIdStr 
	IF @CityId > 0 SET @Where = @Where + ' AND b.CityId=' + @CityIdStr 
	IF @RegionId > 0 SET @Where = @Where + ' AND b.RegionId=' + @RegionIdStr
	IF @ZoneId > 0 SET @Where = @Where + ' AND b.ZoneId=' + @ZoneIdStr 	
END
if @state>-100 set @where = @where + ' AND a.state=' + cast(@state as varchar(8000)) 
if @SClassID>-100 set @where = @where + ' and b.sclassID=' + cast(@SClassID as varchar(8000))
if @restName <>'' 
begin
set @restName = '%'+ @restName +'%'
set @where = @where + ' and a.restName like '''+ @restName +''''
end
set @sql='select z.name as zoneName,t.* from ( select a.restid id, a.restname name,TotalCount= count(a.id),
sum(a.total) as SumCount, DoodiiDeduct=isnull([dbo].[f_GetRestDoodiiDeduct](a.restid,'''+ CAST(@StartDate as varchar(20)) +''','''+ CAST(@EndDate as varchar(20)) +'''),0)
from v_Order_GeneralList a
left join tbl_restaurant b on a.restID=b.id
left join tbl_restSignUpHistory c on a.restID=c.restID
where b.SClassID=3 and a.deliverDate >= '' ' + 
CAST(@StartDate as varchar(20)) + '''   and  a.deliverDate <'' ' + 
CAST(@EndDate as varchar(20)) +  '''  ' + 
@Where + '  GROUP BY a.restid,a.restname  
) as t
	 left join tbl_restaurant r on r.id=t.id
	 left join tbl_zone z on z.id=r.zoneID
order  by  t.SumCount  desc 
'
--select @sql
EXEC(@Sql)
--select @sql
end
 















GO
/****** :  StoredProcedure [dbo].[sp_DoodiiV3ToDoodiiV5_updateFile]    ű: 02/01/2010 14:25:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create PROCEDURE [dbo].[sp_DoodiiV3ToDoodiiV5_updateFile]
	@tblName varchar(100),
	@fileColumn varchar(100),
	@fileIdColumn varchar(100),
	@domain varchar(100)
as
begin	
	declare @sql1 varchar(8000)	
	set @sql1 = ''
	set @sql1 = @sql1 + ' begin'	
	set @sql1 = @sql1 + ' declare @userID bigint,@logo varchar(100),@fileID int'
	set @sql1 = @sql1 + '	declare table_cursor cursor for select ' + @fileColumn + ' from ' + @tblName + ' where len(' + @fileColumn + ')>5 '
	set @sql1 = @sql1 + '		open table_cursor'
	set @sql1 = @sql1 + '			fetch next from table_cursor into @logo '
	set @sql1 = @sql1 + '			while (@@fetch_status=0) begin'
	set @sql1 = @sql1 + '				if not exists(select * from tbl_userUploadFile where filePath=@logo) begin'
	set @sql1 = @sql1 + '					insert into tbl_userUploadFile(userID,filePath,filesize,domain) values(0,@logo,1,''' + @domain + ''')'
	set @sql1 = @sql1 + '					set @fileID=@@identity'
	set @sql1 = @sql1 + '					update ' + @tblName + ' set ' + @fileIdColumn + '=@fileID where ' + @fileColumn + '=@logo'
	set @sql1 = @sql1 + '				end'
	set @sql1 = @sql1 + '			fetch next from table_cursor into @logo	'
	set @sql1 = @sql1 + '			end'
	set @sql1 = @sql1 + '		close table_cursor'
	set @sql1 = @sql1 + '		deallocate table_cursor'
	set @sql1 = @sql1 + '	if @@error>0 begin'
	set @sql1 = @sql1 + '		rollback tran'
	set @sql1 = @sql1 + '		select -1'
	set @sql1 = @sql1 + '	end else begin'
	set @sql1 = @sql1 + '		commit tran'
	set @sql1 = @sql1 + '		select 1'
	set @sql1 = @sql1 + '	end'
	exec(@sql1)	
end
GO
/****** :  StoredProcedure [dbo].[sp_editShopMain]    ű: 02/01/2010 14:25:17 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE  [dbo].[sp_editShopMain]
@id int=0,--͹ID
@provinceID int,--ʡid
@cityID int,--ID
@regionID int,--ID
@zoneID int,--ƬID
@classID int,--͹
@name varchar(40),--͹
@address varchar(100),--ַ
@phone varchar(20),--绰
@mobile varchar(20),--ֻ
@fax varchar(20),---
@isDeliver int,--Ƿ
@deliverTime varchar(200),--ʱ
@responseTime int,
@deliverMoney int,--ͽ
@deliverNote varchar(200),--˵׼
@deliverArea varchar(100),--
@linkMan varchar(16),--ϵ
@note text,--͹˵
@logo varchar(100),--ͼ
@addrPhoto varchar(100),--ַͼ
@result int =0 output
AS
declare @userID bigint
declare @rID int
declare @chainmessage varchar(20)
select @chainmessage=''
declare @SClassID int
select @SClassID=SClassID  from tbl_restaurant where id=@id
if @id>0
begin
if(select count(*) from tbl_restaurant where zoneId=@zoneID and name=@name and id<>@id and isdelete=0 and sclassID=@SClassID)=0
begin	
if(select count(*) from tbl_restIntro where Restid=@ID)=0
	insert into tbl_restIntro(restID)values(@id)
	exec sp_addDeliverTime @ID,@deliverTime
	   if(right(@logo,10)='doodii.jpg')
		begin		
		if(right(@addrPhoto,10)='doodii.jpg')
		  begin
		update tbl_restaurant set provinceID=@provinceID,cityID=@cityID,regionID=@regionID,zoneID=@zoneID
		,name=@name,linkMan=@linkMan,phone=@phone,address=@address,note=@note,classID=@classID
		,isDeliver=@isDeliver,responseTime=@responseTime where id=@id	
		end
		else
		begin
			update tbl_restaurant set provinceID=@provinceID,cityID=@cityID,regionID=@regionID,zoneID=@zoneID
		,name=@name,linkMan=@linkMan,phone=@phone,address=@address,note=@note,classID=@classID,addrPhoto=@addrPhoto
		,isDeliver=@isDeliver,responseTime=@responseTime  where id=@id	
		end	
		end
	   else
		if(right(@addrPhoto,10)='doodii.jpg')
		  begin
		update tbl_restaurant set provinceID=@provinceID,cityID=@cityID,regionID=@regionID,zoneID=@zoneID
		,name=@name,linkMan=@linkMan,phone=@phone,address=@address,logo=@logo,note=@note,classID=@classID
		,isDeliver=@isDeliver,responseTime=@responseTime  where id=@id	
		end
		else
		begin
			update tbl_restaurant set provinceID=@provinceID,cityID=@cityID,regionID=@regionID,zoneID=@zoneID
		,name=@name,linkMan=@linkMan,phone=@phone,address=@address,logo=@logo,note=@note,classID=@classID,addrPhoto=@addrPhoto
		,isDeliver=@isDeliver,responseTime=@responseTime  where id=@id	
		end	
		update tbl_restIntro set mobile=@mobile,fax=@fax,deliverNote=@deliverNote,deliverArea=@deliverArea,deliverMoney=@deliverMoney where restID=@id
		set @result =1
		
end
else
		set @result =-1

end
else
	set @result=-2
select @result
GO
/****** :  StoredProcedure [dbo].[sp_editShopOther]    ű: 02/01/2010 14:25:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE  [dbo].[sp_editShopOther]
@id int=0,--͹ID
@email varchar(50),--email
@msnqq varchar(50),--ϵʽ
@url varchar(100),--ַ
@settlement varchar(50),--㷽ʽ
@OrderNote varchar(20),--ǷԶ
@expenditure int,--˾
@stallAmount int,--ͣλ
@PAmount int,--
@BAmount int,--
@policy varchar(50),--Ѳ
@discountNote varchar(50),--ۿ˵
@traffic varchar(100),--ͨ·
@result int =0 output
AS
declare @userID bigint
declare @rID int
declare @chainmessage varchar(20)
select @chainmessage=''
if @id>0
--select @logo
if(select count(*) from tbl_restIntro where restId=@id)=0
	insert into tbl_restIntro(restID)values(@ID)
	update tbl_restIntro set email=@email,msnqq=@msnqq,url=@url,settlement=@settlement,orderNote=@orderNote,expenditure=@expenditure,stallAmount=@stallAmount
	,pamount=@pamount,bamount=@bamount,policy=@policy,discountNote=@discountNote,traffic=@traffic where restID=@id
	set @result=1
select @result
GO
/****** :  StoredProcedure [dbo].[sp_errorLogRecord]    ű: 02/01/2010 14:25:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_errorLogRecord]
@url varchar(100),
@errortype varchar(20),
@message varchar(8000),
@ip varchar(15),
@serverIP varchar(15)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	insert into tbl_systemerrorLog(url,errortype,detail,ip,serverIP)
	values(@url,@errortype,@message,@ip,@serverIP)
END

GO
/****** :  StoredProcedure [dbo].[sp_ExchangeConfigInfoAdd]    ű: 02/01/2010 14:25:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_ExchangeConfigInfoAdd]
@ruleID int=0,
@giftID int=0,
@adminID int = 0,
@content varchar(8000) = '',
@result int=0 output
AS
SET XACT_ABORT ON  --  try  
BEGIN   
    begin
    begin tran
	declare @spResult int
	declare @str varchar(4000)
set @str = ''
  exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
  insert into tbl_exchangeConfig(ruleID,giftID) values(@ruleID,@giftID)
     if @@error=0 begin 
     set @result=1 
     end else begin 
     set @result=0  
     end 


END   
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result
end
 
 



GO
/****** :  StoredProcedure [dbo].[sp_ExchangeConfigInfoDelete]    ű: 02/01/2010 14:25:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_ExchangeConfigInfoDelete]
@ruleID int=0,
@giftID int=0,
@adminID int = 0,
@content varchar(8000) = '',
@result int=0 output
AS
SET XACT_ABORT ON  --  try  
BEGIN   
    begin
    begin tran
	declare @spResult int
	declare @str varchar(4000)
set @str = ''
  exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
     delete from tbl_exchangeConfig where ruleID=@ruleID and giftID=@giftID
     if @@error=0 begin 
     set @result=1 
     end 

END   
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result
end
 
 


GO
/****** :  StoredProcedure [dbo].[sp_ExchangeRuleAdd]    ű: 02/01/2010 14:25:30 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_ExchangeRuleAdd]
@name varchar(8000)='',
@note varchar(8000)='',
@startTime datetime=getdate,
@endTime datetime=getdate,
@adminID int = 0,
@content varchar(8000)='',
@result int=0 output 
AS
declare @count int
set @count = 0
SET XACT_ABORT ON  --  try  
BEGIN   
    begin
    begin tran
	declare @spResult int
	declare @str varchar(4000)
set @str = ''
  exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output

select @count = isnull(count(id),0) from tbl_exchangeRule where name  = @name
if @count > 0 and @@error <> 0 begin 
set @Result = 2 end
if @Result <> 2
begin
 insert into tbl_exchangeRule(name,note,startTime,endTime) 
values(@name,@note,@startTime,@endTime)
   if  @@error=0 begin
   set @result=1
   end else begin
   set @result=0
   end
end
END   
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result
end






GO
/****** :  StoredProcedure [dbo].[sp_ExchangeRuleDelete]    ű: 02/01/2010 14:25:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_ExchangeRuleDelete]
@id int=0,
@adminID int = 0,
@content varchar(8000)='',
@result int=0 output 
AS
SET XACT_ABORT ON  --  try  
BEGIN   
    begin
    begin tran
	declare @spResult int
	declare @str varchar(4000)
set @str = ''
   exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output 
update tbl_exchangeRule  set isDelete=1 where id=@id
   if  @@error=0 begin
   set @result=1
   end else begin
   set @result=0
   end

END   
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result
end





GO
/****** :  StoredProcedure [dbo].[sp_ExchangeRuleSelect]    ű: 02/01/2010 14:25:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_ExchangeRuleSelect]
@id int=0
AS
begin
  if @id=0 begin 
  select * from tbl_exchangeRule where isdelete=0 order by id desc
  end else begin 
  select * from tbl_exchangeRule where id=@id and isdelete=0 order by id desc
  end
end





GO
/****** :  StoredProcedure [dbo].[sp_ExchangeRuleUpdate]    ű: 02/01/2010 14:25:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_ExchangeRuleUpdate]
@id int=0,
@name varchar(8000)='',
@note varchar(8000)='',
@startTime datetime=getdate,
@endTime datetime=getdate,
@adminID int = 0,
@content varchar(8000)='',
@result int=0 output 
AS
SET XACT_ABORT ON  --  try  
BEGIN   
    begin
    begin tran
	declare @spResult int
	declare @str varchar(4000)
set @str = ''
  exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
 update tbl_exchangeRule 
set name=@name,note=@note,startTime=@startTime,endTime=@endTime where id=@id
   if  @@error=0 begin
   set @result=1
   end else begin
   set @result=0
   end
END   
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result
end






GO
/****** :  StoredProcedure [dbo].[sp_extendDayReport]    ű: 02/01/2010 14:25:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_extendDayReport]
	@startDate varchar(10),
	@endDate varchar(10),
	@extendUserid bigint
AS
BEGIN
	declare @sql varchar(8000)
	set @sql='select convert(varchar,extendTime,112) as ,count(*) as  from tbl_extendRelation'
	set @sql=@sql+' where 1=1 '
	if(len(@startDate)>5)
		set @sql=@sql+' and extendTime> '''+@startDate+''''
	if(len(@endDate)>5)
		set @sql=@sql+' and extendTime< '''+dateadd(d,1,@endDate)+''''
	if(@extendUserID>0)
		set @sql=@sql+' and userid='+str(@extendUserID)
	set @sql=@sql+' group by convert(varchar,extendTime,112)'
	set @sql=@sql+' order by convert(varchar,extendTime,112)'
	--select @sql
	exec(@sql)
END


GO
/****** :  StoredProcedure [dbo].[sp_extendRelationCheck]    ű: 02/01/2010 14:25:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create PROCEDURE   [dbo].[sp_extendRelationCheck]
 @userID int = 0,
 @extendUserID int=0
as
BEGIN
   
	select count(*) from tbl_extendRelation where userID=@userID and extendUserID=@extendUserID
  
END
GO
/****** :  StoredProcedure [dbo].[sp_extendRelationSelect]    ű: 02/01/2010 14:25:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	ƹѯ
-- =============================================
CREATE PROCEDURE   [dbo].[sp_extendRelationSelect]
 @extendId bigint = 0,
 @userID bigint=0,
 @email   varchar(8000) = '',
 @nickName varchar(8000) = '',
 @startTime varchar(30) = '',
 @endTime varchar(30) = '',
 @isGetTotal int=0
as
BEGIN
declare @sql varchar(8000),@sql1 varchar(8000),@where varchar(8000),@where1 varchar(8000)

	set @sql ='select t.*,u.nickName,u.email '
	set @sql =@sql + ', (select sum(amount) from tbl_userIntegralDetail where abs(source)=2 and userID=' + Convert(varchar(8000),@extendId) + ' and orderID in (select id from v_Order_GeneralList where state=1 and userID=t.userID)) as integral from (
			select userID ,sum(total) as total from v_Order_GeneralList where state=1 and userID in 
			(select userID from tbl_extendRelation where 1=1' 
	
	set @where = ''

	if @extendId <> 0 begin
	   set @where = @where + ' and extendUserID = '+ Convert(varchar(8000),@extendId) +''
	end
	if len(@startTime)>0 and len(@endTime)>0 begin
		set @where = @where + ' and extendTime between ''' + @startTime + ''' and dateAdd(d,1,''' + @endTime + ''')'
	end

	set @where = @where + ')'  	

	set @where = @where + ' group by userID '
	set @where = @where + ')  as t inner join tbl_user u on u.id=t.userID where 1=1 ' 
	
	if @email <> '' begin
		set @where = @where + ' and u.email like ''%'+ @email +'%'''
	end

	if @userID >0 begin
		set @where = @where + ' and u.id ='+ Convert(varchar(8000),@userID )
	end
		
	if @nickName <> ''	begin
		set @where = @where + ' and u.nickName like ''%'+ @nickName +'%'''
	end

	
	if @isGetTotal=0 begin
		set @sql = @sql + @where + ' order by u.nickName asc ' 
	end else begin --ȡ
		set @sql1 = ' select sum(total) as total,sum(integral) as integral from ( ' 
		set @sql = @sql1 + @sql + @where 
		set @sql = @sql + ') as tt'
	end 	
/*if @isGetTotal=0 begin
	
end else begin --ȡ
	set @sql ='select sum(total) as total from v_Order_GeneralList where state=1 and userID in 
			(select userID from tbl_extendRelation where 1=1' 
	set @where = ''
	set @where1 = ''
	if @extendId <> 0 begin
	   set @where = @where + ' and extendUserID = '+ Convert(varchar(8000),@extendId) +''
	end

	if len(@startTime)>0 and len(@endTime)>0 begin
		set @where = @where + ' and extendTime between ''' + @startTime + ''' and dateAdd(d,1,''' + @endTime + ''')'
	end
	
	set @where = @where + ')'  
	
	if @email <> '' begin
		set @where1 = @where1 + ' and email like ''%'+ @email +'%'''
	end
	if @nickName <> ''	begin
		set @where1 = @where1 + ' and nickName like ''%'+ @nickName +'%'''
	end

	if len(@where1)>0 begin
		set @where = @where + ' and userID in (select id from tbl_user where state>=0 '
		set @where = @where + @where1 + ' )'		
	end
	set @sql = @sql + @where 		
end*/
exec(@sql)
  --select @sql
 select @@rowCount
END






GO
/****** :  StoredProcedure [dbo].[sp_extendRelationSelectDetail]    ű: 02/01/2010 14:25:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	ƹѯϸ
-- =============================================
CREATE PROCEDURE  [dbo].[sp_extendRelationSelectDetail]
 @extendId bigint = 0,
 @userID int = 0,
 @isGetTotal int=0,
 @startTime varchar(30)='',
 @endTime varchar(30)=''
as
BEGIN
declare @sql varchar(8000),@sql1 varchar(8000) ,@where varchar(8000)
set @sql=''
set @where=''

	set @sql ='select id,total,date_time ,deliverDate '
	set @sql = @sql + ' ,coalesce((select sum(amount) from tbl_userIntegralDetail where abs(source)=2 and userID=' + Convert(varchar(8000),@extendId) + ' and orderID = v_Order_GeneralList.id),0) as integral '
	set @sql = @sql + ' from v_Order_GeneralList where state=1 '
	if @userID>0 
		set @where = @where + ' and userID = '+ cast(@userID as varchar(8000))
	if len(@startTime)>0 and len(@endTime)>0 
		set @where = @where + ' and date_time between ''' + @startTime + ''' and dateAdd(d,1,''' + @endTime + ''')'	
	
	if @isGetTotal=0 begin
		set @sql = @sql + @where + ' order by date_time desc '
	end else begin --ȡ
		set @sql1 = 'select sum(total) as total,sum(integral) as integral from ( '
		set @sql = @sql1 + @sql + @where + ') as tt'
	end
 /*if @isGetTotal=0 begin
  end else begin --ȡ
		set @sql = ' declare @total float,@integral float '
		set @sql = @sql + ' select @total=sum(total) '
		set @sql = @sql + ' from v_Order_GeneralList where state=1 '

		set @sql1 = ' select @integral=sum(amount) from tbl_userIntegralDetail where abs(source)=2 and userID=' + Convert(varchar(8000),@extendId)
		set @sql1 = @sql1 + '  and orderID in (select id from v_Order_GeneralList where state=1 ' --)
		
		if @userID>0 
			set @where = @where + ' and userID = ' + cast(@userID as varchar(8000))
		if len(@startTime)>0 and len(@endTime)>0 
			set @where = @where + ' and date_time between ''' + @startTime + ''' and dateAdd(d,1,''' + @endTime + ''')'

		set @sql = @sql + @where
		set @sql1 = @sql1 + @where + ') '
		set @sql=@sql + @sql1 + ' select @total as total,@integral integral'
  end*/
	exec(@sql)
	--select @sql
	select @@rowCount
END





GO
/****** :  StoredProcedure [dbo].[sp_ExtendReport]    ű: 02/01/2010 14:25:43 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







-- =========================================================================
-- Author:wjh		<Author,,Name>
-- Create date: 2007-11-25
-- Description:	ƹԱͱƹԱ state = 1 ʱЧ0Ϊͳ
-- =========================================================================
CREATE PROCEDURE [dbo].[sp_ExtendReport]
@eMail varchar(8000)='',
@startTime varchar(8000) = '',
@endTime   varchar(8000) = '',
@state     int = 0 
AS

declare @sql varchar(8000)
declare @sql1 varchar(8000)
declare @sql2 varchar(8000)
declare @whereStr varchar(8000)
declare @decl varchar(8000)
declare @sql3 varchar(8000)
declare @sql4 varchar(8000)
declare @wh varchar(8000) 
set @wh = ''

set @whereStr = ''

set @decl = 'declare @extendCount int;
declare @userCount int;
declare @orderCount int;
declare @orderMoney int;
set @extendCount = 0;
set @userCount = 0;
set @orderCount = 0;
set @orderMoney = 0'

set @sql1 = 'select @extendCount = count(distinct extendUserID ) from tbl_extendRelation 
where 1=1 '
set @sql2 = 'select @userCount = count(distinct UserID) from tbl_extendRelation 
where 1=1'

if @startTime <> '' and @endTime <> ''
begin
set @endTime = dateadd(d,1,@endTime)
set @whereStr =' and extendTime between '''+ Convert(varchar(50),@startTime,120) +''' and '''+ convert(varchar(50),@endTime,120)+''''
--set @wh = @wh + ' and date_time between '''+ Convert(varchar(50),@startTime,120) +''' and '''+ convert(varchar(50),@endTime,120)+''''
end

if @state <> 0
begin
 set @whereStr = @whereStr + ' and userID in (select distinct UserID from v_Order_GeneralList where state = 1)'
 set @wh = ' and state = 1 '
end

if @eMail <> ''
begin
  set @whereStr = @whereStr + ' and extendUserID = (select [id] from tbl_user where email =  '''+ @eMail + ''')'
 
end


set @sql3 = 'select @orderCount = count(id) from v_Order_GeneralList where 1 = 1
and userID in (select distinct userID from tbl_extendRelation where 1= 1' 
set @sql4 = 'select @orderMoney = isnull(sum(total),0) from v_Order_GeneralList where 1 = 1 
and userID in (select distinct userID from tbl_extendRelation where 1= 1'

set @sql3 = @sql3 + @whereStr +')'
set @sql4 = @sql4 + @whereStr +')'
--set @sql3 = @sql3  +')'
--set @sql4 = @sql4 +')'

set @sql1 =@sql1+ @whereStr
set @sql2 =@sql2+ @whereStr
set @sql =@sql1+';'+@sql2 +';'+@sql3 + @wh + ';'+ @sql4+ @wh
set @sql =@sql+' ;select @extendCount as extendCount,@userCount as userCount,@orderCount as orderCount,@orderMoney as orderMoney'
set @sql = @decl + @sql 
--select @sql
exec (@sql)
--exec (@sql2)


--select * from v_Order_GeneralList where userid = '1819'







GO
/****** :  StoredProcedure [dbo].[sp_Faculty_deleteFavorite]    ű: 02/01/2010 14:25:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[sp_Faculty_deleteFavorite]
@id int
as
delete from tbl_userFavorite where id=@id
GO
/****** :  StoredProcedure [dbo].[sp_Faculty_getUserFavorite]    ű: 02/01/2010 14:25:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[sp_Faculty_getUserFavorite]
@userID bigint
as

select tr.name,tr.id restid,tr.logoPhotoID,tf.id id from tbl_userFavorite tf inner join tbl_restaurant tr 
on tf.restID = tr.id where tf.userID=@userID
GO
/****** :  StoredProcedure [dbo].[sp_FalseOrderRuleAdd]    ű: 02/01/2010 14:25:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







--***********************
--Autor:wjh
--datetime:2007-11-23
--description:ٶٻֹ
--************************
CREATE PROCEDURE [dbo].[sp_FalseOrderRuleAdd]
@name varchar(8000)='',
@startTime varchar(120),
@endTime varchar(120),
@integral float = 0,
@note varchar(8000),
@adminID int = 0,
@content varchar(8000),
@result int=0  output
AS
SET XACT_ABORT ON  --  try  
BEGIN   
    begin
    begin tran
	declare @spResult int
	declare @str varchar(4000)
set @str = ''
if (select count(*) from tbl_FalseOrderRule where isDelete=0 )=0
 begin
      exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
   insert into tbl_FalseOrderRule(name,startTime,endTime,integral) 
values(@name,@startTime,@endTime,@integral)
      if @@error=0 begin
      set @result=1
      end  else begin
      set @result=0 end
end 
else 
begin 
     exec sp_IntegralRangCheck 0,'tbl_FalseOrderRule',@startTime,@endTime
if @@rowCount = 0 
begin
 exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
     insert into tbl_FalseOrderRule(name,startTime,endTime,integral) 
values(@name,@startTime,@endTime,@integral)
          if @@error=0 begin
          set @result=1
          end else begin
          set @result=0 end
    end  else begin
    set @result=0 end
end 
END   
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result

end














GO
/****** :  StoredProcedure [dbo].[sp_FalseOrderRuleDelete]    ű: 02/01/2010 14:25:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO












--***********************
--Autor:wjh
--datetime:2007-11-23
--description:ٶɾ
--************************
CREATE PROCEDURE [dbo].[sp_FalseOrderRuleDelete]
@id int = 0,
@adminID int = 0,
@content varchar(8000),
@result int = 0 output
AS
SET XACT_ABORT ON  --  try  
BEGIN   
    begin
    begin tran
	declare @spResult int
	declare @str varchar(4000)
set @str = ''
   exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
update tbl_falseOrderRule set isDelete = 1 where id = @id
if @@error = 0 
begin set @result = 1 end
END   
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result
end





















GO
/****** :  StoredProcedure [dbo].[sp_FalseOrderRuleSelect]    ű: 02/01/2010 14:25:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











--***********************
--Autor:wjh
--datetime:2007-11-23
--description:ٶѯ
--************************
CREATE PROCEDURE [dbo].[sp_FalseOrderRuleSelect]
@id int = 0
AS
   declare @sql varchar(8000)
set @sql =' select id,name,integral,note,Convert(varchar(10),startTime,120) as startTime ,Convert(varchar(10),endTime,120) as endTime from  tbl_FalseOrderRule  where isdelete = 0 order by startTime desc'
if @id <> 0
begin
 set @sql = @sql + ' and id = @id'
end
exec(@sql)
select @@rowCount





















GO
/****** :  StoredProcedure [dbo].[sp_FalseOrderRuleUpdate]    ű: 02/01/2010 14:25:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











--***********************
--Autor:wjh
--datetime:2007-11-23
--description:ٶ޸
--************************
CREATE PROCEDURE [dbo].[sp_FalseOrderRuleUpdate]
@id int,
@name varchar(8000)='',
@startTime varchar(8000),
@endTime varchar(8000),
@integral float = 0,
@note varchar(8000),
@adminID int = 0,
@content varchar(8000),
@result int=0  output
AS
SET XACT_ABORT ON  --  try  
BEGIN   
    begin
    begin tran
	declare @spResult int
	declare @str varchar(4000)
set @str = ''

     exec sp_IntegralRangCheck @id,'tbl_FalseOrderRule',@startTime,@endTime
if @@rowCount = 0 
begin
exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
     update tbl_FalseOrderRule set name = @name,startTime = @startTime,
endTime = @endTime,integral = @integral,note = @note where id = @id 
          if @@error=0 begin
          set @result=1
          end else begin
          set @result=0 end
    end  else begin
    set @result=0 end 
commit tran
set @Result =1  
end  
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result
end
GO

/****** :  StoredProcedure [dbo].[sp_getAllUserInfo]    ű: 02/01/2010 14:25:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE  PROCEDURE [dbo].[sp_getAllUserInfo]
@id bigint=0,
@name varchar(20) = '',
@email varchar(50) = '',
@starttime varchar(8000) ='1900-1-1 00:00:00',
@endtime varchar(8000)='9999-1-1 00:00:00',
@UserClass int =-1
AS
declare @sql varchar(8000)

--if @id>0
--	set @sql ='
--	select a.*,'''' as toAddress from
--	(SELECT Data.*,Detail.trueName, Detail.birthDay, Detail.mobile, Detail.phone,
--			Detail.qq, Detail.msn, Detail.note as note1, Detail.frieldTarget,
--			Detail.interest, Detail.privacyClass, Detail.smoking,
--			Detail.drinking, Detail.faith,Detail.cardID,
--			Detail.account,Detail.accountName,Detail.bankName,
--			Detail.fax,Detail.NetContact,Detail.Address,Detail.PostCode,Detail.Note
--			FROM tbl_user AS Data, tbl_userDetail AS Detail
--			WHERE Data.id=Detail.id and Data.state=0 '
--else
	set @sql ='
	select a.*,'''' as toAddress from
	(SELECT Data.*,Detail.trueName, Detail.birthDay, Detail.mobile, Detail.phone,
			Detail.qq, Detail.msn, Detail.note as note1, Detail.frieldTarget,
			Detail.interest, Detail.privacyClass, Detail.smoking,
			Detail.drinking, Detail.faith,Detail.cardID,
			Detail.account,Detail.accountName,Detail.bankName,
			Detail.fax,Detail.NetContact,Detail.Address,Detail.PostCode,Detail.Note
			FROM tbl_user AS Data, tbl_userDetail AS Detail
			WHERE Data.id=Detail.id and Data.state=0 '

if @id <> 0 begin
set @sql = @sql + ' and data.id = '+ str(@id) +''
end

if @UserClass <>-1 begin
set @sql=@sql+ '  and data.iscs= '+cast(@UserClass as varchar(100))+'' 
end

if @name <> '' begin
set @name = '%'+ @name +'%'
set @sql = @sql + ' and data.nickName like '''+ @name +''''
end
if @email <> '' begin
set @email = '%'+ @email +'%'
set @sql = @sql + ' and data.email like '''+ @email +''''
end
if @starttime <>'1900-1-1 00:00:00' and @endtime <> '9999-1-1 00:00:00' begin
set @starttime = CONVERT(varchar(8000),@starttime,102) + ' 0:0:0'
set @endtime = CONVERT(varchar(8000),@endtime,102) + ' 23:59:59'
set @sql = @sql + ' and Data.regTime between '''+ @starttime +''' and '''+ @endtime +''''
end
set @sql = @sql + ' ) as a'
--if @id>0
--	set @sql = @sql + ' left join v_userAddress on a.id = v_userAddress.userId order by a.regtime desc'
--else
	set @sql = @sql + ' order by a.regtime desc'
exec(@sql)


GO
/****** :  StoredProcedure [dbo].[sp_getAllUserInfo1]    ű: 02/01/2010 14:25:56 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








CREATE  PROCEDURE [dbo].[sp_getAllUserInfo1]
@id bigint=0,
@name varchar(16)='',
@email varchar(50) ='',
@starttime datetime ='1900-1-1 00:00:00',
@endtime datetime='9999-1-1 00:00:00'
AS
if @id=0 and @name='' and @email='' and 
@starttime ='1900-1-1 00:00:00' and @endtime='9999-1-1 00:00:00'
begin
	SELECT Data.*,'' as toAddress,
		Detail.trueName, Detail.birthDay, Detail.mobile, Detail.phone,
		Detail.qq, Detail.msn, Detail.note, Detail.frieldTarget,
		Detail.interest, Detail.privacyClass, Detail.smoking,
		Detail.drinking, Detail.faith,Detail.cardID,
		Detail.account,Detail.accountName,Detail.bankName,
Detail.fax,Detail.NetContact,Detail.Address,Detail.PostCode,Detail.Note
	FROM tbl_user AS Data, tbl_userDetail AS Detail
	WHERE Data.id=Detail.id and Data.state=0 order by regtime desc
end
else
begin
set @name = '%'+ @name +'%'
set @Email = '%'+ @Email +'%'
if @id=0
SELECT Data.*,'' as toAddress,
		Detail.trueName, Detail.birthDay, Detail.mobile, Detail.phone,
		Detail.qq, Detail.msn, Detail.note, Detail.frieldTarget,
		Detail.interest, Detail.privacyClass, Detail.smoking,
		Detail.drinking, Detail.faith,Detail.cardID,
		Detail.account,Detail.accountName,Detail.bankName,
Detail.fax,Detail.NetContact,Detail.Address,Detail.PostCode,Detail.Note
	FROM tbl_user AS Data, tbl_userDetail AS Detail
	WHERE Data.id=Detail.id   and  Data.nickName like @name
and Data.email like @Email and Data.regTime between (CONVERT(varchar(8000),@starttime,102)+' 0:0:0')
and (CONVERT(varchar(8000),@endtime,102) + ' 23:59:59')
and Data.state=0 order by regtime desc
else
SELECT Data.*,v_userAddress.fullAddress as toAddress,
		Detail.trueName, Detail.birthDay, Detail.mobile, Detail.phone,
		Detail.qq, Detail.msn, Detail.note, Detail.frieldTarget,
		Detail.interest, Detail.privacyClass, Detail.smoking,
		Detail.drinking, Detail.faith,Detail.cardID,
		Detail.account,Detail.accountName,Detail.bankName,
Detail.fax,Detail.NetContact,Detail.Address,Detail.PostCode,Detail.Note
	FROM tbl_user AS Data, tbl_userDetail AS Detail,v_userAddress
	WHERE Data.id=Detail.id and Data.id = @id  and v_userAddress.ID = (select max(id) 
from v_userAddress where userID = @id) and Data.nickName like @name
and Data.email like @Email  and Data.regTime 
between (CONVERT(varchar(8000),@starttime,102)+' 0:0:0')
and (CONVERT(varchar(8000),@endtime,102) + ' 23:59:59')
and Data.state=0 order by regtime desc 
end

















GO
/****** :  StoredProcedure [dbo].[sp_getAllUserInfo2]    ű: 02/01/2010 14:25:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








create  PROCEDURE [dbo].[sp_getAllUserInfo2]
@id bigint=0,
@name varchar(20) = '',
@email varchar(50) = '',
@starttime datetime ='1900-1-1 00:00:00',
@endtime datetime='9999-1-1 00:00:00'
AS
declare @sql varchar(8000)
set @sql ='
select a.*,v_userAddress.fullAddress as toAddress from
(SELECT Data.*,Detail.trueName, Detail.birthDay, Detail.mobile, Detail.phone,
		Detail.qq, Detail.msn, Detail.note as note1, Detail.frieldTarget,
		Detail.interest, Detail.privacyClass, Detail.smoking,
		Detail.drinking, Detail.faith,Detail.cardID,
		Detail.account,Detail.accountName,Detail.bankName,
		Detail.fax,Detail.NetContact,Detail.Address,Detail.PostCode,Detail.Note
		FROM tbl_user AS Data, tbl_userDetail AS Detail
		WHERE Data.id=Detail.id and Data.state=0 '
if @id <> 0 begin
set @sql = @sql + ' and data.id = '+ str(@id) +''
end
if @name <> '' begin
set @name = '%'+ @name +'%'
set @sql = @sql + ' and data.nickName like '''+ @name +''''
end
if @email <> '' begin
set @email = '%'+ @email +'%'
set @sql = @sql + ' and data.email like '''+ @email +''''
end
if @starttime <>'1900-1-1 00:00:00' and @endtime <> '9999-1-1 00:00:00' begin
set @starttime = CONVERT(varchar(8000),@starttime,102) + ' 0:0:0'
set @endtime = CONVERT(varchar(8000),@endtime,102) + ' 23:59:59'
set @sql = @sql + ' and Data.regTime between '''+ @starttime +''' and '''+ @endtime +''''
end
set @sql = @sql + ' ) as a'
set @sql = @sql + ' left join v_userAddress on a.id = v_userAddress.userId order by a.regtime desc'
exec(@sql)














GO
/****** :  StoredProcedure [dbo].[sp_getAnswer]    ű: 02/01/2010 14:26:00 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_getAnswer]
@ID int=0,
@questionID int=0,
@isFinish int=0
AS

if @ID>0	
	select a.*,b.name as serviceUserName,b.nickName as nickName 
		From tbl_answer a 
		left outer join tbl_serviceUser b 
		on a.dealUserID=b.ID
		Where a.ID=@ID	
else
if @questionID>0 and @isFinish=1--
	select a.*,b.name as serviceUserName,b.nickName as nickName 
		From tbl_answer a 
		left outer join tbl_serviceUser b on a.dealUserID=b.ID
		left outer join tbl_question c on a.questionID=c.ID
		where questionID=@questionID and c.state=2
else
if @questionID>0
	select a.*,b.name as serviceUserName,b.nickName as nickName 
		From tbl_answer a 
		left outer join tbl_serviceUser b on a.dealUserID=b.ID		
		where questionID=@questionID
GO
/****** :  StoredProcedure [dbo].[sp_getApply]    ű: 02/01/2010 14:26:01 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_getApply]
@userID bigint
 AS
declare @r int
select @r=result from tbl_apply where userID=@userID
if @r>0
	select 1
else
	if @r=0
		select -1
	else
		select -2
GO
/****** :  StoredProcedure [dbo].[sp_getArea]    ű: 02/01/2010 14:26:02 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










CREATE PROCEDURE [dbo].[sp_getArea] 
@id int=20,
@userID bigint=-1,
@regionID int=0,
@state int=-1
 AS
if @userID<0
begin
	if @id>0 begin
		select * from v_area where id=@id
	end else if @regionID>0 begin
		select * from v_area where regionID=@regionID and state=@state order by name asc
	end else begin
		select * from v_area order by id desc
	end
end
else
	if @userID>0  begin		
		if @id>0 begin
			select * from v_area where userID=@userID and id=@id
		end	else begin
			if @state>=0 begin
				select * from v_area where userID=@userID and state=@state order by id desc
			end else
				select * from v_area where userID=@userID order by id desc
		end
 	end
select @@rowcount








GO
/****** :  StoredProcedure [dbo].[sp_getAreaByRegion]    ű: 02/01/2010 14:26:04 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_getAreaByRegion]
@regionID int=0,
@areaID int =0
AS
SELECT tbl_area.id, tbl_area.name, tbl_area.provinceID, tbl_area.cityID, tbl_area.regionID, 
      tbl_area.zoneID, tbl_area.address, tbl_province.name AS provinceName, 
      tbl_city.name AS cityName, tbl_zone.name AS zoneName, 
      tbl_region.name AS regionName
FROM tbl_area INNER JOIN
      tbl_city ON tbl_area.cityID = tbl_city.id INNER JOIN
      tbl_province ON tbl_area.provinceID = tbl_province.id INNER JOIN
      tbl_zone ON tbl_area.zoneID = tbl_zone.id INNER JOIN
      tbl_region ON tbl_area.regionID = tbl_region.id
where tbl_area.regionId=@regionID and tbl_area.isdelete=0
order by tbl_area.name
GO
/****** :  StoredProcedure [dbo].[sp_getAreaByShopID]    ű: 02/01/2010 14:26:05 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_getAreaByShopID]
@restID int
 AS
select id,name from tbl_area where id in (select areaID from tbl_shop2Area where restID=@restID)
GO
/****** :  StoredProcedure [dbo].[sp_getAreaByZone]    ű: 02/01/2010 14:26:06 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_getAreaByZone]
@zoneID int=0,
@areaID int =0
AS
declare @sql varchar(8000)
declare @where varchar(8000)
set @where = ''
if @zoneID <> 0 begin
set @where = @where + ' and tbl_area.zoneId = '+str(@zoneId)
end
if @areaID <> 0 begin
set @where = @where + ' and tbl_area.id = '+ str(@areaID)
end
set @sql = 'SELECT tbl_area.id, tbl_area.name, tbl_area.provinceID, tbl_area.cityID, tbl_area.regionID, 
      tbl_area.zoneID, tbl_area.address, tbl_province.name AS provinceName, 
      tbl_city.name AS cityName, tbl_zone.name AS zoneName, 
      tbl_region.name AS regionName
FROM tbl_area INNER JOIN
      tbl_city ON tbl_area.cityID = tbl_city.id INNER JOIN
      tbl_province ON tbl_area.provinceID = tbl_province.id INNER JOIN
      tbl_zone ON tbl_area.zoneID = tbl_zone.id INNER JOIN
      tbl_region ON tbl_area.regionID = tbl_region.id where tbl_area.isDelete = 0'
set @sql = @sql + @where + ' order by tbl_area.name'
exec(@sql)


GO
/****** :  StoredProcedure [dbo].[sp_getAreaNewest]    ű: 02/01/2010 14:26:07 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_getAreaNewest]
@limit int
 AS
declare @str varchar(200)
set @str ='select top '+str(@limit)+'  *  from tbl_area where isdelete=0 order by id desc'
exec(@str)
--select @str
GO
/****** :  StoredProcedure [dbo].[sp_getDeliverAddress]    ű: 02/01/2010 14:26:08 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_getDeliverAddress]
@userID bigint
 AS
select address from tbl_userAddress where userID=@userID
GO
/****** :  StoredProcedure [dbo].[sp_getFavList]    ű: 02/01/2010 14:26:09 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO

CREATE PROCEDURE [dbo].[sp_getFavList]
@userID bigint
 AS
select a.*,c.name as zoneName from 
tbl_userFavorite a,tbl_restaurant b,tbl_zone c 
where a.userID=@userID and a.restID=b.id and b.zoneID=c.id
GO
/****** :  StoredProcedure [dbo].[sp_getIntegral]    ű: 02/01/2010 14:26:10 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_getIntegral]
@userID bigint
 AS
declare @r bigint
select @r=integral from tbl_userIntegral where userID=@userID
if @r>0
	select @r
else
	select 0

GO
/****** :  StoredProcedure [dbo].[sp_GetLastHastenOrderId]    ű: 02/01/2010 14:26:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_GetLastHastenOrderId]
@result int=0 output 
AS
  BEGIN
		 set @result=(select top 1 ID from tbl_hastenOrder 
where state=0 and isDelete=0 order by postTime asc)
		if @@error<>0 begin
		set @result=0
		end
  END
  select @result





GO
/****** :  StoredProcedure [dbo].[sp_GetLastOrderId]    ű: 02/01/2010 14:26:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_GetLastOrderId]
@id int=0,
@result int=0 output
AS
  BEGIN
		set @result= (select orderID from tbl_hastenOrder where id=@id)
		if @@error<>0 begin
		set @result=0
		end
  END
  select @result





GO
/****** :  StoredProcedure [dbo].[sp_getMenuClass]    ű: 02/01/2010 14:26:13 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE PROCEDURE [dbo].[sp_getMenuClass]
@restID int=0,
@userID bigint=0,
@menuClassId int=0,
@isDeliver int=-1,
@IsReserve int=-1
 AS

declare @sql varchar(8000),@where varchar(8000)
set @where=''
set @sql = 'select *
		,(case isDeliver 
			when 0 then '''' 
			when 1 then '''' 
			end) as isDeliverStr
	from tbl_menuClass where isDelete=0 '

if @menuClassId>0
	set @where = @where + ' and id=' + Convert(varchar(8000),@menuClassId)
if @restID>0
	set @where = @where + ' and restID=' + Convert(varchar(8000),@restID)
if @userId>0 and @restID>0
	set @where = @where + ' and ( restID=(select top 1 id from tbl_restaurant where userID=' + Convert(varchar(8000),@userID) + ' and id=' + Convert(varchar(8000),@restID) + ') or restID in (select restID from tbl_restUser where userID=' + Convert(varchar(8000),@userID) + ')) '
if @isDeliver>-1
	set @where = @where + ' and isDeliver=' + Convert(varchar(8000),@isDeliver)
if @IsReserve>-1
	set @where = @where + ' and IsReserve=' + Convert(varchar(8000),@IsReserve)
set @sql = @sql + @where + ' order by orderNumber desc,name desc '
exec(@sql)


GO
/****** :  StoredProcedure [dbo].[sp_getMenuTable]    ű: 02/01/2010 14:26:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_getMenuTable] 
@id int =0,
@userID int=0
AS
declare @rID int
--select @rID=restID from tbl_menuTable where id=@id
--if(select count(*) from tbl_restaurant where id=@rID) --and( userID=@userID or id in (select restID from tbl_restUser where  userID=@userID)) )=1 or @userID=-1
	begin
	select  * from  tbl_menuTable  where id=@id and state>=0
	end

GO
/****** :  StoredProcedure [dbo].[sp_getNearbyRest]    ű: 02/01/2010 14:26:16 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_getNearbyRest]
@restID int
as
select top 10 id,name from tbl_restaurant where ID in (select restid from tbl_restautant2Area where areaID in (select areaID from tbl_restautant2Area where restID=@restID)) and id<>@restID
order by id
GO
/****** :  StoredProcedure [dbo].[sp_getPassportParameters]    ű: 02/01/2010 14:26:17 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_getPassportParameters]
@domain varchar(100)
AS
select top 1 * from tbl_passportParameters where domain=@domain
GO
/****** :  StoredProcedure [dbo].[sp_getPassword]    ű: 02/01/2010 14:26:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_getPassword] 
@email varchar(50)
AS

select * from tbl_user where email=@email

GO
/****** :  StoredProcedure [dbo].[sp_getPasswordRecordAdd]    ű: 02/01/2010 14:26:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_getPasswordRecordAdd]
@userID bigint,
@email varchar(50),
@checkCode varchar(50),
@result int=0 output
AS
--ID,userID ,email ,checkCode,sendTime,resetTime
set @result=0
insert into tbl_getPasswordRecord(userID,email,checkCode) values(@userID,@email,@checkCode)

set @result = @@identity

select @result

GO
/****** :  StoredProcedure [dbo].[sp_getPasswordRecordCheckCode]    ű: 02/01/2010 14:26:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_getPasswordRecordCheckCode]
@ID int,
@password varchar(32),
@checkCode varchar(50),
@resetTime DateTime,
@result int=0 output
AS
declare @isReset int ,@cnt int,@userID bigint
set @isReset=1
set @cnt=0
set @userID=0
--ʱ3ڣñ־Ϊ0

select @cnt=(count(*)) from tbl_getPasswordRecord where sendTime>dateadd(day,-3,getDate()) and isReset=0 and ID=@ID and checkCode=@checkCode
if @cnt=1
	begin		
		update tbl_getPasswordRecord set resetTime=@resetTime,isReset=1 where ID=@ID
		select @userID=userID from tbl_getPasswordRecord where ID=@ID
		if @userID>0
			begin
				update tbl_user set [password]=@password where ID=@UserID
				set @result=1
			end
	end
select @result
GO
/****** :  StoredProcedure [dbo].[sp_getPhotoClass]    ű: 02/01/2010 14:26:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_getPhotoClass]
@classID bigint,
@userID bigint
AS
	select tc.*,(select count(*) from tbl_userPhoto where classID=@classID) amount from tbl_userPhotoClass tc 
	where id=@classID and userID=@userID
	RETURN

GO
/****** :  StoredProcedure [dbo].[sp_getQuestion]    ű: 02/01/2010 14:26:24 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_getQuestion]
@ID int=0,
@userID bigInt=0,
@classID int=0,
@answerDept int=0,
@state int=-2
AS
/*
declare @str varchar(500),@sql varchar(500)
set @str=''
if @classID>0
	set @str=@str + 'and a.classID=' + @classID
if @answerDept>0
	set @str=@str + 'and a.answerDept' + @answerDept
set @str=substring(@str,4,100)*/

if @ID>0 and @userID>0
	begin
		select a.*,c.*,e.* ,c.Name as className
			,e.name as serverDeptName
		from tbl_question a 		
		left outer join tbl_questionClass c on a.classID=c.ID		
		left outer join tbl_serviceDept e on a.answerDept=e.ID
		Where a.ID=@ID And a.userId=@userID And a.IsDelete=0 order by postTime desc
	end
else
begin
if @ID>0
	begin
		select a.*,c.*,e.* ,c.Name as className
			,e.name as serverDeptName
		from tbl_question a 		
		left outer join tbl_questionClass c on a.classID=c.ID 		
		left outer join tbl_serviceDept e on a.answerDept=e.ID
		Where a.ID=@ID And a.IsDelete=0 order by postTime desc
	end

else
	begin
	if @userID>0--ǰ̨û
		begin
			if @classID<=0
			begin	
			select a.*,c.*,e.* ,c.Name as className
				,e.name as serverDeptName
				from tbl_question a 				
				left outer join tbl_questionClass c on a.classID=c.ID 				
				left outer join tbl_serviceDept e on a.answerDept=e.ID
				Where a.userId=@userID And a.IsDelete=0 order by postTime desc
			end
			else
			begin	
			select a.*,c.*,e.* ,c.Name as className
				,e.name as serverDeptName
				from tbl_question a 				
				left outer join tbl_questionClass c on a.classID=c.ID 				
				left outer join tbl_serviceDept e on a.answerDept=e.ID
				Where a.userId=@userID And c.ID=@classID And a.IsDelete=0 order by postTime desc
			end
		end	
	else------------̨û
	begin
			
			if @classID<=0
				begin
					if @answerDept<=0
						begin
						if @state<-1
							select a.*,c.*,e.* ,c.Name as className
							,e.name as serverDeptName
							from tbl_question a 
							
							left outer join tbl_questionClass c on a.classID=c.ID 
							
							left outer join tbl_serviceDept e on a.answerDept=e.ID
							Where a.IsDelete=0 order by postTime desc
						else
							select a.*,c.*,e.* ,c.Name as className
							,e.name as serverDeptName
							from tbl_question a 
							
							left outer join tbl_questionClass c on a.classID=c.ID 
							
							left outer join tbl_serviceDept e on a.answerDept=e.ID
							Where a.state=@state and a.IsDelete=0 order by postTime desc
						end
					else
						begin
						if @state<-1	
							select a.*,c.*,e.* ,c.Name as className
							,e.name as serverDeptName
							from tbl_question a 
							
							left outer join tbl_questionClass c on a.classID=c.ID 
							
							left outer join tbl_serviceDept e on a.answerDept=e.ID
							Where a.answerDept=@answerDept and a.IsDelete=0 order by postTime desc	
						else
							select a.*,c.*,e.* ,c.Name as className
							,e.name as serverDeptName
							from tbl_question a 
							
							left outer join tbl_questionClass c on a.classID=c.ID 
							
							left outer join tbl_serviceDept e on a.answerDept=e.ID
							Where a.answerDept=@answerDept and a.state=@state and a.IsDelete=0 order by postTime desc		
						end	
				end
			else
				begin
					if @answerDept<=0
						begin
						if @state<-1
							select a.*,c.*,e.* ,c.Name as className
							,e.name as serverDeptName
							from tbl_question a 				
							left outer join tbl_questionClass c on a.classID=c.ID 				
							left outer join tbl_serviceDept e on a.answerDept=e.ID
							Where c.ID=@ClassID and a.IsDelete=0 order by postTime desc
						else
							select a.*,c.*,e.* ,c.Name as className
							,e.name as serverDeptName
							from tbl_question a 				
							left outer join tbl_questionClass c on a.classID=c.ID 				
							left outer join tbl_serviceDept e on a.answerDept=e.ID
							Where c.ID=@ClassID and a.state=@state and a.IsDelete=0 order by postTime desc
						end
					else
						begin
						if @state<-1
							select a.*,c.*,e.* ,c.Name as className
							,e.name as serverDeptName
							from tbl_question a 				
							left outer join tbl_questionClass c on a.classID=c.ID 				
							left outer join tbl_serviceDept e on a.answerDept=e.ID
							Where c.ID=@ClassID and a.answerDept=@answerDept and a.IsDelete=0 order by postTime desc
						else
							select a.*,c.*,e.* ,c.Name as className
							,e.name as serverDeptName
							from tbl_question a 				
							left outer join tbl_questionClass c on a.classID=c.ID 				
							left outer join tbl_serviceDept e on a.answerDept=e.ID
							Where c.ID=@ClassID and a.answerDept=@answerDept and a.state=@state and a.IsDelete=0 order by postTime desc	
						end
				end
	end-------------------------
end
end
GO
/****** :  StoredProcedure [dbo].[sp_getQuestionClass]    ű: 02/01/2010 14:26:26 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_getQuestionClass] 
@ID int=0
AS

if @ID>0
	select * From tbl_questionClass Where ID=@ID
else
	select * From tbl_questionClass
GO
/****** :  StoredProcedure [dbo].[sp_getQuestionIsDelete]    ű: 02/01/2010 14:26:27 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_getQuestionIsDelete]
@ID int=0,
@userID bigInt=0,
@classID int=0
AS
if @userID>0
	begin
		if @classID<=0
		begin	
		select a.*,c.*,e.* ,c.Name as className
			,e.name as serverDeptName
			from tbl_question a 
			
			left outer join tbl_questionClass c on a.classID=c.ID 
			
			left outer join tbl_serviceDept e on a.answerDept=e.ID
			Where a.userId=@userID And a.IsDelete=1 order by postTime desc
		end
		else
		begin	
		select a.*,c.*,e.* ,c.Name as className
			,e.name as serverDeptName
			from tbl_question a 
			
			left outer join tbl_questionClass c on a.classID=c.ID 
			
			left outer join tbl_serviceDept e on a.answerDept=e.ID
			Where a.userId=@userID And c.ID=@classID And a.IsDelete=1 order by postTime desc
		end
	end	
	else
	begin
		if @classID<=0
		begin
		select a.*,c.*,e.* ,c.Name as className
			,e.name as serverDeptName
			from tbl_question a 
			
			left outer join tbl_questionClass c on a.classID=c.ID 
			
			left outer join tbl_serviceDept e on a.answerDept=e.ID
			Where a.IsDelete=1 order by postTime desc
		end
		else
		begin
		select a.*,c.*,e.* ,c.Name as className
			,e.name as serverDeptName
			from tbl_question a 
			
			left outer join tbl_questionClass c on a.classID=c.ID 
			
			left outer join tbl_serviceDept e on a.answerDept=e.ID
			Where c.ID=@ClassID and a.IsDelete=1 order by postTime desc
		end
	end
GO
/****** :  StoredProcedure [dbo].[sp_getRegion]    ű: 02/01/2010 14:26:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_getRegion]
@regionID int =0
 AS
declare @sql varchar(8000)
declare @where varchar(8000)
set @where  = ''
if @regionID <> 0
set @where = @where + ' and tbl_region.id=@regionID'
set @sql ='SELECT tbl_city.name AS cityName, tbl_province.name AS provinceName, 
      tbl_region.name AS regionName,tbl_region.id as regionID,(select count(*) from tbl_restaurant where tbl_restaurant.regionID=tbl_region.id and isdelete=0 and state=1) as restAmount
FROM tbl_province INNER JOIN
      tbl_region ON tbl_province.id = tbl_region.provinceID INNER JOIN
      tbl_city ON tbl_region.cityID = tbl_city.id where 1=1'
set @sql = @sql + @where
exec(@sql)

GO
/****** :  StoredProcedure [dbo].[sp_getReplyByTop]    ű: 02/01/2010 14:26:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_getReplyByTop] 
@id bigint,
@top int
AS
DECLARE @sql VARCHAR(8000)
set   @sql='select distinct top '+cast(@top   as   varchar)+'  tr.userID,userName,contentID,tr.postTime,tu.photo,td.title,@id mainID
	from tbl_userDiaryReply tr,tbl_userDiary td,tbl_user tu where td.id = contentID and
	contentID in (select id from tbl_userDiary where userID = @id and isDelete = 0) and tu.id=tr.userID
	and tr.isDelete = 0 and td.isDelete=0 order by tr.postTime desc'  
		 
  EXEC (@sql) 
	RETURN

GO
/****** :  StoredProcedure [dbo].[sp_getRestAll]    ű: 02/01/2010 14:26:31 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_getRestAll]
@id int =0

AS
      SELECT tbl_restaurant.*, tbl_area.name AS areaName, tbl_city.name AS cityName, 
      tbl_zone.name AS zoneName, tbl_province.name AS provinceName, 
      tbl_region.name AS regionName, tbl_user.Name AS userName, tbl_restIntro.mobile, 
      tbl_restIntro.fax, tbl_restIntro.email, tbl_restIntro.msnQQ, tbl_restIntro.expenditure, 
      tbl_restIntro.discount, tbl_restIntro.discountNote, tbl_restIntro.policy, 
      tbl_restIntro.deliverMoney, tbl_restIntro.deliverNote, tbl_restIntro.chainMsg, 
      tbl_restIntro.mapUrl, tbl_restIntro.URL, tbl_restIntro.PAmount, tbl_restIntro.BAmount, 
      tbl_restIntro.stallAmount, tbl_restIntro.traffic, tbl_restIntro.deliverArea,tbl_restIntro.settlement,tbl_restIntro.orderNote,tbl_restIntro.policy,tbl_restaurant.state
FROM tbl_restaurant LEFT OUTER JOIN
      tbl_restIntro ON tbl_restaurant.id = tbl_restIntro.restID LEFT OUTER JOIN
      tbl_user ON tbl_restaurant.userID = tbl_user.id LEFT OUTER JOIN
      tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
      tbl_region ON tbl_restaurant.regionID = tbl_region.id LEFT OUTER JOIN
      tbl_province ON tbl_restaurant.provinceID = tbl_province.id LEFT OUTER JOIN
      tbl_city ON tbl_restaurant.cityID = tbl_city.id LEFT OUTER JOIN
      tbl_area ON tbl_restaurant.areaID = tbl_area.id
      where   tbl_restaurant.isDelete=0
order by tbl_restaurant.id desc
GO
/****** :  StoredProcedure [dbo].[sp_getRestaurant]    ű: 02/01/2010 14:26:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








CREATE PROCEDURE [dbo].[sp_getRestaurant]
@id int =0,
@userID int =0,
@regionID int=0,
@sclassID int=-1,
@restName varchar(30)='',
@startDate varchar(8000) ='',
@endDate varchar(8000) = '',
@PageSize int=0,
@PageIndex int=0,
@sortName varchar(8000)= '',
@isPost int = -1,
@ClassIDsIn varchar(8000)=''
AS
declare @select varchar(8000),@tableName varchar(8000),@order varchar(200),@where varchar(8000),@str varchar(100),@OrderType1 int
set @where = 'tbl_restaurant.isDelete=0 '
set @tableName = ''
set @order = ''
SET @str=''
SET @OrderType1=1
if @ClassIDsIn<>''	
	set @str=' and classid in('+@ClassIDsIn+')'
else 
	set @str=''
SET @select='1 as rownum,isnull(tbl_RestIntegralScale.IntegralCount,0) as Integral,tbl_restaurant.*, tbl_area.name AS areaName, tbl_city.name AS cityName, 
			  tbl_zone.name AS zoneName, tbl_province.name AS provinceName, 
			  tbl_region.name AS regionName, tbl_user.Name AS userName, tbl_restIntro.mobile, tbl_restIntro.colorMobile,
			  tbl_restIntro.fax, tbl_restIntro.email, tbl_restIntro.msnQQ, tbl_restIntro.expenditure, 
			  tbl_restIntro.discount, tbl_restIntro.discountNote, tbl_restIntro.policy, 
			  tbl_restIntro.deliverMoney, tbl_restIntro.deliverNote, tbl_restIntro.chainMsg, 
			  tbl_restIntro.mapUrl, tbl_restIntro.URL, tbl_restIntro.PAmount, tbl_restIntro.BAmount, 
			  tbl_restIntro.stallAmount, tbl_restIntro.traffic, tbl_restIntro.deliverArea,tbl_restIntro.settlement,tbl_restIntro.orderNote
			  ,tbl_restIntro.isPost,tbl_restIntro.content,tbl_restIntro.NPosition
			  ,tbl_restIntro.PostTime,tbl_restIntro.updateCyc,tbl_restIntro.senderAmount,tbl_restIntro.agree
			,(select count(*) from tbl_restBulletin where restID=tbl_restaurant.id and isDelete=0'+@str+') as bulletinAmount
			,(select count(id) from tbl_restBulletin where restID=tbl_restaurant.id and isDelete=0 and endTime < convert(varchar(10),getdate(),120) and state = 1'+@str+') as bulletinAmountOverdue
,(select count(id) from tbl_restBulletin where restID=tbl_restaurant.id and isDelete=0 and endTime >=convert(varchar(10),getdate(),120) and state = 1'+@str+') as bulletinAmountNew	
				,(select count(*) from tbl_shopComments where shopID=tbl_restaurant.id and isDelete=0) as commentsAmount'

	if @sortName <> ''
	begin
		set @order= @sortName
	end
	else
	begin
		set @order=' tbl_restaurant.sclassID   desc'
	end
SET @tableName='tbl_restaurant LEFT OUTER JOIN
			  tbl_restIntro ON tbl_restaurant.id = tbl_restIntro.restID LEFT OUTER JOIN
			  tbl_user ON tbl_restaurant.userID = tbl_user.id LEFT OUTER JOIN
			  tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
			  tbl_region ON tbl_restaurant.regionID = tbl_region.id LEFT OUTER JOIN
			  tbl_province ON tbl_restaurant.provinceID = tbl_province.id LEFT OUTER JOIN
			  tbl_city ON tbl_restaurant.cityID = tbl_city.id LEFT OUTER JOIN
			  tbl_area ON tbl_restaurant.areaID = tbl_area.id left join 
			  tbl_RestIntegralScale on tbl_RestIntegralScale.RestId=tbl_restaurant.id left join
				tbl_RestIntegral on tbl_RestIntegral.restid=tbl_restaurant.id' 

if @id>0 
	set @where = @where + ' and tbl_restaurant.id=' + Cast(@id as varchar(8000))
if @userID>0
	set @where = @where + ' and (tbl_restaurant.userID=' + Cast(@userID as varchar(8000)) + ' or tbl_restaurant.id in (select restID from tbl_restUser where  userID=' + Cast(@userID as varchar(8000)) + '))'
if @sclassID>-1  		
	set	@where = @where + ' and tbl_restaurant.sclassID=' + Cast(@sclassID as varchar(8000))
if @regionID>0 
	set	@where = @where + ' and tbl_restaurant.regionID= ' + Cast(@regionID as varchar(8000))
if len(@restName)>0
	set @where = @where + ' and (tbl_restaurant.name like ''%' + @restName + '%'' or tbl_restaurant.spy like ''%' + @restName + '%'' or tbl_restaurant.qpy like ''%' + @restName + '%'')'
if @startDate <> '' and @endDate <> ''
	set @where = @where + ' and addTime between '''+ @startDate +''' and '''+ @endDate +''''
if @isPost <> -1 begin
	set @where = @where + ' and tbl_restIntro.isPost =' + str(@isPost) end
if @PageSize>0 begin --ҳ
	EXEC  UP_GetDataList @strGetFields=@select,@tblName=@tableName,@fldName=@order, @PageSize=@PageSize, @PageIndex=@PageIndex,@strWhere=@where
end else begin
	EXEC  UP_GetDataList @strGetFields=@select,@tblName=@tableName,@fldName=@order, @PageSize=10, @PageIndex=1,@strWhere=@where
	select @@rowCount
end
































GO
/****** :  StoredProcedure [dbo].[sp_getRestaurant1]    ű: 02/01/2010 14:26:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
















CREATE PROCEDURE [dbo].[sp_getRestaurant1]
@id int =0,
@userID int =0,
@regionID int=0,
@sclassID int=-1
AS
if @id>0 begin
	if @userID>0 begin
		SELECT tbl_restaurant.*, tbl_area.name AS areaName, tbl_city.name AS cityName, 
			  tbl_zone.name AS zoneName, tbl_province.name AS provinceName, 
			  tbl_region.name AS regionName, tbl_user.Name AS userName, tbl_restIntro.mobile, tbl_restIntro.colorMobile,
			  tbl_restIntro.fax, tbl_restIntro.email, tbl_restIntro.msnQQ, tbl_restIntro.expenditure, 
			  tbl_restIntro.discount, tbl_restIntro.discountNote, tbl_restIntro.policy, 
			  tbl_restIntro.deliverMoney, tbl_restIntro.deliverNote, tbl_restIntro.chainMsg, 
			  tbl_restIntro.mapUrl, tbl_restIntro.URL, tbl_restIntro.PAmount, tbl_restIntro.BAmount, 
			  tbl_restIntro.stallAmount, tbl_restIntro.traffic, tbl_restIntro.deliverArea,tbl_restIntro.settlement,tbl_restIntro.orderNote,tbl_restIntro.policy
			  ,tbl_restIntro.isPost,tbl_restIntro.content,tbl_restIntro.NPosition
			  ,tbl_restIntro.PostTime,tbl_restIntro.updateCyc,tbl_restIntro.senderAmount
			,tbl_restaurant.reserveDays,tbl_restaurant.reserveMenuMode			  
		FROM tbl_restaurant LEFT OUTER JOIN
			  tbl_restIntro ON tbl_restaurant.id = tbl_restIntro.restID LEFT OUTER JOIN
			  tbl_user ON tbl_restaurant.userID = tbl_user.id LEFT OUTER JOIN
			  tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
			  tbl_region ON tbl_restaurant.regionID = tbl_region.id LEFT OUTER JOIN
			  tbl_province ON tbl_restaurant.provinceID = tbl_province.id LEFT OUTER JOIN
			  tbl_city ON tbl_restaurant.cityID = tbl_city.id LEFT OUTER JOIN
			  tbl_area ON tbl_restaurant.areaID = tbl_area.id
		where tbl_restaurant.id=@id and tbl_restaurant.isDelete=0  and (tbl_restaurant.userID=@userID or tbl_restaurant.id in (select restID from tbl_restUser where  userID=@userID and restID=@id))
		order by tbl_restaurant.sclassID desc, tbl_restaurant.id desc
	end	else begin
			SELECT tbl_restaurant.*, tbl_area.name AS areaName, tbl_city.name AS cityName, 
			  tbl_zone.name AS zoneName, tbl_province.name AS provinceName, 
			  tbl_region.name AS regionName, tbl_user.Name AS userName, tbl_restIntro.mobile, tbl_restIntro.colorMobile,
			  tbl_restIntro.fax, tbl_restIntro.email, tbl_restIntro.msnQQ, tbl_restIntro.expenditure, 
			  tbl_restIntro.discount, tbl_restIntro.discountNote, tbl_restIntro.policy, 
			  tbl_restIntro.deliverMoney, tbl_restIntro.deliverNote, tbl_restIntro.chainMsg, 
			  tbl_restIntro.mapUrl, tbl_restIntro.URL, tbl_restIntro.PAmount, tbl_restIntro.BAmount, 
			  tbl_restIntro.stallAmount, tbl_restIntro.traffic, tbl_restIntro.deliverArea,tbl_restIntro.settlement,tbl_restIntro.orderNote,tbl_restIntro.policy
			  ,tbl_restIntro.isPost,tbl_restIntro.content,tbl_restIntro.NPosition
			  ,tbl_restIntro.PostTime,tbl_restIntro.updateCyc,tbl_restIntro.senderAmount
				,tbl_restaurant.reserveDays,tbl_restaurant.reserveMenuMode
			FROM tbl_restaurant LEFT OUTER JOIN
				  tbl_restIntro ON tbl_restaurant.id = tbl_restIntro.restID LEFT OUTER JOIN
				  tbl_user ON tbl_restaurant.userID = tbl_user.id LEFT OUTER JOIN
				  tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
				  tbl_region ON tbl_restaurant.regionID = tbl_region.id LEFT OUTER JOIN
				  tbl_province ON tbl_restaurant.provinceID = tbl_province.id LEFT OUTER JOIN
				  tbl_city ON tbl_restaurant.cityID = tbl_city.id LEFT OUTER JOIN
				  tbl_area ON tbl_restaurant.areaID = tbl_area.id
			where tbl_restaurant.id=@id and tbl_restaurant.isDelete=0
			order by tbl_restaurant.sclassID desc, tbl_restaurant.id desc
		end
	end
else
begin
if @userID>0 begin--ûĲ͹
	if @sclassID>-1 begin 
		SELECT tbl_restaurant.*, tbl_area.name AS areaName, tbl_city.name AS cityName, 
			  tbl_zone.name AS zoneName, tbl_province.name AS provinceName, 
			  tbl_region.name AS regionName, tbl_user.Name AS userName, tbl_restIntro.mobile, tbl_restIntro.colorMobile,
			  tbl_restIntro.fax, tbl_restIntro.email, tbl_restIntro.msnQQ, tbl_restIntro.expenditure, 
			  tbl_restIntro.discount, tbl_restIntro.discountNote, tbl_restIntro.policy, 
			  tbl_restIntro.deliverMoney, tbl_restIntro.deliverNote, tbl_restIntro.chainMsg, 
			  tbl_restIntro.mapUrl, tbl_restIntro.URL, tbl_restIntro.PAmount, tbl_restIntro.BAmount, 
			  tbl_restIntro.stallAmount, tbl_restIntro.traffic, tbl_restIntro.deliverArea,tbl_restIntro.settlement,tbl_restIntro.orderNote,tbl_restIntro.policy
			  ,tbl_restIntro.isPost,tbl_restIntro.content,tbl_restIntro.NPosition
			  ,tbl_restIntro.PostTime,tbl_restIntro.updateCyc,tbl_restIntro.senderAmount
			,tbl_restaurant.reserveDays,tbl_restaurant.reserveMenuMode	
			,(select count(*) from tbl_restBulletin where restID=tbl_restaurant.id and isDelete=0) as bulletinAmount	
			,(select count(*) from tbl_shopComments where shopID=tbl_restaurant.id and isDelete=0) as commentsAmount
		FROM tbl_restaurant LEFT OUTER JOIN
			  tbl_restIntro ON tbl_restaurant.id = tbl_restIntro.restID LEFT OUTER JOIN
			  tbl_user ON tbl_restaurant.userID = tbl_user.id LEFT OUTER JOIN
			  tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
			  tbl_region ON tbl_restaurant.regionID = tbl_region.id LEFT OUTER JOIN
			  tbl_province ON tbl_restaurant.provinceID = tbl_province.id LEFT OUTER JOIN
			  tbl_city ON tbl_restaurant.cityID = tbl_city.id LEFT OUTER JOIN
			  tbl_area ON tbl_restaurant.areaID = tbl_area.id
		where tbl_restaurant.isDelete=0 and tbl_restaurant.sclassID>=@sclassID and (tbl_restaurant.userid=@userid or tbl_restaurant.id in (select restID from tbl_restUser where  userID=@userID))
		order by tbl_restaurant.sclassID desc,tbl_restaurant.name, tbl_restaurant.id desc
	end else
		SELECT tbl_restaurant.*, tbl_area.name AS areaName, tbl_city.name AS cityName, 
			  tbl_zone.name AS zoneName, tbl_province.name AS provinceName, 
			  tbl_region.name AS regionName, tbl_user.Name AS userName, tbl_restIntro.mobile, tbl_restIntro.colorMobile,
			  tbl_restIntro.fax, tbl_restIntro.email, tbl_restIntro.msnQQ, tbl_restIntro.expenditure, 
			  tbl_restIntro.discount, tbl_restIntro.discountNote, tbl_restIntro.policy, 
			  tbl_restIntro.deliverMoney, tbl_restIntro.deliverNote, tbl_restIntro.chainMsg, 
			  tbl_restIntro.mapUrl, tbl_restIntro.URL, tbl_restIntro.PAmount, tbl_restIntro.BAmount, 
			  tbl_restIntro.stallAmount, tbl_restIntro.traffic, tbl_restIntro.deliverArea,tbl_restIntro.settlement,tbl_restIntro.orderNote,tbl_restIntro.policy
			  ,tbl_restIntro.isPost,tbl_restIntro.content,tbl_restIntro.NPosition
			  ,tbl_restIntro.PostTime,tbl_restIntro.updateCyc,tbl_restIntro.senderAmount
			,tbl_restaurant.reserveDays,tbl_restaurant.reserveMenuMode	
			,(select count(*) from tbl_restBulletin where restID=tbl_restaurant.id and isDelete=0) as bulletinAmount	
			,(select count(*) from tbl_shopComments where shopID=tbl_restaurant.id and isDelete=0) as commentsAmount
		FROM tbl_restaurant LEFT OUTER JOIN
			  tbl_restIntro ON tbl_restaurant.id = tbl_restIntro.restID LEFT OUTER JOIN
			  tbl_user ON tbl_restaurant.userID = tbl_user.id LEFT OUTER JOIN
			  tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
			  tbl_region ON tbl_restaurant.regionID = tbl_region.id LEFT OUTER JOIN
			  tbl_province ON tbl_restaurant.provinceID = tbl_province.id LEFT OUTER JOIN
			  tbl_city ON tbl_restaurant.cityID = tbl_city.id LEFT OUTER JOIN
			  tbl_area ON tbl_restaurant.areaID = tbl_area.id
		where tbl_restaurant.isDelete=0 and (tbl_restaurant.userid=@userid or tbl_restaurant.id in (select restID from tbl_restUser where  userID=@userID))
		order by tbl_restaurant.sclassID desc,tbl_restaurant.name, tbl_restaurant.id desc
end else
  if @userID<0
	if @regionID>0 begin
		SELECT tbl_restaurant.*, tbl_area.name AS areaName, tbl_city.name AS cityName, 
		  tbl_zone.name AS zoneName, tbl_province.name AS provinceName, 
		  tbl_region.name AS regionName, tbl_user.Name AS userName, tbl_restIntro.mobile, tbl_restIntro.colorMobile,
		  tbl_restIntro.fax, tbl_restIntro.email, tbl_restIntro.msnQQ, tbl_restIntro.expenditure, 
		  tbl_restIntro.discount, tbl_restIntro.discountNote, tbl_restIntro.policy, 
		  tbl_restIntro.deliverMoney, tbl_restIntro.deliverNote, tbl_restIntro.chainMsg, 
		  tbl_restIntro.mapUrl, tbl_restIntro.URL, tbl_restIntro.PAmount, tbl_restIntro.BAmount, 
		  tbl_restIntro.stallAmount, tbl_restIntro.traffic, tbl_restIntro.deliverArea,tbl_restIntro.settlement,tbl_restIntro.orderNote,tbl_restIntro.policy
		  ,tbl_restIntro.isPost,tbl_restIntro.content,tbl_restIntro.NPosition
		  ,tbl_restIntro.PostTime,tbl_restIntro.updateCyc,tbl_restIntro.senderAmount
		  ,tbl_restaurant.reserveDays,tbl_restaurant.reserveMenuMode	
		FROM tbl_restaurant LEFT OUTER JOIN
		  tbl_restIntro ON tbl_restaurant.id = tbl_restIntro.restID LEFT OUTER JOIN
		  tbl_user ON tbl_restaurant.userID = tbl_user.id LEFT OUTER JOIN
		  tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
		  tbl_region ON tbl_restaurant.regionID = tbl_region.id LEFT OUTER JOIN
		  tbl_province ON tbl_restaurant.provinceID = tbl_province.id LEFT OUTER JOIN
		  tbl_city ON tbl_restaurant.cityID = tbl_city.id LEFT OUTER JOIN
		  tbl_area ON tbl_restaurant.areaID = tbl_area.id
		where   tbl_restaurant.isDelete=0 and tbl_restaurant.regionID=@regionID
		order by tbl_restaurant.sclassID desc, tbl_restaurant.id desc
	end else begin
		SELECT tbl_restaurant.*, tbl_area.name AS areaName, tbl_city.name AS cityName, 
		  tbl_zone.name AS zoneName, tbl_province.name AS provinceName, 
		  tbl_region.name AS regionName, tbl_user.Name AS userName, tbl_restIntro.mobile, tbl_restIntro.colorMobile,
		  tbl_restIntro.fax, tbl_restIntro.email, tbl_restIntro.msnQQ, tbl_restIntro.expenditure, 
		  tbl_restIntro.discount, tbl_restIntro.discountNote, tbl_restIntro.policy, 
		  tbl_restIntro.deliverMoney, tbl_restIntro.deliverNote, tbl_restIntro.chainMsg, 
		  tbl_restIntro.mapUrl, tbl_restIntro.URL, tbl_restIntro.PAmount, tbl_restIntro.BAmount, 
		  tbl_restIntro.stallAmount, tbl_restIntro.traffic, tbl_restIntro.deliverArea,tbl_restIntro.settlement,tbl_restIntro.orderNote,tbl_restIntro.policy
		  ,tbl_restIntro.isPost,tbl_restIntro.content,tbl_restIntro.NPosition
		  ,tbl_restIntro.PostTime,tbl_restIntro.updateCyc,tbl_restIntro.senderAmount
		  ,tbl_restaurant.reserveDays,tbl_restaurant.reserveMenuMode		
		FROM tbl_restaurant LEFT OUTER JOIN
		  tbl_restIntro ON tbl_restaurant.id = tbl_restIntro.restID LEFT OUTER JOIN
		  tbl_user ON tbl_restaurant.userID = tbl_user.id LEFT OUTER JOIN
		  tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
		  tbl_region ON tbl_restaurant.regionID = tbl_region.id LEFT OUTER JOIN
		  tbl_province ON tbl_restaurant.provinceID = tbl_province.id LEFT OUTER JOIN
		  tbl_city ON tbl_restaurant.cityID = tbl_city.id LEFT OUTER JOIN
		  tbl_area ON tbl_restaurant.areaID = tbl_area.id
		where   tbl_restaurant.isDelete=0
		order by tbl_restaurant.sclassID desc, tbl_restaurant.id desc
	end
end

select @@rowCount













GO
/****** :  StoredProcedure [dbo].[sp_getRestaurantBasic]    ű: 02/01/2010 14:26:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_getRestaurantBasic]
@id int =0,
@userID int =0
AS
if @id>0
begin
SELECT tbl_restaurant.id, tbl_restaurant.name, tbl_area.name AS areaName, tbl_city.name AS cityName, 
      tbl_zone.name AS zoneName, tbl_province.name AS provinceName, 
      tbl_region.name AS regionName, tbl_user.Name AS userName
FROM tbl_restaurant LEFT OUTER JOIN
      tbl_user ON tbl_restaurant.userID = tbl_user.id LEFT OUTER JOIN
      tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
      tbl_region ON tbl_restaurant.regionID = tbl_region.id LEFT OUTER JOIN
      tbl_province ON tbl_restaurant.provinceID = tbl_province.id LEFT OUTER JOIN
      tbl_city ON tbl_restaurant.cityID = tbl_city.id LEFT OUTER JOIN
      tbl_area ON tbl_restaurant.areaID = tbl_area.id
where tbl_restaurant.id=@id and tbl_restaurant.isDelete=0
order by tbl_restaurant.id desc
end
else
begin
if @userID>0
begin
SELECT tbl_restaurant.*, tbl_area.name AS areaName, tbl_city.name AS cityName, 
      tbl_zone.name AS zoneName, tbl_province.name AS provinceName, 
      tbl_region.name AS regionName, tbl_user.Name AS userName
FROM tbl_restaurant LEFT OUTER JOIN
      tbl_user ON tbl_restaurant.userID = tbl_user.id LEFT OUTER JOIN
      tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
      tbl_region ON tbl_restaurant.regionID = tbl_region.id LEFT OUTER JOIN
      tbl_province ON tbl_restaurant.provinceID = tbl_province.id LEFT OUTER JOIN
      tbl_city ON tbl_restaurant.cityID = tbl_city.id LEFT OUTER JOIN
      tbl_area ON tbl_restaurant.areaID = tbl_area.id
where tbl_restaurant.userid=@userid  and tbl_restaurant.isDelete=0
order by tbl_restaurant.id desc
end
else
  if @userID<0
	begin
	SELECT tbl_restaurant.*, tbl_area.name AS areaName, tbl_city.name AS cityName, 
      tbl_zone.name AS zoneName, tbl_province.name AS provinceName, 
      tbl_region.name AS regionName, tbl_user.Name AS userName
FROM tbl_restaurant LEFT OUTER JOIN
      tbl_user ON tbl_restaurant.userID = tbl_user.id LEFT OUTER JOIN
      tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
      tbl_region ON tbl_restaurant.regionID = tbl_region.id LEFT OUTER JOIN
      tbl_province ON tbl_restaurant.provinceID = tbl_province.id LEFT OUTER JOIN
      tbl_city ON tbl_restaurant.cityID = tbl_city.id LEFT OUTER JOIN
      tbl_area ON tbl_restaurant.areaID = tbl_area.id 
	where   tbl_restaurant.isDelete=0
order by tbl_restaurant.id desc
	end
end
GO
/****** :  StoredProcedure [dbo].[sp_getRestaurantFromUserAddress]    ű: 02/01/2010 14:26:39 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_getRestaurantFromUserAddress]
@id int=0
AS
declare @regionID int, @zoneID int, @areaID int
select @regionID=regionID,@zoneID=zoneID,@areaID=areaID from tbl_userAddress where id=@id

if @areaID>0
	begin
	SELECT tbl_restaurant.*,tbl_province.name as provinceName,tbl_city.name as cityName 
	,tbl_region.name as regionName,tbl_zone.name as zoneName,tbl_area.name as areaName      
	FROM tbl_restaurant Left Outer Join tbl_province On tbl_restaurant.provinceID=tbl_province.ID
		Left Outer Join tbl_city On tbl_restaurant.cityID=tbl_city.ID
		Left Outer Join tbl_region On tbl_restaurant.regionID=tbl_region.ID
		Left Outer Join tbl_zone On tbl_restaurant.zoneID=tbl_zone.ID
		Left Outer Join tbl_area On tbl_restaurant.areaID=tbl_area.ID
	where tbl_restaurant.isDelete=0 And tbl_restaurant.areaID=@areaID
	order by tbl_restaurant.name asc	
	end
else
if @zoneID>0 
	begin
	SELECT tbl_restaurant.*,tbl_province.name as provinceName,tbl_city.name as cityName 
	,tbl_region.name as regionName,tbl_zone.name as zoneName,tbl_area.name as areaName      
	FROM tbl_restaurant Left Outer Join tbl_province On tbl_restaurant.provinceID=tbl_province.ID
		Left Outer Join tbl_city On tbl_restaurant.cityID=tbl_city.ID
		Left Outer Join tbl_region On tbl_restaurant.regionID=tbl_region.ID
		Left Outer Join tbl_zone On tbl_restaurant.zoneID=tbl_zone.ID
		Left Outer Join tbl_area On tbl_restaurant.areaID=tbl_area.ID
	where tbl_restaurant.isDelete=0 And tbl_restaurant.zoneID=@zoneID
	order by tbl_restaurant.name asc	
	end
else
if @regionID>0 
	begin
	SELECT tbl_restaurant.*,tbl_province.name as provinceName,tbl_city.name as cityName 
	,tbl_region.name as regionName,tbl_zone.name as zoneName,tbl_area.name as areaName      
	FROM tbl_restaurant Left Outer Join tbl_province On tbl_restaurant.provinceID=tbl_province.ID
		Left Outer Join tbl_city On tbl_restaurant.cityID=tbl_city.ID
		Left Outer Join tbl_region On tbl_restaurant.regionID=tbl_region.ID
		Left Outer Join tbl_zone On tbl_restaurant.zoneID=tbl_zone.ID
		Left Outer Join tbl_area On tbl_restaurant.areaID=tbl_area.ID
	where tbl_restaurant.isDelete=0 And tbl_restaurant.regionID=@regionID
	order by tbl_restaurant.name asc	
	end
GO
/****** :  StoredProcedure [dbo].[sp_getRestDetail]    ű: 02/01/2010 14:26:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_getRestDetail]
@id int
AS
SELECT tbl_province.name AS provinceName, tbl_city.name AS cityName, 
      tbl_region.name AS regionName, tbl_zone.name AS zoneName, 
      tbl_restIntro.URL AS Url, tbl_restClass.name AS className, tbl_restaurant.name, 
      tbl_restaurant.clickAmount, tbl_restaurant.logo, tbl_restaurant.linkman, 
      tbl_restaurant.phone, tbl_restaurant.address, tbl_restaurant.userID, 
      tbl_restaurant.addTime, tbl_restaurant.note, tbl_restaurant.classID, 
      tbl_restaurant.provinceID, tbl_restaurant.cityID, tbl_restaurant.regionID, 
      tbl_restaurant.zoneID, tbl_restaurant.areaID, tbl_restIntro.deliverNote, tbl_restIntro.deliverArea
FROM tbl_restaurant LEFT OUTER JOIN
      tbl_restClass ON tbl_restaurant.classID = tbl_restClass.id LEFT OUTER JOIN
      tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
      tbl_region ON tbl_restaurant.regionID = tbl_region.id LEFT OUTER JOIN
      tbl_city ON tbl_restaurant.cityID = tbl_city.id LEFT OUTER JOIN
      tbl_province ON tbl_restaurant.provinceID = tbl_province.id LEFT OUTER JOIN
      tbl_restIntro ON tbl_restaurant.id = tbl_restIntro.restID
WHERE (tbl_restaurant.id = @id)
GO
/****** :  StoredProcedure [dbo].[sp_getRestInfo]    ű: 02/01/2010 14:26:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_getRestInfo]
@id int
AS
if(select count(*) from tbl_restIntro where restID=@id)=0
   insert into tbl_restIntro(restID)values(@ID)
select a.name as restName,b.*  from tbl_restaurant a,tbl_restIntro b where a.id=b.restid and b.restid=@id
GO
/****** :  StoredProcedure [dbo].[sp_getRestMenuClass]    ű: 02/01/2010 14:26:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_getRestMenuClass]
@restID int
 AS
select top 6 * from tbl_menuClass where restID=@restID and isDelete=0 order by orderNumber desc,name

GO
/****** :  StoredProcedure [dbo].[sp_getRestMenuTable]    ű: 02/01/2010 14:26:43 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE PROCEDURE [dbo].[sp_getRestMenuTable]
@classID int=0,
@restId int=0,
@keyWord varchar(30)='',
@sort int=0
 AS
declare @sql varchar(8000),@where varchar(8000),@orderByStr varchar(8000)
set @where = ''
set @orderByStr = ''
set @sql='select  t.*,(case when c.id>0 then c.Name else ''ĬϷ'' end) as className from tbl_menuTable t left join tbl_menuClass c on t.classId=c.id  where t.state=0 '
if @restID>0
	set @where=@where+' and t.restId='+ ltrim(str(@restId))
if @classID>=0 
	 set @where=@where+'and t.classID='+ltrim(str(@classID))
if len(@keyWord)>1 begin
     set @where=@where+' and t.name like ''%'+@keyWord+'%'''
end
if @sort =0
	 set @orderByStr=' t.orderNumber desc,t.price '
if @sort =1
	 set @orderByStr=' t.price '
if @sort =2
	 set @orderByStr=' t.price desc'
if @sort =3
	set @orderByStr=' t.name '
set @sql = @sql + @where + ' order by ' + @orderByStr
exec(@sql)
--select  * from tbl_menuTable where state=0 and classID=@classID order by orderNumber desc,name
select @@rowcount






GO
/****** :  StoredProcedure [dbo].[sp_getRestMonthTop10]    ű: 02/01/2010 14:26:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_getRestMonthTop10]
@limit int
 AS
declare @str varchar(500)
set @str ='select top '+str(@limit)+'  a.id as restID,a.id,a.name,left(a.name,7) as shortName,b.name as regionName  from tbl_restaurant a,tbl_region b,tbl_monthTop10 c where a.id=c.restID and a.regionID=b.id and a.isdelete=0 and state=1 order by c.id desc'
exec(@str)
--select @str
GO
/****** :  StoredProcedure [dbo].[sp_getRestNewest]    ű: 02/01/2010 14:26:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_getRestNewest]
@limit int
 AS
declare @str varchar(500)
set @str ='select top '+str(@limit)+'  a.id as restID,a.id,a.name,left(a.name,7) as shortName,b.name as regionName,c.color  from tbl_restaurant a,tbl_region b,tbl_newRest c where a.id=c.restID and a.regionID=b.id and a.isdelete=0 and state=1 order by c.id desc'
exec(@str)
--select @str
GO
/****** :  StoredProcedure [dbo].[sp_getRestNewList]    ű: 02/01/2010 14:26:47 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_getRestNewList]
@SClassID int
AS
if @SClassID>0
select a.id,a.name,b.name as regionName,c.name as zoneName,a.address from tbl_restaurant a,tbl_region b,tbl_zone c
 where a.regionID=b.id and a.zoneID=c.id  and a.state=1  and a.isdelete=0 and SClassID=@SClassID
order by SClassID desc,addTime desc
else
select a.id,a.name,b.name as regionName,c.name as zoneName,a.address from tbl_restaurant a,tbl_region b,tbl_zone c
 where a.regionID=b.id and a.zoneID=c.id  and a.state=1  and a.isdelete=0
order by SClassID desc,addTime desc
GO
/****** :  StoredProcedure [dbo].[sp_getRestStatByUserID]    ű: 02/01/2010 14:26:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_getRestStatByUserID]
@userID bigint,
@startDate varchar(10),
@endDate varchar(10),
@restID int
 AS
if @restID>0
select * from tbl_restOrderstat where restID in(select id from tbl_restaurant 
where muserID=@userID) 
 and statDate between @startDate and dateadd(d,1,@endDate) and restID=@restID
order by id desc
else
select * from tbl_restOrderstat where restID in(select id from tbl_restaurant 
where muserID=@userID) 
 and statDate between @startDate and dateadd(d,1,@endDate)
order by id desc
GO
/****** :  StoredProcedure [dbo].[sp_getRestWeekTop10]    ű: 02/01/2010 14:26:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_getRestWeekTop10]
@limit int
 AS
declare @str varchar(500)
set @str ='select top '+str(@limit)+'  a.id as restID,a.id,a.name,left(a.name,7) as shortName,b.name as regionName,c.color  from tbl_restaurant a,tbl_region b,tbl_weekTop10 c where a.id=c.restID and a.regionID=b.id and a.isdelete=0 and state=1 order by c.id desc'
exec(@str)
--select @str
GO
/****** :  StoredProcedure [dbo].[sp_getServiceDept]    ű: 02/01/2010 14:26:51 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_getServiceDept] 
@ID int=0
AS

if @ID>0
	select * From tbl_serviceDept Where ID=@ID
else
	select * From tbl_serviceDept
GO
/****** :  StoredProcedure [dbo].[sp_getServiceUser]    ű: 02/01/2010 14:26:52 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_getServiceUser]
@ID int=0
AS

if @ID>0
	select tbl_serviceUser.* ,tbl_serviceDept.Name as deptName ,tbl_serviceDept.ID as deptID
		From tbl_serviceUser left outer join tbl_serviceDept 
		on tbl_serviceUser.deptID=tbl_serviceDept.ID
		Where tbl_serviceUser.ID=@ID order by tbl_serviceUser.ID asc
else
	select  tbl_serviceUser.* ,tbl_serviceDept.Name as deptName,tbl_serviceDept.ID as deptID From tbl_serviceUser left outer join tbl_serviceDept 
		on tbl_serviceUser.deptID=tbl_serviceDept.ID
		order by tbl_serviceUser.ID asc
GO
/****** :  StoredProcedure [dbo].[sp_getShopBasic]    ű: 02/01/2010 14:26:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_getShopBasic]
@id int=0
 AS
SELECT tbl_restaurant.id, tbl_restaurant.name, tbl_restaurant.address, 
      tbl_restaurant.phone, tbl_restIntro.deliverNote, tbl_restIntro.deliverMoney, 
      tbl_restIntro.chainMsg, tbl_restIntro.mapUrl,tbl_restaurant.logo,tbl_restaurant.addrPhoto,tbl_restaurant.isDeliver,tbl_restaurant.responseTime,tbl_restaurant.note
FROM tbl_restaurant LEFT OUTER JOIN
      tbl_restIntro ON tbl_restaurant.id = tbl_restIntro.restID
where tbl_restaurant.id=@id
GO
/****** :  StoredProcedure [dbo].[sp_getShopByArea]    ű: 02/01/2010 14:26:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_getShopByArea]
@areaID int=0,
@classID int=0
 AS
if(@areaID>0)
begin
if @classID>0
begin
SELECT tbl_restaurant.id, tbl_restaurant.name, tbl_restaurant.phone, 
      tbl_restaurant.clickAmount, tbl_province.name AS provinceName, 
      tbl_city.name AS cityName, tbl_region.name AS regionName, 
      tbl_zone.name AS zoneName, tbl_restaurant.classID, tbl_restaurant.provinceID, 
      tbl_restaurant.cityID, tbl_restaurant.regionID, tbl_restaurant.zoneID, 
      tbl_restClass.name AS ClassName, tbl_restIntro.deliverMoney , tbl_restaurant.sClassID,
      tbl_restIntro.deliverNote,tbl_restaurant.isDeliver
FROM tbl_restaurant INNER JOIN
      tbl_city ON tbl_restaurant.cityID = tbl_city.id INNER JOIN
      tbl_region ON tbl_restaurant.regionID = tbl_region.id INNER JOIN
      tbl_province ON tbl_restaurant.provinceID = tbl_province.id INNER JOIN
      tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
      tbl_restIntro ON tbl_restaurant.id = tbl_restIntro.restID LEFT OUTER JOIN
      tbl_restClass ON tbl_restaurant.classID = tbl_restClass.id
where tbl_restaurant.ID in (select restID from tbl_shop2Area where areaID = @areaID ) and tbl_restaurant.classID=@classID  and tbl_restaurant.state=1   and tbl_restaurant. isdelete=0
order by tbl_restaurant.sClassID desc, tbl_restaurant.name 
end
else
begin
SELECT tbl_restaurant.id, tbl_restaurant.name, tbl_restaurant.phone, 
      tbl_restaurant.clickAmount, tbl_province.name AS provinceName, 
      tbl_city.name AS cityName, tbl_region.name AS regionName, 
      tbl_zone.name AS zoneName, tbl_restaurant.classID, tbl_restaurant.provinceID, 
      tbl_restaurant.cityID, tbl_restaurant.regionID, tbl_restaurant.zoneID, 
      tbl_restClass.name AS ClassName, tbl_restIntro.deliverMoney, tbl_restaurant.sClassID,
      tbl_restIntro.deliverNote,tbl_restaurant.isDeliver
FROM tbl_restaurant INNER JOIN
      tbl_city ON tbl_restaurant.cityID = tbl_city.id INNER JOIN
      tbl_region ON tbl_restaurant.regionID = tbl_region.id INNER JOIN
      tbl_province ON tbl_restaurant.provinceID = tbl_province.id INNER JOIN
      tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
      tbl_restIntro ON tbl_restaurant.id = tbl_restIntro.restID LEFT OUTER JOIN
      tbl_restClass ON tbl_restaurant.classID = tbl_restClass.id
where  tbl_restaurant.ID in (select restID from tbl_shop2Area where areaID = @areaID )   and tbl_restaurant.state=1   and tbl_restaurant. isdelete=0
order by tbl_restaurant.sClassID desc, tbl_restaurant.name 
end
end
else
begin
if @classID>0
begin
SELECT tbl_restaurant.id, tbl_restaurant.name, tbl_restaurant.phone, tbl_restaurant.clickAmount, 
      tbl_province.name AS provinceName, tbl_city.name AS cityName, 
      tbl_region.name AS regionName, tbl_zone.name AS zoneName, 
      tbl_restaurant.classID, tbl_restaurant.provinceID, tbl_restaurant.cityID, 
      tbl_restaurant.regionID, tbl_restaurant.zoneID, tbl_restaurant.sClassID,
      tbl_restClass.name AS ClassName,tbl_restaurant.isDeliver
FROM tbl_restaurant INNER JOIN
      tbl_city ON tbl_restaurant.cityID = tbl_city.id INNER JOIN
      tbl_region ON tbl_restaurant.regionID = tbl_region.id INNER JOIN
      tbl_province ON tbl_restaurant.provinceID = tbl_province.id INNER JOIN
      tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
      tbl_restClass ON tbl_restaurant.classID = tbl_restClass.id
where    tbl_restaurant.state=1    and tbl_restaurant. isdelete=0
order by tbl_restaurant.sClassID desc, tbl_restaurant.name 
end
else
begin
SELECT tbl_restaurant.id, tbl_restaurant.name, tbl_restaurant.phone, tbl_restaurant.clickAmount, 
      tbl_province.name AS provinceName, tbl_city.name AS cityName, 
      tbl_region.name AS regionName, tbl_zone.name AS zoneName, 
      tbl_restaurant.classID, tbl_restaurant.provinceID, tbl_restaurant.cityID, 
      tbl_restaurant.regionID, tbl_restaurant.zoneID, tbl_restaurant.sClassID,
      tbl_restClass.name AS ClassName,tbl_restaurant.isDeliver
FROM tbl_restaurant INNER JOIN
      tbl_city ON tbl_restaurant.cityID = tbl_city.id INNER JOIN
      tbl_region ON tbl_restaurant.regionID = tbl_region.id INNER JOIN
      tbl_province ON tbl_restaurant.provinceID = tbl_province.id INNER JOIN
      tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
      tbl_restClass ON tbl_restaurant.classID = tbl_restClass.id
where    tbl_restaurant.state=1   and tbl_restaurant. isdelete=0
order by tbl_restaurant.sClassID desc, tbl_restaurant.name 
end
end
GO
/****** :  StoredProcedure [dbo].[sp_getShopByRegion]    ű: 02/01/2010 14:26:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_getShopByRegion]
@regionID int=0,
@classID int=0
 AS
if(@regionID>0)
begin
if @classID>0
begin
SELECT tbl_restaurant.id, tbl_restaurant.name, tbl_restaurant.phone, 
      tbl_restaurant.clickAmount, tbl_province.name AS provinceName, 
      tbl_city.name AS cityName, tbl_region.name AS regionName, 
      tbl_zone.name AS zoneName, tbl_restaurant.classID, tbl_restaurant.provinceID, 
      tbl_restaurant.cityID, tbl_restaurant.regionID, tbl_restaurant.zoneID, 
      tbl_restClass.name AS ClassName, tbl_restIntro.deliverMoney, tbl_restaurant.sClassID,
      tbl_restIntro.deliverNote,tbl_restaurant.isDeliver
FROM tbl_restaurant INNER JOIN
      tbl_city ON tbl_restaurant.cityID = tbl_city.id INNER JOIN
      tbl_region ON tbl_restaurant.regionID = tbl_region.id INNER JOIN
      tbl_province ON tbl_restaurant.provinceID = tbl_province.id INNER JOIN
      tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
      tbl_restIntro ON tbl_restaurant.id = tbl_restIntro.restID LEFT OUTER JOIN
      tbl_restClass ON tbl_restaurant.classID = tbl_restClass.id
where tbl_region.ID=@regionID and tbl_restaurant.classID=@classID  and tbl_restaurant.state=1   and tbl_restaurant. isdelete=0
order by tbl_restaurant.sClassID desc, tbl_restaurant.name 
end
else
begin
SELECT tbl_restaurant.id, tbl_restaurant.name, tbl_restaurant.phone, 
      tbl_restaurant.clickAmount, tbl_province.name AS provinceName, 
      tbl_city.name AS cityName, tbl_region.name AS regionName, 
      tbl_zone.name AS zoneName, tbl_restaurant.classID, tbl_restaurant.provinceID, 
      tbl_restaurant.cityID, tbl_restaurant.regionID, tbl_restaurant.zoneID, 
      tbl_restClass.name AS ClassName, tbl_restIntro.deliverMoney, tbl_restaurant.sClassID,
      tbl_restIntro.deliverNote,tbl_restaurant.isDeliver
FROM tbl_restaurant INNER JOIN
      tbl_city ON tbl_restaurant.cityID = tbl_city.id INNER JOIN
      tbl_region ON tbl_restaurant.regionID = tbl_region.id INNER JOIN
      tbl_province ON tbl_restaurant.provinceID = tbl_province.id INNER JOIN
      tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
      tbl_restIntro ON tbl_restaurant.id = tbl_restIntro.restID LEFT OUTER JOIN
      tbl_restClass ON tbl_restaurant.classID = tbl_restClass.id
where tbl_region.ID=@regionID  and tbl_restaurant.state=1   and tbl_restaurant. isdelete=0
order by tbl_restaurant.sClassID desc, tbl_restaurant.name 
end
end
else
begin
if @classID>0
begin
SELECT tbl_restaurant.id, tbl_restaurant.name, tbl_restaurant.phone, tbl_restaurant.clickAmount, 
      tbl_province.name AS provinceName, tbl_city.name AS cityName, 
      tbl_region.name AS regionName, tbl_zone.name AS zoneName, 
      tbl_restaurant.classID, tbl_restaurant.provinceID, tbl_restaurant.cityID, 
      tbl_restaurant.regionID, tbl_restaurant.zoneID, tbl_restaurant.sClassID,
      tbl_restClass.name AS ClassName,tbl_restaurant.isDeliver
FROM tbl_restaurant INNER JOIN
      tbl_city ON tbl_restaurant.cityID = tbl_city.id INNER JOIN
      tbl_region ON tbl_restaurant.regionID = tbl_region.id INNER JOIN
      tbl_province ON tbl_restaurant.provinceID = tbl_province.id INNER JOIN
      tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
      tbl_restClass ON tbl_restaurant.classID = tbl_restClass.id
where   tbl_restaurant.state=1   and tbl_restaurant. isdelete=0
order by tbl_restaurant.sClassID desc, tbl_restaurant.name 
end
else
begin
SELECT tbl_restaurant.id, tbl_restaurant.name, tbl_restaurant.phone, tbl_restaurant.clickAmount, 
      tbl_province.name AS provinceName, tbl_city.name AS cityName, 
      tbl_region.name AS regionName, tbl_zone.name AS zoneName, 
      tbl_restaurant.classID, tbl_restaurant.provinceID, tbl_restaurant.cityID, 
      tbl_restaurant.regionID, tbl_restaurant.zoneID, tbl_restaurant.sClassID,
      tbl_restClass.name AS ClassName,tbl_restaurant.isDeliver
FROM tbl_restaurant INNER JOIN
      tbl_city ON tbl_restaurant.cityID = tbl_city.id INNER JOIN
      tbl_region ON tbl_restaurant.regionID = tbl_region.id INNER JOIN
      tbl_province ON tbl_restaurant.provinceID = tbl_province.id INNER JOIN
      tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
      tbl_restClass ON tbl_restaurant.classID = tbl_restClass.id
where    tbl_restaurant.state=1   and tbl_restaurant. isdelete=0
order by tbl_restaurant.sClassID desc, tbl_restaurant.name 
end
end
GO
/****** :  StoredProcedure [dbo].[sp_getShopByZone]    ű: 02/01/2010 14:26:56 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_getShopByZone]
@zoneID int=0,
@classID int=0
 AS
if(@zoneID>0)
begin
if @classID>0
begin
SELECT tbl_restaurant.id, tbl_restaurant.name, tbl_restaurant.phone, 
      tbl_restaurant.clickAmount, tbl_province.name AS provinceName, 
      tbl_city.name AS cityName, tbl_region.name AS regionName, 
      tbl_zone.name AS zoneName, tbl_restaurant.classID, tbl_restaurant.provinceID, 
      tbl_restaurant.cityID, tbl_restaurant.regionID, tbl_restaurant.zoneID, 
      tbl_restClass.name AS ClassName, tbl_restIntro.deliverMoney, tbl_restaurant.sClassID,
      tbl_restIntro.deliverNote,tbl_restaurant.isDeliver
FROM tbl_restaurant INNER JOIN
      tbl_city ON tbl_restaurant.cityID = tbl_city.id INNER JOIN
      tbl_region ON tbl_restaurant.regionID = tbl_region.id INNER JOIN
      tbl_province ON tbl_restaurant.provinceID = tbl_province.id INNER JOIN
      tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
      tbl_restIntro ON tbl_restaurant.id = tbl_restIntro.restID LEFT OUTER JOIN
      tbl_restClass ON tbl_restaurant.classID = tbl_restClass.id
where tbl_zone.ID=@zoneID and tbl_restaurant.classID=@classID  and tbl_restaurant.state=1   and tbl_restaurant. isdelete=0
order by tbl_restaurant.sClassID desc, tbl_restaurant.name 
end
else
begin
SELECT tbl_restaurant.id, tbl_restaurant.name, tbl_restaurant.phone, 
      tbl_restaurant.clickAmount, tbl_province.name AS provinceName, 
      tbl_city.name AS cityName, tbl_region.name AS regionName, 
      tbl_zone.name AS zoneName, tbl_restaurant.classID, tbl_restaurant.provinceID, 
      tbl_restaurant.cityID, tbl_restaurant.regionID, tbl_restaurant.zoneID, 
      tbl_restClass.name AS ClassName, tbl_restIntro.deliverMoney, tbl_restaurant.sClassID,
      tbl_restIntro.deliverNote,tbl_restaurant.isDeliver
FROM tbl_restaurant INNER JOIN
      tbl_city ON tbl_restaurant.cityID = tbl_city.id INNER JOIN
      tbl_region ON tbl_restaurant.regionID = tbl_region.id INNER JOIN
      tbl_province ON tbl_restaurant.provinceID = tbl_province.id INNER JOIN
      tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
      tbl_restIntro ON tbl_restaurant.id = tbl_restIntro.restID LEFT OUTER JOIN
      tbl_restClass ON tbl_restaurant.classID = tbl_restClass.id
where tbl_zone.ID=@zoneID  and tbl_restaurant.state=1   and tbl_restaurant. isdelete=0
order by tbl_restaurant.sClassID desc, tbl_restaurant.name 
end
end
else
begin
if @classID>0
begin
SELECT tbl_restaurant.id, tbl_restaurant.name, tbl_restaurant.phone, tbl_restaurant.clickAmount, 
      tbl_province.name AS provinceName, tbl_city.name AS cityName, 
      tbl_region.name AS regionName, tbl_zone.name AS zoneName, 
      tbl_restaurant.classID, tbl_restaurant.provinceID, tbl_restaurant.cityID, 
      tbl_restaurant.regionID, tbl_restaurant.zoneID, tbl_restaurant.sClassID,
      tbl_restClass.name AS ClassName,tbl_restaurant.isDeliver
FROM tbl_restaurant INNER JOIN
      tbl_city ON tbl_restaurant.cityID = tbl_city.id INNER JOIN
      tbl_region ON tbl_restaurant.regionID = tbl_region.id INNER JOIN
      tbl_province ON tbl_restaurant.provinceID = tbl_province.id INNER JOIN
      tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
      tbl_restClass ON tbl_restaurant.classID = tbl_restClass.id
where   tbl_restaurant.state=1   and tbl_restaurant. isdelete=0
order by tbl_restaurant.sClassID desc, tbl_restaurant.name 
end
else
begin
SELECT tbl_restaurant.id, tbl_restaurant.name, tbl_restaurant.phone, tbl_restaurant.clickAmount, 
      tbl_province.name AS provinceName, tbl_city.name AS cityName, 
      tbl_region.name AS regionName, tbl_zone.name AS zoneName, 
      tbl_restaurant.classID, tbl_restaurant.provinceID, tbl_restaurant.cityID, 
      tbl_restaurant.regionID, tbl_restaurant.zoneID, tbl_restaurant.sClassID,
      tbl_restClass.name AS ClassName,tbl_restaurant.isDeliver
FROM tbl_restaurant INNER JOIN
      tbl_city ON tbl_restaurant.cityID = tbl_city.id INNER JOIN
      tbl_region ON tbl_restaurant.regionID = tbl_region.id INNER JOIN
      tbl_province ON tbl_restaurant.provinceID = tbl_province.id INNER JOIN
      tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
      tbl_restClass ON tbl_restaurant.classID = tbl_restClass.id
where   tbl_restaurant.state=1   and tbl_restaurant. isdelete=0
order by tbl_restaurant.sClassID desc, tbl_restaurant.name 
end
end
GO
/****** :  StoredProcedure [dbo].[sp_GetShopComments]    ű: 02/01/2010 14:26:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_GetShopComments] 
	
    @restID int=0,
    @Time varchar(20)
AS
BEGIN

	SET NOCOUNT ON;

    -- Insert statements for procedure here
	select count(*) as restCount from tbl_ShopComments where shopid=@restID and isDelete=0 and Auditing=1 and postTime >= @Time
END



GO
/****** :  StoredProcedure [dbo].[sp_getShopUser]    ű: 02/01/2010 14:26:59 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_getShopUser]
@shopID int
AS
declare @userName varchar(16)
declare @userID bigint
declare @extender varchar(16)
declare @MuserID bigint
select @userID=userid,@MuserID=muserID from tbl_restaurant where id=@shopID
if(@userID>0)
	select @userName =name from tbl_user where id=@userID
if(@MuserID>0)
	select @extender =name  from tbl_user where id=@MuserID
select @userName,@extender,@userID,@MuserID
GO
/****** :  StoredProcedure [dbo].[sp_GetStandardAreaInfo]    ű: 02/01/2010 14:27:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<melack>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetStandardAreaInfo] 
	@AreaId int=0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	if @AreaId > 0
	select * from v_area where id=@AreaId
if @@error > 0
select 1
else
select 0
END



GO
/****** :  StoredProcedure [dbo].[sp_GetUntreatedComplainCount]    ű: 02/01/2010 14:27:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_GetUntreatedComplainCount]
@StartDate  DATETIME  = '1900-1-1',
@EndDate    DATETIME  = '9999-1-1'
AS
  BEGIN
declare @result int 
  select @result=count(*) from tbl_userComplain   
where state=0 and postTime between @StartDate and @EndDate 
select @result
  END





GO

/****** :  StoredProcedure [dbo].[sp_getUserAddress]    ű: 02/01/2010 14:27:05 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_getUserAddress]
@ID int,
@userID bigint
 AS
if @ID>0
begin
	Select a.*,b.name as regionName,c.name as zoneName,d.name as areaName,c.cityID,c.provinceID 
	From tbl_userAddress a left outer join tbl_region b on a.regionID=b.ID
	 	left outer join  tbl_zone c on a.zoneID=c.ID 
		left outer join tbl_area d on a.areaID=d.ID 
	where a.ID=@ID 
end
else
if @userID>0
begin
	Select a.*,b.name as regionName,c.name as zoneName,d.name as areaName ,c.cityID,c.provinceID 
	From tbl_userAddress a left outer join tbl_region b on a.regionID=b.ID
	 	left outer join  tbl_zone c on a.zoneID=c.ID 
		left outer join tbl_area d on a.areaID=d.ID 
	where a.userID=@userID	Order By a.ID asc	
end
GO
/****** :  StoredProcedure [dbo].[sp_getUserAddressShow]    ű: 02/01/2010 14:27:06 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_getUserAddressShow]
@userID bigint,
@addressClass int
 AS
select * from tbl_userAddress where userID=@userID And addressClass=@addressClass
GO
/****** :  StoredProcedure [dbo].[sp_getUserInfo]    ű: 02/01/2010 14:27:07 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_getUserInfo] 
@id bigint
AS
SELECT tbl_user.*, tbl_city.name AS cityName, tbl_province.name AS provinceName, 
      tbl_userDetail.trueName, tbl_userDetail.cardID, tbl_userDetail.phone, 
      tbl_userDetail.mobile, tbl_userDetail.fax, tbl_userDetail.msn, tbl_userDetail.qq, 
      tbl_userDetail.netContact, tbl_userDetail.address, tbl_userDetail.postcode, 
      tbl_userDetail.note,tbl_userDetail.birthDay,tbl_userDetail.MarryState,
      tbl_userDetail.frieldTarget, tbl_userIntegral.integral
FROM tbl_user INNER JOIN
      tbl_userDetail ON tbl_user.id = tbl_userDetail.id INNER JOIN
      tbl_userIntegral ON tbl_user.id = tbl_userIntegral.userID LEFT OUTER JOIN
      tbl_city ON tbl_user.cityID = tbl_city.id LEFT OUTER JOIN
      tbl_province ON tbl_user.provinceID = tbl_province.id
where tbl_user.id=@id
GO
/****** :  StoredProcedure [dbo].[sp_getZone]    ű: 02/01/2010 14:27:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_getZone]
@regionID int =0,
@zoneID int =0
 AS
if @zoneID>0
begin
SELECT tbl_zone.id, tbl_zone.name, tbl_zone.provinceID, tbl_zone.cityID, tbl_zone.color,
      tbl_zone.regionID, tbl_city.name AS cityName, tbl_province.name AS provinceName, 
      tbl_region.name AS regionName,(select count(*) from tbl_restaurant where tbl_restaurant.zoneID=tbl_zone.ID and isdelete=0 and state=1) as amount
FROM tbl_zone LEFT OUTER JOIN
      tbl_province ON tbl_zone.provinceID = tbl_province.id LEFT OUTER JOIN
      tbl_region ON tbl_zone.regionID = tbl_region.id LEFT OUTER JOIN
      tbl_city ON tbl_zone.cityID = tbl_city.id
where tbl_zone.ID=@zoneID
end
else
begin
SELECT tbl_zone.id, tbl_zone.name, tbl_zone.provinceID, tbl_zone.cityID, tbl_zone.color, 
      tbl_zone.regionID, tbl_city.name AS cityName, tbl_province.name AS provinceName, 
      tbl_region.name AS regionName,(select count(*) from tbl_restaurant where tbl_restaurant.zoneID=tbl_zone.ID and isdelete=0 and state=1) as amount
FROM tbl_zone LEFT OUTER JOIN
      tbl_province ON tbl_zone.provinceID = tbl_province.id LEFT OUTER JOIN
      tbl_region ON tbl_zone.regionID = tbl_region.id LEFT OUTER JOIN
      tbl_city ON tbl_zone.cityID = tbl_city.id
where tbl_zone.regionID=@regionID
end
GO
/****** :  StoredProcedure [dbo].[sp_Hasten_append]    ű: 02/01/2010 14:27:10 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Venson>
-- Create date: <2007-9-14>
-- Description:	<߲Ϣ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Hasten_append]
	@RestId BIGINT = 0,
	@UserId BIGINT = 0,
	@OrderId BIGINT = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	INSERT tbl_hastenOrder (restID, orderID, userID) VALUES (@RestId, @OrderId, @UserId)
	IF @@ROWCOUNT > 0
		SELECT 1
	ELSE
		SELECT 0
END

GO
/****** :  StoredProcedure [dbo].[sp_HastenOrder_append]    ű: 02/01/2010 14:27:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Venson>
-- Create date: <2007-9-14>
-- Description:	<߲Ϣ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_HastenOrder_append]
	@RestId BIGINT = 0,
	@UserId BIGINT = 0,
	@OrderId BIGINT = 0,
	@userContent varchar(8000)=''
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	INSERT tbl_hastenOrder (restID, orderID, userID,userContent) VALUES (@RestId, @OrderId, @UserId,@userContent)
	IF @@ROWCOUNT > 0
		SELECT 1
	ELSE
		SELECT 0
END


GO
/****** :  StoredProcedure [dbo].[sp_HastenOrder_getFirstInfo]    ű: 02/01/2010 14:27:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Venson>
-- Create date: <2007-9-17>
-- Description:	<ȡ߲Ϣ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_HastenOrder_getFirstInfo]
	@UserId BIGINT = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
--	SELECT * FROM tbl_hastenOrder where restID IN (
--		SELECT Rest.id AS SClassId FROM
--		(
--			SELECT id AS restID FROM tbl_restaurant WHERE userID=@UserId OR MuserID=@UserId
--			UNION
--			SELECT restID FROM tbl_restUser WHERE userID=@UserId
--		) AS Data INNER JOIN tbl_restaurant AS Rest ON Data.RestId=Rest.id
--		WHERE Rest.isDelete=0 AND Rest.SClassID=3
--	) AND isDelete=0 AND state=0
	Declare @TodayStr Varchar(10)
	SET @TodayStr = Convert(Varchar(10), Getdate(), 101) + ' 0:0:0'
	SELECT TOP 1 Data.*, Rest.name AS RestName
	FROM tbl_hastenOrder AS Data INNER JOIN
		tbl_restaurant AS Rest ON Rest.id=Data.restID
	WHERE Rest.userID=@UserId AND Rest.isDelete=0 AND Rest.SClassID=3 AND Data.isDelete=0 AND Data.state=0 AND Data.postTime>=@TodayStr
	ORDER BY Data.ID DESC
END




GO
/****** :  StoredProcedure [dbo].[sp_HastenOrder_getLastInfo]    ű: 02/01/2010 14:27:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Venson>
-- Create date: <2007-9-14>
-- Description:	<ȡһ߲ͼ¼>
-- =============================================
CREATE PROCEDURE [dbo].[sp_HastenOrder_getLastInfo]
	@UserId BIGINT = 0,
	@OrderId BIGINT = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	SELECT top 1 * FROM tbl_hastenOrder WHERE userID=@UserId AND orderID=@OrderId ORDER BY ID DESC
END


GO
/****** :  StoredProcedure [dbo].[sp_HastenOrder_getList]    ű: 02/01/2010 14:27:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Venson>
-- Create date: <2007-9-14>
-- Description:	<ȡ߲Ϣб>
-- =============================================
CREATE PROCEDURE [dbo].[sp_HastenOrder_getList]
	@UserId BIGINT = 0,
	@RestId BIGINT = 0,
	@PageIndex INT = 1,
	@PageSize INT = 10
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @Sql nvarchar(4000)
	DECLARE @Where varchar(8000)
	DECLARE @TotalCount INT
	DECLARE @TotalPage INT
	DECLARE @StartRowId INT
    DECLARE @EndRowId INT

    -- Insert statements for procedure here
	SET @Where = 'WHERE isDelete=0'
	IF @UserId > 0 SET @Where = @Where + ' AND userID=' + CAST(@UserId AS varchar(8000))
	IF @RestId > 0 SET @Where = @Where + ' AND restID=' + CAST(@RestId AS varchar(8000))

	--TotoalCount
	SET @Sql = N'SELECT @TotalCountOut=Count(id) FROM tbl_hastenOrder ' + @Where
	EXEC sp_executesql @Sql, N'@TotalCountOut INT OUTPUT', @TotalCountOut=@TotalCount OUTPUT


	--TotalPage
	SET @TotalPage = CEILING((@TotalCount + 0.0) / @PageSize)
	
	--CheckPageIndex
	IF @PageIndex < 1 SET @PageIndex = 1
	IF @PageIndex > @TotalPage SET @PageIndex = @TotalPage

	--RowRange
	SET @StartRowId = (@PageIndex - 1) * @PageSize + 1
	set @EndRowId = @StartRowId + @PageSize - 1

	--PagedTable
	SET @Sql = 'SELECT * FROM (SELECT *, () OVER(ORDER BY ID DESC) as RowId FROM tbl_hastenOrder ' + @Where
	SET @Sql = @Sql + ') AS T WHERE RowId BETWEEN ' + CAST(@StartRowId AS VARCHAR(50)) + ' AND ' + CAST(@EndRowId AS VARCHAR(50))

	--Output table
	EXEC (@Sql)

	--Output pageinfo
	SELECT @PageIndex AS PageIndex, @PageSize AS PageSize, @TotalCount AS TotalCount, @TotalPage AS TotalPage
END


GO
/****** :  StoredProcedure [dbo].[sp_HastenOrder_updateReply]    ű: 02/01/2010 14:27:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Venson>
-- Create date: <2007-9-17>
-- Description:	<߲Ϣظ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_HastenOrder_updateReply]
	@Id BIGINT = 0,
	@Sign INT = 1
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    DECLARE @Reply varchar(8000)
	IF @Sign = 1
		SET @Reply = 'Ʒ5Ӻ󵽴ĵȴ'
	ELSE IF @Sign = 2
		SET @Reply = 'Ʒ15ڵĵȴ'
	ELSE IF @Sign = 3
		SET @Reply = 'Ʒ30ڵĵȴ'
	ELSE
		SET @Reply = 'ܱǸڶ󣬶ȡˣǽϵ'

	UPDATE tbl_hastenOrder SET reply=@Reply, state=1 WHERE ID=@Id
	
	IF @@ROWCOUNT > 0
		SELECT 1
	ELSE
		SELECT 0
END

GO
/****** :  StoredProcedure [dbo].[sp_HotLabel_append]    ű: 02/01/2010 14:27:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<VENSON>
-- Create date: <2007-10-16>
-- Description:	<űǩ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_HotLabel_append]
	@Name VARCHAR(50) = '',
	@ClassId INT = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	INSERT INTO tbl_hotLabel ([name], classID) VALUES (@Name, @ClassId)
	IF @@ROWCOUNT > 0
		SELECT 1
	ELSE
		SELECT 0
END

GO
/****** :  StoredProcedure [dbo].[sp_HotLabel_delete]    ű: 02/01/2010 14:27:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Venson>
-- Create date: <2007-10-16>
-- Description:	<ɾűǩ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_HotLabel_delete]
	@Id INT = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	DECLARE @Count INT
	
	SELECT @Count=COUNT(*) FROM tbl_hotLabelToRest WHERE HotLabelId=@Id
	IF @Count = 0 BEGIN
		UPDATE tbl_hotLabel SET isDelete=1 WHERE ID=@Id
		IF @@ROWCOUNT > 0
			SELECT 1
		ELSE
			SELECT 0
	END ELSE BEGIN
		SELECT 0
	END
END


GO
/****** :  StoredProcedure [dbo].[sp_HotLabel_getList]    ű: 02/01/2010 14:27:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Venson>
-- Create date: <2007-10-16>
-- Description:	<ȡűǩб>
-- =============================================
CREATE PROCEDURE [dbo].[sp_HotLabel_getList]

AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	SELECT * FROM tbl_hotLabel WHERE isDelete=0 ORDER BY Position DESC
END


GO
/****** :  StoredProcedure [dbo].[sp_HotLabel_Rest_append]    ű: 02/01/2010 14:27:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Venson>
-- Create date: <2007-10-16>
-- Description:	<űǩ͹>
-- =============================================
CREATE PROCEDURE [dbo].[sp_HotLabel_Rest_append]
	@HotLabelId INT = 0,
	@RestId BIGINT = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	INSERT INTO tbl_hotLabelToRest (RestId, hotLabelID) VALUES (@RestId, @HotLabelId)
	IF @@ROWCOUNT > 0
		SELECT 1
	ELSE
		SELECT 0
END


GO
/****** :  StoredProcedure [dbo].[sp_HotLabel_Rest_delete]    ű: 02/01/2010 14:27:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Venson>
-- Create date: <2007-10-16>
-- Description:	<ɾűǩ͹>
-- =============================================
CREATE PROCEDURE [dbo].[sp_HotLabel_Rest_delete]
	@Id INT = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	DELETE FROM tbl_hotLabelToRest WHERE ID=@Id
	IF @@ROWCOUNT > 0
		SELECT 1
	ELSE
		SELECT 0
END

GO
/****** :  StoredProcedure [dbo].[sp_HotLabel_Rest_getList]    ű: 02/01/2010 14:27:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










-- =============================================
-- Author:		<Venson>
-- Create date: <2007-10-16>
-- Description:	<ȡűǩ͹б>
-- =============================================
CREATE PROCEDURE [dbo].[sp_HotLabel_Rest_getList]
	@HotLabelId INT = 0,
	@sortStr varchar(8000) ='' ,
	@menuDatetime varchar(8000)='',--ȡõв˵Ĳ͹
	@pageIndex int=1,
	@pageSize int=9999
AS
BEGIN
declare @sqlCount varchar(8000),@sql varchar(8000),@sqlMain varchar(8000),@where varchar(8000)
set @sqlMain = ''
set @where = ''
if @HotLabelId>0
	set @where = @where + ' and Data.HotLabelId=' + cast(@HotLabelId as varchar(8000))
if @menuDatetime!=''
	set @where = @where + ' and [dbo].[f_restCheckTodayMenu](Data.restID,''' + @menuDatetime + ''')>0'

if @sortStr = '' begin	
	set @sortStr = ' ,Data.ID DESC '
end
else
set @sortStr = ','+@sortStr

set @sqlCount = ' declare @PageIndex int,@PageSize int,@TotalCount int,@TotalPage int,@startRow int,@endRow int
	  set @PageIndex=' + Cast(@PageIndex as varchar(8000)) +
	' set @PageSize=' + Cast(@PageSize as varchar(8000)) +
	' select @TotalCount=Count(Data.id) FROM tbl_hotLabelToRest AS Data INNER JOIN tbl_restaurant AS Rest
			ON Rest.id=Data.restID INNER JOIN tbl_restIntro AS Intro
			ON Intro.restID = Data.restID INNER JOIN tbl_restClass AS Class ON Class.id = Rest.classID	     
  where Rest.state = 1 AND Rest.isDelete = 0 ' + @where + 
' set @TotalPage=ceiLing((@TotalCount+0.0)/@PageSize)
	if @pageIndex<1 set @pageIndex=1
	if @pageIndex>@totalPage set @pageIndex=@totalPage
	set @startRow = (@PageIndex-1)*@PageSize+1
	set @endRow = @PageIndex*@PageSize '

set @sql = ' select * from (	
	SELECT Data.*, Rest.name AS RestName, Rest.logoPhotoID, Rest.provinceID, Rest.cityID, Rest.regionID, Rest.zoneID
		, Rest.address, Rest.responseTime, Rest.SClassID, Rest.note, Rest.rank,Rest.Rate,SingUp.Date_time as SignUpDate, Intro.deliverMoney, Intro.deliverArea
		, Class.name AS ClassName
		,[dbo].[f_getShopBusinessStateStr](Rest.id) as BusinessStateStr
		,() over(order by [dbo].[f_getShopBusinessState](Rest.id) ' + @sortStr + ' ) as row 
	FROM tbl_hotLabelToRest AS Data INNER JOIN tbl_restaurant AS Rest
		ON Rest.id=Data.restID INNER JOIN tbl_restIntro AS Intro
		ON Intro.restID = Data.restID INNER JOIN tbl_restClass AS Class ON Class.id = Rest.classID
left join tbl_restSignUp as SingUp on Data.restid=SingUp.Restid	     
	where Rest.state = 1 AND Rest.isDelete = 0 
' + @where + 
') as t  where row between @startRow and @endRow '

set @sql = @sqlCount + @sql + ' select @TotalCount as TotalCount,@PageIndex as PageIndex,@PageSize as PageSize,@TotalPage as TotalPage'
exec(@sql)
select @sql


/*set @sql ='
	SELECT Data.*, Rest.name AS RestName, Rest.logoPhotoID, Rest.provinceID, Rest.cityID, Rest.regionID, Rest.zoneID
		, Rest.address, Rest.responseTime, Rest.SClassID, Rest.note, Rest.rank, Intro.deliverMoney, Intro.deliverArea
		, Class.name AS ClassName
	FROM tbl_hotLabelToRest AS Data INNER JOIN tbl_restaurant AS Rest
		ON Rest.id=Data.restID INNER JOIN tbl_restIntro AS Intro
		ON Intro.restID = Data.restID INNER JOIN tbl_restClass AS Class ON Class.id = Rest.classID
	WHERE   Rest.state = 1 AND Rest.isDelete = 0 and Data.HotLabelId=' + str(@HotLabelId) 

END*/

end









GO
/****** :  StoredProcedure [dbo].[sp_HotLabel_update]    ű: 02/01/2010 14:27:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Venson>
-- Create date: <2007-10-16>
-- Description:	<űǩ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_HotLabel_update]
	@Id INT = 0,
	@Name VARCHAR(50) = '',
	@ClassId INT = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	UPDATE tbl_hotLabel SET [name]=@Name, classID=@ClassId WHERE ID=@Id
	IF @@ROWCOUNT > 0
		SELECT 1
	ELSE
		SELECT 0
END

GO
/****** :  StoredProcedure [dbo].[sp_IM_isFriend]    ű: 02/01/2010 14:27:26 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_IM_isFriend] 
@userID bigint,
@friendID bigint

AS
declare @cnt int
set @cnt=0
select @cnt=count(*) from tbl_userFrieldList where state=0 and ownerUserID=@userID and userID=@friendID
select @cnt
		
GO
/****** :  StoredProcedure [dbo].[sp_IMHistory_add]    ű: 02/01/2010 14:27:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







create PROCEDURE [dbo].[sp_IMHistory_add]	
	@id int=0,
	@senderID bigint=0,
	@receiveID bigint=0,
	@receiveClass bigint=0,
	@message varchar(100)='',
	@postTime dateTime,
	@state int=0	
AS
BEGIN	
	SET NOCOUNT ON	
	declare @result int
	set @result=0
	if @receiveClass=0
	begin
		if @senderID>0 and @receiveID>0
			insert tbl_IMHistory (senderID,receiveID,receiveClass,[message],postTime,state)
					values(@senderID,@receiveID,@receiveClass,@message,@postTime,@state)
	end	
	select @result
END







GO
/****** :  StoredProcedure [dbo].[sp_IMHistory_get]    ű: 02/01/2010 14:27:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










CREATE PROCEDURE [dbo].[sp_IMHistory_get]	
	@id int=0,
	@senderID bigint=0,	
	@receiveID bigint=0,
	@receiveClass bigint=0,
	@state int=0,
	@isRead int=0	
AS
BEGIN	
	SET NOCOUNT ON		
	declare @cnt int
	set @cnt=0
	if @receiveID>0
	begin	
	select a.*,b.nickName,b.nickName as userName from tbl_IMHistory a left join tbl_user b on a.senderID=b.id  where a.senderID=@senderID and a.receiveID=@receiveID and a.state=@state and a.receiveClass=@receiveClass order by a.id desc
	if @isRead=1
		update tbl_IMHistory set state=1 where senderID=@senderID and receiveID=@receiveID and receiveClass=@receiveClass and state=0
	end
	select @cnt
END










GO
/****** :  StoredProcedure [dbo].[sp_IMHistory_getCount]    ű: 02/01/2010 14:27:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









CREATE PROCEDURE [dbo].[sp_IMHistory_getCount]	
	@id int=0,
	@senderID bigint=0,	
	@receiveID bigint=0,
	@receiveClass bigint=0,
	@state int=0	
AS
BEGIN	
	SET NOCOUNT ON		
	declare @cnt int
	set @cnt=0
	if @receiveID>0 and @senderID>0
		select @cnt=count(*) from tbl_IMHistory where senderID=@senderID and receiveID=@receiveID and state=@state and receiveClass=@receiveClass
	else if @receiveID>0
		select @cnt=count(*) from tbl_IMHistory where receiveID=@receiveID and state=@state and receiveClass=@receiveClass
	select @cnt
END









GO
/****** :  StoredProcedure [dbo].[sp_IMHistory_getUser]    ű: 02/01/2010 14:27:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










CREATE PROCEDURE [dbo].[sp_IMHistory_getUser]	
	@receiveID bigint=0,
	@receiveClass bigint=0,
	@state int=0	
AS
BEGIN	
	SET NOCOUNT ON		
	declare @cnt int
	set @cnt=0
	if @receiveID>0
	begin	
		select * from tbl_user u where u.id in (
			select distinct a.senderID from tbl_IMHistory a where a.receiveID=@receiveID and a.state=@state and a.receiveClass=@receiveClass )
	
	end
	select @cnt
END










GO
/****** :  StoredProcedure [dbo].[sp_initPassWord]    ű: 02/01/2010 14:27:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_initPassWord]
@userID bigint,
@adminUserID int
 AS
declare @initValue varchar(32)
set @initValue='e10adc3949ba59abbe56e057f20f883e'
insert into tbl_systemLog(userID,content)values(@adminUserID,'initPassword '+str(@userID))
update tbl_user set password=@initValue where id=@userID
GO
/****** :  StoredProcedure [dbo].[sp_inputingQuestionState]    ű: 02/01/2010 14:27:35 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_inputingQuestionState]
@ID int,
@result int=0 output
AS

declare @state int
select @state=(state) from tbl_question where Id=@ID
if @state=0		
	begin
	update tbl_question set state=1 where ID=@ID
	set @result=1
	end	
select @result
GO
/****** :  StoredProcedure [dbo].[sp_integral_getRegIntegral]    ű: 02/01/2010 14:27:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[sp_integral_getRegIntegral]

as
	declare @regIntegral numeric
	select top 1 @regIntegral=regIntegral from tbl_integralRate	
	if @@rowcount=0
		set @regIntegral=0	
	select top 1 @regIntegral=integral from tbl_regIntegralRule where getDate()>=startTime and getDate()<dateAdd(d,1,endTime) and isDelete=0				

select @regIntegral
GO
/****** :  StoredProcedure [dbo].[sp_integralDetailClassSelect]    ű: 02/01/2010 14:27:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE proc [dbo].[sp_integralDetailClassSelect]
@id int = 100
as
declare @sql varchar(8000)
set @sql ='select id,name from tbl_integralDetailClass  where 1=1'
if @id <> 100 begin
set @sql = @sql + ' and id = '+ str(@id) +' '
end
exec(@sql)




GO
/****** :  StoredProcedure [dbo].[sp_IntegralExchangeDetailReportStatis]    ű: 02/01/2010 14:27:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_IntegralExchangeDetailReportStatis]
 @StartDate  DATETIME  = '1900-1-1',
 @EndDate    DATETIME  = '9999-1-1'
AS
  BEGIN

IF Object_Id('tempdb..#kkk1') IS NOT NULL  DROP TABLE #kkk1
IF Object_Id('tempdb..#kkk2') IS NOT NULL  DROP TABLE #kkk2

---û,һ(ʱ)

select ID as  giftOrderID,userID into #kkk1 from  tbl_giftOrder
where  postTime  between  @StartDate and @EndDate and state=2 and isdelete=0


---һ,һƷ,һ,ʹû(ʱ)

select a.giftOrderID,a.giftID,
sum(a.amount) amount,
sum(a.price)*sum(a.amount) price,
sum(a.expendIntegral)*sum(a.amount) expendIntegral,
sum(a.spreadIntegral)*sum(a.amount) spreadIntegral,
sum(a.userValue)* sum(a.amount) userValue
into #kkk2
from  tbl_giftOrderDetail a 
where a.giftOrderID in (select giftOrderID from #kkk1)
group by a.giftOrderID,a.giftID
 
select d.email,e.phone,c.name,a.amount,a.price ,a.expendIntegral,a.spreadIntegral,a.userValue
from  #kkk2  a 
left join #kkk1 b  on a.giftOrderID=b.giftOrderID
left join tbl_gift c  on a.giftID=c.id
left join tbl_user d  on b.userID=d.id
left join tbl_giftOrder e on  e.id=a.giftOrderID

END







GO
/****** :  StoredProcedure [dbo].[sp_IntegralExchangeQuantityReportStatis]    ű: 02/01/2010 14:27:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE PROCEDURE [dbo].[sp_IntegralExchangeQuantityReportStatis]
 @StartDate  DATETIME  = '1900-1-1',
 @EndDate    DATETIME  = '9999-1-1'
AS
  BEGIN

	select convert(varchar(10), Orders.postTime,102) as postTime, Detail.giftID, Stock.name, SUM(Detail.amount) as amount, Stock.stock as stock
from tbl_giftOrder AS Orders inner join
	tbl_giftOrderDetail as Detail on Detail.giftOrderId=Orders.id inner join
	tbl_gift as Stock on Stock.id=Detail.giftID
where Orders.postTime>=convert(varchar(10),@StartDate,102) + ' 0:0:0' and Orders.postTime<=convert(varchar(10),@EndDate,102) + ' 23:59:59'
	and Orders.state=2 and Orders.isDelete=0
group by convert(varchar(10), Orders.postTime,102), Detail.giftID, Stock.name, Stock.stock
order by convert(varchar(10), Orders.postTime,102)

END








GO
/****** :  StoredProcedure [dbo].[sp_IntegralExchangeReportStatis]    ű: 02/01/2010 14:27:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_IntegralExchangeReportStatis]
 @StartDate  DATETIME  = '1900-1-1',
 @EndDate    DATETIME  = '9999-1-1'
AS
  BEGIN

IF Object_Id('tempdb..#oo1')  IS NOT NULL  DROP TABLE #oo1
IF Object_Id('tempdb..#ooo1') IS NOT NULL  DROP TABLE #ooo1
IF Object_Id('tempdb..#ooo2') IS NOT NULL  DROP TABLE #ooo2
IF Object_Id('tempdb..#ooo3') IS NOT NULL  DROP TABLE #ooo3

---һƷ
select distinct CONVERT(varchar(100),a.postTime, 112) postTime ,a.id id  into  #oo1
from tbl_giftOrder a  left join tbl_giftOrderDetail b  on  a.id=b.giftOrderID
where  a.postTime between @StartDate and @EndDate and a.state=2 and a.isdelete=0  
group by CONVERT(varchar(100),a.postTime, 112),a.id

select T1.postTime postTime, sum(T1.c1) c1  into #ooo1 from (
	select #oo1.postTime,c1=(SELECT sum(amount)  from  tbl_giftOrderDetail  a 
	where a.giftOrderID =#oo1.id) 	from  #oo1 
) T1  group by  T1.postTime

---һû
select T.postTime, c2=count(*) into #ooo2  from 
(
select distinct b.postTime,a.userID  from  tbl_giftOrder  a , #oo1 b where a.id=b.id
) T  group by T.postTime

---ʹû
select T.postTime,sum(T.c3) c3,sum(T.c4) c4 ,sum(T.c5) c5 into #ooo3 from 
(
	SELECT #oo1.postTime,a.expendIntegral*a.amount  as c3,a.spreadIntegral*a.amount as c4,a.userValue*a.amount as c5
	from tbl_giftOrderDetail a, #oo1  where a.giftOrderID =#oo1.id  
) T  group by T.postTime 

/*ʹû
select T.postTime,sum(T.c3) c3 into #ooo3 from 
(
SELECT #oo1.postTime,a.price*a.amount c3
from tbl_giftOrderDetail a, #oo1  where a.giftOrderID =#oo1.id  
) T  group by T.postTime */


select distinct #ooo1.postTime,#ooo1.c1,#ooo2.c2,#ooo3.c3,#ooo3.c4,#ooo3.c5
from  #ooo1 
left join #ooo2 on  #ooo1.postTime=#ooo2.postTime 
left join #ooo3 on  #ooo2.postTime=#ooo3.postTime 
 


END









GO
/****** :  StoredProcedure [dbo].[sp_IntegralMoneyOrderAdd]    ű: 02/01/2010 14:27:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--***********************
--Autor:wjh
--datetime:2007-11-13
--description:ӹʻϸ
--************************
CREATE PROCEDURE [dbo].[sp_IntegralMoneyOrderAdd]
	@id bigint=0,
	@UserId bigint = 0,
	@moneyID bigint = 0,
	@integral float=0,
	@expendIntegral float=0,
	@spreadIntegral float=0,
	@money float=0
AS


	declare @result int,@orderID bigint,@msg varchar(8000)
	set @result=0
	set @orderID=0
	declare @userExpendIntegral float,@userSpreadIntegral float
	if exists(select * from tbl_userIntegral where userid=@userID) begin
			select @userExpendIntegral=expendIntegral,@userSpreadIntegral=spreadIntegral from tbl_userIntegral where userID=@userID
	end else begin
			set @userExpendIntegral=0
			set @userSpreadIntegral=0
	end	
 	
	if @userExpendIntegral<@expendIntegral or @userSpreadIntegral<@spreadIntegral 
		set @result=0
	else begin
		 begin
		 begin tran
		insert into tbl_integralMoneyOrder(userID,moneyID,integral,expendIntegral,spreadIntegral,[money])
							values (@userID,@moneyID,@integral,@expendIntegral,@spreadIntegral,@money)
		set @orderID=@@identity
		if @expendIntegral>0 begin --۳ѻ
			/*[sp_Member_Integral_UpdateNoReturn] @UserId,@RestId,@Source,@Integral,@Note,@OrderId,@IntegralClassID*/
			set @expendIntegral=-@expendIntegral
			set @msg='һʿ۳ѻ' + cast(abs(@expendIntegral)as varchar(8000)) + ''
			exec [sp_Member_Integral_UpdateNoReturn] @UserId,0,-7,@expendIntegral,@msg,@OrderId,1
		end
		if @spreadIntegral>0 begin --۳ƹ
			/*[sp_Member_Integral_UpdateNoReturn] @UserId,@RestId,@Source,@Integral,@Note,@OrderId,@IntegralClassID*/
			set @spreadIntegral=-@spreadIntegral
			set @msg='һʿ۳ƹ' + cast(abs(@spreadIntegral) as varchar(8000)) + '' 
			exec [sp_Member_Integral_UpdateNoReturn] @UserId,0,-8,@spreadIntegral,@msg,@OrderId,2
		end
		if @@error>0 begin
			set @result=-1			
			rollback tran
		end else begin
			set @result=1
			commit tran
		end
	end
select @result

end









GO
/****** :  StoredProcedure [dbo].[sp_IntegralMoneyOrderDelete]    ű: 02/01/2010 14:27:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--ֶһ
create PROCEDURE [dbo].[sp_IntegralMoneyOrderDelete]
@id int=0,
@result int=0  output
AS
begin
update tbl_IntegralMoneyOrder set isDelete=1 ,state = -1 where id=@id
  if @@error=0 begin
  set @result=1
  end
end
select @result


GO
/****** :  StoredProcedure [dbo].[sp_IntegralMoneyOrderDetail]    ű: 02/01/2010 14:27:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









--===================
--ֶһϸ
--===================
CREATE PROCEDURE [dbo].[sp_IntegralMoneyOrderDetail]
@id int=0,
@state int = 3,
@startDate varchar(8000) ='',
@endDate varchar(8000) ='',
@email varchar(8000)=''

AS 
declare @sql varchar(8000)
set @endDate = Convert(varchar(8000),DateAdd(d,1,@endDate))
set @sql = 'select a.[id],userID,sys.nickName as adminName ,a.adminId,a.remark,a.updatetime ,c.trueName,phone,email,accountName,bankName,account
	,moneyID,integral,expendIntegral,spreadIntegral,[money],postTime,case a.state when 0 then ''δ'' 
when 1 then '''' when -1 then '''' end as state
from tbl_IntegralMoneyOrder a left join tbl_user b on b.id=a.userID 
	left join tbl_userDetail c on c.Id=b.id 
	left join tbl_systemuser sys on a.adminId = sys.id
where a.isdelete = 0'
if @id <> 0
begin
 set @sql = @sql + ' and a.[id] ='+ Convert(varchar(8000),@id) +''
end
if @startDate <> '' and @endDate <> ''
begin
 set @sql = @sql + ' and postTime between '''+ @startDate +''' and '''+ @endDate +''''
end
if @state <> 3
begin
 set @sql = @sql +' and a.state = '+ str(@state) +''
end
if @email <> ''
begin 
	set @sql = @sql + ' and email = '''+ @email +''''
end
set @sql = @sql + ' order by postTime desc'
exec (@sql)
select @@rowcount 



















GO
/****** :  StoredProcedure [dbo].[sp_IntegralMoneyOrderSelect]    ű: 02/01/2010 14:27:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--===================
--ֶһϸ
--===================

CREATE PROCEDURE [dbo].[sp_IntegralMoneyOrderSelect]
@id int=0
AS
if @id=0
begin
select [id],userID,moneyID,integral,[money],postTime,case state when 0 then '' when 1 then '' when -1 then '' end as state from tbl_IntegralMoneyOrder where isDelete=0  order by [money] 
end else begin
select [id],userID,moneyID,integral,[money],postTime,case state when 0 then '' when 1 then '' when -1 then '' end as state from tbl_IntegralMoneyOrder where isDelete=0 and id=@id  order by [money]
end












GO
/****** :  StoredProcedure [dbo].[sp_IntegralMoneyOrderUpdate]    ű: 02/01/2010 14:27:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









--ֶһ״̬

CREATE PROCEDURE [dbo].[sp_IntegralMoneyOrderUpdate]
@id int=0,
@state int = 0,
@adminID int = 0,
@content varchar(8000)='',
@remark varchar(120) ='',
@result int=0  output
AS

SET XACT_ABORT ON  --  try  
BEGIN   
    begin
	declare @spResult int
	declare @str varchar(4000)
set @str = ''

declare @Integral float,@userID bigint,@msg varchar(8000),@state0 int,@remark0 varchar(120)
--***********************
--״̬Ϊϵ
--*************************
select @userID=userID,@state0=state ,@remark0 = remark from tbl_IntegralMoneyOrder where id=@id
if @state!=@state0 begin
    begin tran
	if @remark ='' set @remark = @remark0
	exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
	update tbl_IntegralMoneyOrder set state = @state ,remark = @remark,adminId=@adminId,updatetime=getdate() where id=@id

	if @state0=0 and @state=-1 begin	
		--Ϸѻ
		select top 1 @Integral=amount from tbl_userIntegralDetail where orderID=@id and source=-7 order by id desc			
		if @@rowcount>0 begin
			set @Integral=-@Integral
			/*[sp_Member_Integral_UpdateNoReturn] @UserId,@RestId,@Source,@Integral,@Note,@OrderId,@IntegralClassID:1ѻ,2ƹ*/		
			set @msg='һϷѻ' + cast(abs(@Integral)as varchar(8000)) + ''
			exec [sp_Member_Integral_UpdateNoReturn] @UserId,0,7,@Integral,@msg,@id,1
		end
		--Ϸƹ
		select top 1 @Integral=amount from tbl_userIntegralDetail where orderID=@id and source=-8 order by id desc			
		if @@rowcount>0 begin
			set @Integral=-@Integral
			/*[sp_Member_Integral_UpdateNoReturn] @UserId,@RestId,@Source,@Integral,@Note,@OrderId,@IntegralClassID:1ѻ,2ƹ*/
			set @msg='һϷƹ' + cast(abs(@Integral)as varchar(8000)) + ''
			exec [sp_Member_Integral_UpdateNoReturn] @UserId,0,8,@Integral,@msg,@id,2
		end
	end


	if @@error>0 begin
		set @result=-1
		rollback tran
	end else begin
		set @result=1
		commit tran
	end
end else
	set @result=1 
end  
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result
end










GO
/****** :  StoredProcedure [dbo].[sp_IntegralMoneyRateInfoAdd]    ű: 02/01/2010 14:27:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








--***********************
--Autor:wjh
--datetime:2007-11-12
--description:ӹʻֹ
--************************
CREATE PROCEDURE [dbo].[sp_IntegralMoneyRateInfoAdd]
@money float = 0,
@integral float=0,
@expendIntegral float,
@spreadIntegral float,
@adminID int = 0,
@content varchar(8000),
@result int=0  output
AS
SET XACT_ABORT ON  --  try  
    begin
	declare @spResult int
	declare @str varchar(4000)
set @str = ''
begin tran 
if (select count(*) from tbl_IntegralMoney where isDelete=0 )=0
 begin
	exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
   insert into tbl_IntegralMoney
([money],integral,expendIntegral,spreadIntegral) 
values(@money,@integral,@expendIntegral,@spreadIntegral)
      if @@error=0 begin
      set @result=1
      end  else begin
      set @result=0 end
end 
else 
begin 
      /************************************/
     if exists( select * from  tbl_IntegralMoney 
where expendIntegral = @expendIntegral and spreadIntegral = @spreadIntegral and isDelete=0) 
begin set  @result=2 end 
       /************************************/

    if @result<>2 begin
exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
     insert into tbl_IntegralMoney
([money],integral,expendIntegral,spreadIntegral) 
values(@money,@integral,@expendIntegral,@spreadIntegral)
          if @@error=0 begin
          set @result=1
          end else begin
          set @result=0 end
   end   
end 
end  
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result
















GO
/****** :  StoredProcedure [dbo].[sp_IntegralMoneyRateInfoDelete]    ű: 02/01/2010 14:27:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--ɾֶһʹ
CREATE PROCEDURE [dbo].[sp_IntegralMoneyRateInfoDelete]
@id int=0,
@adminID int = 0,
@content varchar(8000),
@result int=0  output
AS
SET XACT_ABORT ON  --  try  
    begin
    begin tran
	declare @spResult int
	declare @str varchar(4000)
set @str = ''
exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
update tbl_IntegralMoney set isDelete=1 where id=@id
  if @@error=0 begin
  set @result=1
  end
end  
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result




GO
/****** :  StoredProcedure [dbo].[sp_IntegralMoneyRateInfoSelect]    ű: 02/01/2010 14:27:56 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--ֶһб

CREATE PROCEDURE [dbo].[sp_IntegralMoneyRateInfoSelect]
@id int=0
AS
if @id=0
begin
select * from tbl_IntegralMoney where isDelete=0  order by [money] 
end else begin
select * from tbl_IntegralMoney where isDelete=0 and id=@id  order by [money]
end
select @@rowCount












GO
/****** :  StoredProcedure [dbo].[sp_IntegralMoneyRateInfoUpdate]    ű: 02/01/2010 14:27:56 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







CREATE PROCEDURE [dbo].[sp_IntegralMoneyRateInfoUpdate]
@id int=0,
@money float = 0,
@integral float,
@expendIntegral float,
@spreadIntegral float,
@adminID int = 0,
@content varchar(8000),
@result int=0  output
AS
SET XACT_ABORT ON  --  try   
    begin
    begin tran
	declare @spResult int
	declare @str varchar(4000)
set @str = ''
     /************************************/
     if exists( select * from  tbl_IntegralMoney 
where (expendIntegral = @expendIntegral and spreadIntegral = @spreadIntegral and isDelete=0) and id<>@id ) 
begin set  @result=2 end 

     if exists( select * from  tbl_IntegralMoney
where expendIntegral = @expendIntegral and spreadIntegral = @spreadIntegral and isDelete=0  and id<>@id  ) 
begin set  @result=2 end 
     
     if exists( select * from  tbl_IntegralMoney 
where expendIntegral = @expendIntegral and spreadIntegral = @spreadIntegral and isDelete=0  and id<>@id  ) 
begin set  @result=2 end 

     if exists( select * from  tbl_IntegralMoney
where expendIntegral = @expendIntegral and spreadIntegral = @spreadIntegral and isDelete=0  and id<>@id  ) 
begin set  @result=2 end 
       /************************************/
    if @result<>2 begin
exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
update tbl_IntegralMoney  
set [money] = @money ,integral = @integral,expendIntegral = @expendIntegral,
spreadIntegral = @spreadIntegral where id=@id
  if @@error=0 begin
  set @result=1
  end else begin
  set @result=0
  end 
  end  

end  
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result












GO
/****** :  StoredProcedure [dbo].[sp_IntegralMonitorStatis]    ű: 02/01/2010 14:27:59 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_IntegralMonitorStatis]
AS
begin

    declare @Total float
    declare @lastIntegral float
    declare @CurIntegral float
	
select @Total=sum(integral) from tbl_userintegral

select @lastIntegral=sum(amount) from tbl_userIntegralDetail  
where getTime < CONVERT(DateTime,CONVERT(varchar(100),getdate(), 23)) 
and userid>0

select @CurIntegral=sum(amount) from tbl_userIntegralDetail  
where getTime >= CONVERT(DateTime,CONVERT(varchar(100),getdate(), 23))
and getTime < CONVERT(DateTime,CONVERT(varchar(100),dateadd(d,1,getdate()), 23))
and userid>0

select  @Total Total, @lastIntegral lastIntegral, @CurIntegral CurIntegral

end

GO


GO
/****** :  StoredProcedure [dbo].[sp_IntegralRangJudge]    ű: 02/01/2010 14:28:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--***********************
--Autor:wjh
--datetime:2007-11-12
--description:ֹΧж
--************************
CREATE PROCEDURE [dbo].[sp_IntegralRangJudge]
@tableName varchar(8000),
@start varchar(120),
@end varchar(120)
AS
begin 
declare @sql varchar(8000)
set @sql ='

declare @result int
set @result = 0
      /************************************/

     if exists( select * from   @tableName  
where @start >= startTime and @start < endTime and isDelete=0) 
begin set  @result=2 end 

     if exists( select * from  @tableName 
where @end > startTime and @end <= endTime and isDelete=0) 
begin set  @result=2 end 
     
     if exists( select * from  @tableName 
where startTime >= @start and startTime < @end and isDelete=0) 
begin set  @result=2 end 

     if exists( select * from  @tableName 
where endTime > @start and endtime <= @end and isDelete=0) 
begin set  @result=2 end 
 if @result <> 2
 begin set @result = 0 end
       /************************************/
if @result = 2 begin select -1 end
'
set @sql = replace(@sql,'@tableName',''+ @tableName +'')
set @sql = replace(@sql,'@start',''''+ @start +'''')
set @sql = replace(@sql,'@end',''''+ @end +'''')
--set @sql = replace(@sql,'@result',''+ @result +'')
exec(@sql)

end
















GO
/****** :  StoredProcedure [dbo].[sp_IntegralRateClassAdd]    ű: 02/01/2010 14:28:03 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	ʱ
-- =============================================
CREATE PROCEDURE  [dbo].[sp_IntegralRateClassAdd]
@tableName varchar(8000),
@name varchar(8000),
@startTime varchar(8000),
@endTime varchar(8000),
@note varchar(8000) = '',
@adminID int = 0,
@content varchar(8000)=''

AS
BEGIN
declare @sql varchar(8000)
	set @sql =' 
SET XACT_ABORT ON  --  try  
BEGIN  tran  
    begin
	declare @spResult int
	declare @str varchar(4000)
	set @str = ''
	
		declare @result int 
				set @result = 0
if (select count(*) from  @tableName where isDelete = 0)=0
 begin
	exec sp_systemlogAdd ' + str(@adminID) +',1,'''+ @content +''',@str,@spResult output
   insert into @tableName([name],startTime,endTime,note) 
values(@name,'''+ @startTime +''','''+ @endTime +''','''+ @note +''')
      if @@error=0 begin
      set @result=1
      end  else begin
      set @result=0 end
end 
else 
begin 

exec sp_IntegralRangCheck 0,'''+ @tableName +''','''+ @startTime +''','''+ @endTime +'''
if @@rowCount = 0 
begin
exec sp_systemlogAdd ' + str(@adminID) +',1,'''+ @content +''',@str,@spResult output
     insert into @tableName([name],startTime,endTime,note) 
values(@name ,'''+ @startTime +''','''+ @endTime +''','''+ @note +''')
          if @@error=0 begin
          set @result=1
          end else begin
          set @result=0 end
    end  else begin
    set @result=0 end
end 

end  
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result

'
set @sql = replace(@sql,'@tablename',@tablename)
set @sql = replace(@sql,'@name',''''+ @name +'''')
--select @sql
exec( @sql)
END








GO
/****** :  StoredProcedure [dbo].[sp_IntegralRateClassDelete]    ű: 02/01/2010 14:28:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	ʱɾ
-- =============================================
CREATE PROCEDURE  [dbo].[sp_IntegralRateClassDelete]
@id int = 0,
@tableName varchar(8000),
@childTableName varchar(8000),
@adminID int = 0,
@content varchar(8000)=''
AS
BEGIN
declare @sql varchar(8000)
set @sql ='

SET XACT_ABORT ON  --  try  
BEGIN tran  
    begin
	declare @spResult int
	declare @str varchar(4000)

 declare @result int
 set @result = 0
 if @id > 0

--set @str = ''
--exec sp_systemlogAdd ' + str(@adminID) +',1,'''+ @content +''',@str,@spResult output
update @childTableName set isDelete = 1 where classID = @id
if @@error = 0 and @@rowcount >= 0
begin
set @str = ''
exec sp_systemlogAdd ' + str(@adminID) +',1,'''+ @content +''',@str,@spResult output
  update @tableName set isDelete = 1 where id = @id
  if @@error = 0 and @@rowcount >0
    begin
      set @result = 1
    end
end

end  
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result
'

set @sql = replace(@sql,'@tablename',@tablename)
set @sql = replace(@sql,'@childTableName',@childTableName)
set @sql = replace(@sql,'@id',''+ @id +'')
--select @sql
exec( @sql)
END








GO
/****** :  StoredProcedure [dbo].[sp_IntegralRateClassSelect]    ű: 02/01/2010 14:28:06 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	ʱѯ
-- =============================================
CREATE PROCEDURE  [dbo].[sp_IntegralRateClassSelect]
 @tableName varchar(8000)
as
declare @sql varchar(8000)
set @sql = 'select id,name,note,Convert(varchar(10),startTime,120) as startTime ,Convert(varchar(10),endTime,120) as endTime from '+ @tableName +' where isDelete = 0  order by startTime desc'
exec (@sql)
select @@rowcount





GO
/****** :  StoredProcedure [dbo].[sp_IntegralRateClassUpdate]    ű: 02/01/2010 14:28:07 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	ʱ޸
-- =============================================
CREATE PROCEDURE  [dbo].[sp_IntegralRateClassUpdate]
@id int = 0,
@tableName varchar(8000),
@name varchar(8000),
@startTime varchar(8000),
@endTime varchar(8000),
@note varchar(8000),
@adminID int = 0,
@content varchar(8000)

AS
BEGIN
declare @sql varchar(8000)

	set @sql ='
SET XACT_ABORT ON  --  try  
BEGIN tran  
    begin
	declare @spResult int
	declare @str varchar(4000)
	set @str = ''

 declare @result int
 set @result = 0
	 if @id <> 0
	begin
    exec sp_IntegralRangCheck @id,'''+ @tableName +''','''+ @startTime +''','''+ @endTime +'''
	if @@rowCount = 0  begin
	exec sp_systemlogAdd ' + str(@adminID) +',1,'''+ @content +''',@str,@spResult output
     update @tableName set name = @name, startTime = '''+ @startTime +''',
	endTime = '''+ @endTime +''', note ='''+ @note +''' where id = @id 
          if @@error=0 begin
          set @result=1
          end else begin
          set @result=0 end
    end  
end

end  
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result
 '
set @sql = replace(@sql,'@tablename',@tablename)
set @sql = replace(@sql,'@name',''''+ @name +'''')
set @sql = replace(@sql,'@id',''+ @id +'')
--select @sql
exec( @sql)
END







GO
/****** :  StoredProcedure [dbo].[sp_IntegralReport]    ű: 02/01/2010 14:28:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_IntegralReport]
@startDate varchar(10),
@endDate varchar(10)
 AS
select convert(varchar,getTime,112) as reportDate,count(*) as amount from tbl_userIntegralDetail
where getTime between @startDate and  dateadd(d,1,@endDate)
group by convert(varchar,getTime,112)
GO
/****** :  StoredProcedure [dbo].[sp_isSMS]    ű: 02/01/2010 14:28:13 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[sp_isSMS]
@orderID bigint,
@sel int=0 /*0Ϊȫ,1Ϊɹ,-1Ϊǳɹ */
as 
if @sel=0
	select count(orderID) from tbl_SMSHistory where orderID=@orderID 
else if @sel=1
	select count(orderID) from tbl_SMSHistory where orderID=@orderID and result=0
else if @sel=-1
	select count(orderID) from tbl_SMSHistory where orderID=@orderID and result!=0











GO
/****** :  StoredProcedure [dbo].[sp_IssuedOrdersTimeStatis]    ű: 02/01/2010 14:28:15 ******/
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go






Create PROCEDURE [dbo].[sp_IssuedOrdersTimeStatis]
@ProvinceID int=0,
@CityID int=0,
@RegionID int=0,
@ZoneID int=0,
@StartDate datetime='2002-1-1',
@EndDate datetime='2020-1-1',
@State int=1
AS
begin
	DECLARE @Sql varchar(8000)
	DECLARE @Where varchar(8000)
	DECLARE @ProvinceIdStr varchar(8000)
	DECLARE @CityIdStr varchar(8000)
	DECLARE @RegionIdStr varchar(8000)
	DECLARE @ZoneIdStr varchar(8000)
	DECLARE @StateStr varchar(2)
	declare @whereState varchar(8000)
	SET @ProvinceIdStr = CAST(@ProvinceID AS varchar(8000))
	SET @CityIdStr = CAST(@CityID AS varchar(8000))
	SET @RegionIdStr = CAST(@RegionID AS varchar(8000))
	SET @ZoneIdStr = CAST(@ZoneID AS varchar(8000))
	SET @StateStr = CAST(@State AS varchar(2))
	SET @Where = ''
    set @Sql=''
		IF @ProvinceID > 0 OR @CityID > 0 OR @RegionID > 0 OR @ZoneID > 0
			BEGIN
				IF @ProvinceId > 0 SET @Where = @Where + ' and b.ProvinceId=' + @ProvinceIdStr 
				IF @CityId > 0 SET @Where = @Where + ' and b.CityId=' + @CityIdStr 
				IF @RegionId > 0 SET @Where = @Where + ' and b.RegionId=' + @RegionIdStr 
				IF @ZoneId > 0 SET @Where = @Where + ' and b.ZoneId=' + @ZoneIdStr 
			END
		if @State<>-3
			set @whereState=' and a.state='+@StateStr
		else 
			set @whereState=' and a.state<>-3'
   declare @Date_Temp datetime
   set @Date_Temp='2000-1-1'
   while (@Date_Temp<'2000-1-2')  begin
         if @sql<>'' begin
			set @sql=@sql + ' union all  select  datestr=''' + 
			substring(CONVERT(varchar(100), @Date_Temp, 108),1,5) + '-'  +
			substring(CONVERT(varchar(100), dateadd(mi,30,@Date_Temp), 108),1,5) + ''' , 
			count(*) OrderCount ,
			convert(decimal(10,2),sum(a.total)) OrderMoney
			from v_Order_GeneralList a
			left join tbl_area b on a.areaID=b.id  '
			set @sql=@sql + '  where  a.date_time >= ''' 
			+ cast(@StartDate as varchar(20)) + '''  and   a.date_time < ''' 
			+ cast(@EndDate as varchar(20)) + '''  '+@whereState+' ' 
			+ ' and  convert(datetime,substring(CONVERT(varchar(100), a.date_time, 108),1,5)) >=
			convert(datetime,'''+ substring(CONVERT(varchar(100), @Date_Temp, 108),1,5) + ''' )  
			and  convert(datetime,substring(CONVERT(varchar(100), a.date_time, 108),1,5)) <
			convert(datetime,''' + substring(CONVERT(varchar(100), dateadd(mi,30,@Date_Temp), 108),1,5) + ''') '
			+ @Where
		 end else begin 
     	    set @sql= ' select  datestr=''' + 
			substring(CONVERT(varchar(100), @Date_Temp, 108),1,5) + '-'  +
			substring(CONVERT(varchar(100), dateadd(mi,30,@Date_Temp), 108),1,5) + ''' , 
			count(*) OrderCount ,
			convert(decimal(10,2),sum(a.total)) OrderMoney
			from v_Order_GeneralList a
			left join tbl_area b on a.areaID=b.id  '
			set @sql=@sql + '  where  a.date_time >= ''' 
			+ cast(@StartDate as varchar(20)) + '''  and   a.date_time < ''' 
			+ cast(@EndDate as varchar(20)) + '''  '+@whereState+'  ' 
			+ ' and  convert(datetime,substring(CONVERT(varchar(100), a.date_time, 108),1,5)) >=
			convert(datetime,'''+ substring(CONVERT(varchar(100), @Date_Temp, 108),1,5) + ''' )  
			and  convert(datetime,substring(CONVERT(varchar(100), a.date_time, 108),1,5)) <
			convert(datetime,''' + substring(CONVERT(varchar(100), dateadd(mi,30,@Date_Temp), 108),1,5) + ''') '
			+ @Where
     end
  set @Date_Temp=dateadd(mi,30,@Date_Temp)
  end 
--select @Sql
EXEC(@Sql)
end













GO
/****** :  StoredProcedure [dbo].[sp_lastRest_add]    ű: 02/01/2010 14:28:17 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [dbo].[sp_lastRest_add]
@userID bigint=0,
@restID bigint=0,
@orderID bigint=0
as
begin
	if exists(select id from tbl_lastRest where userID=@userID and restID=@restID)
		update tbl_lastRest set lastTime=getDate(),orderID=@orderID where userID=@userID and restID=@restID 
	else
		insert into tbl_lastRest(userID,restID,orderID) values(@userID,@restID,@orderID)
end


GO
/****** :  StoredProcedure [dbo].[sp_lastRest_get]    ű: 02/01/2010 14:28:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [dbo].[sp_lastRest_get]
@userID bigint=0,
@restID bigint=0,
@orderID bigint=0,
@limit bigint=1
as
begin
	if @userID>0 
		DECLARE @sql VARCHAR(8000)
set   @sql='select top '+cast(@limit   as   varchar)+' lr.*,r.name restName from tbl_lastRest lr left join tbl_restaurant r on r.id=lr.restID 
		where lr.userID=@userID and r.isDelete=0 and r.state=1 order by lr.lastTime desc'  
		 
  EXEC (@sql)  		
			
end


GO
/****** :  StoredProcedure [dbo].[sp_Location_Area_getInfoById]    ű: 02/01/2010 14:28:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<VENSON>
-- Create date: <2008-4-7>
-- Description:	<ȡ׼¥Ϣ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Location_Area_getInfoById]
	@Id bigint = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	SELECT TOP 1 * FROM v_Location_Area WHERE Id=@Id
END




GO
/****** :  StoredProcedure [dbo].[sp_Location_Area_getList]    ű: 02/01/2010 14:28:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Venson>
-- Create date: <2008-6-6>
-- Description:	<ȡ׼¥б>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Location_Area_getList]
	@ProvinceId INT = 0,--ʡID
	@CityId INT = 0, --ID
	@RegionId INT = 0,--ID
	@ZoneId int = 0,--ƬID
	@AreaName VARCHAR(50) = '',--¥ƹؼ
	@State int = 0,--״̬
	@IsDelete int = 0,--Ƿɾ
	@PageIndex INT = 1,--ҳ
	@PageSize INT = 1--ҳС
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @Sql nvarchar(4000)
	DECLARE @Where varchar(8000)

	DECLARE @TotalCount INT
	DECLARE @TotalPage INT
	DECLARE @StartRowId INT
    DECLARE @EndRowId INT

	--WHERE
	SET @Where = 'WHERE State=' + cast(@State as varchar(5))
		+ ' and IsDelete=' + cast(@IsDelete as varchar(5))
	IF @ProvinceId > 0 SET @Where = @Where + ' AND ProvinceId=' + CAST(@ProvinceId AS VARCHAR(10))
	IF @CityId > 0 SET @Where = @Where + ' AND CityId=' + CAST(@CityId AS VARCHAR(10))
	IF @RegionId > 0 SET @Where = @Where + ' AND RegionId=' + CAST(@RegionId AS VARCHAR(10))
	if @ZoneId > 0 set @Where = @Where + ' and ZoneId=' + cast(@ZoneId as varchar(10))
	IF @AreaName <> ''
	BEGIN
		SET @AreaName = REPLACE(@AreaName, '''', '''''')
		SET @AreaName = '%' + @AreaName + '%';
		SET @Where = @Where + ' AND (Name LIKE ''' + @AreaName + ''' or spy LIKE ''' + @AreaName + ''' or qpy LIKE ''' + @AreaName + ''')'
	END

	--TotoalCount
	SET @Sql = N'SELECT @TotalCountOut=Count(Id) FROM v_Location_Area ' + @Where
	EXEC sp_executesql @Sql, N'@TotalCountOut INT OUTPUT', @TotalCountOut=@TotalCount OUTPUT

	if @PageSize = -1
	begin
		set @TotalPage = 1
		set @Sql = 'select * from v_Location_Area ' + @Where
	end
	else
	begin
		--TotalPage
		SET @TotalPage = CEILING((@TotalCount + 0.0) / @PageSize)
		
		--CheckPageIndex
		IF @PageIndex < 1 SET @PageIndex = 1
		IF @PageIndex > @TotalPage SET @PageIndex = @TotalPage

		--RowRange
		SET @StartRowId = (@PageIndex - 1) * @PageSize + 1
		set @EndRowId = @StartRowId + @PageSize - 1

		SET @Sql = 'SELECT * FROM (
			SELECT *, () OVER(ORDER BY name) as RowId FROM v_Location_Area ' + @Where
			+ ') AS T WHERE RowId BETWEEN ' + CAST(@StartRowId AS VARCHAR(50)) + ' AND ' + CAST(@EndRowId AS VARCHAR(50))
	end

	--EXEC
	EXEC (@Sql)

	--PageInfo
	SELECT @PageIndex AS PageIndex, @PageSize AS PageSize, @TotalCount AS TotalCount, @TotalPage AS TotalPage
END

GO
/****** :  StoredProcedure [dbo].[sp_login]    ű: 02/01/2010 14:28:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE PROCEDURE [dbo].[sp_login]
@userID bigint,
@userName varchar(16),
@userEmail varchar(50),
@password varchar(32),
@ip varchar(16),
@loginField int,
@result int =0 output
 AS
declare @userNameV varchar(16)
declare @nickNameV varchar(16)
declare @passwordV varchar(32)
declare @email varchar(50)
declare @userClass int
declare @state int
if @loginField =0
		select -10
	else
		if @loginField =1
			begin
			select top 1 @userID=id,@userNameV=name,@passwordV=password,@nickNameV=nickName,@email=email,@state=state,@userClass=userClass from tbl_user where name=@userName and state=0
			if @userName<>@userNameV
				set @result=-1
			else
			if @password<> @passwordV
				set @result =-2			
			end
		else
			if @loginField =2
				begin
					select top 1 @userID=id,@userNameV=name,@passwordV=password,@nickNameV=nickName,@email=email,@state=state,@userClass=userClass from tbl_user where (email=@userEmail or nickname=@useremail) and state=0
					if (@email<> @userEmail or @userEmail is null) and @nickNameV <> @useremail					
						set @result=-1						
					else
					if @password<> @passwordV
						set @result =-2											
				end
if @state<0
				set @result =-3
if(@result <0)
	insert into tbl_userLoginLog(userName,errorMessage,ip)values(@userName+@userEmail,str(@result),@ip)
if(@result=0 and @userID>0)
begin
	insert into tbl_userIP(userID,ip)values(@userID,@ip)
	set @result =1
end
select @result,@userID,@userNameV,@nickNameV,@userClass,@email


GO
/****** :  StoredProcedure [dbo].[sp_ManageMenuClass]    ű: 02/01/2010 14:28:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_ManageMenuClass]
@id int,--id
@userID int,
@operation varchar(20)
 AS
declare @restID int
declare @orderNumber int
declare @maxOrderNumber int
select top 1 @restID=restID,@orderNumber=orderNumber from tbl_menuClass where id=@id
select @maxOrderNumber=max(orderNumber) from tbl_menuClass where restID=@restID and isDelete=0
if(@operation='delete')
begin
	if (select count(*) from tbl_menuTable where classID=@id  and state>-1)=0 begin
		if @orderNumber>1
			update  tbl_menuClass set orderNumber=orderNumber-1 where  orderNumber>@orderNumber and restID=@restID and  isDelete=0		
		update tbl_menuClass set isDelete=1 where id=@id	
		select 1	
	end	else begin
		select -1
	end
	return 
end
if(@operation='orderDown')
begin	
	if(@orderNumber>0)
	begin
		if @orderNumber>1
			update  tbl_menuClass set orderNumber=orderNumber+1 where  restID=@restID and  id= (select top 1 id from tbl_menuClass where orderNumber<@orderNumber and restId=@restID and  isDelete=0 order by orderNumber desc ) and  isDelete=0		
		update tbl_menuClass set orderNumber=orderNumber-1 where id=@id
		select 1
	end
	else
		select -1
	return 
end
if(@operation='orderUp')
begin
	--select top 1 @rid=restID from tbl_weekTop10 order by id desc
	if(@orderNumber<@maxOrderNumber or @orderNumber=0)
	begin
		if @orderNumber=0
			update  tbl_menuClass set orderNumber=orderNumber+1 where  restID=@restID and orderNumber>=@orderNumber+1  and  isDelete=0
		else
			update  tbl_menuClass set orderNumber=orderNumber-1 where  restID=@restID and orderNumber=@orderNumber+1 and  isDelete=0
		update tbl_menuClass set orderNumber=orderNumber+1 where id=@id
		select 1
	end
	else
		select -1
	return
end


GO
/****** :  StoredProcedure [dbo].[sp_ManageMenuTable]    ű: 02/01/2010 14:28:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_ManageMenuTable]
@id int,--id
@userID int,
@operation varchar(20)
 AS
declare @restID int
declare @classID int
declare @orderNumber int
declare @maxOrderNumber int
select top 1 @restID=restID,@orderNumber=orderNumber,@classID=classID from tbl_menuTable where id=@id and state>-1
select @maxOrderNumber=max(orderNumber) from tbl_menuTable where classID=@classID and state>-1
if(@operation='delete')
begin	
	if @orderNumber>1
		update  tbl_menuTable set orderNumber=orderNumber-1 where  orderNumber>@orderNumber and classID=@classID and state>-1
	update tbl_menuTable set state=-1  where id=@id	
	select 1
	return 
end
if(@operation='orderDown')
begin
	
	if(@orderNumber>0)
	begin
		if @orderNumber>1
			update  tbl_menuTable set orderNumber=orderNumber+1 where state>-1 and classID=@classID and  id= (select top 1 id from tbl_menuTable where state>-1 and orderNumber<@orderNumber and classId=@classID order by orderNumber desc )	
		update tbl_menuTable set orderNumber=orderNumber-1 where id=@id
		select 1
	end
	else
		select -1
	return 
end
if(@operation='orderUp')
begin
	--select top 1 @rid=restID from tbl_weekTop10 order by id desc
	if(@orderNumber<@maxOrderNumber or @orderNumber=0)
	begin
		if @orderNumber=0
			update  tbl_menuTable set orderNumber=orderNumber+1 where state>-1 and  classID=@classID and orderNumber>=@orderNumber+1
		else
			update  tbl_menuTable set orderNumber=orderNumber-1 where state>-1 and   classID=@classID and orderNumber=@orderNumber+1
		update tbl_menuTable set orderNumber=orderNumber+1 where id=@id
		select 1
	end
	else
		select -1
	return
end


GO
/****** :  StoredProcedure [dbo].[sp_ManageMonthTop10]    ű: 02/01/2010 14:28:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_ManageMonthTop10]
@id int,--͹id
@userID int,
@operation varchar(20)
 AS
declare @rid int
if(@operation='delete')
begin
	update  tbl_monthTop10 set id=id-1 where  id> (select top 1 id from tbl_monthTop10 where restID=@id )	
	delete from tbl_monthTop10 where restID=@id		
	select 1
	return 
end
if(@operation='orderDown')
begin
	select top 1 @rid=restID from tbl_monthTop10 order by id asc
	if(@id<>@rid)
	begin
		update  tbl_monthTop10 set id=id+1 where  id= (select top 1 id from tbl_monthTop10 where id<(select top 1 id from tbl_monthTop10 where restID=@id) order by id desc )	
		update tbl_monthTop10 set id=id-1 where restID=@id
		select 1
	end
	else
		select -1
	return 
end
if(@operation='orderUp')
begin
	select top 1 @rid=restID from tbl_monthTop10 order by id desc
	if(@id<>@rid)
	begin
		update  tbl_monthTop10 set id=id-1 where  id= (select top 1 id from tbl_monthTop10 where id>(select top 1 id from tbl_monthTop10 where restID=@id) order by id )	
		update tbl_monthTop10 set id=id+1 where restID=@id
		select 1
	end
	else
		select -1
	return
end
GO
/****** :  StoredProcedure [dbo].[sp_ManageNewRest]    ű: 02/01/2010 14:28:30 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_ManageNewRest]
@id int,--͹id
@userID int,
@operation varchar(20)
 AS
declare @rid int
if(@operation='delete')
begin
	update  tbl_newRest set id=id-1 where  id> (select top 1 id from tbl_newRest where restID=@id )	
	delete from tbl_newRest where restID=@id		
	select 1
	return 
end
if(@operation='orderDown')
begin
	select top 1 @rid=restID from tbl_newRest order by id asc
	if(@id<>@rid)
	begin
		update  tbl_newRest set id=id+1 where  id= (select top 1 id from tbl_newRest where id<(select top 1 id from tbl_newRest where restID=@id) order by id desc )	
		update tbl_newRest set id=id-1 where restID=@id
		select 1
	end
	else
		select -1
	return 
end
if(@operation='orderUp')
begin
	select top 1 @rid=restID from tbl_newRest order by id desc
	if(@id<>@rid)
	begin
		update  tbl_newRest set id=id-1 where  id= (select top 1 id from tbl_newRest where id>(select top 1 id from tbl_newRest where restID=@id) order by id )	
		update tbl_newRest set id=id+1 where restID=@id
		select 1
	end
	else
		select -1
	return
end
GO
/****** :  StoredProcedure [dbo].[sp_ManageWeekTop10]    ű: 02/01/2010 14:28:31 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_ManageWeekTop10]
@id int,--͹id
@userID int,
@operation varchar(20)
 AS
declare @rid int
if(@operation='delete')
begin
	update  tbl_weekTop10 set id=id-1 where  id> (select top 1 id from tbl_weekTop10 where restID=@id )	
	delete from tbl_weekTop10 where restID=@id		
	select 1
	return 
end
if(@operation='orderDown')
begin
	select top 1 @rid=restID from tbl_weekTop10 order by id asc
	if(@id<>@rid)
	begin
		update  tbl_weekTop10 set id=id+1 where  id= (select top 1 id from tbl_weekTop10 where id<(select top 1 id from tbl_weekTop10 where restID=@id) order by id desc )	
		update tbl_weekTop10 set id=id-1 where restID=@id
		select 1
	end
	else
		select -1
	return 
end
if(@operation='orderUp')
begin
	select top 1 @rid=restID from tbl_weekTop10 order by id desc
	if(@id<>@rid)
	begin
		update  tbl_weekTop10 set id=id-1 where  id= (select top 1 id from tbl_weekTop10 where id>(select top 1 id from tbl_weekTop10 where restID=@id) order by id )	
		update tbl_weekTop10 set id=id+1 where restID=@id
		select 1
	end
	else
		select -1
	return
end
GO
/****** :  StoredProcedure [dbo].[sp_Member_addArea]    ű: 02/01/2010 14:28:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[sp_Member_addArea]
@otherArea varchar(50),
@provinceID int,
@cityID int,
@regionID int,
@zoneID int,
@userID bigint,
@state int
as
		insert into tbl_area(name,provinceID,cityID,regionID,zoneID,userID,state) values
			(@otherArea,@provinceID,@cityID,@regionID,@zoneID,@userID,0)

select @@identity
GO
/****** :  StoredProcedure [dbo].[sp_Member_addGetPassword]    ű: 02/01/2010 14:28:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_Member_addGetPassword]
	@email varchar(50),
	@checkCode varchar(50)
AS
BEGIN
	SET NOCOUNT ON;

	Declare @UserId int
	Declare @Result int

	SELECT TOP 1 @UserId=id FROM tbl_user WHERE email=@email

	If @UserId > 0 Begin
		INSERT INTO tbl_getPasswordRecord (userID, email, checkCode)
			VALUES (@userId, @email, @checkCode)
		Set @Result = @@Identity
	End Else Begin
		Set @Result = 0
	End
	SELECT @Result
END


GO
/****** :  StoredProcedure [dbo].[sp_Member_addUserAddress]    ű: 02/01/2010 14:28:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







-- =============================================
-- Author:		<Venson>
-- Create date: <2007-6-27>
-- Description:	<Ͳ͵ַ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Member_addUserAddress] 
	@UserId BIGINT = 0,
	@TypeName VARCHAR(50) = '',
	@ContactPerson VARCHAR(100) = '',
	@ContactPhone VARCHAR(50) = '',
	@ContactMobile VARCHAR(50) = '',
	@AreaId INT = 0,
	@Address VARCHAR(50) = ''
AS
BEGIN

	IF (SELECT COUNT(Id) FROM tbl_userAddress WHERE UserId=@UserId AND ContactPerson=@ContactPerson
		AND ContactPhone=@ContactPhone AND ContactMobile=@ContactMobile AND AreaId=@AreaId
		AND Address=@Address) > 0
	BEGIN
		SELECT 1
		RETURN
	END
	BEGIN tran
	begin

--	WHILE (SELECT COUNT(Id) from tbl_userAddress where UserId=@UserId) > 2
--	BEGIN
--		DELETE FROM tbl_useraddress WHERE Id=(SELECT TOP 1 id FROM tbl_userAddress WHERE UserId=@UserId ORDER BY Id)
--	END
	if(SELECT COUNT(Id) from tbl_userAddress where UserId=@UserId)<3
	BEGIN
		INSERT INTO tbl_userAddress(userID, TypeName, ContactPerson, ContactPhone, ContactMobile, AreaId, Address)
		VALUES (@UserId, @TypeName, @ContactPerson, @ContactPhone, @ContactMobile, @AreaId, @Address)
	End

	IF @@ERROR = 0
	BEGIN
		COMMIT TRAN
		SELECT 1
	END
	ELSE
	BEGIN
		ROLLBACK TRAN
		SELECT 0
	END
END
end


GO
/****** :  StoredProcedure [dbo].[sp_Member_addUserImage]    ű: 02/01/2010 14:28:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_Member_addUserImage] 
@userID bigint,
@filePath varchar(100),
@domain varchar(50)
AS
	insert into tbl_userUploadFile(userID,filePath,domain) values(@userID,@filePath,@domain)
	
	select @@rowcount
	
	RETURN

GO
/****** :  StoredProcedure [dbo].[sp_Member_delFavorite]    ű: 02/01/2010 14:28:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_Member_delFavorite] 
	@Id int = 0
AS
BEGIN
	Declare @Result int

	SET NOCOUNT ON;

	DELETE FROM tbl_userFavorite WHERE id=@Id

	If @@Rowcount > 0 Begin
		Set @Result = 1
	End Else Begin
		Set @Result = 0
	End

	SELECT @Result
END

GO
/****** :  StoredProcedure [dbo].[sp_Member_delUserAddress]    ű: 02/01/2010 14:28:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Venson>
-- Create date: <2007-6-27>
-- Description:	<ɾͲ͵ַ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Member_delUserAddress]
	@id int
AS
BEGIN
	DECLARE @Result int

	SET NOCOUNT ON;
	begin
    BEGIN tran
	DELETE FROM tbl_userAddress WHERE id=@id

	IF @@Error > 0 BEGIN
		ROLLBACK TRAN
		SET @Result = 0
	END ELSE BEGIN
		COMMIT TRAN
		SET @Result = 1
	END
	SELECT @Result
	END
	END



GO
/****** :  StoredProcedure [dbo].[sp_Member_Favorite_append]    ű: 02/01/2010 14:28:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Venson>
-- Create date: <2007-7-17>
-- Description:	<ûղؼм¼>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Member_Favorite_append]
	@UserId INT = 0,
	@ClassId INT = 0,
	@Name varchar(8000) = '',
	@RestId INT = 0,
	@Url varchar(8000) = ''
AS
BEGIN
	SET NOCOUNT ON;

	DECLARE @Count INT
	DECLARE @Result INT

	SELECT @Count=COUNT(*) FROM tbl_userFavorite
	WHERE userID=@UserId AND classID=@ClassId AND restID=@RestId

	IF @Count = 0 BEGIN
		INSERT INTO tbl_userFavorite (userID, classID, [name], restID, url)
		VALUES (@UserId, @ClassId, @Name, @RestId, @Url)
		SET @Result = 0
		IF @@ROWCOUNT > 0 SET @Result = 1
	END ELSE BEGIN
		SET @Result = 1
	END

	SELECT @Result
END


GO
/****** :  StoredProcedure [dbo].[sp_Member_favorite_getList]    ű: 02/01/2010 14:28:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Venson>
-- Create date: <2007-7-17>
-- Description:	<ȡûղؼб>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Member_favorite_getList]
	@UserId INT = 0
AS
BEGIN
	SET NOCOUNT ON;

    SELECT
		Data.id AS Id,
		Data.userID AS UserId,
		Data.classID AS ClassId,
		Data.[name] AS [Name],
		Data.restID AS RestId,
		Data.url AS Url,
		Data.addTime AS AddTime,
		Rest.logoPhotoID AS RestLogoPhotoId,
		[dbo].[f_getShopBusinessStateStr](Rest.id) as BusinessStateStr
	FROM tbl_userFavorite AS Data
		INNER JOIN tbl_restaurant AS Rest ON Data.restID=Rest.id
	WHERE Data.userID=@UserId and Rest.State=1 and Rest.isDelete=0 and Rest.SClassId=3
END



GO
/****** :  StoredProcedure [dbo].[sp_Member_getAddressArea]    ű: 02/01/2010 14:28:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Venson>
-- Create date: <2007-6-25>
-- Description:	<ȡͲ͵ַArea>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Member_getAddressArea]
	@UserId int = 0,
	@ZoneId int = 0
AS
BEGIN
	SET NOCOUNT ON;

    SELECT Data.*,
		ISNULL(Map.mapX, 0) AS MapX,
		ISNULL(Map.mapY, 0) AS MapY
	FROM tbl_area AS Data LEFT JOIN
		tbl_areaMapInfo AS Map ON Map.areaID=Data.id
	WHERE zoneId=@ZoneId AND isDelete=0
		AND (state=1 OR userID=@UserId)
END


GO
/****** :  StoredProcedure [dbo].[sp_Member_getCity]    ű: 02/01/2010 14:28:43 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_Member_getCity]
@province varchar(3)
AS
	if(@province='' or @province='' or @province='' or @province='' or @province='̨' or @province='' or @province='')
		select * from regionAll where province=@province and class='c0'
	else if(@province<>'')
		select * from regionAll where  province=@province and class='d1'
	RETURN

GO
/****** :  StoredProcedure [dbo].[sp_Member_getCountry]    ű: 02/01/2010 14:28:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_Member_getCountry]
@class char(2)
AS
	select * from regionAll where class=@class order by code
	RETURN

GO
/****** :  StoredProcedure [dbo].[sp_Member_getFavorite]    ű: 02/01/2010 14:28:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_Member_getFavorite] 
	@UserId int = 0
AS
BEGIN
	SET NOCOUNT ON;

	SELECT Data.*, Rest.logoPhotoID
	FROM tbl_userFavorite AS Data INNER JOIN tbl_restaurant AS Rest ON Data.restID=Rest.id
	WHERE Data.userID=@UserId
END


GO
/****** :  StoredProcedure [dbo].[sp_Member_getFrieldTargetClass]    ű: 02/01/2010 14:28:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_Member_getFrieldTargetClass]
@tag varchar(100)
AS

declare @tl varchar(50)
declare @index int
declare @T table(tag varchar(40))
set @tag = ltrim((rtrim(@tag)))
set @index = charindex(',',@tag)
	while(@index<>0)
	begin
		set @tl = ltrim(rtrim(left(@tag, @index-1)))
		if @tl<>''
				insert into @T(tag) (select name from tbl_frieldTargetClass where id=@tl)

		set @tag = right(@tag, len(@tag) - @index)
		set @index = charindex(',' ,@tag)
	end
insert into @T(tag) (select name from tbl_frieldTargetClass where id=@tag)
select * from @T
GO
/****** :  StoredProcedure [dbo].[sp_Member_getFriendTargetClass]    ű: 02/01/2010 14:28:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_Member_getFriendTargetClass] 
AS
	SET NOCOUNT ON
	SELECT * FROM tbl_frieldTargetClass ORDER BY id

GO
/****** :  StoredProcedure [dbo].[sp_Member_getInterest]    ű: 02/01/2010 14:28:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Venson>
-- Create date: <2007-7-18>
-- Description:	<ȡûȤϢ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Member_getInterest]
	@UserId INT = 0
AS
BEGIN
	SET NOCOUNT ON;

    SELECT interest FROM tbl_userDetail WHERE id=@UserId
END

GO
/****** :  StoredProcedure [dbo].[sp_Member_getPasswordByEmail]    ű: 02/01/2010 14:28:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_Member_getPasswordByEmail]
	@email varchar(50)
AS
BEGIN
	SET NOCOUNT ON;
	SELECT TOP 1 id, password FROM tbl_user WHERE email=@email
END


GO
/****** :  StoredProcedure [dbo].[sp_Member_getRegionInfo]    ű: 02/01/2010 14:28:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE PROCEDURE [dbo].[sp_Member_getRegionInfo]
@code bigint,
@action int
AS
	SET NOCOUNT ON;
declare @sql varchar(8000)
set @sql='select * from '
if @action = 1
	set @sql = @sql + 'tbl_city where provinceID='
else if @action = 2
	set @sql = @sql + 'tbl_region where cityID='
else if @action = 3
	set @sql = @sql + 'tbl_zone where regionID='
else if @action = 4
	set @sql = @sql + 'tbl_area where isDelete=0 AND state=1 AND  zoneID='
set @sql = @sql + cast(@code as varchar(10))

exec (@sql)





GO
/****** :  StoredProcedure [dbo].[sp_Member_getSign]    ű: 02/01/2010 14:28:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_Member_getSign] 
	@userID bigint = 0
AS
BEGIN
	SET NOCOUNT ON;
	SELECT * FROM tbl_userSign WHERE userID=@userID
END


GO
/****** :  StoredProcedure [dbo].[sp_Member_getSimpleInfo]    ű: 02/01/2010 14:28:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Member_getSimpleInfo] 
	@UserId BIGINT = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    SELECT
		Data.id AS Id,
		Data.[Name],
		Data.password AS Password,
		Data.email AS Email,
		Data.nickName AS NickName,
		Data.sex AS Sex,
		Data.regTime AS RegTime,
		Data.photo AS Photo,
		Data.provinceID AS ProvinceId,
		Data.cityID AS CityId
	FROM
		tbl_user AS Data
	WHERE Data.id=@UserId
END

GO
/****** :  StoredProcedure [dbo].[sp_Member_getSystemHeadPhotoList]    ű: 02/01/2010 14:28:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_Member_getSystemHeadPhotoList] 
AS
BEGIN
	SET NOCOUNT ON;
	SELECT
		id AS Id,
		classID AS ClassId,
		[name] AS [Name],
		photoID AS PhotoId,
		ISNULL(note, '') AS Note
	FROM tbl_SystemHeadPortrait
END


GO
/****** :  StoredProcedure [dbo].[sp_Member_getUserAddressById]    ű: 02/01/2010 14:28:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Venson>
-- Create date: <2007-6-27>
-- Description:	<ȡͲ͵ַ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Member_getUserAddressById]
	@Id INT = 0,
	@UserId INT = 0
AS
BEGIN
	SET NOCOUNT ON;
	SELECT Data.id, Data.userID, Data.TypeName, Data.AreaId, Area.Name AS AreaName,
		Region.Id AS RegionId, Region.Name AS RegionName,
		Data.ContactPerson, Data.ContactPhone, Data.ContactMobile, Data.PostTime,
		Data.address
	FROM dbo.tbl_userAddress AS Data
		INNER JOIN tbl_area as Area on Area.id=Data.AreaId
		INNER JOIN tbl_region as Region ON Region.id=Area.regionId
	WHERE Area.isDelete=0 AND Area.id=Area.parentId AND Area.state=1 AND Data.Id=@Id AND Data.UserId=@UserId
	ORDER BY Data.id DESC
END










GO
/****** :  StoredProcedure [dbo].[sp_Member_getUserAddressList]    ű: 02/01/2010 14:28:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		<Venson>
-- Create date: <2008-4-5>
-- Description:	<ȡûͲ͵ַб>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Member_getUserAddressList]
	@userID bigint = 1814
AS
BEGIN
	SET NOCOUNT ON;
	SELECT TOP 3 Data.id, Data.userID, Data.TypeName, Data.AreaId, Area.Name AS AreaName,
		Region.Id AS RegionId, Region.Name AS RegionName,
		Data.ContactPerson, Data.ContactPhone, Data.ContactMobile, Data.PostTime,
		Data.address,Area.photoId,Area.address as areaAddress
	FROM dbo.tbl_userAddress AS Data
		INNER JOIN tbl_area as Area on Area.id=Data.AreaId
		INNER JOIN tbl_region as Region ON Region.id=Area.regionId
	WHERE Area.isDelete=0 AND Area.id=Area.parentId AND Area.state=1 AND Data.UserId=@userID
	ORDER BY Data.id DESC
END









GO
/****** :  StoredProcedure [dbo].[sp_Member_getUserByPage]    ű: 02/01/2010 14:28:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_Member_getUserByPage]
@id bigint
AS

select tb.postTime,tb.[content],tb.postUserID userID,tb.userName nickName,tu.photo,td.interest,ra.name city from 
	(tbl_user tu join tbl_userLeaveBoard tb on tu.id=tb.postUserID) left join tbl_userDetail td on tu.id=td.id
left join regionAll ra on code=tu.regionID where tb.isDelete=0 and tb.userID=@id and tb.class=0 order by postTime desc
select @@rowcount
	RETURN
GO
/****** :  StoredProcedure [dbo].[sp_Member_getUserByTop]    ű: 02/01/2010 14:28:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_Member_getUserByTop] 
@top int
AS
 DECLARE @sql VARCHAR(8000)
set   @sql='select top '+cast(@top   as   varchar)+' tu.*,ra.name city,ti.integral,td.truename  from ((tbl_user tu left join regionAll ra on tu.regionID = ra.code) 
	left join tbl_userIntegral ti on tu.id = ti.userID) join tbl_userDetail td on tu.id=td.id
 where photo <> 0 order by newid()'  
		 
  EXEC (@sql)  
 
	RETURN
GO
/****** :  StoredProcedure [dbo].[sp_Member_getUserDetailInfo]    ű: 02/01/2010 14:28:56 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_Member_getUserDetailInfo]
(
	@id bigint
)
AS
	SET NOCOUNT ON;
/*ע͵*/
/*
SELECT tbl_userDetail.id, tbl_userDetail.trueName, tbl_userDetail.school, 
      tbl_userDetail.speciality, tbl_userDetail.enrollmentTime, tbl_userDetail.graduateTime, 
      tbl_userDetail.company, tbl_userDetail.workContent, tbl_userDetail.duty, 
      tbl_userDetail.privacyClass, tbl_userDetail.cardID, tbl_userDetail.phone, 
      tbl_userDetail.mobile, tbl_userDetail.fax, tbl_userDetail.msn, tbl_userDetail.qq, 
      tbl_userDetail.netContact, tbl_userDetail.birthDay, tbl_userDetail.address, 
      tbl_userDetail.postcode, tbl_userDetail.question, tbl_userDetail.answer, 
      tbl_userDetail.interest, tbl_userDetail.smoking, 
      tbl_userDetail.drinking, tbl_userDetail.faith, tbl_userDetail.note, 
      tbl_userDetail.browseAmount, tbl_userDetail.uploadSize, tbl_userDetail.MarryState, 
      tbl_userDetail.frieldTarget, tbl_userDetail.spaceName, tbl_userDetail.myExercise, tbl_userDetail.myMusics,
      tbl_userDetail.myPlay, tbl_userDetail.myTour, tbl_userIntegral.integral, 
      tbl_user.Name, tbl_user.sex, tbl_user.email, tbl_user.nickName,tbl_user.regionID,
      tbl_user.regTime,regionAll.[name] city
FROM tbl_userIntegral INNER JOIN
      tbl_user ON tbl_userIntegral.userID = tbl_user.id INNER JOIN
      tbl_userDetail ON tbl_user.id = tbl_userDetail.id LEFT OUTER JOIN
      regionAll ON tbl_user.regionID = regionAll.code
WHERE (tbl_user.id = @id)
*/
SELECT * FROM tbl_userDetail WHERE id=@id

GO
/****** :  StoredProcedure [dbo].[sp_Member_getUserInfo]    ű: 02/01/2010 14:28:57 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE PROCEDURE [dbo].[sp_Member_getUserInfo]
	@id bigint
AS
	SET NOCOUNT ON
	SELECT Data.*,
		(SELECT TOP 1 [name] FROM tbl_city WHERE id=Data.cityID) AS CityName,
		Detail.trueName, Detail.birthDay, Detail.mobile, Detail.phone,
		Detail.qq, Detail.msn, Detail.note, Detail.frieldTarget,
		Detail.interest, Detail.privacyClass, Detail.smoking,
		Detail.drinking, Detail.faith,Data.iscs
	FROM tbl_user AS Data, tbl_userDetail AS Detail
	WHERE Data.id=@id AND Data.id=Detail.id





GO
/****** :  StoredProcedure [dbo].[sp_Member_Integral_GetDetailList]    ű: 02/01/2010 14:28:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go


Create PROCEDURE [dbo].[sp_Member_Integral_GetDetailList]
	@id int=0,
	@UserId int = 0,
	@Source int = 100,
	@startDate varchar(20)='',
	@endDate varchar(20)='',
	@type int =0--0ȫ ,1ƹ,2
AS
BEGIN
	SET NOCOUNT ON;

	Declare @Sql varchar(8000)
	Declare @Where varchar(8000)
	set @Where=' where 1=1'
	Set @Sql = 'SELECT tbl_user.email,tbl_userIntegralDetail.id,userID,source,tbl_integralDetailClass.name,amount,tbl_userIntegralDetail.note,getTime,orderID,tbl_userIntegralDetail.leaveAmount FROM tbl_userIntegralDetail left join tbl_integralDetailClass on tbl_userIntegralDetail.source = tbl_integralDetailClass.id left join tbl_user on tbl_userIntegralDetail.userid=tbl_user.id'
	if @id>0
		set @where =@where+ ' and tbl_userIntegralDetail.id=' + CAST(@id AS varchar(8000))	
	if @userID>0
		Set @Where = @Where + ' AND userId=' + CAST(@UserId AS varchar(10))
	if len(@startDate)>0 and len(@endDate)>0
		Set @Where = @Where + ' AND getTime between convert(dateTime,''' + @startDate +''') and dateAdd(d,1,convert(dateTime,''' + @endDate + '''))'
	if @Source <> 1000
	Set @Where = @Where +' and source = '+ str(@source) +''
	if @type=1
	set @where = @where +' and (abs(source)=14 or abs(source) =13 or abs(source)=12 or abs(source)=11 or abs(source)=9 or abs(source)=8 or abs(source)=2 or source=0 or source=15)'
	if @type=2
	set @where = @where +' and (abs(source)=10 or abs(source)=7 or abs(source)=6 or abs(source)=4 or abs(source)=3 or abs(source)=1 )'
	Set @Sql = @Sql + @Where + ' ORDER BY tbl_userIntegralDetail.id DESC'
	exec (@Sql)
	SELECT @@Rowcount
END










GO
/****** :  StoredProcedure [dbo].[sp_Member_Integral_GetRestValue]    ű: 02/01/2010 14:28:59 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_Member_Integral_GetRestValue]
	@UserId int = 0,
	@RestId int = 0
AS
BEGIN
	SET NOCOUNT ON;

	Declare @Result int
	SELECT @Result=integral FROM tbl_userRestIntegral WHERE userID=@UserId AND RestID=@RestId
	If @@Rowcount = 0 Set @Result = 0
END


GO
/****** :  StoredProcedure [dbo].[sp_Member_Integral_GetValue]    ű: 02/01/2010 14:29:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE  PROCEDURE [dbo].[sp_Member_Integral_GetValue] 
	@UserId int = 0
AS
BEGIN
	SET NOCOUNT ON;
    
	Declare @Result int,@expendIntegral int,@spreadIntegral INT,@usedIntegral INT
	if @UserId=0
	begin
		SELECT @Result=isnull(sum(integral),0),@expendIntegral=isnull(sum(expendIntegral),0),@spreadIntegral=isnull(sum(spreadIntegral),0),@usedIntegral=isnull(sum(usedIntegral),0) FROM tbl_userIntegral
	end
	else
	begin
		SELECT @Result=integral,@expendIntegral=expendIntegral,@spreadIntegral=spreadIntegral,@usedIntegral=usedIntegral FROM tbl_userIntegral WHERE userID=@UserId
	end
	If @@Rowcount = 0 begin
		 Set @Result=0
		 Set @expendIntegral=0
		 Set @spreadIntegral=0
		 SET @usedIntegral = 0
	end
	SELECT @Result as integral,@expendIntegral as expendIntegral,@spreadIntegral as spreadIntegral,@usedIntegral AS usedIntegral
END





Go






GO
/****** :  StoredProcedure [dbo].[sp_Member_Integral_Update]    ű: 02/01/2010 14:29:03 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE PROCEDURE [dbo].[sp_Member_Integral_Update]
	@UserId int = 0,
	@RestId int = 0,
	@Source int = 1,
	@Integral int = 0,
	@Note text ='',
	@OrderId int = 0,
	@IntegralClassID int=0, --0ΪûС1Ϊѻ֡2Ϊƹ
	
	@adminID int = 0,
	@content varchar(8000)=''
AS
BEGIN
	SET NOCOUNT ON;
	
	Declare @Result int
	Declare @Count int
	Declare @historyRecord varchar(4000)
	Declare @spResult int
/*tbl_userIntegralDetail:
@Source:
0Ϊעû,1Ϊͻû,2ΪƼûͻû
-1Ϊͳ,-2ΪƼûͳ,-6Ϊٶ
[sp_Member_Integral_UpdateNoReturn] @UserId,@RestId,@Source,@Integral,@Note,@OrderId,@IntegralClassID*/

	SET XACT_ABORT ON  --  try  

    BEGIN tran
	if @adminID > 0 begin
      set @historyRecord =''
		exec sp_systemLogAdd @adminID,1,@content,@historyRecord,@spResult output
	end else begin set @spResult = 1 end
	if @spResult =1 
	begin
		if @userID>0 begin
			INSERT INTO tbl_userIntegralDetail (userID, source, amount, note, orderID) VALUES (@UserId, @Source,
			@Integral, @Note, @OrderId)	
			SELECT @Count=Count(*) FROM tbl_userIntegral WHERE userID=@UserId
			If @Count > 0 Begin
				if @IntegralClassID=0
					UPDATE tbl_userIntegral SET integral=integral+@Integral WHERE userID=@UserId
				else if @IntegralClassID=1 begin--1Ϊѻ
					UPDATE tbl_userIntegral SET expendIntegral=expendIntegral+@Integral WHERE userID=@UserId
				end	else if @IntegralClassID=2 begin--2Ϊƹ
					UPDATE tbl_userIntegral SET spreadIntegral=spreadIntegral+@Integral WHERE userID=@UserId				
				end
				update tbl_userIntegral set integral=expendIntegral+spreadIntegral where userID=@UserId
			End Else Begin
				if @IntegralClassID=0
					INSERT INTO tbl_userIntegral (userID, integral) VALUES (@UserId, @Integral)
				else if @IntegralClassID=1
					INSERT INTO tbl_userIntegral (userID, integral,expendIntegral,spreadIntegral) VALUES (@UserId, @Integral,@Integral,0)
				else if @IntegralClassID=2
					INSERT INTO tbl_userIntegral (userID, integral,expendIntegral,spreadIntegral) VALUES (@UserId, @Integral,0,@Integral)
			End
		end
	end
	set @Result =1 
end  
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END


SELECT @Result


GO

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

create PROCEDURE [dbo].[sp_Member_modifyBasicInfo]
	@id bigint = 0,
	@nickName varchar(16),
	@sex int,
	@provinceID int,
	@cityID int,
	@trueName varchar(20),
	@birthDay datetime,
	@mobile varchar(15),
	@phone varchar(20),
	@msn varchar(40),
	@qq varchar(15),
	@note text,
	@privacyClass INT,
	@Email varchar(8000)
AS
	DECLARE @Result int
	BEGIN
	BEGIN tran
	UPDATE tbl_user SET nickName=@nickName, sex=@sex, provinceID=@provinceID,Email=@Email
		, cityID=@cityID WHERE id=@id
	UPDATE tbl_userDetail SET trueName=@trueName, birthDay=@birthDay, mobile=@mobile
		, phone=@phone, msn=@msn, qq=@qq, note=@note
		, privacyClass=@privacyClass WHERE id=@id
	IF @@error > 0 BEGIN
		ROLLBACK TRAN
		SET @Result = 0
	END ELSE BEGIN
		COMMIT TRAN
		SET @Result = 1
	END
	SELECT @Result
	end




GO
/****** :  StoredProcedure [dbo].[sp_Member_modifyFriendTarget]    ű: 02/01/2010 14:29:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_Member_modifyFriendTarget] 
	@id bigint = 0,
	@friendTarget varchar(50) = ''
AS
BEGIN
	SET NOCOUNT ON;

	UPDATE tbl_userDetail SET frieldTarget=@friendTarget WHERE id=@id
	select @@rowcount
END



GO
/****** :  StoredProcedure [dbo].[sp_Member_modifyInterest]    ű: 02/01/2010 14:29:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Venson>
-- Create date: <2007-7-18>
-- Description:	<ûȤϢ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Member_modifyInterest]
	@UserId BIGINT = 0,
	@Interest varchar(4000)
AS
BEGIN
	SET NOCOUNT ON

	DECLARE @Result INT

	SET @Result = 0
	UPDATE tbl_userDetail SET interest=@interest WHERE id=@UserId
	
	IF @@ROWCOUNT > 0 SET @Result = 1

	SELECT @Result
END
GO
/****** :  StoredProcedure [dbo].[sp_Member_modifyPassword]    ű: 02/01/2010 14:29:13 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_Member_modifyPassword]
	@id bigint = 0,
	@password varchar(32)	
AS
BEGIN
	SET NOCOUNT ON;
	UPDATE tbl_user SET password=@password WHERE id=@id
	SELECT @@rowcount
END



GO
/****** :  StoredProcedure [dbo].[sp_Member_modifySign]    ű: 02/01/2010 14:29:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_Member_modifySign]
	@userID bigint,
	@sign varchar(100),
	@note varchar(200)
AS
BEGIN
	SET NOCOUNT ON;
	DECLARE @Count int
	SELECT @Count=Count(userID) FROM tbl_userSign WHERE userID=@userID
	IF @Count = 0 BEGIN
		INSERT INTO tbl_userSign (userID, [sign], note) VALUES (@userID, @sign, @note)
	END ELSE BEGIN
		UPDATE tbl_userSign SET [sign]=@sign, note=@note WHERE userID=@userID
	END
	SELECT @@RowCount
END

GO
/****** :  StoredProcedure [dbo].[sp_Member_modifyUserAddress]    ű: 02/01/2010 14:29:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Venson>
-- Create date: <2007-6-27>
-- Description:	<޸Ͳ͵ַ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Member_modifyUserAddress]
	@Id INT = 0,
	@UserId BIGINT = 0,
	@TypeName VARCHAR(50) = '',
	@ContactPerson VARCHAR(100) = '',
	@ContactPhone VARCHAR(50) = '',
	@ContactMobile VARCHAR(50) = '',
	@AreaId INT = 0,
	@Address VARCHAR(50) = ''
AS
BEGIN
	UPDATE tbl_userAddress SET TypeName=@TypeName, ContactPerson=@ContactPerson, ContactPhone=@ContactPhone,
		ContactMobile=@ContactMobile, AreaId=@AreaId, Address=@Address, PostTime=Getdate()
	WHERE Id=@Id AND UserId=@UserId

	IF @@ROWCOUNT > 0
		SELECT 1
	ELSE
		SELECT 0
END







GO
/****** :  StoredProcedure [dbo].[sp_Member_modifyUserNote]    ű: 02/01/2010 14:29:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_Member_modifyUserNote]
@id bigint,
@note text,
@interest varchar(200)
AS
	update tbl_userDetail set note=@note,interest=@interest where id=@id
	select @@rowcount
	RETURN

GO
/****** :  StoredProcedure [dbo].[sp_Member_nickNameValidate]    ű: 02/01/2010 14:29:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_Member_nickNameValidate]
@name varchar(16),
@id bigint = -1
AS
	if(@id='-1')
		select count(*) from tbl_user where nickname=@name and state=0
	else
		select count(*) from tbl_user where nickname=@name and id<>@id and state=0
	RETURN


GO
/****** :  StoredProcedure [dbo].[sp_Member_Order_getTodayOrder]    ű: 02/01/2010 14:29:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_Member_Order_getTodayOrder]
	@UserId bigint = 0
AS
BEGIN
	SET NOCOUNT ON;

    Declare @Today varchar(20)

	Set @Today=datename(yyyy,getdate())+'-'+datename(mm,getdate())+'-'+datename(dd,getdate())
	SELECT Data.*, Rest.name AS RestName
	FROM tbl_order AS Data INNER JOIN tbl_restaurant AS Rest ON Rest.id=Data.restID
	WHERE Data.userID=@UserId
	--AND Datename(yyyy,Data.date_time)+'-'+Datename(mm,Data.date_time)+'-'+Datename(dd,Data.date_time)=@Today
	ORDER BY Data.date_time DESC
END


GO
/****** :  StoredProcedure [dbo].[sp_Member_Order_getTodaySuiteMenuOrder]    ű: 02/01/2010 14:29:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_Member_Order_getTodaySuiteMenuOrder]
	@UserId bigint = 0
AS
BEGIN
	SET NOCOUNT ON;

    Declare @Today varchar(20)

	Set @Today=datename(yyyy,getdate())+'-'+datename(mm,getdate())+'-'+datename(dd,getdate())
	SELECT Data.*, Rest.name AS RestName
	FROM tbl_suiteMenuOrder AS Data JOIN tbl_restaurant AS Rest ON Rest.id=Data.restID
	WHERE Data.userID=@UserId
	--AND Datename(yyyy,Data.date_time)+'-'+Datename(mm,Data.date_time)+'-'+Datename(dd,Data.date_time)=@Today
	ORDER BY Data.date_time DESC
END


GO
/****** :  StoredProcedure [dbo].[sp_Member_resetGetPassword]    ű: 02/01/2010 14:29:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_Member_resetGetPassword]
	@Id int,
	@Password varchar(32),
	@CheckCode varchar(50)
AS
/*1:ɹ0:ʧ*/
BEGIN
BEGIN tran
	SET NOCOUNT ON;

	Declare @Count int
	Declare @UserId bigint
	Declare @Result int

	SELECT @Count=Count(*) FROM tbl_getPasswordRecord
	WHERE sendTime>dateadd(day,-3,getDate()) AND isReset=0
		AND id=@Id AND checkCode=@CheckCode

	If @Count = 1 Begin
		UPDATE tbl_getPasswordRecord SET resetTime=GetDate(), isReset=1 WHERE id=@Id
		SELECT @UserId=userID FROM tbl_getPasswordRecord WHERE id=@Id
		UPDATE tbl_user SET [password]=@Password WHERE id=@UserId
		If @@Error > 0 Begin
			Set @Result = 0
			Rollback Tran
		End Else Begin
			Set @Result = 1
			Commit Tran
		End
	End Else Begin
		Set @Result = 0
	End

	SELECT @Result

END

GO
/****** :  StoredProcedure [dbo].[sp_Member_RestCollect_append]    ű: 02/01/2010 14:29:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_Member_RestCollect_append]
	@Name varchar(40),
	@Phone varchar(20),
	@Principal varchar(20),
	@Address varchar(50),
	@DeliverInfo varchar(15),
	@LinkInfo varchar(15),
	@UserID bigint
AS
BEGIN
	SET NOCOUNT ON;
	
	Declare @Result int

	INSERT INTO tbl_restInfoCollect (name, phone, principal, address, deliverInfo,
		LinkInfo, userID) VALUES (@Name, @Phone, @Principal, @Address, @DeliverInfo,
		@LinkInfo, @UserID)
	
	If @@Rowcount > 0 Begin
		Set @Result = 1
	End Else Begin
		Set @Result = 0
	End
	
	SELECT @Result
END



GO
/****** :  StoredProcedure [dbo].[sp_Member_RestCollect_getInfo]    ű: 02/01/2010 14:29:24 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Venson>
-- Create date: <2007-8-11>
-- Description:	<ȡûƼ͹Ϣ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Member_RestCollect_getInfo]
	@Id INT = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    SELECT * FROM v_Member_RestCollect WHERE id=@Id
END

GO
/****** :  StoredProcedure [dbo].[sp_Member_RestCollect_getList]    ű: 02/01/2010 14:29:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Venson>
-- Create date: <2007-8-9>
-- Description:	<ȡûƼ͹б>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Member_RestCollect_getList] 
	--״̬(0:֤, 1:֤ͨ, -1:֤δͨ, -2:ȫ)
	@State INT = -2,
	@UserId BIGINT = 0,
	@PageIndex INT = 1,
	@PageSize INT = 1
AS
BEGIN

	SET NOCOUNT ON;

    DECLARE @StateStr varchar(8000)
	DECLARE @UserIdStr varchar(8000)

	DECLARE @Sql nvarchar(4000)
	DECLARE @Where varchar(8000)

	DECLARE @TotalCount INT
	DECLARE @TotalPage INT
	DECLARE @StartRowId INT
    DECLARE @EndRowId INT

	SET @StateStr = CAST(@State AS varchar(8000))
	SET @UserIdStr = CAST(@UserId AS varchar(8000))

	SET @Where = ''
	IF @State <> -2 OR @UserId > 0 BEGIN
		SET @Where = 'WHERE '
		IF @State <> -2 SET @Where = @Where + 'state=' + @StateStr + ' AND '
		IF @UserId > 0 SET @Where = @Where + 'userID=' + @UserIdStr + ' AND '
		SET @Where = SUBSTRING(@Where, 1, LEN(@Where)-4)
	END

	--TotoalCount
	SET @Sql = N'SELECT @TotalCountOut=Count(id) FROM v_Member_RestCollect ' + @Where
	EXEC sp_executesql @Sql, N'@TotalCountOut INT OUTPUT', @TotalCountOut=@TotalCount OUTPUT

	--TotalPage
	SET @TotalPage = CEILING((@TotalCount + 0.0) / @PageSize)
	
	--CheckPageIndex
	IF @PageIndex < 1 SET @PageIndex = 1
	IF @PageIndex > @TotalPage SET @PageIndex = @TotalPage

	--RowRange
    SET @StartRowId = (@PageIndex - 1) * @PageSize + 1
    set @EndRowId = @StartRowId + @PageSize - 1

	--PagedTable
	SET @Sql = 'SELECT * FROM (SELECT *, () OVER(ORDER BY id DESC) as RowId FROM v_Member_RestCollect ' + @Where
	SET @Sql = @Sql + ') AS T WHERE RowId BETWEEN ' + CAST(@StartRowId AS VARCHAR(50)) + ' AND ' + CAST(@EndRowId AS VARCHAR(50))
	
	--Output table
	EXEC (@Sql)

	--Output pageinfo
	SELECT @PageIndex AS PageIndex, @PageSize AS PageSize, @TotalCount AS TotalCount, @TotalPage AS TotalPage


END


GO
/****** :  StoredProcedure [dbo].[sp_Member_RestCollect_update]    ű: 02/01/2010 14:29:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Venson>
-- Create date: <2007-8-11>
-- Description:	<ûƼ͹>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Member_RestCollect_update]
	@Id INT = 0,
	@State INT = 0,
	@Feedback varchar(8000) = ''
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    DECLARE @Result INT

	UPDATE tbl_restInfoCollect SET state=@State, feedback=@Feedback
	WHERE id=@Id

	IF @@ROWCOUNT > 0
		SET @Result = 1
	ELSE
		SET @Result = 0

	SELECT @Result
END

GO
/****** :  StoredProcedure [dbo].[sp_Member_searchUser]    ű: 02/01/2010 14:29:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_Member_searchUser] 
@nickName varchar(52),
@school varchar(52),
@sex int,
@age int,
@aim int,
@action varchar(10)

AS
	if @action ='nickname'
	begin
		set @nickName = '%' + @nickName + '%'
		select tu.id,tu.nickName,tu.photo,td.school from tbl_user tu join tbl_userDetail td on tu.id=td.id where nickName like @nickName and state = 0
	end
	else if @action='email'
	begin
		set @nickName = '%' + @nickName + '%'
		select tu.id,tu.nickName,tu.photo,td.school from tbl_user tu join tbl_userDetail td on tu.id=td.id where email like @nickName and state = 0
	end
	else if @action='school'
	begin
		set @school = '%' + @school + '%'
		select tu.id,tu.nickName,tu.photo,td.school from tbl_user tu join tbl_userDetail td on tu.id=td.id where school like @school and state = 0
	end
	else if @action='detail'
	begin
		declare @sql varchar(8000)
		set @sql = 'select tu.id,tu.nickName,tu.photo,td.school from tbl_user tu join tbl_userDetail td on tu.id=td.id where 1=1 '
		if @sex <> -1
			set @sql = @sql + ' and tu.sex = ' + str(@sex)
			
		if @age <> 0
		begin
			declare @mysex varchar(200)
			set @mysex = 'datename(yyyy,getdate())*1 - datename(yyyy,td.birthDay)*1'
			if @age = 1
				set @sql = @sql + ' and ' + @mysex + '<=15'
			else if @age = 2
				set @sql = @sql + ' and ' + @mysex + '>15 and ' + @mysex + '<=20'
			else if @age = 3
				set @sql = @sql + ' and ' + @mysex + '>20 and ' + @mysex + '<=25'
			else if @age = 4
				set @sql = @sql + ' and ' + @mysex + '>25 and ' + @mysex + '<=30'
			else if @age = 5
				set @sql = @sql + ' and ' + @mysex + '>30 and ' + @mysex + '<=40'
			else if @age = 6
				set @sql = @sql + ' and ' + @mysex + '>41'
		end
		
		if @aim <> -1
			set @sql = @sql + ' and td.frieldTarget = ' + str(@aim)
		exec (@sql)
	end
	else
		select tu.id,tu.nickName,tu.photo,td.school from tbl_user tu join tbl_userDetail td on tu.id=td.id where state = 0
	select @@rowcount
	RETURN
GO
/****** :  StoredProcedure [dbo].[sp_Member_setHeadPhoto]    ű: 02/01/2010 14:29:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_Member_setHeadPhoto]
	@UserId bigint = 0,
	@PhotoId bigint = 0
AS
BEGIN
	SET NOCOUNT ON;

	Declare @Result int

	UPDATE tbl_user SET photo=@PhotoId WHERE id=@UserId
	
	If @@Rowcount > 0 Begin
		Set @Result = 1
	End Else Begin
		Set @Result = 0
	End

	SELECT @Result

END

GO
/****** :  StoredProcedure [dbo].[sp_Member_SimpleInfo_getInfoByEmail]    ű: 02/01/2010 14:29:30 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- =============================================
-- Author:		<Venson>
-- Create date: <2007-9-11>
-- Description:	<ȡûϢByEmail>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Member_SimpleInfo_getInfoByEmail]
	@Email VARCHAR(255) = 'xiangfanwangjun@163.com',
	@IsLike int=0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	if @IsLike=0 
		SELECT TOP 1
			Data.id AS Id,
			Data.[Name],
			Data.password AS Password,
			Data.email AS Email,
			Data.nickName AS NickName,
			Data.sex AS Sex,
			Data.regTime AS RegTime,
			Data.photo AS Photo,
			Data.provinceID AS ProvinceId,
			Data.cityID AS CityId,
            Data.UserRate as UserRate,
			Integral.Integral,
			Integral.expendIntegral,
			Integral.spreadIntegral
		FROM
			tbl_user AS Data LEFT JOIN tbl_userIntegral AS Integral
			ON Integral.userID=Data.id
		WHERE Data.email=@Email AND state=0
	else 
		SELECT TOP 1
			Data.id AS Id,
			Data.[Name],
			Data.password AS Password,
			Data.email AS Email,
			Data.nickName AS NickName,
			Data.sex AS Sex,
			Data.regTime AS RegTime,
			Data.photo AS Photo,
			Data.provinceID AS ProvinceId,
			Data.cityID AS CityId,
            Data.UserRate as UserRate,
			Integral.Integral,
			Integral.expendIntegral,
			Integral.spreadIntegral
		FROM
			tbl_user AS Data LEFT JOIN tbl_userIntegral AS Integral
			ON Integral.userID=Data.id
		WHERE Data.email like '%' + @Email + '%' AND state=0
END







GO
/****** :  StoredProcedure [dbo].[sp_Member_SimpleInfo_getInfoById]    ű: 02/01/2010 14:29:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







-- =============================================
-- Author:		<Venson>
-- Create date: <2007-7-18>
-- Description:	<ȡûϢ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Member_SimpleInfo_getInfoById] 
	@UserId INT = 0
AS
BEGIN
	SET NOCOUNT ON;

    SELECT
		Data.id AS Id,
		Data.[Name],
		Data.password AS Password,
		Data.email AS Email,
		Data.nickName AS NickName,
		Data.sex AS Sex,
        Data.UserRate as UserRate,
		Data.regTime AS RegTime,
		Data.photo AS Photo,
		Data.photo2 AS Photo2,
		Data.photo3 AS Photo3,
		Data.provinceID AS ProvinceId,
		Data.cityID AS CityId,
		isnull(Integral.Integral,0) AS Integral
	FROM
		tbl_user AS Data LEFT JOIN tbl_userIntegral AS Integral
		ON Integral.userID=Data.id
	WHERE Data.id=@UserId
END








GO
/****** :  StoredProcedure [dbo].[sp_Member_SimpleInfo_getInfoByName]    ű: 02/01/2010 14:29:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Venson>
-- Create date: <2007-8-14>
-- Description:	<ȡûϢByû>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Member_SimpleInfo_getInfoByName]
	@Name varchar(8000) = ''
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    SELECT
		Data.id AS Id,
		Data.[Name],
		Data.password AS Password,
		Data.email AS Email,
		Data.nickName AS NickName,
		Data.sex AS Sex,
		Data.regTime AS RegTime,
		Data.photo AS Photo,
		Data.provinceID AS ProvinceId,
		Data.cityID AS CityId,
		Integral.Integral
	FROM
		tbl_user AS Data LEFT JOIN tbl_userIntegral AS Integral
		ON Integral.userID=Data.id
	WHERE Data.[Name]=@Name AND state=0
END




GO
/****** :  StoredProcedure [dbo].[sp_Member_userCssOnlySetting]    ű: 02/01/2010 14:29:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_Member_userCssOnlySetting]
@userID bigint,
@col varchar(20),
@value varchar(20)
AS
declare @sql varchar(2000)

if exists(select * from tbl_userCss where userID=@userID)
	set @sql = 'update tbl_userCss set ' + @col + '=''' + @value + ''' where userID=' + cast(@userID as varchar(20))
else
	set @sql = 'insert into tbl_userCss(userID,' + @col + ') values (' + cast(@userID as varchar(20)) + ',''' + @value + ''')'
	exec (@sql)
select @@rowcount

GO
/****** :  StoredProcedure [dbo].[sp_Member_userCssSetting]    ű: 02/01/2010 14:29:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_Member_userCssSetting]
@userID bigint,
@bgColor varchar(10),
@bgPhoto bigint,
@borderColor varchar(10),
@borderStyle varchar(10),
@borderWidth int,
@titleBgColor varchar(10),
@titleBgPhoto bigint,
@titleBgPhotoTran int,
@titleFontColor varchar(10),
@contentBgColor varchar(10),
@contentBgPhoto bigint,
@contentFontColor varchar(10),
@contentLinkColor varchar(10),
@contentLinkActive varchar(10),
@mouseStyle varchar(10)
AS
declare @result bigint
if exists(select * from tbl_userCss where userID=@userID)
	update tbl_userCss set bgColor=@bgColor,bgPhoto=@bgPhoto,BorderColor=@borderColor,borderStyle=@borderStyle,
borderWidth=@borderWidth,titleBGColor=@titleBgColor,titleBGPhoto=@titleBgPhoto,titleBGPhotoTran=@titleBgPhotoTran,
titleFontColor=@titleFontColor,contentBGColor=@contentBgColor,contentBGPhoto=@contentBgPhoto,
contentFontColor=@contentFontColor,contentLinkColor=@contentLinkColor,contentLinkActive=@contentLinkActive,
mouseStyle=@mouseStyle where userID=@userID
else
	insert into tbl_userCss(userID,bgColor,bgPhoto,borderColor,borderStyle,borderWidth,titleBgColor,
		titleBgPhoto,titleBgPhotoTran,titleFontColor,contentBgColor,contentBgPhoto,contentFontColor,
		contentLinkColor,contentLinkActive,mouseStyle) values
	(
		@userID,@bgColor,@bgPhoto,@borderColor,@borderStyle,@borderWidth,@titleBgColor,
		@titleBgPhoto,@titleBgPhotoTran,@titleFontColor,@contentBgColor,@contentBgPhoto,@contentFontColor,
		@contentLinkColor,@contentLinkActive,@mouseStyle
	)
select @@rowcount
GO
/****** :  StoredProcedure [dbo].[sp_Member_userEmailValidate]    ű: 02/01/2010 14:29:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_Member_userEmailValidate]
@email varchar(32),
@id bigint
AS
	if(@id='-1')
		select count(*) from tbl_user where email=@email and state=0
	else
		select count(*) from tbl_user where email=@email and id <> @id and state=0
	RETURN



GO
/****** :  StoredProcedure [dbo].[sp_Member_UserNameValidate]    ű: 02/01/2010 14:29:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_Member_UserNameValidate]
@name varchar(16),
@id bigint
AS
	if(@id='-1')
		select count(*) from tbl_user where [name]=@name
	else
		select count(*) from tbl_user where [name]=@name and id<>@id
	RETURN


GO
/****** :  StoredProcedure [dbo].[sp_Member_V3User_LoginInfo_update]    ű: 02/01/2010 14:29:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Venson>
-- Create date: <2007-8-14>
-- Description:	<V3û¼Ϣ(дEmail)>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Member_V3User_LoginInfo_update]
	@UserId BIGINT = 0,
	@Email varchar(8000) = ''
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    DECLARE @Result INT

	UPDATE tbl_user SET email=@Email WHERE id=@UserId

	IF @@ROWCOUNT > 0
		SET @Result = 1
	ELSE
		SET @Result = 0

	SELECT @Result
END


GO
/****** :  StoredProcedure [dbo].[sp_MenuClass_add]    ű: 02/01/2010 14:29:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE PROCEDURE [dbo].[sp_MenuClass_add]
@id int=0,
@restID int=0,
@name nvarchar(30),
@isDeliver int,
@note varchar(50),
@orderNumber int=0,
@isReserve int=0
AS
declare @limit int
set @limit=10
BEGIN	
	if (select count(*) from tbl_menuClass where name=@name and id<>@id and restID=@restID)=0	
		begin
			if @id>0
				update tbl_menuClass set name=@name,isDeliver=@isDeliver,note=@note,isReserve=@isReserve where id=@id
			else if(select count(*) from tbl_menuClass where restID=@restID and isDelete=0)< @limit Begin
				declare @Number int 
				set @Number=(select count(*) from tbl_menuClass where restID=@restID and isDelete=0)+1
				insert into tbl_menuClass (restID,name,isDeliver,note,orderNumber,isReserve)values(@restID,@name,@isDeliver,@note,@Number,@isReserve)				
			 End			
		end
END






GO
/****** :  StoredProcedure [dbo].[sp_menuOrder]    ű: 02/01/2010 14:29:42 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_menuOrder]
@userID bigint,
@name varchar(16),
@phone varchar(20),
@address varchar(50),
@deliverDate int,
@deliverTime datetime,
@restID int,
@menuName NVARCHAR(4000),
@strMenuID varchar(300),
@strAmount varchar(200),
@note text,
@ip varchar(15)
AS

declare @substr  varchar(300),@amount varchar(20),@m  int,@n  int  ,@i int,@j int,@price float,@sum float
declare @splitStr char,@orderID bigint
set @splitStr='|'
set  @m=CHARINDEX(@splitStr,@strMenuID)  
set  @i=CHARINDEX(@splitStr,@strAmount)  
set @sum=0
set  @n=1
set  @j=1
begin
BEGIN tran
insert into tbl_order(userID,restID,name,phone,address,deliverDate,deliverTime,orderContent,ip,note)values(@userID,@restID,@name,@phone,@address,dateadd(d,@deliverDate,getdate()),@deliverTime,@menuName,@ip,@note)
select @orderID=@@IDENTITY
WHILE  @m>0  
BEGIN  
      set  @substr=substring(@strMenuID,@n,@m-@n) 
	set @amount=substring(@strAmount,@j,@i-@j) 
	select @price=price from tbl_menuTable where id=@substr
	insert into tbl_orderDetail(orderID,menuID,amount,price,menuSum)values(@orderID,@substr,@amount,@price,@price*@amount)
	set @sum=@sum+@price*convert(int,@amount)
      set  @j=@i+1  
      set  @n=@m+1  
      set  @i=CHARINDEX(@splitStr,@strAmount,@j)  
      set  @m=CHARINDEX(@splitStr,@strMenuID,@n)  
END
update tbl_order set total=@sum where id=@orderID
if @@error>0
	begin
	rollback TRAN
	select -1,@orderID
	end
else
	begin
	commit TRAN
	select 1,@orderID
	END
end
GO
/****** :  StoredProcedure [dbo].[sp_Message_addWebMessage]    ű: 02/01/2010 14:29:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_Message_addWebMessage]
@receiveUserID bigint,
@sendUserID bigint,
@title varchar(50),
@content text,
@state bit
AS

set @title=replace(@title,'''','"')
--set @content=replace(@content,'''','"')

if(@state=0)
begin
	insert into tbl_webMessage(receiveUserID,sendUserID,title,content,isRead)
            values(@receiveUserID,@sendUserID,@title,@content,0)
	select 0
end
else if(@state=1)
begin
	insert into tbl_webMessage(receiveUserID,sendUserID,title,content,state,isRead)
            values(@receiveUserID,@sendUserID,@title,@content,1,1)
	select 1
end


GO
/****** :  StoredProcedure [dbo].[sp_Message_conditionaddWebMessage]    ű: 02/01/2010 14:29:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

create PROCEDURE [dbo].[sp_Message_conditionaddWebMessage]
@receiveUserID bigint,
@sendUserID bigint,
@title varchar(50),
@content text,
@state bit
AS

declare @reClass int
set @reClass=-10
-- -2:κϢ
-- -1:ܺϢ

select @reClass=reClass from tbl_user where id=@receiveUserID
if @reClass=-2
begin
	select '-2'
	return
end

if @reClass=0
begin
	exec sp_Message_addWebMessage @receiveUserID,@sendUserID,@title,@content,@state
end
else if(@reClass=-1)
begin
	if(select count(*) from tbl_userFrieldList where ownerUserID=@sendUserID and userID=@receiveUserID and state=0)=0
		select '-1'
	else
		exec sp_Message_addWebMessage @receiveUserID,@sendUserID,@title,@content,@state
end
GO
/****** :  StoredProcedure [dbo].[sp_Message_deleteUserMessage]    ű: 02/01/2010 14:29:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_Message_deleteUserMessage] 
	@id bigint,
	@action varchar(10)
AS
	if(@action='accept')
		update tbl_webMessage set state=-1,sendTime=getDate() where receiveUserID=@id and state=0
	else if(@action='send')
		update tbl_webMessage set state=-1,sendTime=getDate() where receiveUserID=@id and state=1
	else if(@action='delete')
		update tbl_webMessage set state=-2 where receiveUserID=@id and state=-1
	select @@ROWCOUNT
	RETURN


GO
/****** :  StoredProcedure [dbo].[sp_Message_getMessageById]    ű: 02/01/2010 14:29:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_Message_getMessageById]
@id bigint,
@userID bigint
AS

select m.*,[Name],t.nickName,photo from tbl_webMessage m,tbl_user t where m.id=@id and t.id=m.sendUserID
 and m.state>-2 and receiveUserID=@userID
GO
/****** :  StoredProcedure [dbo].[sp_Message_getUserIdByName]    ű: 02/01/2010 14:29:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create PROCEDURE [dbo].[sp_Message_getUserIdByName]
@name varchar(16)
AS

select id from tbl_user where [Name]= @name

GO
/****** :  StoredProcedure [dbo].[sp_Message_getUserreClass]    ű: 02/01/2010 14:29:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_Message_getUserreClass]
@receiveUserID bigint,
@sendUserID bigint
AS

declare @reClass int
set @reClass=-10
-- -2:κϢ
-- -1:ܺϢ

select @reClass=reClass from tbl_user where id=@receiveUserID
if @reClass=0
begin
	select '1'
	return
end
if @reClass=-2
begin
	select '-2'
	return
end
if @reClass=-1
begin
	if(select count(*) from tbl_userFrieldList where ownerUserID=@sendUserID and userID=@receiveUserID and state=0)=0
		select '-1'
	else
		select '1'
	return
end


GO
/****** :  StoredProcedure [dbo].[sp_Message_getwebMessage]    ű: 02/01/2010 14:29:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [dbo].[sp_Message_getwebMessage]
@uid bigint,
@action varchar(10)
as

if(@action='accept')
select m.id,u.id uid,u.name,u.nickName,m.title,m.content,m.sendtime,m.isRead,m.state,
                                case isRead when 0 then 'm_news.gif' when 1 then 'm_olds.gif' end imstate,
                                case isRead when 0 then '¶' when 1 then 'ɶ' end immessage from 
                                tbl_user as u,tbl_webMessage as m where 
                                m.receiveUserID = @uid
                                and m.sendUserID = u.id and m.state = 0 order by m.isRead asc, m.sendtime desc
else if(@action='send')
select m.id,u.id uid,u.name,u.nickName,m.title,m.content,m.sendtime,m.isRead,m.state,
                                case isRead when 0 then 'm_news.gif' when 1 then 'm_olds.gif' end imstate,
                                case isRead when 0 then '¶' when 1 then 'ɶ' end immessage from 
                                tbl_user as u,tbl_webMessage as m where 
                                m.sendUserID = @uid
                                and m.sendUserID = u.id and m.state = 1 order by m.isRead asc,m.sendtime desc
else if(@action='delete')
select m.id,u.id uid,u.name,u.nickName,m.title,m.content,m.sendtime,m.isRead,m.state,
                                case isRead when 0 then 'm_news.gif' when 1 then 'm_olds.gif' end imstate,
                                case isRead when 0 then '¶' when 1 then 'ɶ' end immessage from 
                                tbl_user as u,tbl_webMessage as m where 
								((m.sendUserID = @uid and m.senderState=-1) or 
                                (m.receiveUserID = @uid
                                 and m.state = -1)) and m.sendUserID = u.id order by m.isRead asc,m.sendtime desc
else if (@action='sended')
select m.id,u.id uid,u.name,u.nickName,m.title,m.[content],m.sendtime,m.isRead,m.state,
                                'm_issend_1.gif' imstate,
                                'ѷ' immessage from 
                                tbl_user as u,tbl_webMessage as m where 
                                m.sendUserID = @uid
                                and m.sendUserID = u.id and m.senderState = 0 order by m.isRead asc,m.sendtime desc
select @@rowcount
GO
/****** :  StoredProcedure [dbo].[sp_Message_setMessageRead]    ű: 02/01/2010 14:29:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_Message_setMessageRead] 
@id bigint,
@isRead bit
AS
	update tbl_webMessage set isRead=@isRead where id=@id
	RETURN

GO
/****** :  StoredProcedure [dbo].[sp_Message_updateAllWebMessageById]    ű: 02/01/2010 14:29:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_Message_updateAllWebMessageById] 
@id bigint,
@receiveUserID bigint,
@title varchar(50),
@content text,
@isRead bit,
@state int
AS
	update tbl_webMessage set receiveUserID=@receiveUserID,
	title=@title,content=@content,sendTime=getDate(),isRead=@isRead,state=@state where id=@id
	select @@ROWCOUNT
	RETURN

GO
/****** :  StoredProcedure [dbo].[sp_Message_updateReadget]    ű: 02/01/2010 14:29:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_Message_updateReadget]  
@id bigint
AS

update tbl_webMessage set isRead=1 where id=@id

select m.*,[Name] from tbl_webMessage m,tbl_user t where m.id=@id and t.id=m.receiveUserID

GO
/****** :  StoredProcedure [dbo].[sp_Message_updatewebMessage]    ű: 02/01/2010 14:29:56 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_Message_updatewebMessage]
@id bigint,
@action varchar(10)
AS
if(@action='accept' or @action='send' or @action='')
	update tbl_webMessage set state = -1 where id = @id
else if @action='sended'
	update tbl_webMessage set senderState = -1 where id = @id
else if(@action='delete')
	update tbl_webMessage set state=-2 where id = @id
GO
/****** :  StoredProcedure [dbo].[sp_modifyDiaryReply]    ű: 02/01/2010 14:29:57 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_modifyDiaryReply] 
@id bigint,
@content text
AS
	update tbl_userDiaryReply set content=@content where id=@id
	select @@rowcount
	RETURN

GO
/****** :  StoredProcedure [dbo].[sp_MonthTop10Add]    ű: 02/01/2010 14:29:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_MonthTop10Add]
@RestId int,
@UserId int,
@result int=0 output
AS
declare @id int
select @id=max(id)+1 from tbl_monthTop10 
if (select count(*) from tbl_monthTop10 where RestId=@RestId)>0
begin
set @result=-1
end
else
begin
insert into tbl_monthTop10(id,restID,addUserID) values(@id,@RestId,@UserId)
set @result=1
end
select @result


GO
/****** :  StoredProcedure [dbo].[sp_MonthTopDelete]    ű: 02/01/2010 14:29:59 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
Create PROCEDURE [dbo].[sp_MonthTopDelete]
@restID int,
@result int=0 output
AS
declare @id int
begin
select @id=id from tbl_monthTop10 where restID=@restID
if (select max(id) from tbl_monthTop10)= @id
begin
update tbl_monthTop10 set id=id-1 where restID<>@restID
set @result=1
end
if (select min(id) from tbl_monthTop10)= @id
begin
set @result=1
end
else
begin
update tbl_monthTop10 set id=id-1 where id>@id
set @result=1
end
delete from  tbl_monthTop10 where restID=@restID
end 
select @result 


GO
/****** :  StoredProcedure [dbo].[sp_MonthTopSelect]    ű: 02/01/2010 14:30:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_MonthTopSelect]
@restID int=0,
@ID int = 0
AS
if @restID=0
begin
select a.id,a.restID,b.name,a.StyleName as StyleName from tbl_monthTop10 a 
left join tbl_restaurant b on a.restID=b.id 
where b.isDelete<>1 and b.state<>0
order by a.id
end 
else 
begin
select a.id,a.restID,b.name,a.StyleName as StyleName from tbl_monthTop10 a 
left join tbl_restaurant b on a.restID=b.id 
where a.restID=@restID and a.id = @id and  b.isDelete<>1 and b.state<>0
order by a.id
end







GO
/****** :  StoredProcedure [dbo].[sp_MonthTopUpdate]    ű: 02/01/2010 14:30:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create PROCEDURE [dbo].[sp_MonthTopUpdate]
@restID int,
@sign int=0,
@result int=0 output
AS
declare @id int
select @id=id from tbl_monthTop10 where restID=@restID
if @sign<>1 and @sign<>2 
begin
set @result=0
end
if @sign=1 --
begin
--жϱǷѾһǣ
if (select min(id) from tbl_monthTop10)=@id
set @result=1
else
--ǰһλǰһλ
begin
update tbl_monthTop10 set id=id+1 where id=@id-1
update tbl_monthTop10 set id=id-1 where restID=@restID
set @result=1
end
end 
if @sign=2 --
begin
--жϱ͵ǷѾǣ
if (select max(id) from tbl_monthTop10)=@id
set @result=1
else
begin
--͵һλǰһλ
update tbl_monthTop10 set id=id-1 where id=@id+1
update tbl_monthTop10 set id=id+1 where restID=@restID
set @result=1
end 
end 
select @result 

GO
/****** :  StoredProcedure [dbo].[sp_MonthTopUpdateInfo]    ű: 02/01/2010 14:30:02 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		wangjh
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_MonthTopUpdateInfo]
@SortID int ,
@RestID int,
@StyleName varchar(8000)=''
AS
BEGIN
	update tbl_monthTop10 set styleName = @styleName where 
	id = @sortID and restID = @restID
	select 1
END


GO
/****** :  StoredProcedure [dbo].[sp_MsnChat_append]    ű: 02/01/2010 14:30:03 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Venson>
-- Create date: <2007-9-15>
-- Description:	<MSNԻ¼>
-- =============================================
CREATE PROCEDURE [dbo].[sp_MsnChat_append]
	@UserId BIGINT = 0,
	@Email VARCHAR(255) = '',
	@Content  varchar(8000)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	INSERT tbl_MSNLog (userID, email, [content]) VALUES (@UserId, @Email, @Content)
	IF @@ROWCOUNT > 0
		SELECT 1
	ELSE
		SELECT 0
END

GO
/****** :  StoredProcedure [dbo].[sp_MsnChatListSelect]    ű: 02/01/2010 14:30:04 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_MsnChatListSelect]
@Email varchar(40)='',
@StartTime datetime='1900-1-1',
@EndTime datetime='2900-1-1'
AS 
begin
  if @Email='' begin 
  select * from tbl_MSNLog  where postTime between @StartTime and @EndTime
  order by id desc
  end else begin 
  select * from tbl_MSNLog  where postTime between @StartTime and @EndTime
  and email=@Email order by id desc
  end
end



GO
/****** :  StoredProcedure [dbo].[sp_MsnRobot_Log_append]    ű: 02/01/2010 14:30:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Venson>
-- Create date: <2007-8-21>
-- Description:	<MSN־>
-- =============================================
CREATE PROCEDURE [dbo].[sp_MsnRobot_Log_append]
	@Email varchar(8000) = '',
	@Action varchar(8000) = ''
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @Result INT

    INSERT INTO tbl_MsnRobot_Log (Email, [Action]) VALUES (@Email, @Action)
	IF @@ROWCOUNT > 0
		SET @Result = 1
	ELSE
		SET @Result = 0

	SELECT @Result

END

GO
/****** :  StoredProcedure [dbo].[sp_Music_addFile]    ű: 02/01/2010 14:30:07 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_Music_addFile]
@title varchar(50),
@titleColor varchar(8),
@clickAmount int,

@URL varchar(100),
@postTime datetime,
@UserName varchar(20),

@userID bigint,
@classID int,
@img varchar(100),


@content text,
@commentAmount int,

@nPosition int,
@isPost int,
@isDelete int,

@num int,
@PValue numeric(10,2),
@mediaTime varchar(20),

@filePath varchar(100),
@domain varchar(50),
@fileSize bigint,
@isVideo smallint,
@label varchar(50)

AS
BEGIN
declare @fileID bigint
exec sp_add_SystemLabel 3, @label
insert tbl_userUploadFile(userID,filePath,domain,fileSize) values(@userID,@filePath,@domain,@fileSize)
set @fileID = @@identity

insert into tbl_media(title,titleColor,clickAmount,URL,postTime,UserName,userID,classID,img,fileID,[content],
	commentAmount,nPosition,isPost,isDelete,num,PValue,mediaTime,isVideo,label) 
	values(@title,@titleColor,@clickAmount,@URL,@postTime,@UserName,@userID,@classID,@img,@fileID,@content,
	@commentAmount,@nPosition,@isPost,@isDelete,@num,@PValue,@mediaTime,@isVideo,@label)
select @@identity
END
GO
/****** :  StoredProcedure [dbo].[sp_Music_addMediaList]    ű: 02/01/2010 14:30:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_Music_addMediaList] 
@id bigint,
@userID bigint,
@ext varchar(50),
@localPath varchar(200),
@imagePath varchar(200),
@domain varchar(50)
AS
	declare @fileID bigint
	select @fileID=fileID from tbl_media where id=@id
	
	insert into tbl_mediaList(ext,localPath,fileID,imagepath,domain,userID,mediaID) 
		values(@ext,@localPath,@fileID,@imagePath,@domain,@userID,@id)
	select @@rowcount
	RETURN




GO
/****** :  StoredProcedure [dbo].[sp_MyOrderGet]    ű: 02/01/2010 14:30:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_MyOrderGet]
@userID bigint,
@startDate varchar(10),
@endDate nvarchar(10),
@whereStr varchar(100)
AS
declare @sql varchar(1000)
set @sql='select a.*,b.name as restName  from tbl_Order a,tbl_restaurant b'
set @sql=@sql+'  where a.restID=b.id  and a.deliverDate between cast(convert(varchar ,'''+@startDate+''',112) as datetime) and  dateadd(d,1,cast(convert(varchar ,'''+@endDate+''',112) as datetime))'
if @userID>0
 set @sql=@sql+' and a.userID='+ltrim(str(@userID))
set @sql=@sql+' and b.isdelete=0'
if len(@whereStr)>5
	set @sql=@sql+' and '+@whereStr
set @sql=@sql+' order by a.date_time desc'
exec(@sql)
--select @sql
GO
/****** :  StoredProcedure [dbo].[sp_MyOrderMGet]    ű: 02/01/2010 14:30:13 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_MyOrderMGet]
@userID bigint,
@startDate varchar(10),
@endDate nvarchar(10),
@whereStr varchar(100)
AS
declare @sql varchar(1000)
if @userID>0
set @sql='select a.*,b.name as restName  from tbl_Order a,tbl_restaurant b'
set @sql=@sql+'  where a.restID=b.id  and a.deliverDate between cast(convert(varchar ,'''+@startDate+''',112) as datetime) and  dateadd(d,1,cast(convert(varchar ,'''+@endDate+''',112) as datetime))'
set @sql=@sql+' and (b.userID='+ltrim(str(@userID))+'  or b.id in (select restID from tbl_restUser where  userID='+ltrim(str(@userID))+'))'
set @sql=@sql+' and b.isdelete=0'
if len(@whereStr)>5
	set @sql=@sql+' and '+@whereStr
set @sql=@sql+' order by a.date_time desc'
exec(@sql)
--select @sql
GO
/****** :  StoredProcedure [dbo].[sp_noCheckRestCount]    ű: 02/01/2010 14:30:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE proc [dbo].[sp_noCheckRestCount]
@adminID int = 0
as
select count(tbl_restaurant.id) as noCheckRestCount from tbl_restIntro right join tbl_restaurant on restID = tbl_restaurant.id 
where ispost = 0 and tbl_restaurant.isDelete = 0 

GO
/****** :  StoredProcedure [dbo].[sp_onlineServiceMsg_add]    ű: 02/01/2010 14:30:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







CREATE PROCEDURE [dbo].[sp_onlineServiceMsg_add]
@id bigint=0,
@sessionID varchar(50)='',
@adminID bigint=0,
@userID bigint=0,
@userName varchar(50)='',
@content varchar(8000)='',
@ip varchar(50)=''
AS
if @id>0
	update tbl_onlineServiceMsg set sessionID=@sessionID,adminID=@adminID,userID=@userID,userName=@userName,[content]=@content where id=@id
else
	insert into tbl_onlineServiceMsg(sessionID,adminID,userID,userName,[content],ip) values (@sessionID,@adminID,@userID,@userName,@content,@ip)
declare @idd bigint
set @idd=@@identity
select *,CONVERT(char(19), postTime, 121) as timeString from tbl_onlineServiceMsg where id=@idd






GO
/****** :  StoredProcedure [dbo].[sp_onlineServiceMsg_get]    ű: 02/01/2010 14:30:17 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









CREATE PROCEDURE [dbo].[sp_onlineServiceMsg_get]
@state smallint=0,
@sessionID varchar(50)='',
@adminID bigint=0,
@isClient smallint=0,
@isServer smallint=0,
@isUpdateState smallint=0
AS	
begin
BEGIN tran	
	if @isClient=1 begin
		select *,CONVERT(char(19), postTime, 121) as timeString from tbl_onlineServiceMsg where state=@state and sessionID=@sessionID order by id desc
	end else if @isServer=1 begin
		select *,CONVERT(char(19), postTime, 121) as timeString from tbl_onlineServiceMsg where state=@state and sessionID=@sessionID order by id desc		
	end
	if @isUpdateState=1 begin
		if @adminID>0
			update tbl_onlineServiceMsg set state=1 where state=@state and adminID=@adminID
		else
			update tbl_onlineServiceMsg set state=1 where state=@state and sessionID=@sessionID
	end
if @@error>0 begin
	rollback tran	
end else begin
	commit tran
end
end





GO
/****** :  StoredProcedure [dbo].[sp_onlineServiceMsg_getAmount]    ű: 02/01/2010 14:30:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








create PROCEDURE [dbo].[sp_onlineServiceMsg_getAmount]
@state smallint=0,
@sessionID varchar(50)='',
@adminID bigint=0
AS	
	if @adminID>0 begin
		select count(id) as amount from tbl_onlineServiceMsg where state=@state and adminID=@adminID
	end else begin
		select count(id) as amount from tbl_onlineServiceMsg where state=@state and sessionID=@sessionID 
	end
	




GO
/****** :  StoredProcedure [dbo].[sp_Order_Common_cancelOrder]    ű: 02/01/2010 14:30:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Venson>
-- Create date: <2007-6-21>
-- Description:	<ͨ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Order_Common_cancelOrder]
	@OrderId bigint = 0
AS
BEGIN
	SET NOCOUNT ON;
	
	Declare @State int
	Declare @Result int
	declare @orderPostTime datetime
	declare @deliverDate datetime
	declare @restid int
	SELECT @State=state,@orderPostTime = date_time,@deliverDate = deliverDate,@restid = restid FROM tbl_order WHERE id=@OrderId
	If @State = 0 Begin
		if @orderPostTime>=convert(varchar(10),getdate(),120)
		begin
			if @deliverDate >= convert(varchar(10),dateadd(d,1,getdate()),120)
			begin
				update tbl_rest_manager set waitOrderPre=waitOrderPre-1 where restid = @restid
			end
			else 
			begin
				update tbl_rest_manager set waitOrder=waitOrder-1 where restid = @restid
			end
		end
		else
		begin --յδĶ
			update tbl_rest_manager set waitOrderOld=waitOrderOld-1 where restid = @restid
		end
		UPDATE tbl_order SET state=-1 WHERE id=@OrderId
		--ˮ		
		update tbl_runningOrder set state=-1 where id=@OrderId
		If @@Rowcount > 0 Begin
			Set @Result = 1
		End Else Begin
			Set @Result = 0
		End
	End Else Begin
		Set @Result = 0
	End

	SELECT @Result

END


GO
/****** :  StoredProcedure [dbo].[sp_Order_Common_getDetailListByOrderId]    ű: 02/01/2010 14:30:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Venson>
-- Create date: <2007-6-21>
-- Description:	<ȡͨϸб>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Order_Common_getDetailListByOrderId]
	@OrderId bigint = 0
AS
BEGIN
	SET NOCOUNT ON;

    SELECT Data.*
	FROM tbl_orderDetail AS Data --INNER JOIN tbl_menuTable AS Menu ON Data.menuID=Menu.id
	WHERE orderID=@OrderId
END




GO
/****** :  StoredProcedure [dbo].[sp_Order_Common_getInfo]    ű: 02/01/2010 14:30:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








-- =============================================
-- Author:		<Venson>
-- Create date: <2007-6-21>
-- Description:	<ȡͨϢ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Order_Common_getInfo]
	@OrderId bigint= 0
AS
BEGIN
	SET NOCOUNT ON;

--    SELECT TOP 1 Data.*, Rest.name AS RestName,
--		ISNULL(UserAddress.FullAddress, '') AS UserAddress,
--		ISNULL(Area.FullAddress, '') + ' ' + Data.address AS CustomAddress
--	FROM tbl_order AS Data INNER JOIN
--		tbl_restaurant AS Rest ON Data.restID=Rest.id LEFT JOIN
--		V_area AS Area ON Area.id=Data.areaID LEFT JOIN
--		v_userAddress AS UserAddress ON UserAddress.id=Data.addressID
--	WHERE Data.id=@OrderId
	
	SELECT TOP 1
		Data.id,
		Data.userID,
		Data.restID,
		Data.orderContent,
		Data.total,
		Data.DeliveryMoney,
		Data.name,
		Data.phone,
		Data.areaID,
		Data.addressID,
		Data.address,
		Data.date_time,
		Data.IP,
		CAST((CONVERT(VARCHAR(10), deliverDate, 101) 
		+ ' ' + CONVERT(VARCHAR(8), deliverTime, 108)) AS DATETIME) AS deliverDate,
		Data.deliverTime,
		Data.state,
		Data.note,
		data.address as roomName,
		area.name as areaName,
		Rest.name AS RestName,
		ISNULL(Area.FullAddress, '') + ' ' + Data.address AS OrderAddress
	FROM tbl_order AS Data LEFT JOIN
		tbl_restaurant AS Rest ON Data.restID = Rest.id LEFT JOIN
		V_area AS Area ON Area.id = Data.areaID
	WHERE Data.id = @OrderId
END
GO
/****** :  StoredProcedure [dbo].[sp_Order_Common_getLatestListByUserId]    ű: 02/01/2010 14:30:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Venson>
-- Create date: <2007-6-21>
-- Description:	<ȡͨб(֮ǰʶ)>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Order_Common_getLatestListByUserId] 
	@UserId bigint = 0
AS
BEGIN
	SET NOCOUNT ON;

	Declare @Today varchar(20)
	Set @Today = Datename(yyyy,Getdate())
		+ '-' + Datename(mm,Getdate())
		+ '-' + Datename(dd,Getdate())
		+ ' 00:00:00'
	SELECT TOP 2 Data.*, Rest.name AS RestName
	FROM tbl_order AS Data INNER JOIN tbl_restaurant AS Rest ON Rest.id=Data.restID
	WHERE Data.userID=@UserId
		AND Data.DeliverDate<@Today
	ORDER BY Data.deliverDate DESC
END



GO
/****** :  StoredProcedure [dbo].[sp_Order_Common_getListByUserId]    ű: 02/01/2010 14:30:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Venson>
-- Create date: <2007-6-21>
-- Description:	<ȡѯͨб>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Order_Common_getListByUserId] 
	@UserId bigint = 0,
	@BeginDeliverDate datetime,
	@EndDeliverDate datetime
AS
BEGIN
	SET NOCOUNT ON;

    SELECT Data.*, Rest.name AS RestName
	FROM tbl_order AS Data INNER JOIN tbl_restaurant AS Rest ON Data.restID=Rest.id
	WHERE Data.userID=@UserId
		AND (DeliverDate>=@BeginDeliverDate AND DeliverDate<=@EndDeliverDate)
END


GO
/****** :  StoredProcedure [dbo].[sp_Order_Common_getReservationListByUserId]    ű: 02/01/2010 14:30:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Venson>
-- Create date: <2007-6-21>
-- Description:	<ȡԤͨб(֮)>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Order_Common_getReservationListByUserId]
	@UserId bigint = 0
AS
BEGIN
	SET NOCOUNT ON;

    Declare @Today varchar(20)
	Set @Today = Datename(yyyy,Getdate())
		+ '-' + Datename(mm,Getdate())
		+ '-' + Datename(dd,Getdate())
		+ ' 00:00:00'
	SELECT Data.*, Rest.name AS RestName
	FROM tbl_order AS Data INNER JOIN tbl_restaurant AS Rest ON Rest.id=Data.restID
	WHERE Data.userID=@UserId
		AND Data.DeliverDate>@Today
	ORDER BY Data.deliverDate DESC
END



GO
/****** :  StoredProcedure [dbo].[sp_Order_Common_getTodayListByUserId]    ű: 02/01/2010 14:30:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		<Venson>
-- Create date: <2007-6-21>
-- Description:	<ȡͨб>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Order_Common_getTodayListByUserId]
	@UserId bigint = 0
AS
BEGIN
	SET NOCOUNT ON;

	Declare @Today varchar(20)


		Set @Today=datename(yyyy,getdate())+'-'+datename(mm,getdate())+'-'+datename(dd,getdate())
		SELECT Data.*, Rest.name AS RestName
		FROM tbl_order AS Data INNER JOIN tbl_restaurant AS Rest ON Rest.id=Data.restID
		WHERE Data.userID=@UserId
			AND Datename(yyyy,Data.deliverDate)+'-'+Datename(mm,Data.deliverDate)+'-'+Datename(dd,Data.deliverDate)=@Today
		ORDER BY Data.deliverDate DESC


END






GO
/****** :  StoredProcedure [dbo].[sp_Order_Common_updateState]    ű: 02/01/2010 14:30:26 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Venson>
-- Create date: <2007-6-28>
-- Description:	<ͨ״̬>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Order_Common_updateState] 
	@OrderId BIGINT = 0,
	@State INT = 0 --״ֵ̬(-2:, -1:, 0:δ, 1:)
AS
BEGIN
	exec [sp_Order_updateState] @OrderId,@State,0	
END




GO
/****** :  StoredProcedure [dbo].[sp_Order_CustomerName_getList]    ű: 02/01/2010 14:30:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Venson>
-- Create date: <2007-10-12>
-- Description:	<ȡͻб>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Order_CustomerName_getList]
	@UserType INT = 0,--ͻ(0:ȫ, 1:עû, 2:δעû)
	@CustomerName VARCHAR(50) = ''
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    IF @CustomerName != '' BEGIN
		SET @CustomerName = '%' + @CustomerName + '%'
		IF @UserType = 0 SELECT [Name] FROM v_Order_GeneralList WHERE [Name] LIKE @CustomerName GROUP BY [Name]
		IF @UserType = 1 SELECT [Name] FROM v_Order_GeneralList WHERE [Name] LIKE @CustomerName AND UserId>0 GROUP BY [Name]
		IF @UserType = 2 SELECT [Name] FROM v_Order_GeneralList WHERE [Name] LIKE @CustomerName AND UserId=0 GROUP BY [Name]
	END
END

GO
/****** :  StoredProcedure [dbo].[sp_Order_General_getInfo]    ű: 02/01/2010 14:30:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Venson>
-- Create date: <2007-9-14>
-- Description:	<ȡͨöϢ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Order_General_getInfo]
	@OrderId BIGINT = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	SELECT *,(select Count(id) from v_Order_GeneralList where id=@OrderId )as isfirst FROM v_Order_GeneralList WHERE id=@OrderId
END


GO
/****** :  StoredProcedure [dbo].[sp_Order_General_getLastInfo]    ű: 02/01/2010 14:30:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Venson>
-- Create date: <2007-9-15>
-- Description:	<ȡûһζ͵ĶϢ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Order_General_getLastInfo]
	@UserId BIGINT = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	SELECT TOP 1 * FROM v_Order_GeneralList WHERE userID=@UserId ORDER BY id DESC
END

GO
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go


-- =============================================
-- Author:		<Venson>
-- Create date: <2007-9-14>
-- Description:	<ȡͨöб>
-- =============================================
Create PROCEDURE [dbo].[sp_Order_General_getList]
	@RestId BIGINT = 0,--(0:ȫ͹)
	@RestUserId BIGINT = 0, --(͹ݹԱID)
	@UserId BIGINT = 0,--ûID
	@UserEmail VARCHAR(50) = '',--ûEmail(Ϊȫ)
	@UserType INT = 0,--û(0:ȫ, 1:עû, 2:δעû)
	@OrderId BIGINT = 0,--
	@Name NVARCHAR(50) = '',--ͻ
	@ProvinceId BIGINT = 0, --ʡID
	@CityId BIGINT = 0, --ID
	@RegionId BIGINT = 0, --ID
	@ZoneId BIGINT = 0, --ƬID
	@AreaId BIGINT = 0, --С/¥ID
	@RoomName NVARCHAR(50) = '',--ȷַ
	@BeginDateTime DATETIME = null,--µʼʱ
	@EndDateTime DATETIME = null,--µʱ
	@BeginDeliverDate DATETIME = NULL,--Ͳʼʱ
	@EndDeliverDate DATETIME = NULL,--Ͳͽʱ
	@State INT = -3,--(-3:ȫ, -2:, -1:, 0:, 1:)
	@SourceId INT = -1,--Դ(-1:ȫ, 0:վ, 1:MSN)
    @Phone varchar(50)='',--û绰
	@PageIndex INT = 1,
	@PageSize INT = 15,
    @sort varchar(50)='',--ֶ
	@Direct int=1,--1Ϊ
	@restName varchar(120) = '',
	@OrderMode int=-1
AS
BEGIN
	SET NOCOUNT ON;

	declare @Sql nvarchar(4000)
	declare @Where varchar(8000)

	declare @StrUserId varchar(10)
	declare @StrRestUserId varchar(10)
	declare @BeginDateTimeStr varchar(20)
	declare @EndDateTimeStr varchar(20)
	declare @BeginDeliverDateStr varchar(20)
	declare @EndDeliverDateStr varchar(20)
	declare @SortStr varchar(20)

	declare @TotalCount bigint--ܼ¼
	declare @TotalPage int--ҳ
	declare @TotalAmount money--ܽ
	declare @StartRowId bigint--ҳʼ
    declare @EndRowId bigint--ҳ

	declare @TableName varchar(30)--ѯͼѯʹڴڵڵգv_order_runningListͼѯv_order_generalListͼѯ
	set @TableName = 'v_Order_GeneralList'	

	--Sort
    if @Sort = ''
		set @SortStr = ' Id '
    else
		set @SortStr = @Sort	
	if @Direct = 1 set @SortStr = @SortStr + ' DESC '
	
	--Convert
	set @StrUserId = cast(@UserId as varchar(10))
	SET @StrRestUserId = cast(@RestUserId as varchar(20))

	--Where	
	set @Where = ' 1=1'	
	
	if @OrderId = 0
	begin
		if @BeginDateTime is not null
		begin
			set @BeginDateTimeStr = cast(year(@BeginDateTime) as varchar(5)) + '-'
				+ cast(month(@BeginDateTime) as varchar(5)) + '-'
				+ cast(day(@BeginDateTime) as varchar(5)) + ' 0:0:0'
			set @Where = @Where + ' and date_time>=''' + @BeginDateTimeStr + ''''
			--if @BeginDateTime >= Cast(Convert(varchar(10),getdate(),120) as dateTime) set @TableName = 'v_Order_RunningList'
		end
		if @EndDateTime is not null
		begin
			set @EndDateTimeStr = cast(year(@EndDateTime) as varchar(5)) + '-'
				+ cast(month(@EndDateTime) as varchar(5)) + '-'
				+ cast(day(@EndDateTime) as varchar(5)) + ' 23:59:59'
			set @Where = @Where + ' and date_time<=''' + @EndDateTimeStr + ''''
		end
		if @BeginDeliverDate is not null
		begin
			set @BeginDeliverDateStr = cast(year(@BeginDeliverDate) as varchar(5)) + '-'
				+ cast(month(@BeginDeliverDate) as varchar(5)) + '-'
				+ cast(day(@BeginDeliverDate) as varchar(5)) + ' 0:0:0'
			set @Where = @Where + ' and deliverDate>=''' + @BeginDeliverDateStr + ''''
			if @BeginDeliverDate >= Cast(Convert(varchar(10),getdate(),120) as dateTime) set @TableName = 'v_Order_RunningList'
			--if @BeginDeliverDate >= Cast(Convert(varchar(10), '2008-12-26 0:0:0') as dateTime) set @TableName = 'v_Order_RunningList'
		end
		if @EndDeliverDate is not null
		begin
			set @EndDeliverDateStr = cast(year(@EndDeliverDate) as varchar(5)) + '-'
				+ cast(month(@EndDeliverDate) as varchar(5)) + '-'
				+ cast(day(@EndDeliverDate) as varchar(5)) + ' 23:59:59'
			set @Where = @Where + ' and deliverDate<=''' + @EndDeliverDateStr + ''''
		end
	end
	if @RestUserId > 0 
	BEGIN	                   	
	    DECLARE @RestIDs varchar(8000)
		SET @RestIDs=''
		SELECT @RestIDs=@RestIDs+cast(id as varchar(10))+',' FROM   tbl_restaurant WITH(NOLOCK) WHERE  UserID = @StrRestUserId OR  MuserID = @RestUserId
		select @RestIDs=@RestIDs+cast(RestID as varchar(10)) +','from tbl_restUser with(nolock) where UserID=@StrRestUserId
		IF len(@RestIDs)>1 
			BEGIN	   
				set @RestIDs= SUBSTRING(@RestIDs,1,LEN(@RestIDs)-1)    
				set @Where = @Where + ' and RestID in ('+@RestIDs+')'	
			END
		ELSE
		BEGIN
			set @Where = @Where + ' and RestID =-1'
		END
	END
	if @State > -3 set @Where = @Where + ' and State=' + cast(@State as varchar(50))
	if @State = -5 set @where = @where + ' and IsCs=1'
	if @UserType > 0
	begin
		if @UserType = 1 set @Where = @Where + ' and UserID>0'
		IF @UserType = 2 set @Where = @Where + ' and userID=0'
	end
	if @UserId > 0 set @Where = @Where + ' and UserID=' + @StrUserId
	if @UserEmail <> '' set @Where = @Where + ' and UserEmail=''' + @UserEmail + ''''
	if @RestId > 0 set @Where = @Where + ' and RestId=' + cast(@RestId as varchar(10))
	if @OrderId > 0 set @Where = @Where + ' and ID=' + cast(@OrderId as varchar(10))
	if @Name <> '' set @Where = @Where + ' and Name like ''%' + @Name + '%'''
	if @ProvinceId > 0 set @Where = @Where + ' and ProvinceID=' + cast(@ProvinceId as varchar(10))
	if @CityId > 0 set @Where = @Where + ' and CityID=' + cast(@CityId as varchar(10))
	if @RegionId > 0 set @Where = @Where + ' and RegionId=' + cast(@RegionId as varchar(10))
	if @ZoneId > 0 set @Where = @Where + ' and ZoneId=' + cast(@ZoneId as varchar(10))
	if @AreaId > 0 set @Where = @Where + ' and AreaId=' + cast(@AreaId as varchar(10))
	if @RoomName <> '' set @Where = @Where + ' and RoomName like ''%' + @RoomName + '%'''
    if @Phone<>'' set @Where = @Where + ' and Phone like ''%' + @Phone + '%'''
	if @restName <> '' set @Where = @Where + ' and restName like ''%'+@restName+'%'''
	if @OrderMode>-1 set @Where = @Where + ' and OrderMode=' + cast(@OrderMode as varchar(10))
	--if @SourceId > -1 SET @Where = @Where + ' AND SourceId=' + CAST(@SourceId AS VARCHAR(10))
	

	--Totoal
	set @Sql = N'select @TotalCountOut=Count(id), @TotalAmountOut=isnull(sum(Total), 0) from ' + @TableName + ' where ' + @Where
	exec sp_executesql @Sql, N'@TotalCountOut bigint output, @TotalAmountOut money output'
		, @TotalCountOut = @TotalCount output, @TotalAmountOut = @TotalAmount output;
	if @PageSize = -1-- -1:All rows
	begin
		select @PageIndex=1, @TotalPage=1
		--set @Sql = 'select * FROM ' + @TableName + ' as v ' + @Where + ' ORDER BY ' +  @SortStr
		SET @Sql = 'SELECT * FROM (SELECT *,(select count(id) from ' + @TableName + ' where userid=v.userid and state=1 and userid>0 ) as isfirst, () OVER(ORDER BY ' +  @SortStr  + ') as RowId FROM ' + @TableName + ' as v where' 
		+ @Where + ') AS T '
	end
	else
	begin
		--PageInfo
		set @TotalPage = ceiling((@TotalCount + 0.0) / @PageSize)
		if @PageIndex < 1 set @PageIndex = 1
		if (@PageIndex > @TotalPage AND @TotalPage!=0)set @PageIndex = @TotalPage
		set @StartRowId = (@PageIndex - 1) * @PageSize + 1
		set @EndRowId = @StartRowId + @PageSize - 1
		--PagedTable
		SET @Sql = 'SELECT * FROM (SELECT *,(select count(id) from ' + @TableName + ' where userid=v.userid and state=1 and userid>0 ) as isfirst, () OVER(ORDER BY ' +  @SortStr  + ') as RowId FROM ' + @TableName + ' as v where' + @Where
		SET @Sql = @Sql + ') AS T WHERE RowId BETWEEN ' + CAST(@StartRowId AS VARCHAR(50)) + ' AND ' + CAST(@EndRowId AS VARCHAR(50))

	end
	--Output
	--exec (@Sql)
	DECLARE @GetFields VARCHAR(4000)
	SET @TableName=@TableName+' AS v '
	SET @GetFields='*,(select count(id) from ' + @TableName + ' where userid=v.userid and state=1 and userid>0 ) as isfirst, 1 as RowId'
	EXEC  UP_GetDataList @strGetFields=@GetFields,@doCount=1,
	@tblName=@TableName,@fldName=@SortStr, @PageSize=@PageSize, @PageIndex=@PageIndex,@strWhere=@Where
	select @PageIndex AS PageIndex, @PageSize AS PageSize, @TotalCount AS TotalCount, @TotalPage AS TotalPage
	select @TotalAmount AS TotalOrderAmount, @TotalCount AS TotalOrderCount
END






GO
/****** :  StoredProcedure [dbo].[sp_Order_General_getListByRestId]    ű: 02/01/2010 14:30:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

















-- =============================================
-- Author:		<Venson>
-- Create date: <2007-6-25>
-- Description:	<ȡ͹ݶб(ϲ)>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Order_General_getListByRestId]
	@RestId BIGINT = 0,--(0:ȫ͹)
	@UserId BIGINT = 0,
	@Name varchar(8000) = '',
	@BeginDeliverDate DATETIME = NULL,
	@EndDeliverDate DATETIME = NULL,
	@State BIGINT = -3,--(-3:ȫ, -2:, -1:, 0:, 1:)
	@PageIndex INT = 1,
	@PageSize INT = 15
AS
BEGIN
	SET NOCOUNT ON;

	DECLARE @Sql nvarchar(4000)
	DECLARE @Where varchar(8000)
	DECLARE @StrUserId varchar(8000)
	DECLARE @TotalCount INT
	DECLARE @TotalPage INT
	DECLARE @StartRowId INT
    DECLARE @EndRowId INT

	DECLARE @BeginDeliverDateStr varchar(8000)
	DECLARE @EndDeliverDateStr varchar(8000)

	--Where
	SET @StrUserId = CAST(@UserId AS varchar(8000))
	IF @RestId > 0 OR @UserId > 0 OR @State > -3 OR @Name <> '' OR @BeginDeliverDate IS NOT NUll
		OR @EndDeliverDate IS NOT NULL BEGIN
		SET @Where = ' WHERE '
		IF (@UserId > 0) SET @Where = @Where + 'restID IN (SELECT id FROM tbl_restaurant'
			+ ' WHERE userID=' + @StrUserId + ' OR MuserID=' + @StrUserId
			+ ' UNION SELECT restID FROM tbl_restUser WHERE userID=' + @StrUserId + ')' + ' AND '
		IF @RestId > 0 SET @Where = @Where + 'RestId=' + CAST(@RestId AS varchar(8000)) + ' AND '
		IF @State > -3 SET @Where = @Where + 'State=' + CAST(@State AS varchar(8000)) + ' AND '
		IF @Name <> '' begin set @name ='%'+ @name +'%' SET @Where = @Where + 'restName like ''' + @Name + ''' AND ' end
		--if @restName <>''begin set @restName ='%'+ @name +'%' set @where = @where +'restName like ''' + @restName + ''' AND ' end
		IF @BeginDeliverDate IS NOT NULL BEGIN
			SET @BeginDeliverDateStr = CAST(YEAR(@BeginDeliverDate) AS varchar(8000)) + '-'
				+ CAST(MONTH(@BeginDeliverDate) AS varchar(8000)) + '-'
				+ CAST(DAY(@BeginDeliverDate) AS varchar(8000)) + ' 0:0:0'
			SET @Where = @Where + 'deliverDate>=''' + @BeginDeliverDateStr + ''' AND '
		END
		IF @EndDeliverDate IS NOT NULL BEGIN
			SET @EndDeliverDateStr = CAST(YEAR(@EndDeliverDate) AS varchar(8000)) + '-'
				+ CAST(MONTH(@EndDeliverDate) AS varchar(8000)) + '-'
				+ CAST(DAY(@EndDeliverDate) AS varchar(8000)) + ' 23:59:59'
			SET @Where = @Where + 'deliverDate<=''' + @EndDeliverDateStr + ''' AND '
		END
		SET @Where = SUBSTRING(@Where, 1, LEN(@Where)-4)
	END
	

	--TotoalCount
	SET @Sql = N'SELECT @TotalCountOut=Count(id) FROM v_Order_GeneralList' + @Where
	EXEC sp_executesql @Sql, N'@TotalCountOut INT OUTPUT', @TotalCountOut=@TotalCount OUTPUT

	if @PageSize=-1 begin-- -1Ϊȫ
		SELECT @PageIndex=1, @TotalPage=1
		SET @Sql = 'SELECT * FROM (SELECT *,case operatorRole when 1 then ''û'' when 2 then ''͹ݹԱ''
when 3 then ''ͷ'' else '''' end as operatorRoleName ,() OVER(ORDER BY id DESC) as RowId FROM v_Order_GeneralList' + @Where + ') AS T '
	end else begin
		--TotalPage
		SET @TotalPage = CEILING((@TotalCount + 0.0) / @PageSize)
		
		--CheckPageIndex
		IF @PageIndex < 1 SET @PageIndex = 1
		IF @PageIndex > @TotalPage SET @PageIndex = @TotalPage

		--RowRange
		SET @StartRowId = (@PageIndex - 1) * @PageSize + 1
		set @EndRowId = @StartRowId + @PageSize - 1

		--PagedTable
		SET @Sql = 'SELECT * FROM (SELECT *, () OVER(ORDER BY Id DESC) as RowId FROM v_Order_GeneralList' + @Where
		SET @Sql = @Sql + ') AS T WHERE RowId BETWEEN ' + CAST(@StartRowId AS VARCHAR(50)) + ' AND ' + CAST(@EndRowId AS VARCHAR(50))
	end
	--Output table
	EXEC (@Sql)
	--Output pageinfo
	SELECT @PageIndex AS PageIndex, @PageSize AS PageSize, @TotalCount AS TotalCount, @TotalPage AS TotalPage
	select @sql
END


















GO
/****** :  StoredProcedure [dbo].[sp_order_getAmountFromState]    ű: 02/01/2010 14:30:36 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_order_getAmountFromState]
@state int=1,
@cnt int=0 output
AS
select @cnt=count(*) from tbl_order where state=@state
select @cnt
GO
/****** :  StoredProcedure [dbo].[sp_Order_getCountByState]    ű: 02/01/2010 14:30:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Venson>
-- Create date: <2008-8-29>
-- Description:	<ȡ״̬͹ݹԱ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Order_getCountByState]
	@State INT = 0, --״̬
	@RestUserId BIGINT = 0, --ԱID
	@BeginDeliverDate DATETIME = NULL, --ʼͲʱ
	@EndDeliverDate DATETIME = NULL --ֹͲʱ
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	
	DECLARE @Sql NVARCHAR(4000)
	DECLARE @Where varchar(8000)
	DECLARE @Count INT
	DECLARE @RestUserIdStr VARCHAR(10)
	DECLARE @StateStr VARCHAR(5)

	SET @RestUserIdStr = CAST(@RestUserId AS VARCHAR(10))
	SET @StateStr = CAST(@State AS VARCHAR(5))

    
	SET @Sql = 'SELECT @CountOut=COUNT(id) FROM v_Order_GeneralList
		WHERE restID IN (
			SELECT id FROM tbl_restaurant WHERE userID=' + @RestUserIdStr + ' OR MuserID=' + @RestUserIdStr
			+ ' UNION SELECT restID FROM tbl_restUser WHERE userID=' + @RestUserIdStr
		+ ') AND state=' + @StateStr
	IF @BeginDeliverDate IS NOT NULL
		SET @Sql = @Sql + ' AND DeliverDate>=''' + CONVERT(VARCHAR(10), @BeginDeliverDate, 102) + ' 0:0:0'''
	IF @EndDeliverDate IS NOT NULL
		SET @Sql = @Sql + ' AND DeliverDate<=''' + CONVERT(VARCHAR(10), @EndDeliverDate, 102) + ' 23:59:59'''

	EXEC sp_executesql @Sql, N'@CountOut INT OUTPUT', @CountOut=@Count OUTPUT

	SELECT @Count
END


GO
/****** :  StoredProcedure [dbo].[sp_Order_getIntegralByRules]    ű: 02/01/2010 14:30:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[sp_Order_getIntegralByRules]
	@total float,
	@orderIntegral float output
as
	declare @rate float,@baseIntegral float,@baseIntegralRate float,@maxIntegral float,@integralNote varchar(50),@userID bigint,@userName as varchar(8000),@orderPostTime datetime,@deliverDate dateTime,@deliverSpan float
	declare @startPrice float,@endPrice float,@state0 int,@rowTbl_integralRate int,@orderAmount int,@activityRate float,@activityIntegral float,@deliverSpanRate float
	/*ȡûֹ*/
	declare @commendOrderIntegral float,@commendOrderDateAmount int,@falseIntegral float,@orderRate float,@spreadDepth int,@extendUserID bigint,@Integral float			

	

	/*1ȡĬֹ趨*/
	select top 1 @commendOrderIntegral=commendOrderIntegral,@commendOrderDateAmount=commendOrderDateAmount,@orderRate=orderRate,@falseIntegral = falseOrderIntegral,@spreadDepth=spreadDepth from tbl_integralRate
	set @rowTbl_integralRate=@@rowcount
	if @rowTbl_integralRate=0 begin
		select @commendOrderIntegral=0,@commendOrderDateAmount=0,@orderRate=0,@falseIntegral=0,@spreadDepth=0
	end	

	/*2ȡöֱ*/
	select top 1 @baseIntegralRate=integral from tbl_orderBaseIntegralRule where getDate()>=startTime and getDate()<dateAdd(d,1,endTime) and isDelete=0
	if @@rowCount=0 
		set @baseIntegralRate=@orderRate					

	/*3ȡöͻֽ趨*/
	select top 1 @rate=rate  from tbl_orderIntegralRateClass a inner join tbl_orderIntegralRate b on b.classID=a.id 
			where getDate()>=a.startTime and getDate()<dateAdd(d,1,a.endTime) and a.isDelete=0
			and @total>=b.startMoney and @total<b.endMoney and b.isDelete=0										
	if @@rowcount=0 
		set @rate=0
	
	/*4ȡûֹ*/
	select top 1 @activityRate=rate,@activityIntegral=integral from tbl_activityIntegralRate 
			where @deliverDate>=startTime and @deliverDate<dateAdd(d,1,endTime) and isDelete=0
	if @@rowCount=0 begin
		set @activityRate=0
		set @activityIntegral=0
	end
	
	/*5ȡԤֹ*/
	set @deliverSpan=datediff(minute,@orderPostTime,@deliverDate)/60
	select @deliverSpanRate=b.rate from tbl_reserveIntegralRateClass a inner join tbl_reserveIntegralRate b on b.classID=a.id
			where getDate()>=a.startTime and getDate()<dateAdd(d,1,a.endTime) and a.isDelete=0
				and @deliverSpan>=b.startSpan and @deliverSpan<b.endSpan and b.isDelete=0
	if @@rowCount=0 begin
		set @deliverSpanRate=0
	end			
	
	set @baseIntegral=@baseIntegralRate*@total

	/* ûͻû  ʼ*/	--(ͻ򣬶֣֣ǰԤͻ)								
	/*ȡ*/
	select @maxIntegral=max(a) from (
		select @rate*@baseIntegral as a
		union
		select @activityRate*@baseIntegral+@activityIntegral as a
		union
		select @deliverSpanRate*@baseIntegral as a
	) as t
	set @orderIntegral=@maxIntegral+@baseIntegral

return @orderIntegral

GO
/****** :  StoredProcedure [dbo].[sp_Order_getOrderByDate]    ű: 02/01/2010 14:30:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[sp_Order_getOrderByDate]
@firstDate datetime,
@secondDate datetime
as

declare @curDate varchar(20)
set @curDate = datename(yyyy,getdate())+'-'+datename(mm,getdate())+'-'+datename(dd,getdate())

select tr.*,tt.name restName from tbl_order tr inner join tbl_restaurant tt on tr.restID=tt.id where 
datename(yyyy,date_time)+'-'+datename(mm,date_time)+'-'+datename(dd,date_time)
 = @curDate

select tr.*,tt.name restName from tbl_order tr inner join tbl_restaurant tt on tr.restID=tt.id where 
cast((datename(yyyy,date_time)+'-'+datename(mm,date_time)+'-'+datename(dd,date_time)) as datetime)
 between @firstDate and @secondDate
GO
/****** :  StoredProcedure [dbo].[sp_Order_getSuiteMenuOrderInfo]    ű: 02/01/2010 14:30:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[sp_Order_getSuiteMenuOrderInfo]
@userID bigint
as
select top 2 id,date_time from tbl_suitemenuorder where userID=@userID order by date_time desc
select td.*,ts.state,tt.name from 
tbl_suitemenuorderDetail td inner join tbl_suitemenuorder ts on td.orderID=ts.id 
inner join tbl_restaurant tt on tt.id=ts.restID where orderID in 
(select top 2 id from tbl_suitemenuorder where userID=@userID order by date_time desc)
GO
/****** :  StoredProcedure [dbo].[sp_Order_getSuiteMenuOrderInfoByDate]    ű: 02/01/2010 14:30:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[sp_Order_getSuiteMenuOrderInfoByDate]
@userID bigint,
@firstDate datetime,
@secondDate datetime
as
--set @userID=11
select id,date_time from tbl_suitemenuorder where userID=@userID and 
datename(yyyy,date_time)+'-'+datename(mm,date_time)+'-'+datename(dd,date_time) between @firstDate and 
@secondDate
 order by date_time desc

select td.*,ts.state,tt.name from 
tbl_suitemenuorderDetail td inner join tbl_suitemenuorder ts on td.orderID=ts.id 
inner join tbl_restaurant tt on tt.id=ts.restID where orderID in 
(
select id from tbl_suitemenuorder where userID=@userID and 
datename(yyyy,date_time)+'-'+datename(mm,date_time)+'-'+datename(dd,date_time) between @firstDate and 
 @secondDate
)
GO
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go









-- =============================================
-- Author:		<Venson>
-- Create date: <2007-6-28>
-- Description:	<ȡͳϢ>
-- =============================================
Create PROCEDURE [dbo].[sp_Order_getSumInfo]
@AreaId int = 0,	
@UserId BIGINT = 0,
@RestId BIGINT = 0,
@BeginDeliverDate DATETIME = null,
@EndDeliverDate DATETIME = null,
@orderId int = 0,
@CustomerName varchar(120) = '',
@telphone varchar(50)='',
@OrderMode int =-1
AS
BEGIN
	SET NOCOUNT ON;

--	SELECT 0 AS TotalPrice, 0 AS TotalCount,
--		0 AS SucceedPrice, 0 AS SucceedCount,
--		0 AS DeductPrice
--	return;

	DECLARE @Sql nvarchar(4000)
	DECLARE @Where varchar(8000)
	DECLARE @UserIdStr varchar(8000)
	DECLARE @RestList varchar(8000)
	DECLARE @BeginDeliverDateStr varchar(8000)
	DECLARE @EndDeliverDateStr varchar(8000)
	--ɹ
	DECLARE @SucceedPrice FLOAT
	--ɹ
	DECLARE @SucceedCount INT
	--ɽ
	DECLARE @DeductPrice FLOAT
	DECLARE @TotalPrice FLOAT 
	DECLARE @TotalCount INT
	DECLARE @v_order varchar(50)--ѯͼѯʹڴڵڽ죬v_order_runningListͼѯv_order_generalListͼѯ
	set @v_order = ' v_Order_GeneralList '	
	SET @TotalPrice=0
	SET @TotalCount=0
	SET @UserIdStr = Cast(@UserId AS varchar(8000))

	--ɹб
	SET @RestList = ''
	
	if @UserId > 0 
	BEGIN	                   	
	    DECLARE @RestIDs varchar(8000)
		SET @RestIDs=''
		SELECT @RestIDs=@RestIDs+cast(id as varchar(10))+',' FROM   tbl_restaurant WITH(NOLOCK) WHERE  UserID = @UserId OR  MuserID = @UserId
		select @RestIDs=@RestIDs+cast(RestID as varchar(10)) +','from tbl_restUser with(nolock) where UserID=@UserId
		IF len(@RestIDs)>1 
			BEGIN	    
				set @RestIDs= SUBSTRING(@RestIDs,1,LEN(@RestIDs)-1)    
				SET @Where = 'WHERE Data.restID IN (' + @RestIDs + ')'	
			END
		ELSE
		BEGIN
			SET @Where = 'WHERE Data.restID =-1'
		END
	END
	
	--WHERE
	IF @RestId > 0 SET @Where = @Where + ' AND Data.restID=' + Cast(@RestId AS varchar(8000))
	
	IF @BeginDeliverDate IS NOT NULL BEGIN
		SET @BeginDeliverDateStr = CAST(YEAR(@BeginDeliverDate) AS varchar(8000)) + '-'
			+ CAST(MONTH(@BeginDeliverDate) AS varchar(8000)) + '-'
			+ CAST(DAY(@BeginDeliverDate) AS varchar(8000)) + ' 0:0:0'
		SET @Where = @Where + ' AND Data.deliverDate>=''' + @BeginDeliverDateStr + ''''

		--ǷΪˮ
		if Cast(@BeginDeliverDateStr as dateTime)>=Cast(Convert(varchar(10),getdate(),120) as dateTime)
				set @v_order = ' v_Order_runningList '
	END
	IF @EndDeliverDate IS NOT NULL BEGIN
		SET @EndDeliverDateStr = CAST(YEAR(@EndDeliverDate) AS varchar(8000)) + '-'
			+ CAST(MONTH(@EndDeliverDate) AS varchar(8000)) + '-'
			+ CAST(DAY(@EndDeliverDate) AS varchar(8000)) + ' 23:59:59'
		SET @Where = @Where + ' AND Data.deliverDate<=''' + @EndDeliverDateStr + ''''
	END
	if @BeginDeliverDate is null
	set @BeginDeliverDate='1900-1-1'
	IF @EndDeliverDate IS NULL
	set @EndDeliverDate ='9999-1-1'
	if @areaId <>0
	begin
		set @where = @where + ' and data.areaId ='+ str(@areaId) 
	end
	if @OrderId <>0
	set @where = @where + ' and data.Id = '+ cast(@orderId as varchar(20))
	if @CustomerName <>''
	set @where = @where + ' and data.name like '''+ @CustomerName +''''
	if @telphone <>''
	set @where = @where + ' and data.phone like ''%'+ @telphone +'%'''
	if @OrderMode >-1
	set @where = @where + ' and data.orderMode = '+ cast(@OrderMode as varchar(20))

	--all
	SET @Sql = 'SELECT @TotalPriceOut=Sum(Data.total),@TotalCountOut=Count(*) FROM ' + @v_order + ' AS Data ' + @Where 
	EXEC sp_executesql @Sql, N'@TotalPriceOut FLOAT OUTPUT,@TotalCountOut INT OUTPUT', @TotalPriceOut=@TotalPrice OUTPUT, @TotalCountOut=@TotalCount OUTPUT
	IF @TotalPrice IS NULL SET @TotalPrice = 0
	
	--Succeed
	SET @Sql = 'SELECT @SucceedPriceOut=Sum(Data.total),@SucceedCountOut=Count(*) FROM ' + @v_order + ' AS Data ' + @Where + ' AND Data.state=1'
	EXEC sp_executesql @Sql, N'@SucceedPriceOut FLOAT OUTPUT,@SucceedCountOut INT OUTPUT', @SucceedPriceOut=@SucceedPrice OUTPUT, @SucceedCountOut=@SucceedCount OUTPUT
	IF @SucceedPrice IS NULL SET @SucceedPrice = 0
	

	/*
	--TotalPrice
	SET @Sql = 'SELECT @TotalPriceOut=Sum(Data.total) FROM v_Order_GeneralList AS Data ' + @Where
	EXEC sp_executesql @Sql, N'@TotalPriceOut FLOAT OUTPUT', @TotalPriceOut=@TotalPrice OUTPUT
	IF @TotalPrice IS NULL SET @TotalPrice = 0
	--TotalCount
	SET @Sql = 'SELECT @TotalCountOut=Count(Data.id) FROM v_Order_GeneralList AS Data ' + @Where
	EXEC sp_executesql @Sql, N'@TotalCountOut INT OUTPUT', @TotalCountOut=@TotalCount OUTPUT
	--SucceedPrice
	SET @Sql = 'SELECT @SucceedPriceOut=Sum(Data.total) FROM v_Order_GeneralList AS Data ' + @Where + ' AND Data.state=1'
	EXEC sp_executesql @Sql, N'@SucceedPriceOut FLOAT OUTPUT', @SucceedPriceOut=@SucceedPrice OUTPUT
	IF @SucceedPrice IS NULL SET @SucceedPrice = 0
	--SucceedCount
	SET @Sql = 'SELECT @SucceedCountOut=Count(Data.id) FROM v_Order_GeneralList AS Data ' + @Where + ' AND Data.state=1'
	EXEC sp_executesql @Sql, N'@SucceedCountOut INT OUTPUT', @SucceedCountOut=@SucceedCount OUTPUT
	*/

	--DeductPrice
	set @DeductPrice = 0
	if @SucceedCount >0
	
	begin
	SET @Sql = 'select @DeductPriceOut = sum(DeductPriceOut) from( SELECT DeductPriceOut=isnull([dbo].[f_GetRestDoodiiDeduct](data.restid,'''+ CAST(@BeginDeliverDate as varchar(20)) +''','''+ CAST(@EndDeliverDate as varchar(20)) +'''),0) FROM ' + @v_order + ' as data
		 '+ @where +' and data.state=1 group by data.restId) as t'
	EXEC sp_executesql @Sql, N'@DeductPriceOut FLOAT OUTPUT', @DeductPriceOut=@DeductPrice OUTPUT
	end
	SELECT @TotalPrice AS TotalPrice, @TotalCount AS TotalCount,
		@SucceedPrice AS SucceedPrice, @SucceedCount AS SucceedCount,
		@DeductPrice AS DeductPrice
END









GO
/****** :  StoredProcedure [dbo].[sp_Order_getTodaySuiteMenuListByUserId]    ű: 02/01/2010 14:30:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Venson>
-- Create date: <2007-6-21>
-- Description:	<ȡײͶб>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Order_getTodaySuiteMenuListByUserId]
	@UserId bigint = 0
AS
BEGIN
	SET NOCOUNT ON;

    Declare @Today varchar(20)

	Set @Today=datename(yyyy,getdate())+'-'+datename(mm,getdate())+'-'+datename(dd,getdate())
	SELECT Data.*, Rest.name AS RestName
	FROM tbl_suiteMenuOrder AS Data INNER JOIN tbl_restaurant AS Rest ON Rest.id=Data.restID
	WHERE Data.userID=@UserId AND Data.state>=0
	--AND Datename(yyyy,Data.date_time)+'-'+Datename(mm,Data.date_time)+'-'+Datename(dd,Data.date_time)=@Today
	ORDER BY Data.date_time DESC
END

GO
/****** :  StoredProcedure [dbo].[sp_Order_getTodaySuiteMenuOrderInfo]    ű: 02/01/2010 14:30:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[sp_Order_getTodaySuiteMenuOrderInfo]
@userID bigint
as
declare @today varchar(20)
set @today = datename(yyyy,getdate())+'-'+datename(mm,getdate())+'-'+datename(dd,getdate())
--set @userID=11
--set @today='2006-08-18'
select id,date_time from tbl_suitemenuorder where userID=@userID and 
datename(yyyy,date_time)+'-'+datename(mm,date_time)+'-'+datename(dd,date_time) = @today
 order by date_time desc

select td.*,ts.state,tt.name from 
tbl_suitemenuorderDetail td inner join tbl_suitemenuorder ts on td.orderID=ts.id 
inner join tbl_restaurant tt on tt.id=ts.restID where orderID in 
(
select id from tbl_suitemenuorder where userID=@userID and 
datename(yyyy,date_time)+'-'+datename(mm,date_time)+'-'+datename(dd,date_time) = @today
)
GO
/****** :  StoredProcedure [dbo].[sp_Order_MyOrder_getByDateSpan]    ű: 02/01/2010 14:30:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Venson>
-- Create date: <2007-7-20>
-- Description:	<ҵ嵥ʱͳƱ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Order_MyOrder_getByDateSpan] 
	@UserId INT = 0,
	@BeginDeliverDate DATETIME,
	@EndDeliverDate DATETIME
AS
BEGIN
	SET NOCOUNT ON;

	SET @BeginDeliverDate = @BeginDeliverDate + ' 0:0:0'
	SET @EndDeliverDate = @EndDeliverDate + ' 23:59:59'

    SELECT
		DISTINCT(restID) AS RestId,
		RestName,
		SUM(total) AS Total
	FROM v_Order_GeneralList
	WHERE userID=@UserId AND state=1 AND
		deliverDate>= @BeginDeliverDate AND deliverDate<=@EndDeliverDate
	GROUP BY restID, RestName
END



GO
/****** :  StoredProcedure [dbo].[sp_Order_MyOrder_getByDays]    ű: 02/01/2010 14:30:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Venson>
-- Create date: <2007-7-20>
-- Description:	<ҵ嵥ͳƱ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Order_MyOrder_getByDays]
	@UserId INT = 0,
	@Years INT = 2006,
	@Months INT = 1
AS
BEGIN
	SET NOCOUNT ON;

    SELECT
		DAY(deliverDate) AS Days,
		restID as RestId,
		RestName,
		SUM(total) AS Total
	FROM
		v_Order_GeneralList
	WHERE
		userID=@UserId AND state=1 AND YEAR(deliverdate)=@Years
		AND MONTH(deliverDate)=@Months
	GROUP BY
		DAY(deliverDate), restID, RestName
	ORDER BY DAY(deliverDate)
END


GO
/****** :  StoredProcedure [dbo].[sp_Order_MyOrder_getByMonths]    ű: 02/01/2010 14:30:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Venson>
-- Create date: <2007-7-20>
-- Description:	<ҵ嵥ͳƱ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Order_MyOrder_getByMonths] 
	@UserId INT = 0,
	@Years INT = 2006
AS
BEGIN
	SET NOCOUNT ON;

    SELECT
		MONTH(deliverDate) AS Months,
		restID as RestId,
		RestName,
		SUM(total) AS Total
	FROM
		v_Order_GeneralList
	WHERE
		userID=@UserId AND state=1 AND YEAR(deliverdate)=@Years
	GROUP BY
		MONTH(deliverDate), restID, RestName
	ORDER BY MONTH(deliverDate)
END


GO
/****** :  StoredProcedure [dbo].[sp_Order_setSuitemenuOrderState]    ű: 02/01/2010 14:30:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[sp_Order_setSuitemenuOrderState]
@orderID bigint,
@state int
as
	update tbl_suitemenuorder set state=@state where id=@orderID
	select @@rowcount
GO
/****** :  StoredProcedure [dbo].[sp_Order_SuiteMenu_cancelOrder]    ű: 02/01/2010 14:30:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Venson>
-- Create date: <2007-6-21>
-- Description:	<ײͶ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Order_SuiteMenu_cancelOrder]
	@OrderId bigint = 0
AS
BEGIN
	SET NOCOUNT ON;

    Declare @State int
	Declare @Result int
	declare @orderPostTime datetime
	declare @deliverDate datetime
	declare @restid int
	SELECT @State=state,@orderPostTime = date_time,@deliverDate = deliverDate,@restid = restid FROM tbl_suiteMenuOrder WHERE id=@OrderId
	If @State = 0 Begin
		if @orderPostTime>=convert(varchar(10),getdate(),120)
		begin
			if @deliverDate >= convert(varchar(10),dateadd(d,1,getdate()),120)
			begin
				update tbl_rest_manager set waitOrderPre=waitOrderPre-1 where restid = @restid
			end
			else 
			begin
				update tbl_rest_manager set waitOrder=waitOrder-1 where restid = @restid
			end
		end
		else
		begin --յδĶ
			update tbl_rest_manager set waitOrderOld=waitOrderOld-1 where restid = @restid
		end
		UPDATE tbl_suiteMenuOrder SET state=-1 WHERE id=@OrderId
		--ˮ		
		update tbl_runningOrder set state=-1 where id=@OrderId
		If @@Rowcount > 0 Begin
			Set @Result = 1
		End Else Begin
			Set @Result = 0
		End
	End Else Begin
		Set @Result = 0
	End

	SELECT @Result

END





GO
/****** :  StoredProcedure [dbo].[sp_Order_SuiteMenu_getDetailListByOrderId]    ű: 02/01/2010 14:30:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Venson>
-- Create date: <2007-6-21>
-- Description:	<ȡײͶϸб>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Order_SuiteMenu_getDetailListByOrderId]
	@OrderId bigint = 0
AS
BEGIN
	SET NOCOUNT ON;

	SELECT Data.*
	FROM tbl_suiteMenuOrderDetail AS Data --INNER JOIN tbl_suiteMenuTable AS Menu ON Data.menuID=Menu.id
	WHERE orderID=@OrderId

END



GO
/****** :  StoredProcedure [dbo].[sp_Order_SuiteMenu_getInfo]    ű: 02/01/2010 14:30:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









-- =============================================
-- Author:		<Venson>
-- Create date: <2007-6-21>
-- Description:	<ȡײͶϢ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Order_SuiteMenu_getInfo] 
	@OrderId bigint =0
AS
BEGIN
	SET NOCOUNT ON;

--    SELECT TOP 1 Data.*, Rest.name AS RestName,
--		ISNULL(UserAddress.FullAddress, '') AS UserAddress,
--		ISNULL(Area.FullAddress, '') + ' ' + Data.address AS CustomAddress
--	FROM tbl_suiteMenuOrder AS Data INNER JOIN
--		tbl_restaurant AS Rest ON Data.restID=Rest.id LEFT JOIN
--		V_area AS Area ON Area.id=Data.areaID LEFT JOIN
--		v_userAddress AS UserAddress ON UserAddress.id=Data.addressID
--	WHERE Data.id=@OrderId
	SELECT TOP 1
		Data.id,
		Data.userID,
		Data.restID,
		Data.orderContent,
		Data.total,
		Data.DeliveryMoney,
		Data.name,
		Data.phone,
		Data.addressID,
		Data.areaID,
		Data.address,
		Data.date_time,
		Data.IP,
		CAST((CONVERT(VARCHAR(10), deliverDate, 101) 
		+ ' ' + CONVERT(VARCHAR(8), deliverTime, 108)) AS DATETIME) AS deliverDate,
		Data.deliverTime,
		Data.state,
		Data.note,
		Data.address as roomName,Data.OrderMode,
		area.name as areaName,
		Rest.name AS RestName,
		ISNULL(Area.FullAddress, '') + ' ' + Data.address AS OrderAddress
	FROM tbl_suiteMenuOrder AS Data LEFT JOIN
		tbl_restaurant AS Rest ON Data.restID = Rest.id LEFT JOIN
		V_area AS Area ON Area.id = Data.areaID
	WHERE Data.id = @OrderId
END









GO
/****** :  StoredProcedure [dbo].[sp_Order_SuiteMenu_getLatestListByUserId]    ű: 02/01/2010 14:30:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Venson>
-- Create date: <2007-6-21>
-- Description:	<ȡײͶб(֮ǰʶ)>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Order_SuiteMenu_getLatestListByUserId]
	@UserId bigint = 0
AS
BEGIN

	SET NOCOUNT ON;

    Declare @Today varchar(20)
	Set @Today = Datename(yyyy,Getdate())
		+ '-' + Datename(mm,Getdate())
		+ '-' + Datename(dd,Getdate())
		+ ' 00:00:00'
	SELECT TOP 2 Data.*, Rest.name AS RestName
	FROM tbl_suiteMenuOrder AS Data INNER JOIN tbl_restaurant AS Rest ON Rest.id=Data.restID
	WHERE Data.userID=@UserId
		AND Data.DeliverDate<@Today
	ORDER BY Data.deliverDate DESC
END



GO
/****** :  StoredProcedure [dbo].[sp_Order_SuiteMenu_getListByUserId]    ű: 02/01/2010 14:30:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Venson>
-- Create date: <2007-6-21>
-- Description:	<ȡѯײͶб>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Order_SuiteMenu_getListByUserId]
	@UserId bigint = 0,
	@BeginDeliverDate datetime,
	@EndDeliverDate datetime
AS
BEGIN

	SET NOCOUNT ON;

    SELECT Data.*, Rest.name AS RestName
	FROM tbl_suiteMenuOrder AS Data INNER JOIN tbl_restaurant AS Rest ON Data.restID=Rest.id
	WHERE Data.userID=@UserId
		AND DeliverDate>=@BeginDeliverDate AND DeliverDate<=@EndDeliverDate
END


GO
/****** :  StoredProcedure [dbo].[sp_Order_SuiteMenu_getReservationListByUserId]    ű: 02/01/2010 14:30:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Venson>
-- Create date: <2007-6-21>
-- Description:	<ȡԤײͶб(֮)>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Order_SuiteMenu_getReservationListByUserId]
	@UserId bigint = 0
AS
BEGIN
	SET NOCOUNT ON;

    Declare @Today varchar(20)
	Set @Today = Datename(yyyy,Getdate())
		+ '-' + Datename(mm,Getdate())
		+ '-' + Datename(dd,Getdate())
		+ ' 00:00:00'
	SELECT Data.*, Rest.name AS RestName
	FROM tbl_suitemenuOrder AS Data INNER JOIN tbl_restaurant AS Rest ON Rest.id=Data.restID
	WHERE Data.userID=@UserId
		AND Data.DeliverDate>@Today
	ORDER BY Data.deliverDate DESC
END



GO
/****** :  StoredProcedure [dbo].[sp_Order_SuiteMenu_getTodayListByUserId]    ű: 02/01/2010 14:30:56 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Venson>
-- Create date: <2007-6-21>
-- Description:	<ȡײͶб>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Order_SuiteMenu_getTodayListByUserId] 
	@UserId bigint = 0
AS
BEGIN
	SET NOCOUNT ON;

	Declare @Today varchar(20)

		Set @Today=datename(yyyy,getdate())+'-'+datename(mm,getdate())+'-'+datename(dd,getdate())
		SELECT Data.*, Rest.name AS RestName
		FROM tbl_suiteMenuOrder AS Data INNER JOIN tbl_restaurant AS Rest ON Rest.id=Data.restID
		WHERE Data.userID=@UserId
			AND Datename(yyyy,Data.deliverDate)+'-'+Datename(mm,Data.deliverDate)+'-'+Datename(dd,Data.deliverdate)=@Today
		ORDER BY Data.deliverDate DESC


END





GO
/****** :  StoredProcedure [dbo].[sp_Order_SuiteMenu_updateState]    ű: 02/01/2010 14:30:56 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Venson>
-- Create date: <2007-6-28>
-- Description:	<ײͶ״̬>
-- =============================================
-- ѣɶҪΪûӦĻ֣ȡɶҪȥӦĻ
CREATE PROCEDURE [dbo].[sp_Order_SuiteMenu_updateState]
	@OrderId BIGINT = 0,
	@State INT = 0
AS
BEGIN
    exec [sp_Order_updateState] @OrderId,@State,1
END


GO
/****** :  StoredProcedure [dbo].[sp_OrderBaseIntegralRuleAdd]    ű: 02/01/2010 14:30:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








--***********************
--Autor:wjh
--datetime:2007-11-23
--description:Ӷֱ
--************************
CREATE PROCEDURE [dbo].[sp_OrderBaseIntegralRuleAdd]
@name varchar(8000)='',
@startTime varchar(120),
@endTime varchar(120),
@integral float = 0,
@note varchar(8000),
@adminID int = 0,
@content varchar(8000)='',
@result int=0  output
AS
SET XACT_ABORT ON  --  try  
    begin
    BEGIN tran
	declare @spResult int
	declare @str varchar(4000)
	set @str = ''
	exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output

if (select count(*) from tbl_OrderBaseIntegralRule where isDelete=0 )=0
 begin
     
   insert into tbl_OrderBaseIntegralRule(name,startTime,endTime,integral) 
values(@name,@startTime,@endTime,@integral)
      if @@error=0 begin
      set @result=1
      end  else begin
      set @result=0 end
end 
else 
begin 
     exec sp_IntegralRangCheck 0,'tbl_OrderBaseIntegralRule',@startTime,@endTime
if @@rowCount = 0 
begin
     insert into tbl_OrderBaseIntegralRule(name,startTime,endTime,integral) 
values(@name,@startTime,@endTime,@integral)
          if @@error=0 begin
          set @result=1
          end else begin
          set @result=0 end
    end  else begin
    set @result=0 end
end 
 
end  
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result
















GO
/****** :  StoredProcedure [dbo].[sp_OrderBaseIntegralRuleDelete]    ű: 02/01/2010 14:31:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










--***********************
--Autor:wjh
--datetime:2007-11-23
--description:ֱɾ
--************************
CREATE PROCEDURE [dbo].[sp_OrderBaseIntegralRuleDelete]
@id int = 0,
@adminID int = 0,
@content varchar(8000)='',
@result int = 0 output
AS
  
SET XACT_ABORT ON  --  try  
    BEGIN tran
    begin
	declare @spResult int
	declare @str varchar(4000)
	set @str = ''
	exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
 
update  tbl_OrderBaseIntegralRule  set isDelete = 1 where id = @id
if @@error =0
begin
 set @result = 1
end

end  
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result





















GO
/****** :  StoredProcedure [dbo].[sp_OrderBaseIntegralRuleSelect]    ű: 02/01/2010 14:31:02 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










--***********************
--Autor:wjh
--datetime:2007-11-23
--description:ֱѯ
--************************
CREATE PROCEDURE [dbo].[sp_OrderBaseIntegralRuleSelect]
@id int = 0
AS
   declare @sql varchar(8000)
set @sql =' select id,name,integral,note,Convert(varchar(10),startTime,120) as startTime ,Convert(varchar(10),endTime,120) as endTime from  tbl_OrderBaseIntegralRule  where isdelete = 0 order by startTime desc'
if @id <> 0
begin
 set @sql = @sql + ' and id = @id'
end
exec(@sql)
select @@rowcount




















GO
/****** :  StoredProcedure [dbo].[sp_OrderBaseIntegralRuleUpdate]    ű: 02/01/2010 14:31:02 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










--***********************
--Autor:wjh
--datetime:2007-11-23
--description޸Ķֱ
--************************
CREATE PROCEDURE [dbo].[sp_OrderBaseIntegralRuleUpdate]
@id int,
@name varchar(8000)='',
@startTime varchar(8000),
@endTime varchar(8000),
@integral float = 0,
@note varchar(8000),
@adminID int = 0,
@content varchar(8000)='',
@result int=0  output
AS
SET XACT_ABORT ON  --  try  
BEGIN tran
    begin
	declare @spResult int
	declare @str varchar(4000)
	set @str = ''
	exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
 

     exec sp_IntegralRangCheck @id,'tbl_OrderBaseIntegralRule',@startTime,@endTime
if @@rowCount = 0 
begin
     update tbl_OrderBaseIntegralRule set name = @name,startTime = @startTime,
endTime = @endTime,integral = @integral,note = @note where id = @id 
          if @@error=0 begin
          set @result=1
          end else begin
          set @result=0 end
    end  else begin
    set @result=0 end 
 
end  
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result



















GO
/****** :  StoredProcedure [dbo].[sp_orderDelete]    ű: 02/01/2010 14:31:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_orderDelete] 
@orderID int,
@adminUserID int
AS
declare @state int
set @state=1
select @state=state from   tbl_order  where id=@orderID and state=0
	if @state>=0
	begin
	begin
	BEGIN tran
	insert into tbl_systemLog(userID,content)values(@adminUserID,'delete orderID '+str(@orderID)+' the last state is'+str(@state))
	update tbl_order set state=-1 where id=@orderID
	
	if(@@error>0)
		begin
		rollback tran
		select -1
		end
	else
		begin
		commit tran
		select 1
		end
end
select -2
end
GO
/****** :  StoredProcedure [dbo].[sp_OrderIntegralRateInfoAdd]    ű: 02/01/2010 14:31:06 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE PROCEDURE [dbo].[sp_OrderIntegralRateInfoAdd]
@classID int = 0,
@name varchar(8000)='',
@startMoney float=0,
@endMoney float=0,
@rate float=0,
@adminID int = 0,
@content varchar(8000)='',
@result int=0  output
AS
SET XACT_ABORT ON  --  try  
begin TRAN
    begin
	declare @spResult int
	declare @str varchar(4000)
set @str = '' 
if (select count(*) from tbl_orderIntegralRate where isDelete=0 )=0 begin
exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
   insert into tbl_orderIntegralRate(name,startMoney,endMoney,rate,classID) 
values(@name,@startMoney,@endMoney,@rate,@classID)
      if @@error=0 begin
      set @result=1
      end  else begin
      set @result=0 end
end else begin 
      /************************************/
     if exists( select * from  tbl_orderIntegralRate 
where @startMoney >= startMoney and @startMoney < endMoney and isDelete=0  and classID = @classID ) 
begin set  @result=2 end 

     if exists( select * from  tbl_orderIntegralRate 
where @endMoney > startMoney and  @endMoney <= endMoney and isDelete=0   and classID = @classID ) 
begin set  @result=2 end 
     
     if exists( select * from  tbl_orderIntegralRate 
where startMoney >= @startMoney and startMoney < @endMoney and isDelete=0   and classID = @classID ) 
begin set  @result=2 end 

     if exists( select * from  tbl_orderIntegralRate 
where endMoney > @startMoney and endMoney <= @endMoney and isDelete=0   and classID = @classID ) 
begin set  @result=2 end 
       /************************************/

    if @result<>2 begin
exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
     insert into tbl_orderIntegralRate(classID,name,startMoney,endMoney,rate) 
values(@classID,@name,@startMoney,@endMoney,@rate)
          if @@error=0 begin
          set @result=1
          end else begin
          set @result=0 end
    end  else begin
    set @result=0 end
end 

end  
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result












GO
/****** :  StoredProcedure [dbo].[sp_OrderIntegralRateInfoDelete]    ű: 02/01/2010 14:31:07 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_OrderIntegralRateInfoDelete]
@id int=0,
@adminID int = 0,
@content varchar(8000)='',
@result int=0  output
AS
SET XACT_ABORT ON  --  try  
begin TRAN
    begin
	declare @spResult int
	declare @str varchar(4000)
set @str = ''
exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
update tbl_orderIntegralRate set isDelete=1 where id=@id
  if @@error=0 begin
  set @result=1 end

end  
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result





GO
/****** :  StoredProcedure [dbo].[sp_OrderIntegralRateInfoSelect]    ű: 02/01/2010 14:31:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE PROCEDURE [dbo].[sp_OrderIntegralRateInfoSelect]
@id int=0,
@classID int = 0
AS
declare @sql varchar(8000)
set  @sql = 'select * from tbl_orderIntegralRate where isDelete=0'
if @id<>0
begin
set @sql = @sql + ' and id = '+ str(@id) +''
end else begin
 if @classID <> 0
   begin
	set @sql = @sql + ' and classId = '+ str(@classID) +''
   end
end
set @sql = @sql + ' order by startMoney'
exec(@sql)











GO
/****** :  StoredProcedure [dbo].[sp_OrderIntegralRateInfoUpdate]    ű: 02/01/2010 14:31:10 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_OrderIntegralRateInfoUpdate]
@id int=0,
@classID int = 0,
@startMoney float,
@endMoney float,
@rate float,
@adminID int = 0,
@content varchar(8000)='',
@result int=0  output
AS
begin
SET XACT_ABORT ON  --  try  
    begin
    begin TRAN
	declare @spResult int
	declare @str varchar(4000)
set @str = ''

     /************************************/
     if exists( select * from  tbl_orderIntegralRate 
where @startMoney >= startMoney and @startMoney < endMoney and isDelete=0 and id<>@id and classID = @classID ) 
begin set  @result=2 end 

     if exists( select * from  tbl_orderIntegralRate 
where @endMoney > startMoney and  @endMoney <= endMoney and isDelete=0  and id<>@id and classID = @classID ) 
begin set  @result=2 end 
     
     if exists( select * from  tbl_orderIntegralRate 
where startMoney >= @startMoney and startMoney < @endMoney and isDelete=0  and id<>@id and classID = @classID ) 
begin set  @result=2 end 

     if exists( select * from  tbl_orderIntegralRate 
where endMoney > @startMoney and endMoney <= @endMoney and isDelete=0  and id<>@id and classID = @classID ) 
begin set  @result=2 end 
       /************************************/
    if @result<>2 begin
exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
update tbl_orderIntegralRate  
set startMoney=@startMoney ,endMoney=@endMoney ,rate=@rate  where id=@id
  if @@error=0 begin
  set @result=1
  end else begin
  set @result=0
  end 
  end else begin
  set @result=0
  end 


end  
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result

end






GO
/****** :  StoredProcedure [dbo].[sp_OrderMonitorStatis]    ű: 02/01/2010 14:31:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_OrderMonitorStatis]
@Sign int=1
AS
/*
2007-12-5
ǿ
޸
ͨͼͳƣֱͨͳ
ԭ2޸δ-2
*/
begin --  -1   0  1  -2 
	declare @Total bigint
	declare @total1 int
	declare @total2 int

	declare @lastOrderM bigint
    declare @lastOrderM1 bigint
	declare @lastOrderM2 bigint

	declare @CurOrderM bigint
	declare @CurOrderM1 bigint
	declare @CurOrderM2 bigint

	declare @lastWeekM bigint
	declare @lastWeekM1 bigint
	declare @lastWeekM2 bigint

	declare @YesOrderM bigint
	declare @YesOrderM1 bigint
	declare @YesOrderM2 bigint

	declare @TodOrderM bigint
	declare @TodOrderM1 bigint
	declare @TodOrderM2 bigint

		declare @lastMonth_Start DateTime
		declare @lastMonth_End DateTime
		declare @CurMonth_Start DateTime
		declare @CurMonth_End DateTime
		declare @lastWeek_Start DateTime
		declare @lastWeek_End DateTime
		declare @YesReg_Start DateTime
		declare @YesReg_End DateTime
		declare @TodReg_Start DateTime
		declare @TodReg_End DateTime
    --µĵһ   2007-08-01 00:00:00.000
    set @lastMonth_Start=DATEADD(mm, DATEDIFF(mm,0,dateadd(m,-1,getdate())), 0)
    --µһ 2007-08-31 23:59:59.997
    set @lastMonth_End=dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)) 
    --µĵһ   2007-09-01 00:00:00.000
    set @CurMonth_Start=DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
    --µһ 2007-09-30 23:59:59.997
    set @CurMonth_End=dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
    --һ 2007-09-10 00:00:00.000
    set @lastWeek_Start= dateadd(wk,-1,DATEADD(wk,DATEDIFF(wk,0,getdate()),0))
    --ս 2007-09-17 00:00:00.000
    set @lastWeek_End=  DATEADD(wk,DATEDIFF(wk,0,getdate()),0)
    -- 2007-09-17 00:00:00.000
    set @YesReg_Start= CONVERT(DateTime,CONVERT(varchar(100), dateadd(d,-1,getdate()), 23))
    -- 2007-09-18 00:00:00.000
    set @YesReg_End= CONVERT(DateTime,CONVERT(varchar(100),getdate(), 23))
    --տʼ 2007-09-18 00:00:00.000
    set @TodReg_Start= @YesReg_End
    --ս 2007-09-19 00:00:00.000
    set @TodReg_End= CONVERT(DateTime,CONVERT(varchar(100),dateadd(d,1,getdate()), 23)) 
    --ͳƶ
	select @total1=sum(total) from tbl_order where state=@sign
	select @total2=sum(total) from tbl_suitemenuorder where state=@sign
	select @Total=COALESCE(@total1,0)+COALESCE(@total2,0)
    --ͳ
	select @lastOrderM1=sum(total) from  tbl_order  where state=@Sign
    and date_time between @lastMonth_Start and @lastMonth_End
	select @lastOrderM2=sum(total) from  tbl_suitemenuorder  where state=@Sign
    and date_time between @lastMonth_Start and @lastMonth_End
	select @lastOrderM=COALESCE(@lastOrderM1,0)+COALESCE(@lastOrderM2,0)
	--ͳƵ
    select @CurOrderM1=sum(total) from  tbl_order where state=@Sign
    and date_time between @CurMonth_Start and @CurMonth_End
	select @CurOrderM2=sum(total) from  tbl_suitemenuorder where state=@Sign
    and date_time between @CurMonth_Start and @CurMonth_End
	select @CurOrderM=COALESCE(@CurOrderM1,0)+COALESCE(@CurOrderM2,0)
	--ͳ
	select @lastWeekM1=sum(total) from  tbl_order where state=@Sign
    and date_time >= @lastWeek_Start and date_time < @lastWeek_End
	select @lastWeekM2=sum(total) from  tbl_suitemenuorder where state=@Sign
    and date_time >= @lastWeek_Start and date_time < @lastWeek_End
	select @lastWeekM=COALESCE(@lastWeekM1,0)+COALESCE(@lastWeekM2,0)
	--ͳն
    select @YesOrderM1=sum(total) from  tbl_order  where state=@Sign
    and date_time >= @YesReg_Start and date_time < @YesReg_End
	select @YesOrderM2=sum(total) from  tbl_suitemenuorder  where state=@Sign
    and date_time >= @YesReg_Start and date_time < @YesReg_End
	select @YesOrderM=COALESCE(@YesOrderM1,0)+COALESCE(@YesOrderM2,0)
	--ͳƽ충
    select @TodOrderM1=sum(total) from  tbl_order  where state=@Sign
    and date_time >= @TodReg_Start and date_time < @TodReg_End
	select @TodOrderM2=sum(total) from  tbl_suitemenuorder  where state=@Sign
    and date_time >= @TodReg_Start and date_time < @TodReg_End
	select @TodOrderM=COALESCE(@TodOrderM1,0)+COALESCE(@TodOrderM2,0)
	select  @Total Total,
	@lastOrderM lastOrderM,
	@CurOrderM CurOrderM,
	@lastWeekM lastWeekM,
	@YesOrderM YesOrderM,
	@TodOrderM TodOrderM
end


GO
/****** :  StoredProcedure [dbo].[sp_orderReport]    ű: 02/01/2010 14:31:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_orderReport]
@name varchar(8000)='',
@startDate varchar(10)='',
@endDate varchar(10)='',
@restID int=0,
@orderState int=-3  --  {"δ","0"},{"","1"},{"","-1"},{"","-2"},{"ȫ","-3"}
 AS

declare @sql varchar(8000),@where varchar(8000)
set @sql = 'SELECT * FROM v_Order_GeneralList '
set @where = ''
if @restID>0 
	set @where = @where + ' and restID=' + cast(@restID as varchar(8000))
if len(@startDate)>0 and len(@endDate)>0 
	set @where = @where + ' and (deliverDate between ''' + @startDate + ''' and dateAdd(d,1,''' + @endDate + '''))'
if @orderState>-3 
	set @where = @where + ' and state='+cast(@orderState as varchar(8000))
if len(@where)>4
	set @sql = @sql + ' where ' + substring(@where,5,len(@where)-4)
set @sql=@sql + ' order by deliverDate desc'

--select @sql
exec(@sql)


--begin
--	select a.*,b.name as restName from tbl_order a,tbl_restaurant b where a.restID=b.ID and  a.date_time between @startDate and dateadd(d,1,@endDate) and a.state=@orderState and a.restID=@restID
--	select coalesce(sum(total),0),count(*) from tbl_order
--	where date_time between @startDate and dateadd(d,1,@endDate) and state=@orderState and restID=@restID
--	end
--	else
--	begin
--	select a.*,b.name as restName from tbl_order a,tbl_restaurant b where a.restID=b.ID and  a.date_time between @startDate and dateadd(d,1,@endDate) and a.state=@orderState 
--	select coalesce(sum(total),0),count(*) from tbl_order
--	where date_time between @startDate and dateadd(d,1,@endDate) and state=@orderState 	
--end

GO
/****** :  StoredProcedure [dbo].[sp_orderReportAll]    ű: 02/01/2010 14:31:14 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_orderReportAll]
@startDate varchar(10),
@endDate varchar(10),
@restID int
 AS
if @restID>0
begin
select a.*,b.name as restName from tbl_order a,tbl_restaurant b 
where a.restID=b.ID and  (a.date_time between @startDate and dateadd(d,1,@endDate)) and a.restID=@restID 
	select coalesce(sum(total),0),count(*) 
	from tbl_order
	where (date_time between @startDate and dateadd(d,1,@endDate) and restID=@restID) 
end
else
begin
select a.*,b.name as restName 
	from tbl_order a,tbl_restaurant b 
	where 
	a.restID=b.ID and (a.date_time between @startDate and dateadd(d,1,@endDate)) 
	select coalesce(sum(total),0),count(*) 
	from tbl_order
	where (date_time between @startDate and dateadd(d,1,@endDate))
end
GO
/****** :  StoredProcedure [dbo].[sp_orderReset]    ű: 02/01/2010 14:31:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_orderReset]
@orderID int,
@adminUserID int
AS
declare @state int
set @state=1
select @state=state from   tbl_order  where id=@orderID and state=-1
	if @state=0
	begin
	begin
	begin TRAN
	insert into tbl_systemLog(userID,content)values(@adminUserID,'reset orderID '+str(@orderID)+' the last state is'+str(@state))
	update tbl_order set state=0 where id=@orderID	
	if(@@error>0)
		begin
		rollback tran
		select -1
		end
	else
		begin
		commit tran
		select 1
		end
end
select -2
end
GO
/****** :  StoredProcedure [dbo].[sp_orderS2Delete]    ű: 02/01/2010 14:31:16 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_orderS2Delete] --ɾɹ
@orderID int,
@adminUserID int
AS
declare @state int
set @state=1
declare @total float
declare @userID bigint
declare @eUserID bigint
select @state=state,@total= total,@userID=userID  from   tbl_order  where id=@orderID and state=1
	if @state>=0
	begin
	begin TRAN
	begin
	insert into tbl_systemLog(userID,content)values(@adminUserID,'delete orderID '+str(@orderID)+' the last state is'+str(@state))
	update tbl_order set state=-1 where id=@orderID
	declare @v varchar(50)
	set @total=-@total
	set @v=',ͻûֱȡ,ID'+str(@orderID)
	exec sp_userIntegral @userID,@orderID,@total, @v
	if @eUserID>0
	begin
	   set @total=@total*0.1
	   set @v='Ƽû,ȡ,+ID'+str(@orderID)
	    exec sp_userIntegral @eUserID,@orderID,@total, @v
	end
	if(@@error>0)
		begin
		rollback TRAN
		select -1
		end
	else
		begin
		commit TRAN
		select 1
		end
end
select -2
end
GO
/****** :  StoredProcedure [dbo].[sp_OrdersBasisDateStatis]    ű: 02/01/2010 14:31:17 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_OrdersBasisDateStatis]
@ProvinceID int=0,
@CityID int=0,
@RegionID int=0,
@ZoneID int=0,
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1',
@datetype int,
@ordertype int,
@orderstate int
/* @datetype    1   2 
 * @ordertype   1   2 ϶
 * @orderstate -1   0  1  2 
 */
AS
 IF Object_Id('tempdb..#OrdersBasisDateStatis1') IS NOT NULL
    DROP TABLE #OrdersBasisDateStatis1
 IF Object_Id('tempdb..#OrdersBasisDateStatis2') IS NOT NULL
    DROP TABLE #OrdersBasisDateStatis2
 IF Object_Id('tempdb..#OrdersBasisDateStatis3') IS NOT NULL
    DROP TABLE #OrdersBasisDateStatis3
begin
DECLARE @Sql nvarchar(4000)
DECLARE @Where varchar(8000)
DECLARE @ProvinceIdStr varchar(8000)
DECLARE @CityIdStr varchar(8000)
DECLARE @RegionIdStr varchar(8000)
DECLARE @ZoneIdStr varchar(8000)
SET @ProvinceIdStr = CAST(@ProvinceID AS varchar(8000))
SET @CityIdStr = CAST(@CityID AS varchar(8000))
SET @RegionIdStr = CAST(@RegionID AS varchar(8000))
SET @ZoneIdStr = CAST(@ZoneID AS varchar(8000))
SET @Where = ''
IF @ProvinceID > 0 OR @CityID > 0 OR @RegionID > 0 OR @ZoneID > 0
BEGIN
IF @ProvinceId > 0 SET @Where = @Where + ' AND b.ProvinceId=' + @ProvinceIdStr + ' AND '
IF @CityId > 0 SET @Where = @Where + ' b.CityId=' + @CityIdStr + ' AND '
IF @RegionId > 0 SET @Where = @Where + ' b.RegionId=' + @RegionIdStr + ' AND '
IF @ZoneId > 0 SET @Where = @Where + ' b.ZoneId=' + @ZoneIdStr + ' AND '
SET @Where = SUBSTRING(@Where, 1, LEN(@Where)-4)
END

set @sql=' select CONVERT(varchar(100),date_time, 112) dateStr,
count(*) OrderCount,sum(total) OrderMoney
into #OrdersBasisDateStatis1
from tbl_order a left join tbl_area b
on a.areaid=b.id  '

set @sql=@sql + '  where  1=1  '

if @orderstate<>-2 begin
set @sql=@sql + '  and a.state=' + str(@orderstate)
end 

if @ordertype=1 BEGIN
set @sql=@sql + '  and (select count(*) from tbl_orderDetail where orderID=a.id)=1  ' 
end if @ordertype=2 BEGIN
set @sql=@sql + '  and (select count(*) from tbl_orderDetail where orderID=a.id)>1  ' 
end 

set @sql=@sql + ' '+ @Where + '   and  a.date_time >= ''' +
cast(@StartDate as varchar(20))+ '''  and  a.date_time <  ''' + 
cast(@EndDate as varchar(20)) + '''  group by CONVERT(varchar(100),date_time, 112) '


set @sql=@sql + '  select CONVERT(varchar(100),date_time, 112) dateStr,
count(*) OrderCount,sum(total) OrderMoney
into #OrdersBasisDateStatis2
from tbl_suiteMenuOrder a left join tbl_area b 
on a.areaID=b.id '

set @sql=@sql + '  where  1=1  '

if @orderstate<>-2 begin
set @sql=@sql + '  and a.state=' + str(@orderstate)
end
 
if @ordertype=1 BEGIN
set @sql=@sql + '  and (select count(*) from tbl_suiteMenuOrderDetail where orderID=a.id)=1  ' 
end if @ordertype=2 BEGIN
set @sql=@sql + '  and (select count(*) from tbl_suiteMenuOrderDetail where orderID=a.id)>1  ' 
end 

set @sql=@sql + ' '+ @Where+ '  and  a.date_time >= ''' +
cast(@StartDate as varchar(20))+ '''  and a.date_time <  ''' + 
cast(@EndDate as varchar(20)) + '''  group by CONVERT(varchar(100),date_time, 112) '
set @sql=@sql + '  select * into #OrdersBasisDateStatis3 from (
	select * from #OrdersBasisDateStatis1
	union all
	select * from #OrdersBasisDateStatis2
) T '

if @datetype=1 begin 
set @sql=@sql + '  select dateStr,sum(OrderCount) OrderCount, 
sum(OrderMoney) OrderMoney 
from  #OrdersBasisDateStatis3 group by dateStr '
end else begin
set @sql=@sql + '  select substring(dateStr,1,6) dateStr,sum(OrderCount) OrderCount, 
sum(OrderMoney) OrderMoney 
from #OrdersBasisDateStatis3 group by substring(dateStr,1,6) '
end
--select @sql
EXEC(@Sql)
end



















GO
/****** :  StoredProcedure [dbo].[sp_OrdersBasisDateStatisInfo]    ű: 02/01/2010 14:31:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_OrdersBasisDateStatisInfo]
@ProvinceID int=0,
@CityID int=0,
@RegionID int=0,
@ZoneID int=0,
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1',
@ordertype int,
@orderstate int
/* @ordertype   1   2 ϶
 * @orderstate -1   0  1  2 
 */
AS
begin
DECLARE @Sql nvarchar(4000)
DECLARE @Where varchar(8000)
DECLARE @ProvinceIdStr varchar(8000)
DECLARE @CityIdStr varchar(8000)
DECLARE @RegionIdStr varchar(8000)
DECLARE @ZoneIdStr varchar(8000)
SET @ProvinceIdStr = CAST(@ProvinceID AS varchar(8000))
SET @CityIdStr = CAST(@CityID AS varchar(8000))
SET @RegionIdStr = CAST(@RegionID AS varchar(8000))
SET @ZoneIdStr = CAST(@ZoneID AS varchar(8000))
SET @Where = ''
IF @ProvinceID > 0 OR @CityID > 0 OR @RegionID > 0 OR @ZoneID > 0
BEGIN
IF @ProvinceId > 0 SET @Where = @Where + ' AND b.ProvinceId=' + @ProvinceIdStr + ' AND '
IF @CityId > 0 SET @Where = @Where + ' b.CityId=' + @CityIdStr + ' AND '
IF @RegionId > 0 SET @Where = @Where + ' b.RegionId=' + @RegionIdStr + ' AND '
IF @ZoneId > 0 SET @Where = @Where + ' b.ZoneId=' + @ZoneIdStr + ' AND '
SET @Where = SUBSTRING(@Where, 1, LEN(@Where)-4)
END
set @sql='
select a.id orderid,a.RestName restname,
a.OrderType ordertype,a.orderContent orderContent,
a.total total,a.date_time date_time 
from v_Order_GeneralList a
left join tbl_area b on a.areaID=b.id  '

set @sql=@sql + '   where  1=1  '
 
if @orderstate<>-2 begin
set @sql=@sql + '    and  a.state='+ str(@orderstate) 
end

set @sql=@sql +  '   and  a.date_time >= ''' + cast(@StartDate as varchar(20)) + 
'''  and  a.date_time < ''' + cast(@EndDate as varchar(20)) + ''''

if @ordertype=2 begin
set @sql=@sql+ ' and   ((select count(*) from tbl_orderDetail where orderID=a.id)>1  
or (select count(*) from tbl_suiteMenuOrderDetail where orderID=a.id)>1) '
end if @ordertype=1 begin
set @sql=@sql+ ' and   ((select count(*) from tbl_orderDetail where orderID=a.id)=1  
or (select count(*) from tbl_suiteMenuOrderDetail where orderID=a.id)=1) '
end 

set @sql=@sql+ space(5)+ @where
set @sql = @sql + ' order by a.date_time '


EXEC(@Sql)
end
















GO
/****** :  StoredProcedure [dbo].[sp_OrdersBasisWeekStatis]    ű: 02/01/2010 14:31:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE PROCEDURE [dbo].[sp_OrdersBasisWeekStatis]
@ProvinceID int=0,
@CityID int=0,
@RegionID int=0,
@ZoneID int=0,
@AreaID int=0,
@StartDate datetime,
@EndDate datetime,
@orderstate int =-2 -- -1   0  1  2 
AS
begin
	DECLARE @Sql nvarchar(4000)
	DECLARE @Where varchar(8000)
	DECLARE @ProvinceIdStr varchar(8000)
	DECLARE @CityIdStr varchar(8000)
	DECLARE @RegionIdStr varchar(8000)
	DECLARE @ZoneIdStr varchar(8000)
    DECLARE @AreaIDStr varchar(8000)

	SET @ProvinceIdStr = CAST(@ProvinceID AS varchar(8000))
	SET @CityIdStr = CAST(@CityID AS varchar(8000))
	SET @RegionIdStr = CAST(@RegionID AS varchar(8000))
	SET @ZoneIdStr = CAST(@ZoneID AS varchar(8000))
    SET @AreaIDStr = CAST(@AreaID AS varchar(8000))

	SET @Where = ''
	IF @ProvinceID > 0 OR @CityID > 0 OR @RegionID > 0 OR @ZoneID > 0 OR @AreaID > 0
	BEGIN
		IF @ProvinceId > 0 SET @Where = @Where + ' AND a.ProvinceId=' + @ProvinceIdStr 
		IF @CityId > 0 SET @Where = @Where + ' and a.CityId=' + @CityIdStr 
		IF @RegionId > 0 SET @Where = @Where + ' and a.RegionId=' + @RegionIdStr
		IF @ZoneId > 0 SET @Where = @Where + ' and a.ZoneId=' + @ZoneIdStr 
        IF @AreaID > 0 SET @Where = @Where + ' and a.ParentAreaId='+ @AreaIDStr 
		
    END
	if @orderstate<>-2 begin
	set @where=@where + ' and a.state=' + str(@orderstate) end   
     declare @Date_Temp datetime
     declare @i int
     set @Date_Temp=@StartDate
     set @i=1
     set @Sql=''
	 declare @temp datetime
	 declare @weekDay int
	 while ( @Date_Temp<=@EndDate)
		 begin
			set @weekDay = datepart(weekday,@Date_temp)
			 if dateadd(d,(7-(@weekDay-1)+1),@Date_Temp) > @EndDate begin
			  set @temp = dateadd(d,1,@EndDate) end
			  else begin set @temp =dateadd(d,(7-(@weekDay-1)+1),@Date_Temp) end 
			  if @Sql<>'' begin 
					   set @Sql=@Sql + '  union  all  select dateStr='''+ ''+ str(@i) + ' ' + ''' ,
						OrderMoney=isnull(sum(a.total),0),'''+ Convert(varchar(10),@Date_Temp,120)+''' as startDate, '''+ Convert(varchar(10),dateadd(d,-1,@temp),120) +''' as endDate from  v_Order_GeneralList a  
						where  a.date_time >=''' + Convert(varchar(10),@Date_Temp,120) + 
						'''  and a.date_time <= ''' +  
						Convert(varchar(10),@temp,120) + ''''+ @Where 
			  end else  begin 
					   set @Sql= '   select dateStr='''+ ''+  str(@i) + ' ' + ''' ,
						OrderMoney=isnull(sum(a.total),0) ,'''+ Convert(varchar(10),@Date_Temp,120)+''' as startDate, '''+ Convert(varchar(10),dateadd(d,-1,@temp),120) +''' as endDate from  v_Order_GeneralList a  
						 where a.date_time >=''' + Convert(varchar(10),@Date_Temp,120) + 
						'''  and a.date_time <= ''' +  
						Convert(varchar(10),@temp,120) + ''''+ @Where 
			  end
			 
		   set @Date_Temp=dateadd(d,(7-(@weekDay-1)+1),@Date_Temp)
		   set @i=@i+1
		end
--select (@sql)
Exec(@Sql)
end 






GO
/****** :  StoredProcedure [dbo].[sp_OrdersBasisWeekStatis1]    ű: 02/01/2010 14:31:24 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_OrdersBasisWeekStatis1]
@ProvinceID int=0,
@CityID int=0,
@RegionID int=0,
@ZoneID int=0,
@AreaID int=0,
@StartDate datetime,
@EndDate datetime
AS
begin
	DECLARE @Sql nvarchar(4000)
	DECLARE @Where varchar(8000)
	DECLARE @ProvinceIdStr varchar(8000)
	DECLARE @CityIdStr varchar(8000)
	DECLARE @RegionIdStr varchar(8000)
	DECLARE @ZoneIdStr varchar(8000)
    DECLARE @AreaIDStr varchar(8000)

	SET @ProvinceIdStr = CAST(@ProvinceID AS varchar(8000))
	SET @CityIdStr = CAST(@CityID AS varchar(8000))
	SET @RegionIdStr = CAST(@RegionID AS varchar(8000))
	SET @ZoneIdStr = CAST(@ZoneID AS varchar(8000))
    SET @AreaIDStr = CAST(@AreaID AS varchar(8000))

	SET @Where = ''
	IF @ProvinceID > 0 OR @CityID > 0 OR @RegionID > 0 OR @ZoneID > 0 OR @AreaID > 0
	BEGIN
		IF @ProvinceId > 0 SET @Where = @Where + ' AND b.ProvinceId=' + @ProvinceIdStr + ' AND '
		IF @CityId > 0 SET @Where = @Where + ' b.CityId=' + @CityIdStr + ' AND '
		IF @RegionId > 0 SET @Where = @Where + ' b.RegionId=' + @RegionIdStr + ' AND '
		IF @ZoneId > 0 SET @Where = @Where + ' b.ZoneId=' + @ZoneIdStr + ' AND '
        IF @AreaID > 0 SET @Where = @Where + ' b.id=' + @AreaIDStr + ' AND '
		SET @Where = SUBSTRING(@Where, 1, LEN(@Where)-4)
    END  
     declare @Date_Temp datetime
     declare @i int
     set @Date_Temp=@StartDate
     set @i=1
     set @Sql=''
	 declare @temp datetime
	 declare @weekDay int
	 while ( @Date_Temp<=@EndDate)
		 begin
			set @weekDay = datepart(weekday,@Date_temp)
--			if @weekDay =1 set @weekDay = 8
			 if dateadd(d,(7-(@weekDay-1)),@Date_Temp) > @EndDate begin
			  set @temp = @EndDate end
			  else begin set @temp =dateadd(d,(7-(@weekDay-1)),@Date_Temp) end 
			  if @Sql<>'' begin 
					   set @Sql=@Sql + '  union  all  select dateStr='''+ ''+ str(@i) + ' ' + ''' ,
						OrderMoney=isnull(sum(a.total),0),'''+ Convert(varchar(10),@Date_Temp,120)+''' as startDate, '''+ Convert(varchar(10),@temp,120) +''' as endDate from  v_Order_GeneralList a  
						left join tbl_area  b on a.areaid=b.id  where  a.state=1   
						and a.date_time >=''' + Convert(varchar(10),@Date_Temp,120) + 
						'''  and a.date_time <= ''' +  
						Convert(varchar(10),@temp,120) + ''''+ @Where 
			  end else  begin 
					   set @Sql= '   select dateStr='''+ ''+  str(@i) + ' ' + ''' ,
						OrderMoney=isnull(sum(a.total),0) ,'''+ Convert(varchar(10),@Date_Temp,120)+''' as startDate, '''+ Convert(varchar(10),@temp,120) +''' as endDate from  v_Order_GeneralList a  
						left join tbl_area  b on a.areaid=b.id  where  a.state=1   
						and a.date_time >=''' + Convert(varchar(10),@Date_Temp,120) + 
						'''  and a.date_time <= ''' +  
						Convert(varchar(10),@temp,120) + ''''+ @Where 
			  end
			 
		   set @Date_Temp=dateadd(d,(7-(@weekDay-1)+1),@Date_Temp)
		   set @i=@i+1
		end
--select (@sql)
Exec(@Sql)
end 



GO
/****** :  StoredProcedure [dbo].[sp_OrdersBasisYearStatis]    ű: 02/01/2010 14:31:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_OrdersBasisYearStatis]
@ProvinceID int=0,
@CityID int=0,
@RegionID int=0,
@ZoneID int=0,
@AreaID int=0,
@StartDate datetime,
@EndDate datetime,
@OrderState varchar(2)=-2-- -1   0  1  2 
AS
begin
	DECLARE @Sql nvarchar(4000)
	DECLARE @Where varchar(8000)
	DECLARE @ProvinceIdStr varchar(8000)
	DECLARE @CityIdStr varchar(8000)
	DECLARE @RegionIdStr varchar(8000)
	DECLARE @ZoneIdStr varchar(8000)
    DECLARE @AreaIDStr varchar(8000)

	SET @ProvinceIdStr = CAST(@ProvinceID AS varchar(8000))
	SET @CityIdStr = CAST(@CityID AS varchar(8000))
	SET @RegionIdStr = CAST(@RegionID AS varchar(8000))
	SET @ZoneIdStr = CAST(@ZoneID AS varchar(8000))
    SET @AreaIDStr = CAST(@AreaID AS varchar(8000))

	SET @Where = ''
	IF @ProvinceID > 0 OR @CityID > 0 OR @RegionID > 0 OR @ZoneID > 0 OR @AreaID > 0
	BEGIN
		IF @ProvinceId > 0 SET @Where = @Where + ' AND b.ProvinceId=' + @ProvinceIdStr + ' AND '
		IF @CityId > 0 SET @Where = @Where + ' b.CityId=' + @CityIdStr + ' AND '
		IF @RegionId > 0 SET @Where = @Where + ' b.RegionId=' + @RegionIdStr + ' AND '
		IF @ZoneId > 0 SET @Where = @Where + ' b.ZoneId=' + @ZoneIdStr + ' AND '
        IF @AreaID > 0 SET @Where = @Where + ' b.id=' + @AreaIDStr + ' AND '
		SET @Where = SUBSTRING(@Where, 1, LEN(@Where)-4)
    END  
   if @OrderState<> -2
	set @where =@where+' and a.state='+@orderState
	 set @sql ='  select  substring(CONVERT(varchar(100),a.date_time, 112),1,4) datestr, 
	 OrderMoney=sum(a.total) from  v_Order_GeneralList a  
	 left join tbl_area  b on  a.areaid=b.id  where a.date_time >=''' + cast(@StartDate as varchar(20)) + 
	 '''  and a.date_time < ''' +  cast(@EndDate as varchar(20)) + 
	 ''' '+ @Where +  '   group by substring(CONVERT(varchar(100),a.date_time, 112),1,4)  
	 order by substring(CONVERT(varchar(100),a.date_time, 112),1,4) asc' 
EXEC(@Sql)
end

GO
/****** :  StoredProcedure [dbo].[sp_OrdersBuildingAnalyze]    ű: 02/01/2010 14:31:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
















CREATE  proc [dbo].[sp_OrdersBuildingAnalyze]
@ProvinceID int=0,
@CityID int=0,
@RegionID int=0,
@ZoneID int=0,
@Sign int=1, --ѯҪ
@StartDate varchar(8000)='',
@EndDate varchar(8000)='',
@ordertype int = 0,
@orderstate int = -3,
@parentID int = -1,
@type int = 0,--0ȫ1׼¥ԼӼ2δ׼¥3ɾ¥
@sortStr varchar(8000) =''
as
declare @sql1 varchar(8000) --׼¥
declare @sql2 varchar(8000) --δ׼¥
declare @sql3 varchar(8000) --ɾж¥
declare @sql varchar(8000) --ִܵsql
declare @where varchar(8000)
declare @where1 varchar(8000)
set @where = ''
set @sql = ''
set @sql1 = ''
set @sql2 = ''
set @sql3 = ''
set @where1 = ''
if @ProvinceID > 0 set @where =@where+ ' and v_order_generalList.provinceID = '+ str(@ProvinceID) +''
if @CityID > 0 set @where =@where+  ' and v_order_generalList.cityID = '+ str(@cityID) +''
if @ZoneID > 0 set @where =@where+  ' and v_order_generalList.zoneID = '+ str(@zoneID) +''
if @regionID > 0 set @where =@where+  ' and v_order_generalList.regionID= '+ str(@regionID) +''
if @startDate <> '' set @where =@where+  ' and v_order_generalList.date_time >='''+ @StartDate +''''
if @endDate  <> '' begin
	set @where =@where+  ' and v_order_generalList.date_time <'''+ Convert(varchar(10),dateAdd(d,1,@endDate),120) +''''
end
if @orderType <> 0 begin
	set @where = @where+ ' and v_order_generalList.orderType = '+ str(@orderType) +''
end 
if @orderState <> -3 begin 
	set @where= @where+ ' and v_order_generalList.state = '+ str(@orderState) +'' 
end


if @parentID <> -1 begin --鿴׼¥¶ľϢ
	set @sql = @sql+'select 4 as type,d.name as areaName, orderCount,orderTotal,isnull(usercount,0) as userCount,isnull(noRegCount,0) as noRegCount,a.areaid as areaID from'
	set @sql=@sql+' (select count(id) as orderCount,isnull(sum(total),0) as orderTotal,
	 areaid from v_order_generalList
	where AreaIsDelete = 0 and parentAreaid='+ str(@parentID) +' and areaid<>0' 
	set @sql = @sql+ @where + ' group by areaid) as a'
	set @sql = @sql+' left join (select count(distinct userid) as userCount , areaid from v_order_generalList 
where AreaIsDelete = 0 and parentAreaid='+ str(@parentID) +' and areaid<>0
and userid <> 0 '+ @where +' group by Areaid) as b on a.areaid = b.areaid '
	set @sql =@sql+ ' left join (select count(distinct ip) as noRegCount, areaid from v_order_generalList
where AreaIsDelete = 0 and parentAreaid='+ str(@parentID) +' and areaid<>0
and userid = 0 '+ @where +' group by areaid) as c on a.areaid = c.areaid'
	set @sql = @sql + ' left join (select name,id from tbl_area) as d on a.areaid = d.id'
end else begin
 --׼¥Ϣ
	set @sql1 = @sql1+'select 1 as type,d.name as areaName, orderCount,orderTotal,isnull(usercount,0) as userCount,isnull(noRegCount,0) as noRegCount,a.areaid as areaID from'
	set @sql1=@sql1+' (select count(id) as orderCount,isnull(sum(total),0) as orderTotal,
	parentAreaID as areaid from v_order_generalList
	where AreaIsDelete = 0 and parentAreaid<>0 and areaid<>0' 
	set @sql1 = @sql1+ @where + ' group by parentAreaID) as a'
	set @sql1 =@sql1+ ' left join (select count(distinct userid) as userCount , parentAreaid as areaid from v_order_generalList 
where AreaIsDelete = 0 and parentAreaid<>0 and areaid<>0
and userid <> 0 '+ @where +'group by parentAreaid) as b on a.areaid = b.areaid '
	set @sql1 = @sql1+' left join (select count(distinct ip) as noRegCount,parentAreaId as areaid from v_order_generalList
where AreaIsDelete = 0 and parentAreaid<>0 and areaid<>0
and userid = 0  '+ @where +' group by parentAreaid) as c on a.areaid = c.areaid'
set @sql1 = @sql1 + ' left join (select name,id from tbl_area) as d on a.areaid = d.id'
--δ׼¥
	set @sql2 = @sql2+'select 2 as type,d.name as areaName, orderCount,orderTotal,isnull(usercount,0) as userCount,isnull(noRegCount,0) as noRegCount,a.areaid as areaID from'
	set @sql2=@sql2+' (select count(id) as orderCount,isnull(sum(total),0) as orderTotal,
	 areaid from v_order_generalList
	where AreaIsDelete = 0 and parentAreaid=0 and areaid<>0' 
	set @sql2 = @sql2+ @where + ' group by areaid) as a'
	set @sql2 = @sql2+' left join (select count(distinct userid) as userCount , areaid from v_order_generalList 
where AreaIsDelete = 0 and parentAreaid=0 and areaid<>0
and userid <> 0 '+ @where +' group by Areaid) as b on a.areaid = b.areaid '
	set @sql2 =@sql2+ ' left join (select count(distinct ip) as noRegCount, areaid from v_order_generalList
where AreaIsDelete = 0 and parentAreaid=0 and areaid<>0
and userid = 0 '+ @where +' group by Areaid) as c on a.areaid = c.areaid'
set @sql2 = @sql2 + ' left join (select name,id from tbl_area) as d on a.areaid = d.id'
--ɾж¥
	set @sql3 = @sql3+'select 3 as type, d.name as areaName,orderCount,orderTotal,isnull(usercount,0) as userCount,isnull(noRegCount,0) as noRegCount,a.areaid as areaID from'
	set @sql3=@sql3+' (select count(id) as orderCount,isnull(sum(total),0) as orderTotal,
	 areaid from v_order_generalList
	where AreaIsDelete = 1 and areaid<>0' 
	set @sql3 = @sql3+ @where + ' group by areaid) as a'
	set @sql3 = @sql3+' left join (select count(distinct userid) as userCount , areaid from v_order_generalList 
where AreaIsDelete = 1 and areaid<>0
and userid <> 0 '+ @where +' group by Areaid) as b on a.areaid = b.areaid '
	set @sql3 =@sql3+ ' left join (select count(distinct ip) as noRegCount, areaid from v_order_generalList
where AreaIsDelete = 1 and areaid<>0
and userid = 0 '+ @where +' group by Areaid) as c on a.areaid = c.areaid'
set @sql3 = @sql3 + ' left join (select name,id from tbl_area) as d on a.areaid = d.id'


if @type  = 1 begin
	set @sql = @sql1
end
if @type = 2 begin
	set @sql = @sql2
end
if @type = 3 begin
	set @sql = @sql3
end
if @type = 0 begin
	set @sql = @sql1 + ' union '+@sql2 + ' union ' + @sql3
end
end

if @sortStr <> '' begin
	set @sql = 'select * from ( '+ @sql +') as e ' + @sortStr
end
else 
begin
	set @sql = 'select * from ( '+ @sql +') as e ' + ' order by orderCount desc,orderTotal desc,userCount desc'
end
--select @sql
exec( @sql)
select @@rowcount

		












GO
/****** :  StoredProcedure [dbo].[sp_OrdersBuildingAnalyze2]    ű: 02/01/2010 14:31:30 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO












--ԭ洢

CREATE  proc [dbo].[sp_OrdersBuildingAnalyze2]
@ProvinceID int=0,
@CityID int=0,
@RegionID int=0,
@ZoneID int=0,
@Sign int=1, --ѯҪ
@StartDate varchar(8000)='',
@EndDate varchar(8000)='',
@ordertype int = 0,
@orderstate int = -3,
@parentID int = -1,
@sortStr varchar(8000) =''
as
declare @sql varchar(8000)
declare @where varchar(8000)
set @where = ''
set @sql = ''
if @ProvinceID > 0 set @where =@where+ ' and v_order_generalList.provinceID = '+ str(@ProvinceID) +''
if @CityID > 0 set @where =@where+  ' and v_order_generalList.cityID = '+ str(@cityID) +''
if @ZoneID > 0 set @where =@where+  ' and v_order_generalList.zoneID = '+ str(@zoneID) +''
if @regionID > 0 set @where =@where+  ' and v_order_generalList.regionID= '+ str(@regionID) +''
if @startDate <> '' set @where =@where+  ' and v_order_generalList.date_time >='''+ @StartDate +''''
if @endDate  <> '' begin
	set @where =@where+  ' and v_order_generalList.date_time <'''+ Convert(varchar(10),dateAdd(d,1,@endDate),120) +''''
end
if @orderType <> 0 begin
	set @where = @where+ ' and v_order_generalList.orderType = '+ str(@orderType) +''
end 
if @orderState <> -3 begin 
	set @where= @where+ ' and v_order_generalList.state = '+ str(@orderState) +'' 
end

if @parentID <> -1 begin --鿴¥ľϢ
set @sql='
				select orderCount,orderTotal,areaName,d.areaID,
		isnull(userCount,0) as userCount ,isnull(noRegCount,0) as noRegCount from 
		 (     
			select orderCount,orderTotal,areaName,a.areaID,isnull(userCount,0) 
			as userCount from     
			(       
				select count(v_order_generalList.id) as orderCount, 
				sum(total) as orderTotal,areaName,areaId from v_order_generalList       
				left join tbl_area on areaID = tbl_area.id       
				where (parentID = '+ str(@parentID) +' or areaID = '+ str(@parentID) +')	and isdelete = 0 
				'
				set @sql = @sql + @where +' group by areaID, areaName
			)as a 
			left join  
			(select count(distinct userID) as userCount,areaID from v_order_generalList 
				where areaID in (select id from tbl_area       
				where isdelete = 0 and (parentID = '+ str(@parentID) +' or areaID = '+ str(@parentID) +') ) and userId <> 0'
				set @sql = @sql + @where +' group by areaID) as b on a.areaID = b.areaID
		) as c
		left join   
		(   select count(distinct ip) as noRegCount, areaID 
			from v_order_generalList where areaID in( select id from  tbl_area 
			where (parentID='+ str(@parentID)  +' or areaID = '+ str(@parentID) +') and isdelete = 0	) and userID = 0 
			'
				set @sql = @sql + @where +' group by areaID 
		) as d
		on c.areaID = d.areaID 	'
end else begin
 --׼¥Ϣ
	set @sql='
select orderCount,orderTotal,h.areaID,areaName,isnull(userCount,0) as userCount ,isNull(noRegCount,0) as noRegCount from
(
		select orderCount, orderTotal, c.areaID,areaName,isnull(userCount,0) as userCount from
		(
			select orderCount, orderTotal, a.parentID as areaID,tbl_area.name as areaName from
			(
				 select count(v_order_generalList.id) as orderCount, parentID,sum(total) as orderTotal from v_order_generalList
				 left join tbl_area on areaID = tbl_area.id
				  where parentID <> 0 and isdelete = 0 '

		set @sql = @sql + @where +' group by parentID

			) as a
			left join 
			tbl_area on a.parentID = tbl_area.ID where isdelete = 0

		union
		----δ׼
			 select count(v_order_generalList.id) as orderCount,sum(total) as orderTotal,areaID ,areaName from v_order_generalList
			 left join tbl_area on areaID = tbl_area.id
			  where parentID = 0 and isdelete = 0 '
		set @sql = @sql + @where + ' group by areaID,areaName 
		) as c
		----ÿ¥Ķ
		left join 
		(select count(distinct v_order_generalList.userID) as userCount, parentID as areaID
		from v_order_generalList left join tbl_area on areaID = tbl_area.id
		where 1=1 and v_order_generalList.userID<>0 and parentID<>0'
		set @sql = @sql + @where +' group by parentID
		union 
		select count(v_order_generalList.userID) as userCount, areaID
		from v_order_generalList left join tbl_area on areaID = tbl_area.id
		where 1=1 and v_order_generalList.userID<>0 and parentID = 0 '
		set @sql = @sql + @where +'group by areaID)
		 as e 
		on c.areaID = e.areaID
) as h
left join
(select count(distinct ip) as noRegCount,parentID as areaID from v_order_generalList left join tbl_area
on areaID = tbl_area.id  where 1=1 and v_order_generalList.userID=0 and parentID <> 0 '
set @sql = @sql + @where +' group by parentID
union
select count(distinct ip) as noRegCount, areaID from v_order_generalList left join tbl_area
on areaID = tbl_area.id  where 1=1 and v_order_generalList.userID=0 and parentID = 0'
set @sql = @sql + @where +' group by areaID
) as y
on h.areaID = y.areaID
'
if @sortStr <> '' begin
	set @sql = @sql + @sortStr
end
else 
begin
	set @sql = @sql + ' order by orderCount desc,orderTotal desc,userCount desc'
end
end
--select @sql
exec( @sql)
select @@rowcount





















GO
/****** :  StoredProcedure [dbo].[sp_OrdersBuildingDistrStatis]    ű: 02/01/2010 14:31:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_OrdersBuildingDistrStatis]
@Sign int=1
AS
/*
	ǿ޸2007-12-18 ޸ģ46
	cast(cast(Year(GETDATE()) 
	Ϊ
	cast(cast(Year(dateadd(m,1,GETDATE())) 
*/
begin
    if @Sign =1 begin
		select top 50 b.name Name,count(*) OrderCount,sum(a.total) OrderMoney
		from v_Order_GeneralList a 
		left join tbl_area b on a.areaID=b.id 
		where a.state=1
		and  b.name is not null  
		group by  b.provinceID,b.cityID,b.regionID,b.zoneID,b.name 
		order by  OrderMoney  desc
	end
    if @Sign =2 begin
	    select top 50 b.name Name,count(*) OrderCount,sum(a.total) OrderMoney
		from v_Order_GeneralList a 
		left join tbl_area b on a.areaID=b.id 
		where a.state=1
		and  b.name is not null  
        and a.date_time >= CONVERT(varchar(100), GETDATE(), 23)
		and a.date_time < DATEADD(d, 1, CONVERT(DateTime,CONVERT(varchar(100), GETDATE(), 23))) 
		group by  b.provinceID,b.cityID,b.regionID,b.zoneID,b.name 
		order by  OrderMoney  desc
	end
    if @Sign =3 begin
        select top 50 b.name Name,count(*) OrderCount,sum(a.total) OrderMoney
		from v_Order_GeneralList a 
		left join tbl_area b on a.areaID=b.id 
		where a.state=1
		and  b.name is not null  
        and a.date_time >=
        cast(cast(Year(GETDATE()) as varchar(8000)) + '-' + 
        cast(Month(GETDATE()) as varchar(8000)) + '-1' as datetime)
        and  a.date_time <
        cast(cast(Year(dateadd(m,1,GETDATE())) as varchar(8000)) + '-' + 
        cast(Month(dateadd(m,1,GETDATE())) as varchar(8000)) + '-1' as datetime) 
		group by  b.provinceID,b.cityID,b.regionID,b.zoneID,b.name 
		order by  OrderMoney  desc
	end
 end






 
	



GO
/****** :  StoredProcedure [dbo].[sp_OrdersBuildingDistrStatis1]    ű: 02/01/2010 14:31:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE PROCEDURE [dbo].[sp_OrdersBuildingDistrStatis1]
@Sign int=1
AS
/*
	ǿ޸2007-12-18 ޸ģ46
	cast(cast(Year(GETDATE()) 
	Ϊ
	cast(cast(Year(dateadd(m,1,GETDATE())) 
*/
begin
    if @Sign =1 begin
		select top 50 * from
		(
				select b.OrderCount,b.OrderMoney,b.ParentID AreaID,tbl_area.name from
				(
					select count(a.id) OrderCount,sum(a.total) OrderMoney ,b.parentID from 
					v_Order_GeneralList a left join tbl_area b on a.areaID = b.ID 
					where a.areaID<> 0 and b.parentID <> 0 and a.state = 1 and isDelete = 0 group by b.parentID
				) as b left join 
				tbl_area  on tbl_area.id = b.parentID where isdelete = 0
				union
					select count(a.id) OrderCount,sum(a.total) OrderMoney ,areaID,areaName from 
					v_Order_GeneralList a left join tbl_area b on a.areaID = b.ID 
					where a.areaID<> 0 and b.parentID = 0 and a.state = 1 and isDelete = 0 group by areaID,areaName
		) as c order by orderMoney desc
	end
    if @Sign =2 begin
		select top 50 * from
		(
				select b.OrderCount,b.OrderMoney,b.ParentID AreaID,tbl_area.name from
				(  
					select count(a.id) OrderCount,sum(a.total) OrderMoney ,b.parentID from 
					v_Order_GeneralList a left join tbl_area b on a.areaID = b.ID 
					where a.areaID<> 0 and a.state = 1 and b.parentID <> 0 and isDelete = 0
					and a.date_time >= CONVERT(varchar(100), GETDATE(), 23)
					and a.date_time < DATEADD(d, 1, CONVERT(DateTime,CONVERT(varchar(100), GETDATE(), 23))) 
					 group by b.parentID
				) as b left join 
				tbl_area  on tbl_area.id = b.parentID where isdelete = 0
				union
					select count(a.id) OrderCount,sum(a.total) OrderMoney ,areaID,areaName from 
					v_Order_GeneralList a left join tbl_area b on a.areaID = b.ID 
					where a.areaID<> 0 and a.state = 1 and b.parentID = 0 and isDelete = 0 
					and a.date_time >= CONVERT(varchar(100), GETDATE(), 23)
					and a.date_time < DATEADD(d, 1, CONVERT(DateTime,CONVERT(varchar(100), GETDATE(), 23))) 
					group by areaID,areaName
		) as c order by orderMoney desc
	end
    if @Sign =3 begin
		select top 50 * from
		(
				select b.OrderCount,b.OrderMoney,b.ParentID AreaID,tbl_area.name from
				(
					select count(a.id) OrderCount,sum(a.total) OrderMoney ,b.parentID from 
					v_Order_GeneralList a left join tbl_area b on a.areaID = b.ID 
					where a.areaID<> 0  and a.state = 1 and b.parentID <> 0 and isDelete = 0
					and a.date_time >=
					cast(cast(Year(GETDATE()) as varchar(8000)) + '-' + 
					cast(Month(GETDATE()) as varchar(8000)) + '-1' as datetime)
					and  a.date_time <
					cast(cast(Year(dateadd(m,1,GETDATE())) as varchar(8000)) + '-' + 
					cast(Month(dateadd(m,1,GETDATE())) as varchar(8000)) + '-1' as datetime) 
					 group by b.parentID
				) as b left join 
				tbl_area  on tbl_area.id = b.parentID where isdelete = 0
				union
					select count(a.id) OrderCount,sum(a.total) OrderMoney ,areaID,areaName from 
					v_Order_GeneralList a left join tbl_area b on a.areaID = b.ID 
					where a.areaID<> 0 and a.state = 1 and b.parentID = 0 and isDelete = 0 
					and a.date_time >=
					cast(cast(Year(GETDATE()) as varchar(8000)) + '-' + 
					cast(Month(GETDATE()) as varchar(8000)) + '-1' as datetime)
					and  a.date_time <
					cast(cast(Year(dateadd(m,1,GETDATE())) as varchar(8000)) + '-' + 
					cast(Month(dateadd(m,1,GETDATE())) as varchar(8000)) + '-1' as datetime) 
					group by areaID,areaName
		) as c order by orderMoney desc
		
	end
 end






 
	





GO
/****** :  StoredProcedure [dbo].[sp_OrdersBuildingTotal]    ű: 02/01/2010 14:31:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











CREATE  proc [dbo].[sp_OrdersBuildingTotal]
@ProvinceID int=0,
@CityID int=0,
@RegionID int=0,
@ZoneID int=0,
@Sign int=1, --ѯҪ
@StartDate varchar(8000)='',
@EndDate varchar(8000)='',
@ordertype int = 0,
@type int = 0,--0ȫ1׼¥ԼӼ2δ׼¥3ɾ¥
@orderstate int = -3
as
declare @sql varchar(8000)
declare @where varchar(8000)
set @where = ''
set @sql = ''
if @provinceID > 0 set @where =@where+ ' and v_order_generalList.provinceID = '+ str(@provinceID) +''
if @CityID > 0 set @where = @where+' and v_order_generalList.cityID = '+ str(@cityID) +''
if @ZoneID > 0 set @where =@where+ ' and v_order_generalList.zoneID = '+ str(@zoneID) +''
if @regionID > 0 set @where =@where+ ' and v_order_generalList.regionID= '+ str(@regionID) +''
if @startDate <> '' 
begin
 set @where = @where+' and v_order_generalList.date_time >= '''+ @StartDate +''''
end
if @endDate  <> '' begin
	set @where =@where+ ' and v_order_generalList.date_time <='''+ Convert(varchar(10),dateAdd(d,1,Convert(datetime,@endDate)),120) +''''
end
if @orderType <> 0 begin
	set @where =@where+ ' and v_order_generalList.orderType = '+ str(@orderType) +''
end 
if @orderState <> -3 begin 
	set @where=@where+ ' and v_order_generalList.state = '+ str(@orderState) +'' 
end
if @type  = 1 begin
	set @where = @where+' and parentAreaId <> 0 and AreaIsDelete = 0'
end
if @type = 2 begin
	set @where = @where + ' and parentAreaId = 0 and AreaIsDelete = 0'
end
if @type = 3 begin
	set @where = @where + ' and AreaIsDelete = 1'
end
set @sql='
	declare @orderCount int
	declare @orderAmount float
	declare @buildCount int
	declare @standBuildCount int
	select @orderCount=count(id), @orderAmount=isnull(sum(total),0)  from v_order_generalList where areaID<>0'
set @sql = @sql + @where
set @sql = @sql + ' select @buildCount=isnull(count(distinct areaID),0) from (select areaID from v_order_generalList where areaID <> 0'
set @sql = @sql + @where + '  group by areaID) as a '
set @sql = @sql + ' select @standBuildCount=isnull(count(distinct parentAreaid),0) from  v_order_generalList where parentAreaid <>0 and areaid<> 0 and AreaIsDelete = 0'
set @sql = @sql + @where 
set @sql = @sql +' select @orderCount as orderCount,@orderAmount as orderAmount,isnull(@buildCount,0) as buildCount,isNull(@standBuildCount,0) as standBuildCount '
exec( @sql)
--select @sql

















GO
/****** :  StoredProcedure [dbo].[sp_OrdersBuildingTotal1]    ű: 02/01/2010 14:31:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








CREATE  proc [dbo].[sp_OrdersBuildingTotal1]
@ProvinceID int=0,
@CityID int=0,
@RegionID int=0,
@ZoneID int=0,
@Sign int=1, --ѯҪ
@StartDate varchar(8000)='',
@EndDate varchar(8000)='',
@ordertype int = 0,

@orderstate int = -3
as
declare @sql varchar(8000)
declare @where varchar(8000)
set @where = ''
set @sql = ''
if @provinceID > 0 set @where =@where+ ' and v_order_generalList.provinceID = '+ str(@provinceID) +''
if @CityID > 0 set @where = @where+' and v_order_generalList.cityID = '+ str(@cityID) +''
if @ZoneID > 0 set @where =@where+ ' and v_order_generalList.zoneID = '+ str(@zoneID) +''
if @regionID > 0 set @where =@where+ ' and v_order_generalList.regionID= '+ str(@regionID) +''
if @startDate <> '' 
begin
 set @where = @where+' and v_order_generalList.date_time >= '''+ @StartDate +''''
end
if @endDate  <> '' begin
	set @where =@where+ ' and v_order_generalList.date_time <='''+ Convert(varchar(10),dateAdd(d,1,Convert(datetime,@endDate)),120) +''''
end
if @orderType <> 0 begin
	set @where =@where+ ' and v_order_generalList.orderType = '+ str(@orderType) +''
end 
if @orderState <> -3 begin 
	set @where=@where+ ' and v_order_generalList.state = '+ str(@orderState) +'' 
end
set @sql='
	declare @orderCount int
	declare @orderAmount int
	declare @buildCount int
	declare @standBuildCount int
	select @orderCount=count(id), @orderAmount=isnull(sum(total),0)  from v_order_generalList where 1=1 and areaid in(select id from tbl_area where isdelete = 0) and areaID<>0'
set @sql = @sql + @where
set @sql = @sql + ' select @buildCount=count(distinct areaID) from (select areaID from v_order_generalList where areaID <> 0 and areaID in(select id from tbl_area where isdelete=0)'
set @sql = @sql + @where + '  group by areaID) as a '
set @sql = @sql + ' select @standBuildCount = count(distinct areaID) from( select areaID from v_order_generalList where areaID <>0 and areaID in(select id from tbl_area where id = parentID and isdelete =0 )  '
set @sql = @sql + @where + '  group by areaID) as b '
set @sql = @sql +' select @orderCount as orderCount,@orderAmount as orderAmount,@buildCount as buildCount,@standBuildCount as standBuildCount '
exec( @sql)
--select @sql














GO
/****** :  StoredProcedure [dbo].[sp_OrdersBuildingTotal2]    ű: 02/01/2010 14:31:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







create  proc [dbo].[sp_OrdersBuildingTotal2]
@ProvinceID int=0,
@CityID int=0,
@RegionID int=0,
@ZoneID int=0,
@Sign int=1, --ѯҪ
@StartDate varchar(8000)='',
@EndDate varchar(8000)='',
@ordertype int = 0,

@orderstate int = -3
as
declare @sql varchar(8000)
declare @where varchar(8000)
set @where = ''
set @sql = ''
if @provinceID > 0 set @where =@where+ ' and v_order_generalList.provinceID = '+ str(@provinceID) +''
if @CityID > 0 set @where = @where+' and v_order_generalList.cityID = '+ str(@cityID) +''
if @ZoneID > 0 set @where =@where+ ' and v_order_generalList.zoneID = '+ str(@zoneID) +''
if @regionID > 0 set @where =@where+ ' and v_order_generalList.regionID= '+ str(@regionID) +''
if @startDate <> '' 
begin
 set @where = @where+' and v_order_generalList.date_time >= '''+ @StartDate +''''
end
if @endDate  <> '' begin
	set @where =@where+ ' and v_order_generalList.date_time <='''+ Convert(varchar(10),dateAdd(d,1,Convert(datetime,@endDate)),120) +''''
end
if @orderType <> 0 begin
	set @where =@where+ ' and v_order_generalList.orderType = '+ str(@orderType) +''
end 
if @orderState <> -3 begin 
	set @where=@where+ ' and v_order_generalList.state = '+ str(@orderState) +'' 
end
set @sql='
	declare @orderCount int
	declare @orderAmount int
	declare @buildCount int
	declare @standBuildCount int
	select @orderCount=count(id), @orderAmount=isnull(sum(total),0)  from v_order_generalList where areaID<>0'
set @sql = @sql + @where
set @sql = @sql + ' select @buildCount=count(distinct areaID) from (select areaID from v_order_generalList where areaID <> 0'
set @sql = @sql + @where + '  group by areaID) as a '
set @sql = @sql + ' select @standBuildCount=count(parentAreaid) from  v_order_generalList where parentAreaid <>0 and areaid<> 0 group by parentAreaid '
set @sql = @sql + @where
set @sql = @sql +' select @orderCount as orderCount,@orderAmount as orderAmount,@buildCount as buildCount,@standBuildCount as standBuildCount '
exec( @sql)













GO
/****** :  StoredProcedure [dbo].[sp_OrdersGeograpDistrStatis]    ű: 02/01/2010 14:31:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_OrdersGeograpDistrStatis]
@ProvinceID int=0,
@CityID int=0,
@RegionID int=0,
@ZoneID int=0,
@Sign int=1,
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1',
@ordertype int,
@orderstate int
AS
/* @ordertype   1   2 ϶
 * @orderstate -1   0  1  2 
 */
begin
DECLARE @Sql nvarchar(4000)
DECLARE @Where varchar(8000)
DECLARE @ProvinceIdStr varchar(8000)
DECLARE @CityIdStr varchar(8000)
DECLARE @RegionIdStr varchar(8000)
DECLARE @ZoneIdStr varchar(8000)
SET @ProvinceIdStr = CAST(@ProvinceID AS varchar(8000))
SET @CityIdStr = CAST(@CityID AS varchar(8000))
SET @RegionIdStr = CAST(@RegionID AS varchar(8000))
SET @ZoneIdStr = CAST(@ZoneID AS varchar(8000))
SET @Where = ''
IF @ProvinceID > 0 OR @CityID > 0 OR @RegionID > 0 OR @ZoneID > 0
BEGIN
IF @ProvinceId > 0 SET @Where = @Where + ' AND b.ProvinceId=' + @ProvinceIdStr + ' AND '
IF @CityId > 0 SET @Where = @Where + ' b.CityId=' + @CityIdStr + ' AND '
IF @RegionId > 0 SET @Where = @Where + ' b.RegionId=' + @RegionIdStr + ' AND '
IF @ZoneId > 0 SET @Where = @Where + ' b.ZoneId=' + @ZoneIdStr + ' AND '
SET @Where = SUBSTRING(@Where, 1, LEN(@Where)-4)
END

set @sql=' select c.name Name,count(*) OrderCount,sum(a.total) OrderMoney
from v_Order_GeneralList a
left join tbl_area b on a.areaID=b.id '
if @Sign=3 begin
set @sql=@sql + ' left join tbl_zone c on b.zoneID=c.id ' 
end if @Sign=2 begin
set @sql=@sql + ' left join tbl_region c on b.regionID=c.id ' 
end if @Sign=1 begin
set @sql=@sql + ' left join tbl_city c on b.cityID=c.id ' 
end

set @sql=@sql + ' where  a.date_time between ''' 
+ cast(@StartDate as varchar(20)) + '''  and  ''' 
+ cast(@EndDate as varchar(20)) + ''''

if @ordertype=1 begin
set @sql=@sql +'  and ((select count(*) from tbl_orderDetail where orderID=a.id)=1  
or (select count(*) from tbl_suiteMenuOrderDetail where orderID=a.id)=1) ' 
end if @ordertype=2 begin
set @sql=@sql +'  and ((select count(*) from tbl_orderDetail where orderID=a.id)>1  
or (select count(*) from tbl_suiteMenuOrderDetail where orderID=a.id)>1) ' 
end

if @orderstate<>-2 begin
set @sql=@sql + '  and  a.state=' + str(@orderstate) 
end

set @sql=@sql + space(5) + '  and  c.name is not null ' + @where 
if @Sign=3 begin
set @sql=@sql + ' group by  b.provinceID,b.cityID,b.regionID,c.name '
end if @Sign=2 begin
set @sql=@sql +'  group by  b.provinceID,b.cityID,c.name '
end if @Sign=1 begin
set @sql=@sql +'  group by  b.provinceID,c.name '
end
 
EXEC(@Sql)
end











GO
/****** :  StoredProcedure [dbo].[sp_orderState]    ű: 02/01/2010 14:31:42 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_orderState]
@messageID int,
@result int,
@orderID int,
@adminUserID int
 AS
declare @state int
set @state=1
declare @total float
declare @userID bigint
declare @eUserID bigint
select @total= total,@userID=userID from   tbl_order  where id=@orderID and state=0
update tbl_SMSHistory set result=@result where id=@messageID
if @result=0
begin
select @state=state from   tbl_order  where id=@orderID and state=0

	if @state=0
	begin
	begin
	begin TRAN
	insert into tbl_systemLog(userID,content)values(@adminUserID,' set the order to success , orderID '+str(@orderID)+' and  the last state is'+str(@state))
	update tbl_order set state=1 where id=@orderID		
	declare @v varchar(50)
	set @v='ͻû,ID'+str(@orderID)
	exec sp_userIntegral @userID,@orderID,@total, @v
	if @eUserID>0
	begin
	   set @total=@total*0.1
	   set @v='Ƽûͻû,+ID'+str(@orderID)
	    exec sp_userIntegral @eUserID,@orderID,@total, @v
	end
	if(@@error>0)
		begin
		rollback TRAN
		select -1
		end
	else
		begin
		commit TRAN
		select 1
		end
	end
end
select -2
end
GO
/****** :  StoredProcedure [dbo].[sp_orderStateSet]    ű: 02/01/2010 14:31:44 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_orderStateSet]
@orderID int,
@result int=0 output
AS
declare @state int
declare @total float
declare @userID bigint
declare @eUserID bigint

set @state=1
select @state=state,@total= total,@userID=userID from   tbl_order  where id=@orderID and state=0
select @eUserID=extendUserID from tbl_extendRelation where userID=@userID
select @state=state from tbl_order  where id=@orderID 

if @state=0
	begin
		update tbl_order set state=1 where id=@orderID	
		set @result=1
		declare @v varchar(50)
		set @v='ͻû,ID'+str(@orderID)
		exec sp_userIntegral @userID,@orderID,@total, @v
		if @eUserID>0
		begin
		   set @total=@total*0.1
		   set @v='Ƽûͻû,+ID'+str(@orderID)
		    exec sp_userIntegral @eUserID,@orderID,@total, @v
		end
	end
else if @state=-1
	set @result=-1

select @result
GO
/****** :  StoredProcedure [dbo].[sp_OrdersTimeDistrStatis]    ű: 02/01/2010 14:31:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_OrdersTimeDistrStatis]
@ProvinceID int=0,
@CityID int=0,
@RegionID int=0,
@ZoneID int=0,
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1'
AS
--select starttime  from tbl_deliverTime
--where   
--substring(CONVERT(varchar(100), starttime, 108),1,2)>=6
--and
--substring(CONVERT(varchar(100), starttime, 108),1,2)<10
begin
DECLARE @Sql nvarchar(4000)
DECLARE @Where varchar(8000)
DECLARE @ProvinceIdStr varchar(8000)
DECLARE @CityIdStr varchar(8000)
DECLARE @RegionIdStr varchar(8000)
DECLARE @ZoneIdStr varchar(8000)
SET @ProvinceIdStr = CAST(@ProvinceID AS varchar(8000))
SET @CityIdStr = CAST(@CityID AS varchar(8000))
SET @RegionIdStr = CAST(@RegionID AS varchar(8000))
SET @ZoneIdStr = CAST(@ZoneID AS varchar(8000))
SET @Where = ''
IF @ProvinceID > 0 OR @CityID > 0 OR @RegionID > 0 OR @ZoneID > 0
BEGIN
IF @ProvinceId > 0 SET @Where = @Where + ' AND b.ProvinceId=' + @ProvinceIdStr + ' AND '
IF @CityId > 0 SET @Where = @Where + ' b.CityId=' + @CityIdStr + ' AND '
IF @RegionId > 0 SET @Where = @Where + ' b.RegionId=' + @RegionIdStr + ' AND '
IF @ZoneId > 0 SET @Where = @Where + ' b.ZoneId=' + @ZoneIdStr + ' AND '
SET @Where = SUBSTRING(@Where, 1, LEN(@Where)-4)
END
--
set @sql='  select   
datestr=''' + '6:00-10:00' + ''' ,
count(*) OrderCount ,
sum(a.total) OrderMoney
from v_Order_GeneralList a
left join tbl_area b on a.areaID=b.id  '
set @sql=@sql + '  where  a.deliverDate >= ''' 
+ cast(@StartDate as varchar(20)) + '''  and   a.deliverDate < ''' 
+ cast(@EndDate as varchar(20)) + '''  and a.state=1  ' 
+ ' and  substring(CONVERT(varchar(100), a.deliverDate, 108),1,2)>=6 '
+ ' and  substring(CONVERT(varchar(100), a.deliverDate, 108),1,2)<10 '
+ @Where
--
set @sql=@sql + '  union  all  
select   
datestr=''' + '10:00-14:00' + ''' ,
count(*) OrderCount ,
sum(a.total) OrderMoney
from v_Order_GeneralList a
left join tbl_area b on a.areaID=b.id  '
set @sql=@sql + '  where  a.deliverDate >= ''' 
+ cast(@StartDate as varchar(20)) + '''  and   a.deliverDate < ''' 
+ cast(@EndDate as varchar(20)) + '''  and a.state=1  ' 
+ ' and  substring(CONVERT(varchar(100), a.deliverDate, 108),1,2)>=10 ' 
+ ' and  substring(CONVERT(varchar(100), a.deliverDate, 108),1,2)<14 ' 
+ @Where
--
set @sql=@sql + '  union  all  
select   
datestr=''' + '14:00-20:30' + ''' ,
count(*) OrderCount ,
sum(a.total) OrderMoney
from v_Order_GeneralList a
left join tbl_area b on a.areaID=b.id  '
set @sql=@sql + '  where  a.deliverDate >= ''' 
+ cast(@StartDate as varchar(20)) + '''  and   a.deliverDate < ''' 
+ cast(@EndDate as varchar(20)) + '''  and a.state=1  ' 
+ ' and  substring(CONVERT(varchar(100), a.deliverDate, 108),1,2)>=14 ' 
+ ' and  ( substring(CONVERT(varchar(100), a.deliverDate, 108),1,2)<20 ' 
+ ' or (substring(CONVERT(varchar(100), a.deliverDate, 108),1,2)=20  
and  substring(CONVERT(varchar(100), a.deliverDate, 108),4,2)<30 ) ) '
+ @Where
--
set @sql=@sql + '  union  all   
select   
datestr=''' + '20:30-00:00' + ''' ,
count(*) OrderCount ,
sum(a.total) OrderMoney
from v_Order_GeneralList a
left join tbl_area b on a.areaID=b.id  '
set @sql=@sql + '  where  a.deliverDate >= ''' 
+ cast(@StartDate as varchar(20)) + '''  and   a.deliverDate < ''' 
+ cast(@EndDate as varchar(20)) + '''  and a.state=1  ' 
+ ' and ( substring(CONVERT(varchar(100), a.deliverDate, 108),1,2)>20 ' 
+ ' or  ( substring(CONVERT(varchar(100), a.deliverDate, 108),1,2)=20
    and substring(CONVERT(varchar(100), a.deliverDate, 108),4,2)>=30 ' 
+ ' )) and ( substring(CONVERT(varchar(100), a.deliverDate, 108),1,2)<23 ' 
+ ' or ( substring(CONVERT(varchar(100), a.deliverDate, 108),1,2)=23 
    and substring(CONVERT(varchar(100), a.deliverDate, 108),4,2)<=59 
    and substring(CONVERT(varchar(100), a.deliverDate, 108),7,2)<=59 ' 
+ ' ))'
+ @Where

EXEC(@Sql)
end












GO
/****** :  StoredProcedure [dbo].[sp_orderSuccess]    ű: 02/01/2010 14:31:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_orderSuccess]
@orderID int,
@adminUserID int
AS
declare @state int
declare @total float
declare @userID bigint
declare @eUserID bigint
set @state=1
select @state=state,@total= total,@userID=userID from   tbl_order  where id=@orderID and state=0
select @eUserID=extendUserID from tbl_extendRelation where userID=@userID
begin TRAN
	if @state=0
	begin
	insert into tbl_systemLog(userID,content)values(@adminUserID,' set the order to success , orderID '+str(@orderID)+' and  the last state is'+str(@state))
	update tbl_order set state=1 where id=@orderID	
	declare @v varchar(50)
	set @v='ͻû,ID'+str(@orderID)
	exec sp_userIntegral @userID,@orderID,@total, @v
	if @eUserID>0
	begin
	   set @total=@total*0.1
	   set @v='Ƽûͻû,+ID'+str(@orderID)
	    exec sp_userIntegral @eUserID,@orderID,@total, @v
	end
	if(@@error>0)
		begin
		rollback TRAN
		select -1
		end
	else
		begin
		commit TRAN
		select 1
		end
	end
	else
		select -2
GO
/****** :  StoredProcedure [dbo].[sp_OrdersZoneDistrStatis]    ű: 02/01/2010 14:31:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_OrdersZoneDistrStatis]
@Sign int=1
AS
/*
	ǿ޸2007-12-18 ޸ģ47
	cast(cast(Year(GETDATE()) 
	Ϊ
	cast(cast(Year(dateadd(m,1,GETDATE())) 
*/
begin
    if @Sign =1 begin
		select top 50 c.name Name,count(*) OrderCount,sum(a.total) OrderMoney
		from v_Order_GeneralList a 
		left join tbl_area b on a.areaID=b.id 
		left join tbl_zone c on b.zoneID=c.id 
		where a.state=1
		and  c.name is not null  
		group by  b.provinceID,b.cityID,b.regionID,c.name 
		order by  OrderMoney  desc
	end
    if @Sign =2 begin
		select top 50 c.name Name,count(*) OrderCount,sum(a.total) OrderMoney
		from v_Order_GeneralList a 
		left join tbl_area b on a.areaID=b.id 
		left join tbl_zone c on b.zoneID=c.id 
		where a.state=1 and  c.name is not null 
		and a.date_time >= CONVERT(varchar(100), GETDATE(), 23)
		and a.date_time < DATEADD(d, 1, CONVERT(DateTime,CONVERT(varchar(100), GETDATE(), 23))) 
		group by  b.provinceID,b.cityID,b.regionID,c.name 
		order by  OrderMoney  desc
	end
    if @Sign =3 begin
        select top 50 c.name Name,count(*) OrderCount,sum(a.total) OrderMoney
		from v_Order_GeneralList a 
		left join tbl_area b on a.areaID=b.id 
		left join tbl_zone c on b.zoneID=c.id 
		where a.state=1 and  c.name is not null 
		and a.date_time >=
        cast(cast(Year(GETDATE()) as varchar(8000)) + '-' + 
        cast(Month(GETDATE()) as varchar(8000)) + '-1' as datetime)
        and  a.date_time <
        cast(cast(Year(dateadd(m,1,GETDATE())) as varchar(8000)) + '-' + 
        cast(Month(dateadd(m,1,GETDATE())) as varchar(8000)) + '-1' as datetime) 
		group by  b.provinceID,b.cityID,b.regionID,c.name 
		order by  OrderMoney  desc
	end
 end






 
	


GO
/****** :  StoredProcedure [dbo].[sp_orderUnDelete]    ű: 02/01/2010 14:31:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_orderUnDelete] 
@orderID int,
@adminUserID int
AS
declare @state int
set @state=1
select @state=state from   tbl_order  where id=@orderID and state=-1
	if @state<=0
	begin
	begin
	begin TRAN
	insert into tbl_systemLog(userID,content)values(@adminUserID,'Undelete orderID '+str(@orderID)+' the last state is'+str(@state))
	update tbl_order set state=0 where id=@orderID
	
	if(@@error>0)
		begin
		rollback TRAN
		select -1
		end
	else
		begin
		commit TRAN
		select 1
		end
end
select -2
end
GO
/****** :  StoredProcedure [dbo].[sp_orderVipReportAll]    ű: 02/01/2010 14:31:49 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_orderVipReportAll]
@startDate varchar(10),
@endDate varchar(10),
@MuserID int
 AS
if @MuserID>0
begin
select a.*,b.name as restName from tbl_order a,tbl_restaurant b 
where a.restID=b.ID and  (a.date_time between @startDate and dateadd(d,1,@endDate)) and b.MuserID=@MuserID 
	select coalesce(sum(total),0),count(*) 
	from tbl_order o,tbl_restaurant r
	where o.restID=r.ID and (o.date_time between @startDate and dateadd(d,1,@endDate)) and r.MuserID=@MuserID 
end
else
begin
select a.*,b.name as restName 
	from tbl_order a,tbl_restaurant b 
	where 
	a.restID=b.ID and (a.date_time between @startDate and dateadd(d,1,@endDate)) 
	select coalesce(sum(total),0),count(*) 
	from tbl_order o,tbl_restaurant r
	where o.restID=r.ID and (o.date_time between @startDate and dateadd(d,1,@endDate))
end
GO
/****** :  StoredProcedure [dbo].[sp_OwnManagementRestStatis]    ű: 02/01/2010 14:31:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_OwnManagementRestStatis]
@StartDateStr datetime='1900-1-1',
@EndDateStr datetime='9999-1-1',
@unionstate int,
@showstate int
AS
begin
declare @sql varchar(8000)

set @sql='
select 
a.id restid,
a.name restname,
a.SClassID sclassid,
a.linkman contactman,
b.email username,
a.addTime addtime
from tbl_restaurant a
LEFT JOIN tbl_user b on a.userID=b.id
where  
a.addTime>= ''' + cast(@StartDateStr as varchar) + ''' 
and a.addTime < ''' + cast(@EndDateStr as varchar) + ''''

if @unionstate<>4 begin
   if @unionstate=3 begin 
   set @sql=@sql + '  and a.SClassID=3'
   end else begin 
   set @sql=@sql + '  and a.SClassID<>3'
   end 
end

if @showstate<>-1 begin
   set @sql=@sql + '  and a.state=' + str(@showstate)
end 

set @sql=@sql + '  order by  a.addTime desc' 

exec(@sql)

end













GO
/****** :  StoredProcedure [dbo].[sp_pageUserList]    ű: 02/01/2010 14:31:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE proc [dbo].[sp_pageUserList]
@pageIndex int = 1,
@pageSize int = 10
as
declare @startRow int
declare @endRow int
declare @totalCount int
declare @countPage int
select @totalCount = count(id) from tbl_user
set @countPage = ceiling((@totalCount+0.0)/@pageSize)
--ǰҳҳ趨ǰҳҳ
if @pageIndex > @countPage set @pageIndex = @countPage
if @pageIndex < 1 set @pageIndex =1 
set @startRow = (@pageIndex-1)*@pageSize+1
set @endRow = @pageIndex * @pageSize
select * from(
select * ,(select count(*) from tbl_user e2 where tbl_user.id >= e2.id) as row from tbl_user) as t 
where row between @startRow and @endRow order by regTime DESC
select @totalCount as totalRecord, @countPage as countPage

GO
/****** :  StoredProcedure [dbo].[sp_Photo_getCurrentPage]    ű: 02/01/2010 14:31:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_Photo_getCurrentPage]
@userID bigint,
@pid bigint,
@classID bigint
AS
	declare @num numeric(4,2)
	declare @count bigint
	select @num=count(*)/4,@count=count(*) from tbl_userPhoto where userID=@userID 
		and id>=@pid and classID=@classID
	if @num * 4 < @count
		select cast((@num + 1) as int)
	else if @num * 4 = @count
		select cast((@num) as int)
GO
/****** :  StoredProcedure [dbo].[sp_Photo_modifyPhotoClass]    ű: 02/01/2010 14:31:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_Photo_modifyPhotoClass]
@classID bigint,
@id bigint,
@userID bigint
AS
	update tbl_userPhoto set classID=@classID where id=@id and userID=@userID
	select @@rowcount

GO
/****** :  StoredProcedure [dbo].[sp_Photo_PopAlbum]    ű: 02/01/2010 14:31:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_Photo_PopAlbum]
@top int
as	

DECLARE @sql VARCHAR(8000)
set   @sql='	select top '+cast(@top   as   varchar)+' tc.*,nickname,(select count(*) from tbl_userPhoto tp where classID = tc.id) as amount,
				case when (select photo from tbl_userPhoto where id=tc.photo) is null then 0 else 
				(select photo from tbl_userPhoto where id=tc.photo) end as classPhoto
from tbl_userPhotoClass tc,tbl_topalbum tb,tbl_user tu
 where tu.id=tc.userID and tc.id=tb.albumid and tc.id in (select albumid from tbl_topalbum)
order by tb.ordernumber desc'  
		 
  EXEC (@sql)  
GO
/****** :  StoredProcedure [dbo].[sp_Photo_searchPhoto]    ű: 02/01/2010 14:31:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_Photo_searchPhoto]
@key varchar(50),
@action varchar(10)
AS
	if @action=''
		select tp.*,tu.nickName from tbl_userPhoto tp,tbl_user tu where tu.id=tp.userID order by uploadTime desc
	else if @action = 'search'
		select * from tbl_userPhoto where [name] like '%' + @key + '%' order by uploadTime desc
	select @@rowcount
GO
/****** :  StoredProcedure [dbo].[sp_popActivity_manage]    ű: 02/01/2010 14:31:56 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_popActivity_manage]
@operate varchar(20),
@activityID bigint=0,
@toCircle int=0,
@limit int=0
 AS
declare @orderNumber int
if @operate='add' 
	begin
		declare @amount int
		declare @cnt int		
		set @amount=0
		set @cnt=0
		
		select @cnt=(count(*)) from tbl_popActivity where activityID=@activityID

		if @cnt=0	
			begin
				select @amount=count(*) from tbl_popActivity 
				insert into tbl_popActivity(activityID,orderNumber)values(@activityID,@amount+1)
			end
		select 1
	end
else if @operate='delete'
	begin
		select @orderNumber=(orderNumber) from tbl_popActivity where activityID=@activityID
		delete from tbl_popActivity where activityID=@activityID
		update tbl_popActivity set orderNumber=orderNumber-1 where orderNumber>@orderNumber
	end
else if @operate='get'
	begin
		declare @sql varchar(500)			
		declare @str varchar(500)
		declare @str1 varchar(100)
		set @str=''
		set @str1=''
		if @limit>0			
			begin			
				set @str1='top ' + ltrim(str(@limit))
			end		
		if @toCircle=1
			set @str=' b.id in (select activityID from tbl_circle2Activity) and cd.isDelete=0'
		if @toCircle=-1
			set @str=' b.id not in (select activityID from tbl_circle2Activity)'
		if len(@str)>0
			set @sql='select ' + @str1 + ' a.*,b.*,u.nickName,cd.name as circleName from tbl_popActivity a left join tbl_activityData b on a.activityID=b.id left join tbl_user u on b.userID=u.id left join tbl_circle2Activity ca on b.id=ca.activityID left join tbl_circleData cd on ca.circleID=cd.id where ' + @str + '  order by orderNumber asc'
		else
			set @sql='select ' + @str1 + ' a.*,b.*,u.nickName,cd.name as circleName from tbl_popActivity a left join tbl_activityData b on a.activityID=b.id left join tbl_user u on b.userID=u.id left join tbl_circle2Activity ca on b.id=ca.activityID left join tbl_circleData cd on ca.circleID=cd.id  order by orderNumber asc'
		--select @sql
		exec(@sql)
	end
else if @operate='orderUp'
	begin		
		select @orderNumber=orderNumber from tbl_popActivity where activityID=@activityID		
		update tbl_popActivity set orderNumber=orderNumber+1 where activityID=(select top 1 activityID from tbl_popActivity where orderNumber=@orderNumber-1 order by orderNumber desc)
		update tbl_popActivity set orderNumber=orderNumber-1 where activityID=@activityID and orderNumber>1		
	end
else if @operate='orderDown'
	begin
		select @orderNumber=orderNumber from tbl_popActivity where activityID=@activityID
		update tbl_popActivity set orderNumber=orderNumber-1 where activityID=(select top 1 activityID from tbl_popActivity where orderNumber>@orderNumber order by orderNumber asc)
		update tbl_popActivity set orderNumber=orderNumber+1 where activityID=@activityID and orderNumber<(select count(*) from tbl_popActivity)
	end



GO
/****** :  StoredProcedure [dbo].[sp_ProvinceAdd]    ű: 02/01/2010 14:31:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_ProvinceAdd]
@name varchar(10)='',
@result int=0 output
AS
if len(@name)<>0
begin
	if exists(select * from tbl_province where [name]=@name)
	begin
		set @result=-1
	end
	else
	begin
		insert into tbl_province(name) values(@name) 
		set @result=1
	end
end
else
begin
set @result=0
end
select @result

GO
/****** :  StoredProcedure [dbo].[sp_ProvinceDelete]    ű: 02/01/2010 14:31:59 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE  PROCEDURE [dbo].[sp_ProvinceDelete]
@id int=0,
@result int=0 output
AS
begin
delete from tbl_province where id=@id
delete from tbl_city where provinceID=@id
delete from tbl_region where provinceID=@id
delete from tbl_zone where provinceID=@id
delete from tbl_area where provinceID=@id
set @result=1
end
select @result


GO
/****** :  StoredProcedure [dbo].[sp_ProvinceSelect]    ű: 02/01/2010 14:32:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_ProvinceSelect]
@ID int=0,
@result int=0 output
AS
if @ID=0
begin
select * from tbl_province
set @result=1
end
else
begin	
select * from tbl_province where id=@ID
set @result=1
end
select @result

GO
/****** :  StoredProcedure [dbo].[sp_ProvinceUpdate]    ű: 02/01/2010 14:32:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_ProvinceUpdate]
@id int=0,
@name varchar(10)='',
@result int=0 output
AS
begin
update tbl_province set name=@name where id=@id 
set @result=1
end
select @result

GO
/****** :  StoredProcedure [dbo].[sp_RegContrastStatisInfo]    ű: 02/01/2010 14:32:02 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_RegContrastStatisInfo]
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1'
AS
begin
select email,nickname,regtime
from tbl_user 
where regTime >= @StartDate and  regTime < @EndDate
end


GO
/****** :  StoredProcedure [dbo].[sp_regIntegralRuleAdd]    ű: 02/01/2010 14:32:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








--***********************
--Autor:wjh
--datetime:2007-11-22
--description:עֹ
--************************
CREATE PROCEDURE [dbo].[sp_regIntegralRuleAdd]
@name varchar(8000)='',
@startTime varchar(120),
@endTime varchar(120),
@integral float = 0,
@note varchar(8000),
@adminID int = 0,
@content varchar(8000)='',
@result int=0  output
AS
SET XACT_ABORT ON  --  try  
    begin
    begin TRAN
declare @spResult int
declare @str varchar(4000)
set @str = ''
exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output

if (select count(*) from tbl_regIntegralRule where isDelete=0 )=0
 begin
   insert into tbl_regIntegralRule(name,startTime,endTime,integral) 
values(@name,@startTime,@endTime,@integral)
      if @@error=0 begin
      set @result=1
      end  else begin
      set @result=0 end
end 
else 
begin 
     exec sp_IntegralRangCheck 0,'tbl_regIntegralRule',@startTime,@endTime
if @@rowCount = 0 
begin
     insert into tbl_regIntegralRule(name,startTime,endTime,integral) 
values(@name,@startTime,@endTime,@integral)
          if @@error=0 begin
          set @result=1
          end 
end
end 

end  
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result
















GO
/****** :  StoredProcedure [dbo].[sp_RegIntegralRuleDelete]    ű: 02/01/2010 14:32:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO












--***********************
--Autor:wjh
--datetime:2007-11-23
--description:עֱɾ
--************************
CREATE PROCEDURE [dbo].[sp_RegIntegralRuleDelete]
@id int ,
@adminID int = 0,
@content varchar(8000),
@Result int = 0 output
AS
SET XACT_ABORT ON  --  try  
    begin
    begin TRAN
declare @spResult int
declare @str varchar(4000)
set @str = ''
exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output

 update tbl_RegIntegralRule set isdelete = 1 where id = @id
if @@error = 0
begin set @result = 1 end
 
end  
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result



















GO
/****** :  StoredProcedure [dbo].[sp_RegIntegralRuleSelect]    ű: 02/01/2010 14:32:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











--***********************
--Autor:wjh
--datetime:2007-11-23
--description:עֱѯ
--************************
CREATE PROCEDURE [dbo].[sp_RegIntegralRuleSelect]
@id int = 0
AS
  declare @sql varchar(8000)
 set @sql = 'select id,name,integral,note,Convert(varchar(10),startTime,120) as startTime ,Convert(varchar(10),endTime,120) as endTime from tbl_RegIntegralRule where isdelete = 0 order by startTime desc'
if @id <> 0
begin
set @sql = @sql + ' and id = @id'
end
exec(@sql)
select @@rowcount




















GO
/****** :  StoredProcedure [dbo].[sp_RegIntegralRuleUpdate]    ű: 02/01/2010 14:32:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










--***********************
--Autor:wjh
--datetime:2007-11-23
--description:עֱ޸
--************************
CREATE PROCEDURE [dbo].[sp_RegIntegralRuleUpdate]
@id int,
@name varchar(8000)='',
@startTime varchar(8000),
@endTime varchar(8000),
@integral float = 0,
@note varchar(8000),
@adminID int = 0,
@content varchar(8000) ='',
@result int=0  output
AS
SET XACT_ABORT ON  --  try  
    begin
    begin TRAN
	declare @spResult int
	declare @str varchar(4000)
	set @str = ''
	exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output

     exec sp_IntegralRangCheck @id,'tbl_RegIntegralRule',@startTime,@endTime
if @@rowCount = 0 
begin
     update tbl_RegIntegralRule set name = @name,startTime = @startTime,
endTime = @endTime,integral = @integral,note = @note where id = @id 
          if @@error=0 begin
          set @result=1
          end else begin
          set @result=0 end
    end  else begin
    set @result=0 end 

end  
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result















GO
/****** :  StoredProcedure [dbo].[sp_RegionAdd]    ű: 02/01/2010 14:32:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_RegionAdd]
@RegionName varchar(16),
@CityID int,
@ProvinceID int,
@result int=0 output
AS
begin
	if exists(select * from tbl_region where [name]=@RegionName and provinceID=@ProvinceID and cityID=@CityID)
	begin
		set @result=-1
	end
	else
	begin
		insert into tbl_region(name,provinceID,cityID)
		values(@RegionName,@ProvinceID,@CityID)
		set @result=1
	end
end
select @result

GO
/****** :  StoredProcedure [dbo].[sp_RegionDelete]    ű: 02/01/2010 14:32:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_RegionDelete]
@RegionID int,
@result int=0 output
AS
begin
delete from tbl_region where id=@RegionID
delete from tbl_zone where regionID=@RegionID
delete from tbl_area where regionID=@RegionID
set @result=1
end
select @result


GO
/****** :  StoredProcedure [dbo].[sp_RegionSelect]    ű: 02/01/2010 14:32:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_RegionSelect]
@provinceID int=0,
@cityID int=0
AS
begin
if @provinceID=0 and @cityID=0
begin
select a.id ,a.name,b.id,b.name,c.id,c.name
from tbl_region a left join tbl_city b on a.cityID =b.id
left join tbl_province c on a.provinceID =c.id
end
if @cityID<>0
begin
select a.id ,a.name,b.id,b.name,c.id,c.name
from tbl_region a left join tbl_city b on a.cityID =b.id
left join tbl_province c on a.provinceID =c.id 
where a.cityID=@cityID and a.provinceID=@provinceID
end
if @provinceID<>0
begin
select a.id ,a.name,b.id,b.name,c.id,c.name
from tbl_region a left join tbl_city b on a.cityID =b.id
left join tbl_province c on a.provinceID =c.id 
where a.provinceID=@provinceID
end
end


GO
/****** :  StoredProcedure [dbo].[sp_RegionUpdate]    ű: 02/01/2010 14:32:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_RegionUpdate]
@RegionID int,
@RegionName varchar(16),
@result int=0 output
AS
begin
update tbl_region set name=@RegionName 
where id=@RegionID
set @result=1
end
select @result

GO
/****** :  StoredProcedure [dbo].[sp_register]    ű: 02/01/2010 14:32:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO














CREATE PROCEDURE [dbo].[sp_register]
@userName varchar(16),
@password varchar(32),
@email varchar(50),
@provinceID int,
@cityID int,
@sex int,
@nickName varchar(16),
@trueName varchar(20),
@msn varchar(50),
@qq varchar(15),
@phone varchar(20),
@mobile varchar(15),
@fax varchar(20),
@address varchar(50),
@privacyClass int,
@userClass int=0,
@PUserName varchar(50),
@ip varchar(16) = '',
@birthDay datetime,
@regionID int,
@zoneID int,
@areaID int,
@embody varchar(50),
@otherArea varchar(50),
@adminID bigint,
@question varchar(50),
@key varchar(50),
@result int =0 output
 AS
declare @userNameV varchar(16)
declare @emailV varchar(50)
declare @state int
declare @userID bigint
declare @PUserID bigint
declare @sql varchar(8000)
select top 1 @userNameV=nickName,@emailV=email from tbl_user where [nickname]=@nickName-- or email=@email
if len(@puserName)>5
	select top 1 @PUserID=id from tbl_user where email=@PUserName --zwmyxzs modify by Ƽ ԭnameemail check 2006-12-16
else
	set @pUserID=0
if(@userName=@userNameV)
   set @result =-1 --ûѾ
--if(@email=@emailV)
--	set @result=-2 --emailѾע
if @result <0
	begin
	select @result 
	return
	end
BEGIN
	BEGIN tran
	insert into tbl_user(name,password,sex,email,userClass,provinceID,cityID,nickName,ip,question,[key])
	values
	(@userName,@password,@sex,@email,@userClass,@provinceID,@cityID,@nickName,@ip,@question,@key)
	select @userID=@@IDENTITY
	print @userID
--	update tbl_user set name=id where id=@userID
	
	insert into tbl_userDetail(id,trueName,phone,fax,msn,qq,address,privacyClass,birthDay,mobile)
		values(@userID,@trueName,@phone,@fax,@msn,@qq,@address,@privacyClass,@birthDay,@mobile)

	if @regionID > 0 begin
		if @otherArea <> ''
		begin
			insert into tbl_area(name,provinceID,cityID,regionID,zoneID,userID,state) values
				(@otherArea,@provinceID,@cityID,@regionID,@zoneID,@userID,0)
			insert into tbl_userAddress(userID,address,regionID,zoneID,areaID) values
					(@userID,@embody,@regionID,@zoneID,@@identity)
		end
		else
			insert into tbl_userAddress(userID,address,regionID,zoneID,areaID) values
				(@userID,@embody,@regionID,@zoneID,@areaID)
	end
	
	/* עûȡ ʼ*/
	declare @regIntegral numeric,@integralNote varchar(50)
	select top 1 @regIntegral=regIntegral from tbl_integralRate	
	if @@rowcount=0
		set @regIntegral=0	
	select top 1 @regIntegral=integral from tbl_regIntegralRule where getDate()>=startTime and getDate()<dateAdd(d,1,endTime) and isDelete=0				
	
	set @integralNote='עɹ'
	exec [sp_Member_Integral_UpdateNoReturn] @UserId,0,0,@regIntegral,@integralNote,0,1
	/*[sp_Member_Integral_UpdateNoReturn] @UserId,@RestId,@Source,@Integral,@Note,@OrderId,@IntegralClassID*/
	/* עûȡ */
	

	insert into tbl_userPhotoClass(userID,[name],note,photo,CreateType) 
		values(@userID,'Ĭ','Ĭ',0,1)
--	insert into tbl_userFrieldList(ownerUserID,userID) values (@userID,@adminID)
--	insert into tbl_userFrieldList(ownerUserID,userID) values (@adminID,@userID)
	if @PUserID>0
		begin
			insert into tbl_extendRelation(extendUserID,userID)values(@PUserID,@userID)
--			insert into tbl_userFrieldList(ownerUserID,userID) values (@userID,@PUserID)
--			insert into tbl_userFrieldList(ownerUserID,userID) values (@PUserID,@userID)
		end
if @@error>0
	begin
		rollback tran
		set @result=-3
	end
else
	begin
		commit tran
		set @result=1
	end

if @result < 0
begin
	set @sql = 'exec sp_register ' + @userName + ',' + @password + ',' + @email + ',' 
		+ cast(@provinceID as varchar(10)) + ',' + cast(@cityID as varchar(10)) + ',' 
		+ cast(@sex as varchar(5)) + ',' + @nickName + ',' + @trueName + ',' + @msn + ',' + @qq + ',' 
		+ @phone + ',' + @fax + ',' + @address + ',' + @userClass + ',' + @PUserName + ',' + @ip + ','+@question+','+@key
		+ cast(@birthDay as varchar(30)) + ',' + cast(@regionID as varchar(10)) + cast(@adminID as varchar(30))

	insert into tbl_userRegError(sql,ip,errorCode)values(@sql,@ip,@result)
end
select  @result
end











GO
/****** :  StoredProcedure [dbo].[sp_register_UserInfoUpdate]    ű: 02/01/2010 14:32:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [dbo].[sp_register_UserInfoUpdate]
	@userID bigint=0,
	@trueName varchar(20),
	@msn varchar(50),
	@qq varchar(15),
	@phone varchar(20),
	@mobile varchar(15),
	@fax varchar(20),
	@address varchar(50),
	@privacyClass int,
	@birthDay datetime,
	@regionID int,
	@zoneID int,
	@areaID int,
	@embody varchar(50),
	@otherArea varchar(50)	
as
	declare @provinceID int,@cityID int
	select @provinceID=0,@cityID=0
	select @provinceID=provinceID,@cityID=cityID from tbl_user where id=@userID
	if @provinceID>0 and @cityID>0 begin
		if not exists(select id from tbl_userDetail where id=@userID) begin
			insert into tbl_userDetail(id,trueName,phone,fax,msn,qq,address,privacyClass,birthDay,mobile)
				values(@userID,@trueName,@phone,@fax,@msn,@qq,@address,@privacyClass,@birthDay,@mobile)
		end else begin
			update tbl_userDetail set trueName=@trueName,phone=@phone,fax=@fax,msn=@msn,qq=@qq,address=@address,privacyClass=@privacyClass,birthDay=@birthDay,mobile=@mobile
				where id=@userID
		end
		if (select count(*) from tbl_userAddress where userID=@userID)<3 begin
			/*----start----*/	
			if @regionID > 0 begin		
				if @otherArea <> ''	begin
					set @areaID=0
					select @areaID=ID from tbl_area where [name]=@otherArea and provinceID=@provinceID and cityID=@cityID and regionID=@regionID and zoneID=@zoneID
					if @areaID=0 begin
						insert into tbl_area([name],provinceID,cityID,regionID,zoneID,userID,state) values
							(@otherArea,@provinceID,@cityID,@regionID,@zoneID,@userID,0)
						insert into tbl_userAddress(userID,address,regionID,zoneID,areaID) values
								(@userID,@embody,@regionID,@zoneID,@@identity)
					end else begin
						insert into tbl_userAddress(userID,address,regionID,zoneID,areaID) 
											values (@userID,@embody,@regionID,@zoneID,@areaID)	
					end
				end	else begin
					insert into tbl_userAddress(userID,address,regionID,zoneID,areaID) 
											values (@userID,@embody,@regionID,@zoneID,@areaID)	
				end						
			end
			/*----end----*/			
		end	
		select 1
	end else begin
		select 0
	end
GO
/****** :  StoredProcedure [dbo].[sp_registerStep2]    ű: 02/01/2010 14:32:31 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_registerStep2]
@id bigint,
@nickName varchar(16),
@trueName varchar(20),
@phone varchar(20),
@mobile varchar(15),
@msn varchar(40),
@qq varchar(15),
@address varchar(50),
@result int=0 output
 AS
begin
begin tran
	update tbl_user set nickName=@nickName where id=@id
	update tbl_userDetail set trueName=@trueName,phone=@phone,mobile=@mobile,msn=@msn,qq=@qq,address=@address
	 where id=@id
if @@error>0
	begin
		rollback tran
		set @result=-1
	end
else
	begin
		commit tran
		set @result=1
	end
select  @result
end
GO
/****** :  StoredProcedure [dbo].[sp_RegUserIntegralRateSelect]    ű: 02/01/2010 14:32:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE  PROCEDURE [dbo].[sp_RegUserIntegralRateSelect]
AS
begin
select * from tbl_integralRate
end
GO
/****** :  StoredProcedure [dbo].[sp_RegUserIntegralRateUpdate]    ű: 02/01/2010 14:32:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








--*******************************************
--updater:wjh
--updateTime:2007-11-30
--description:޸Ļֹ
--*******************************************

CREATE  PROCEDURE [dbo].[sp_RegUserIntegralRateUpdate]
@commendOrderDateAmount int=-1, 
@commendOrderIntegral float=-1, 
@regIntegral float=-1,--ע
@falseOrderIntegral float = -1, --ⶩ۷
@orderRate	float = -1, --ֱ׼
@depth int = 0,
@commendrest int=0,
@commendstor int =0,
@adminID int = 0,
@content varchar(8000)='',
@result int = 0 output 
AS
SET XACT_ABORT ON  --  try  
    begin
    begin tran
if (select count(*) from  tbl_integralRate)=0 begin 
insert into tbl_integralRate values(0,0,0,0,0,0,0,0)
end
declare @spResult int
declare @str varchar(4000)
set @str = ''
exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
if @commendOrderDateAmount >= 0 begin 
update tbl_integralRate set  commendOrderDateAmount=@commendOrderDateAmount
if @@error = 0
begin
set @result=1 end
end if @commendOrderIntegral >= 0 begin 
update tbl_integralRate set  commendOrderIntegral=@commendOrderIntegral/100
if @@error = 0
begin
set @result=1 end
end if @regIntegral >= 0 begin 
update tbl_integralRate set  regIntegral=@regIntegral
if @@error = 0
begin
set @result=1 end
end if @falseOrderIntegral >= 0 begin 
update tbl_integralRate set  falseOrderIntegral=@falseOrderIntegral
if @@error = 0
begin
set @result=1 end
end if @orderRate >= 0 begin 
update tbl_integralRate set  orderRate=@orderRate
if @@error = 0
begin
set @result=1 end
end if @depth >= 0 begin
update tbl_integralRate set spreadDepth = @depth
if @@error = 0
begin
set @result=1 end
end 
if @commendrest > 0 begin
update tbl_integralRate set UserCommendRestaurant = @commendrest
if @@error = 0
begin
set @result=1 end
end 
if @commendstor > 0 begin
update tbl_integralRate set UserCommendArea = @commendstor
if @@error = 0
begin
set @result=1 end
end

end  
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result










GO
/****** :  StoredProcedure [dbo].[sp_RegUserMonitorStatis]    ű: 02/01/2010 14:32:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_RegUserMonitorStatis]
AS
begin
	declare @Total bigint
	declare @lastMonthC bigint
	declare @CurMonthC bigint
	declare @lastWeekC bigint
	declare @YesRegC bigint
	declare @TodRegC bigint
    declare @lastMonth_Start DateTime
    declare @lastMonth_End DateTime
	declare @CurMonth_Start DateTime
    declare @CurMonth_End DateTime
	declare @lastWeek_Start DateTime
    declare @lastWeek_End DateTime
	declare @YesReg_Start DateTime
    declare @YesReg_End DateTime
	declare @TodReg_Start DateTime
    declare @TodReg_End DateTime

    --µĵһ   2007-08-01 00:00:00.000
    set @lastMonth_Start=DATEADD(mm, DATEDIFF(mm,0,dateadd(m,-1,getdate())), 0)
    --µһ 2007-08-31 23:59:59.997
    set @lastMonth_End=dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)) 
    --µĵһ   2007-09-01 00:00:00.000
    set @CurMonth_Start=DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
    --µһ 2007-09-30 23:59:59.997
    set @CurMonth_End=dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
    --һ 2007-09-10 00:00:00.000
    set @lastWeek_Start= dateadd(wk,-1,DATEADD(wk,DATEDIFF(wk,0,getdate()),0))
    --ս 2007-09-17 00:00:00.000
    set @lastWeek_End=  DATEADD(wk,DATEDIFF(wk,0,getdate()),0)
    -- 2007-09-17 00:00:00.000
    set @YesReg_Start= CONVERT(DateTime,CONVERT(varchar(100), dateadd(d,-1,getdate()), 23))
    -- 2007-09-18 00:00:00.000
    set @YesReg_End= CONVERT(DateTime,CONVERT(varchar(100),getdate(), 23))
    --տʼ 2007-09-18 00:00:00.000
    set @TodReg_Start= @YesReg_End
    --ս 2007-09-19 00:00:00.000
    set @TodReg_End= CONVERT(DateTime,CONVERT(varchar(100),dateadd(d,1,getdate()), 23)) 

	select @Total=count(*) from tbl_user 

    select @lastMonthC=count(*) from tbl_user 
    where regTime between @lastMonth_Start and @lastMonth_End

    select @CurMonthC=count(*) from tbl_user 
    where regTime between @CurMonth_Start and @CurMonth_End

    select @lastWeekC=count(*) from tbl_user 
    where regTime >= @lastWeek_Start and regTime < @lastWeek_End

    select @YesRegC=count(*) from tbl_user 
    where regTime >= @YesReg_Start and regTime < @YesReg_End
 
    select @TodRegC=count(*) from tbl_user 
    where regTime >= @TodReg_Start and regTime < @TodReg_End
 
	select  @Total Total,
	@lastMonthC lastMonthC,
	@CurMonthC CurMonthC,
	@lastWeekC lastWeekC,
	@YesRegC YesRegC,
	@TodRegC TodRegC

end






 
	


GO
/****** :  StoredProcedure [dbo].[sp_Rendar_getPlanByUserID]    ű: 02/01/2010 14:32:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_Rendar_getPlanByUserID]
@userID bigint
AS
	select * from tbl_userplan where userID=@userID
	RETURN

GO
/****** :  StoredProcedure [dbo].[sp_Report_OldUserOrderRemind]    ű: 02/01/2010 14:32:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Venson>
-- Create date: <2007-10-19>
-- Description:	<ûѱ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Report_OldUserOrderRemind]
	@DateDiff INT = 0,
	@OrderByField INT = 0,--ֶ(0:UserID, 1:LastDateTime, 2:RegTime)
	@OrderByDirection INT = 0--(0:˳, 1)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    DECLARE @Sql NVARCHAR(4000)
	
	SET @Sql = 'SELECT * FROM 
		(
			SELECT Data.userID, MAX(Data.date_time) AS LastDateTime, Users.RegTime, Users.Email
			FROM v_Order_GeneralList AS Data INNER JOIN tbl_user AS Users ON Users.id=Data.userID
			WHERE Data.state=1
			GROUP BY Data.userID, Users.RegTime, Users.Email
		) AS T
		WHERE DATEDIFF(DAY, LastDateTime, GETDATE())>' + CAST(@DateDiff AS VARCHAR(5))

	IF @OrderByField = 0
		SET @Sql = @Sql + ' ORDER BY userID'
	ELSE IF @OrderByField = 1
		SET @Sql = @Sql + ' ORDER BY LastDateTime'
	ELSE
		SET @Sql = @Sql + ' ORDER BY RegTime'

	IF @OrderByDirection = 1 SET @Sql = @Sql + ' DESC'

	EXEC(@Sql)
END



GO
/****** :  StoredProcedure [dbo].[sp_Report_ValidUser]    ű: 02/01/2010 14:32:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Venson>
-- Create date: <2007-10-18>
-- Description:	<Чû>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Report_ValidUser]
	@UserEmail VARCHAR(50) = '',--Emailעʱ䷶Χ
	@BeginRegTime DATETIME = '1900-1-1',
	@EndRegTime DATETIME = '1900-1-1'
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	IF @UserEmail = '' BEGIN
		SELECT Users.Id, Users.Email, Users.RegTime, COUNT(*) AS TotalCount, SUM(Data.total) AS TotalAmount
			, (SELECT COUNT(id) FROM v_Order_GeneralList WHERE userID=Users.id AND state=1) AS SucceedCount
			, ISNULL((SELECT SUM(total) FROM v_Order_GeneralList WHERE userID=Users.id AND state=1),0) AS SucceedAmount
		FROM v_Order_GeneralList AS Data INNER JOIN tbl_user AS Users ON Users.id=Data.userID
		WHERE Users.regTime>=CONVERT(VARCHAR(50), @BeginRegTime, 102)+' 0:0:0'
			AND Users.regTime<=CONVERT(VARCHAR(50), @EndRegTime, 102)+' 23:59:59'
			AND Users.state=0
		GROUP BY Users.id, Users.email, Users.RegTime
	END ELSE BEGIN
		SELECT Users.Id, Users.Email, Users.RegTime, COUNT(*) AS TotalCount, SUM(Data.total) AS TotalAmount
			, (SELECT COUNT(id) FROM v_Order_GeneralList WHERE userID=Users.id AND state=1) AS SucceedCount
			, ISNULL((SELECT SUM(total) FROM v_Order_GeneralList WHERE userID=Users.id AND state=1),0) AS SucceedAmount
		FROM v_Order_GeneralList AS Data INNER JOIN tbl_user AS Users ON Users.id=Data.userID
		WHERE Users.Email=@UserEmail AND Users.state=0
		GROUP BY Users.id, Users.email, Users.RegTime
	END
	
END


GO
/****** :  StoredProcedure [dbo].[sp_Report_ValidUserToday]    ű: 02/01/2010 14:32:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Venson>
-- Create date: <2007-10-23>
-- Description:	<Чûͷȡʱ䷶ΧûעᲢɹͼ¼>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Report_ValidUserToday]
	@BeginRegTime DATETIME = '1900-1-1',--ûעʼʱ
	@EndRegTime DATETIME = '9999-1-1',--ûעֹʱ
	@AreaManagerId int = 0,
	@pageSize int = 20,
	@pageIndex int = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	declare @Sql nvarchar(4000)
	declare @tempSql nvarchar(4000)
	declare @where varchar(8000)
	set @where = ''
	if @beginRegTime <> '1900-1-1' and @EndRegTime <> '1900-1-1'
	begin
	declare @BeginRegTimeStr nvarchar(120)
	set @BeginRegTimeStr = convert(varchar(10), @BeginRegTime, 120) + ' 00:00:00'
	declare @EndRegTimeStr nvarchar(120)
	set @EndRegTimeStr = convert(varchar(10), @EndRegTime, 120) + ' 23:59:59'
	set @where = ' and Users.regTime between  '''+@BeginRegTimeStr+''' and '''+@EndRegTimeStr+''''	
	end

	declare @where1 varchar(8000)
	set @where1 = ''
	declare @str varchar(8000)
	set @str = ''
	if @AreaManagerId <> 0
	begin
		set @str = ' left join tbl_AreaManager2Area as areaManager on data.userId =areaManager.userid '
		set @where1 =' and data.areaid in (select areaid from tbl_AreaManager2Area where userid ='+  str(@AreaManagerId)+')'
	end
	
	set @tempSql =' data.id as UserId, Users.email AS UserEmail, Users.regTime AS UserRegTime, COUNT(*) OrderTotalCount, SUM(Data.total) AS OrderTotalAmount
	from tbl_user as Users left join v_Order_GeneralList as Data  on Users.id=Data.userID 
	where Data.state=1 '+ @where + @where1 +'
	group by data.id, Users.email, Users.regTime'


	--ҳϢ
	declare @startRow int
	declare @endRow int
	declare @totalCount int
	declare @countPage int
	set @totalCount = 0
	set @countPage = 0
	--¼
	SET @Sql = N'SELECT @TotalCountOut=Count(*) FROM (select '+ @tempSql +') as a'
	EXEC sp_executesql @Sql, N'@TotalCountOut INT OUTPUT', @TotalCountOut=@TotalCount OUTPUT

	if @pageSize = 0 begin -- ҳ
	set @sql ='select '+@tempSql
	end
	else begin -- ҳʼ
	set @countPage = ceiling((@totalCount+0.0)/@pageSize)
	--ǰҳҳ趨ǰҳҳ
	if @pageIndex > @countPage set @pageIndex = @countPage
	if @pageIndex < 1 set @pageIndex =1
	set @startRow = (@pageIndex-1)*@pageSize+1
	set @endRow = @pageIndex * @pageSize
	set @sql =' select * from(select () over(order by data.id) as row,'+ @tempSql +') as t where row between '+ str(@startRow)+' and '+ str(@endRow)
end
--declare @sql1 nvarchar(4000)
--declare @regUserCount int 
--declare @regOrderUserCount int 
--declare @OrderCount int 
--declare @orderTotal float
--set @sql1='select @regUserCount=count(id) from tbl_user as users where 1=1'+ @where
--EXEC sp_executesql @Sql1, N'@regUserCount INT OUTPUT', @regUserCount=@regUserCount OUTPUT
--set @sql1='select  @orderCount = count(data.id),
--@orderTotal= isnull(sum(total),0) ,
--@regOrderUserCount = count(distinct userid) 
--from v_Order_GeneralList as data where userid 
--in(select id from tbl_user users  where 1=1 '+ @where +' ) and data.state=1'+ @where1 +''
--EXEC sp_executesql @Sql1, N'@orderCount INT OUTPUT,@regOrderUserCount int output,@orderTotal float output', @orderCount=@orderCount OUTPUT,@regOrderUserCount =@regOrderUserCount output ,@orderTotal = @orderTotal output
exec( @sql)
SELECT @PageIndex AS PageIndex, @PageSize AS PageSize, @TotalCount AS TotalCount, @countPage AS TotalPage	
--select @regUserCount as regUserCount ,@regOrderUserCount as regOrderUserCount,@OrderCount as orderCount,@orderTotal as orderTotal
END





GO
/****** :  StoredProcedure [dbo].[sp_ReserveAnalyze]    ű: 02/01/2010 14:32:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE proc [dbo].[sp_ReserveAnalyze]
@startTime varchar(8000) = '',
@endTime varchar(8000) = '',
@state int = 2
as
declare @sql varchar(8000)
set @sql = 'select  datediff(dd,date_time,deliverDate) as days, isnull(count(id),0) as orderCount,isnull(sum(total),0) as total
from v_Order_GeneralList where datediff(dd,date_time,deliverDate) >0 '
if @state <> 2
begin
	set @sql = @sql+ ' and state = '+ str(@state) +''
end
if @startTime <> '' and @endTime<>''
begin
 set @sql = @sql + ' and date_time between '''+ @startTime +''' and '''+ @endTime +''''
end
set @sql  = @sql +' group by datediff(dd,date_time,deliverDate) order by datediff(dd,date_time,deliverDate)'
exec(@sql)








GO
/****** :  StoredProcedure [dbo].[sp_ReserveIntegralRateInfoAdd]    ű: 02/01/2010 14:32:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





--***********************
--Autor:wjh
--datetime:2007-11-12
--description:Ԥֹ
--************************
CREATE PROCEDURE [dbo].[sp_ReserveIntegralRateInfoAdd]
@classID int ,
@startSpan float = 0,
@endSpan float=0,
@rate float=0,
@adminID int = 0,
@content varchar(8000)='',
@result int=0  output
AS
SET XACT_ABORT ON  --  try  
    begin
    begin tran
	declare @spResult int
	declare @str varchar(4000)
set @str = ''
if (select count(*) from tbl_ReserveIntegralRate where isDelete=0 )=0
 begin
	exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
   insert into tbl_ReserveIntegralRate(startSpan,endSpan,rate) 
values(@startSpan,@endSpan,@rate)
      if @@error=0 begin
      set @result=1
      end  else begin
      set @result=0 end
end 
else 
begin 
      /************************************/
     if exists( select * from  tbl_ReserveIntegralRate 
where @startSpan >= startSpan and  @startSpan < endSpan and isDelete=0 and classID = @classID) 
begin set  @result=2 end 

     if exists( select * from  tbl_ReserveIntegralRate 
where @endSpan > startSpan and @endSpan<= endSpan and isDelete=0 and classID = @classID) 
begin set  @result=2 end 
     
     if exists( select * from  tbl_ReserveIntegralRate 
where startSpan >= @startSpan and startSpan < @endSpan and isDelete=0 and classID = @classID) 
begin set  @result=2 end 

     if exists( select * from  tbl_ReserveIntegralRate 
where endSpan > @startSpan and endSpan <= @endSpan and isDelete=0 and classID = @classID) 
begin set  @result=2 end 
       /************************************/

    if @result<>2 begin
exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
     insert into tbl_ReserveIntegralRate(classID,startSpan,endSpan,rate) 
values(@classID,@startSpan,@endSpan,@rate)
          if @@error=0 begin
          set @result=1
          end else begin
          set @result=0 end
    end  else begin
    set @result=0 end
end 

end  
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result










GO
/****** :  StoredProcedure [dbo].[sp_ReserveIntegralRateInfoDelete]    ű: 02/01/2010 14:32:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


--ɾԤֹ
CREATE PROCEDURE [dbo].[sp_ReserveIntegralRateInfoDelete]
@id int=0,
@adminID int = 0,
@content varchar(8000)='',
@result int=0  output
AS
SET XACT_ABORT ON  --  try  
    begin
    begin tran
	declare @spResult int
	declare @str varchar(4000)
set @str = ''
exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
update tbl_ReserveIntegralRate set isDelete=1 where id=@id
  if @@error=0 begin
  set @result=1
  end
 
end  
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result


GO
/****** :  StoredProcedure [dbo].[sp_ReserveIntegralRateInfoUpdate]    ű: 02/01/2010 14:32:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE PROCEDURE [dbo].[sp_ReserveIntegralRateInfoUpdate]
@id int=0,
@classID int = 0,
@startSpan float,
@endSpan float,
@rate float,
@adminID int = 0,
@content varchar(8000)='',
@result int=0  output
AS

SET XACT_ABORT ON  --  try  
    begin
    begin tran
	declare @spResult int
	declare @str varchar(4000)
set @str = ''
    /************************************/
     if exists( select * from  tbl_ReserveIntegralRate 
where @startSpan >= startSpan and  @startSpan < endSpan and isDelete=0 and id <> @id and classID = @classID) 
begin set  @result=2 end 

     if exists( select * from  tbl_ReserveIntegralRate 
where @endSpan > startSpan and @endSpan<= endSpan and isDelete=0 and id <> @id and classID = @classID) 
begin set  @result=2 end 
     
     if exists( select * from  tbl_ReserveIntegralRate 
where startSpan >= @startSpan and startSpan < @endSpan and isDelete=0 and id <> @id and classID = @classID) 
begin set  @result=2 end 

     if exists( select * from  tbl_ReserveIntegralRate 
where endSpan > @startSpan and endSpan <= @endSpan and isDelete=0 and id <> @id and classID = @classID) 
begin set  @result=2 end 
       /************************************/
    if @result<>2 begin
exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
update tbl_ReserveIntegralRate  
set startSpan = @startSpan ,endSpan=@endSpan ,rate=@rate  where id=@id
  if @@error=0 begin
  set @result=1
  end else begin
  set @result=0
  end 
  end else begin
  set @result=0
  end 

end  
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result









GO
/****** :  StoredProcedure [dbo].[sp_ReserveIntegralRateSelect]    ű: 02/01/2010 14:32:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






--Ԥֹ

CREATE PROCEDURE [dbo].[sp_ReserveIntegralRateSelect]
@id int=0,
@classID int
AS
if @id=0
begin
select [id],startSpan,endSpan,rate,classID,(cast(rate*100 as varchar(8000)) + '%') as rateShow from tbl_ReserveIntegralRate where isDelete=0 and classID = @classID  order by startSpan 
end else begin
select [id],startSpan,endSpan,rate,classID,(cast(rate*100 as varchar(8000)) + '%') as rateShow from tbl_ReserveIntegralRate where isDelete=0 and id=@id  order by startSpan
end
















GO
/****** :  StoredProcedure [dbo].[sp_ReserveReport]    ű: 02/01/2010 14:32:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	Ԥ
-- =============================================
CREATE PROCEDURE   [dbo].[sp_ReserveReport]
@startTime varchar(8000) ='',
@endTime varchar(8000) = '',
@days int =0,
@state int = 2	--2Ϊȫʾ0δ1ɹ-1ϣ-2Ϊ
AS
BEGIN
	declare @sql varchar(8000)
set @sql = 'select count(id) as orderCount,isnull(sum(total),0) as total from v_Order_GeneralList 
where datediff(dd,date_time,deliverDate)>0'
if @startTime <> '' and @endTime <>''
begin
	set @sql = @sql + ' and date_time between '''+ @startTime +''' and '''+ @endTime +''''
end
if @days <> 0
begin 
	set @sql = @sql +' and datediff(dd,date_time,deliverDate) = '+ str(@days) +''
end
if @state <> 2 
begin
	set @sql = @sql + ' and state = '+ str(@state) +''
end
exec (@sql)
END



GO
/****** :  StoredProcedure [dbo].[sp_rest_add]    ű: 02/01/2010 14:32:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

















CREATE PROCEDURE  [dbo].[sp_rest_add]
@id int=0,--͹ID
@name varchar(40),--͹
@userId bigint,
@provinceID int,--ʡid
@cityID int,--ID
@regionID int,--ID
@zoneID int,--ƬID
@classID int,--͹
@address varchar(100),--ַ
@linkMan varchar(16),--ϵ
@phone varchar(20),--绰
@mobile varchar(20),--ֻ
@colorMobile smallint=0,--Ƿղ
@fax varchar(20),---
@expenditure int,--˾
@foodModeIds varchar(200)='',--͹ݲϵ
@isDeliver int,--Ƿ
@chainRelationID int=0,--Ƿ--ID
@LogoPhotoId bigint=0,
@labelString varchar(200),--ؼ
@note text,--͹˵
@agree varchar(8000)='',
@mapCity varchar(30)='',
@mapX bigint=0,
@mapY bigint=0,
@result int =0 output
AS
if(select count(*) from tbl_restaurant where zoneId=@zoneID and name=@name and id<>@id and isdelete=0)=0
	if @id=0 
		begin
		BEGIN TRAN
			insert into tbl_restaurant(name,provinceID,cityID,regionID,zoneID,classID,address,linkMan,phone,isDeliver,LogoPhotoId,labelString,note,userId)
			values(@name,@provinceID,@cityID,@regionID,@zoneID,@classID,@address,@linkMan,@phone,@isDeliver,@LogoPhotoId,@labelString,@note,@userId)
			declare @rID int
			select @rID=@@IDENTITY
			insert into tbl_rest_Manager (restid,restName) values(@rId,@name)
			insert into tbl_restIntro(restID,mobile,colorMobile,fax,expenditure,agree) values(@rID,@mobile,@colorMobile,@fax,@expenditure,@agree)
			insert into tbl_ShopBusinessState(shopId,state) select @rID,0
			exec [sp_FoodMode_adds] @rID,@foodModeIds
			if len(@mapCity)>0 and @mapX>0 and @mapY>0
				exec [sp_restMapInfo_add] @rID,@mapCity,@mapX,@mapY
			if @chainRelationID>0 begin--
				if exists(select * from tbl_restaurant where id=@chainRelationID) begin
					exec [sp_restChainRelationAdd] 0,@chainRelationID,@rID--
					declare @sClassID int
					select @sClassID=sClassID from tbl_restaurant where id=@chainRelationID
					exec [sp_restMenuCopy] @chainRelationID,@rID					
					exec [sp_suiteMenuCopy] @chainRelationID,@rID
				end
			end
		If @@ERROR>0 Begin
			RollBack Tran
			Set @result=-1
		End Else Begin
			Commit Tran
			set @result=@rID
		End		
	end
	else
	begin
	BEGIN TRAN
			update tbl_restaurant set name=@name,provinceID=@provinceID,cityID=@cityID,regionID=@regionID,zoneID=@zoneID,classID=@classID,address=@address,linkMan=@linkMan,phone=@phone,isDeliver=@isDeliver,labelString=@labelString,note=@note where id=@id
			if @LogoPhotoId>0
				update tbl_restaurant set LogoPhotoId=@LogoPhotoId where id=@id
			update tbl_restIntro set mobile=@mobile,colorMobile=@colorMobile,fax=@fax,expenditure=@expenditure,agree=@agree where restId=@id
			exec [sp_FoodMode_adds] @id,@foodModeIds						
			if len(@mapCity)>0 and @mapX>0 and @mapY>0
				exec [sp_restMapInfo_add] @id,@mapCity,@mapX,@mapY
			
			--if @chainRelationID>0
				--begin--
				--end			
		If @@Error>0 Begin
			RollBack Tran
			Set @result=-1
		End Else Begin
			Commit Tran
			set @result=@id
		End
	end
else
		set @result=-1
select @result


















GO
/****** :  StoredProcedure [dbo].[sp_Rest_Commend_append]    ű: 02/01/2010 14:32:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Venson>
-- Create date: <2007-11-1>
-- Description:	<ҳƼ͹>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Rest_Commend_append]
	@RestId BIGINT = 0,
	@ZoneId INT = 0,
	@SubZoneID int = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
--	declare @regtionRestID int
--	declare @regtionZoneID int
--	select @regtionZoneID = regionID from tbl_Zone where id = @zoneID
--	select @regtionRestID = regionID from tbl_restaurant where id = @restID
--	if @regtionRestID = @regtionZoneID begin
    INSERT INTO tbl_RestCommend(restID, zoneID,subZoneID) VALUES (@RestId, @ZoneId,@subZoneID)
		IF @@ROWCOUNT > 0
			SELECT 1
		ELSE
			SELECT 0
--	end
--	else
--    begin
--		select -1
--	end
END



GO
/****** :  StoredProcedure [dbo].[sp_Rest_Commend_changePosition]    ű: 02/01/2010 14:32:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Venson>
-- Create date: <2007-11-1>
-- Description:	<λ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Rest_Commend_changePosition]
	@RestId BIGINT = 0,
	@ZoneId INT = 0,
	@SubZoneId int = 0,
	@Type INT = 0--0䣬1ǰ
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	begin
    begin tran
	IF @Type = 1
	BEGIN	
		UPDATE tbl_RestCommend SET Position=Position+1 WHERE restID=@RestId AND zoneID=@ZoneId and subZoneID = @SubZoneId
	END
	IF @Type = 2
	BEGIN
		UPDATE tbl_RestCommend SET Position=Position-1 WHERE restID=@RestId AND zoneID=@ZoneId AND Position>0 and subZoneID = @SubZoneId
	END

	IF @@ERROR = 0
	BEGIN
		COMMIT TRAN
		SELECT 1
	END
	ELSE
	BEGIN
		ROLLBACK TRAN
		SELECT 0
	END
	END
	end



GO
/****** :  StoredProcedure [dbo].[sp_Rest_Commend_delete]    ű: 02/01/2010 14:32:57 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Venson>
-- Create date: <2007-11-1>
-- Description:	<ɾҳƼ͹>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Rest_Commend_delete]
	@RestId BIGINT = 0,
	@subZoneID int = 0,
	@ZoneId INT = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	DELETE FROM tbl_RestCommend WHERE restID=@RestId AND zoneID=@ZoneId and subZoneID = @subZoneID
	IF @@ROWCOUNT > 0
		SELECT 1
	ELSE
		SELECT 0
END


GO
/****** :  StoredProcedure [dbo].[sp_Rest_Commend_getList]    ű: 02/01/2010 14:32:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




















-- =============================================
-- Author:		<Venson>
-- Create date: <2007.7.13>
-- Description:	<ȡƼĲ͹б>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Rest_Commend_getList]
	--ƬID
	@ParentZoneId INT = 0,
	--ǰڼҳ
	@PageIndex INT = 1,
	--ÿҳʾ¼
	@PageSize INT = 6,
	@SubZoneId int = 0,
	@regionId int =0,
	@type int = 0, --1Ϊҳ
	@SortStr varchar(8000)='' --λposition --ͽdeliverMoney
	--1λõ2.λ3.ͽ4.ͽ
AS
BEGIN
	SET NOCOUNT ON;

	DECLARE @Sql nvarchar(4000)
	DECLARE @Where varchar(8000)

	DECLARE @ParentZoneIdStr varchar(8000)

	DECLARE @TotalCount INT
	DECLARE @TotalPage INT
	DECLARE @StartRowId INT
    DECLARE @EndRowId INT
	
	SET @ParentZoneIdStr = CAST(@ParentZoneId AS varchar(8000))

	if @sortStr <> ''
	begin
	set @sortStr = Ltrim(@sortStr) set @sortStr = Rtrim(@sortStr)
	if @sortStr ='1' set @sortStr = 'position desc'
	if @sortStr = '2' set @sortStr = 'position'
	if @sortStr = '3' set @sortStr = 'deliverMoney desc'
	if @sortStr = '4' set @sortStr = 'deliverMoney'
	if @sortStr = '5' set @sortStr ='rate desc'
	if @sortStr = '6' set @sortStr ='rate'
	end
	--WHERE
	set @where = 'where 1=1'
	if @ParentZoneIdStr > 0 begin
	SET @Where =@where+ ' and ParentZoneId=' + str(@ParentZoneIdStr)
--	select @regionId = regionID from tbl_zone where id=@ParentZoneIdStr
	end
--	if @regionId > 0
--		set @where = @where + ' and regionID='+ str(@regionId)
	if @SubZoneId>-1
		set @where = @where + ' and subZoneID ='+ str(@SubZoneId) +''
	if @type = 1
		set @where = @where + ' and ([dbo].f_restCheckTodayMenu(restid,getdate()))>0 ' 
	--TotoalCount
	SET @Sql = N'SELECT @TotalCountOut=Count(*) FROM v_RestCommend ' + @Where
	EXEC sp_executesql @Sql, N'@TotalCountOut INT OUTPUT', @TotalCountOut=@TotalCount OUTPUT

	IF @PageSize=-1 BEGIN-- -1Ϊȫ
		SELECT @PageIndex=1, @TotalPage=1
		SET @Sql = 'SELECT *,[dbo].[f_getShopBusinessStateStr](restID) as BusinessStateStr FROM v_RestCommend ' + @Where + ' ORDER BY Position DESC, RestName'
	END ELSE BEGIN

		--TotalPage
		SET @TotalPage = CEILING((@TotalCount + 0.0) / @PageSize)
		
		--CheckPageIndex
		IF @PageIndex < 1 SET @PageIndex = 1
		IF @PageIndex > @TotalPage SET @PageIndex = @TotalPage

		--RowRange
		SET @StartRowId = (@PageIndex - 1) * @PageSize + 1
		set @EndRowId = @StartRowId + @PageSize - 1

		--SQL
		if @SortStr <>''
		begin
			SET @Sql = 'SELECT *,[dbo].[f_getShopBusinessStateStr](restID) as BusinessStateStr FROM (
			SELECT *,() OVER(order by [dbo].[f_getShopBusinessState](restID),'+ @SortStr +') as RowId
			FROM v_RestCommend ' + @Where
			+ ') AS T WHERE RowId BETWEEN ' + CAST(@StartRowId AS VARCHAR(50)) + ' AND ' + CAST(@EndRowId AS VARCHAR(50))
		end
		else begin
		SET @Sql = 'SELECT *,[dbo].[f_getShopBusinessStateStr](restID) as BusinessStateStr FROM (
			SELECT *, () OVER(ORDER BY [dbo].[f_getShopBusinessState](restID), Position DESC, RestName) as RowId
			FROM v_RestCommend ' + @Where
			+ ') AS T WHERE RowId BETWEEN ' + CAST(@StartRowId AS VARCHAR(50)) + ' AND ' + CAST(@EndRowId AS VARCHAR(50))
		end

	END

	--GetTable
	EXEC (@Sql)

	--PageInfo
	SELECT @PageIndex AS PageIndex, @PageSize AS PageSize, @TotalCount AS TotalCount, @TotalPage AS TotalPage
	--select @Sql
END





















GO
/****** :  StoredProcedure [dbo].[sp_Rest_Commend_SubZone_append]    ű: 02/01/2010 14:33:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<wangjh>
-- Create date: <2008-1-23>
-- Description:	<ҳ͹ƼƬ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Rest_Commend_SubZone_append]
@ZoneID int = 0	,
@Name varchar(8000) ='',
@Result int  =0 output
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	DECLARE @Count INT

	SELECT @Count=COUNT(*) FROM tbl_topSubZone WHERE zoneID=@ZoneId
	AND Name = @Name
	IF @Count > 0 BEGIN
		SELECT 0
		RETURN
	END
	INSERT INTO tbl_topSubZone (zoneID,Name) VALUES (@ZoneId, @Name)
	IF @@ERROR = 0 and @@rowCount = 1 BEGIN
		SET @Result = 1
	END
	SELECT @Result		
END




GO
/****** :  StoredProcedure [dbo].[sp_Rest_Commend_SubZone_Delete]    ű: 02/01/2010 14:33:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		<wangjh>
-- Create date: <2008-1-25>
-- Description:	<ɾҳ͹ƼƬ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Rest_Commend_SubZone_Delete]
@subZoneID int = 0	,
@Result int  =0 output
AS
BEGIN
	declare @count int 
	select @count = count(id) from v_RestCommend where subZoneID = @subZoneID
	if @count > 0 begin
	select 0
    return
	end
	delete from  tbl_topSubZone where id = @subZoneID
	IF @@ERROR = 0 and @@rowCount = 1 BEGIN
		SET @Result = 1
	END
	SELECT @Result		
END






GO
/****** :  StoredProcedure [dbo].[sp_Rest_Commend_SubZone_getList]    ű: 02/01/2010 14:33:02 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Venson>
-- Create date: <2007-8-14>
-- Description:	<ȡ͹ƼƬб>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Rest_Commend_SubZone_getList]
@zoneID int = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
if @zoneID <> 0 begin
    SELECT
		Zone.id AS ZoneId,
		Zone.name AS ZoneName,
		sub.name as subZoneName,
		sub.id as subZoneID,
		sub.num as num
	FROM tbl_topSubZone as sub inner join
		tbl_topZone AS Data on sub.zoneID = Data.zoneID INNER JOIN
		tbl_zone AS Zone ON Zone.id=Data.zoneID  where sub.zoneID = str(@zoneID)
	ORDER BY Data.orderNumber,sub.num desc
end
else begin
	 SELECT
		Zone.id AS ZoneId,
		Zone.name AS ZoneName,
		sub.name as subZoneName,
		sub.id as subZoneID,
		sub.num as num
	FROM tbl_topSubZone as sub inner join
		tbl_topZone AS Data on sub.zoneID = Data.zoneID INNER JOIN
		tbl_zone AS Zone ON Zone.id=Data.zoneID 
	ORDER BY Data.orderNumber,sub.num desc
end
END





GO
/****** :  StoredProcedure [dbo].[sp_Rest_Commend_SubZone_update]    ű: 02/01/2010 14:33:03 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<wangjh>
-- Create date: <2008-1-23>
-- Description:	<ҳ͹ƼƬ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Rest_Commend_SubZone_update]
@zoneID int =0,
@subZoneID int = 0	,
@Name varchar(8000) = 0,
@num int = 0,
@Result int  =0 output
AS
BEGIN
	declare @Count int
	SELECT @Count=COUNT(*) FROM tbl_topSubZone WHERE zoneID=@ZoneId and id <> @subZoneID
	AND Name = @Name
	IF @Count > 0 BEGIN
		SELECT 0
		RETURN
	END
	update tbl_topSubZone set name = @Name , num = @num where id = @subZoneID
	IF @@ERROR = 0 and @@rowCount = 1 BEGIN
		SET @Result = 1
	END
	SELECT @Result		
END





GO
/****** :  StoredProcedure [dbo].[sp_Rest_Commend_Zone_append]    ű: 02/01/2010 14:33:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Venson>
-- Create date: <2007-8-15>
-- Description:	<ҳ͹ƼƬ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Rest_Commend_Zone_append]
	@ZoneId INT = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @Result INT
	DECLARE @MaxNumber INT
	DECLARE @Count INT

	SELECT @Count=COUNT(*) FROM tbl_topZone WHERE zoneID=@ZoneId
	IF @Count > 0 BEGIN
		SELECT 1
		RETURN
	END

	begin
	begin tran
	SELECT @MaxNumber=MAX(orderNumber) FROM tbl_topZone
	INSERT INTO tbl_topZone (zoneID, orderNumber) VALUES (@ZoneId, @MaxNumber+1)
	IF @@ERROR > 0 BEGIN
		SET @Result = 0
		ROLLBACK TRAN
	END ELSE BEGIN
		SET @Result = 1
		COMMIT TRAN
	END

	SELECT @Result		
	END
	END

GO
/****** :  StoredProcedure [dbo].[sp_Rest_Commend_Zone_changeOrderNumber]    ű: 02/01/2010 14:33:06 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Venson>
-- Create date: <2007-8-15>
-- Description:	<ҳ͹Ƽ˳>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Rest_Commend_Zone_changeOrderNumber]
	@ZoneId INT = 0,
	--(1:, 2:½)
	@Direction INT = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    DECLARE @OrderNumber INT
	DECLARE @MaxNumber INT
	DECLARE @MinNumber INT
	DECLARE @Result INT

	begin
    begin tran
	SELECT @OrderNumber=orderNumber FROM tbl_topZone WHERE zoneID=@ZoneId
	IF @Direction = 1 BEGIN
		SELECT @MinNumber=MIN(orderNumber) FROM tbl_topZone
		IF @MinNumber <> @OrderNumber BEGIN
			UPDATE tbl_topZone SET orderNumber=orderNumber+1 WHERE orderNumber=@OrderNumber-1
			UPDATE tbl_topZone SET orderNumber=orderNumber-1 WHERE ZoneId=@ZoneId
		END
	END
	IF @Direction = 2 BEGIN
		SELECT @MaxNumber=MAX(orderNumber) FROM tbl_topZone
		IF @MaxNumber <> @OrderNumber BEGIN
			UPDATE tbl_topZone SET orderNumber=orderNumber-1 WHERE orderNumber=@OrderNumber+1
			UPDATE tbl_topZone SET orderNumber=orderNumber+1 WHERE ZoneId=@ZoneId
		END
	END

	IF @@ERROR > 0 BEGIN
		SET @Result = 0
		ROLLBACK TRAN
	END ELSE BEGIN
		SET @Result = 1
		COMMIT TRAN
	END

	SELECT @Result
	END
	END


GO
/****** :  StoredProcedure [dbo].[sp_Rest_Commend_Zone_delete]    ű: 02/01/2010 14:33:07 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Venson>
-- Create date: <2007-8-15>
-- Description:	<ɾҳ͹ƼƬ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Rest_Commend_Zone_delete]
	@ZoneId INT = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    DECLARE @Result INT
	DECLARE @OrderNumber INT

	begin
    begin tran
	SELECT @OrderNumber=orderNumber FROM tbl_topZone WHERE zoneID=ZoneId
	DELETE FROM tbl_topZone WHERE zoneID=@ZoneId
	UPDATE tbl_topZone SET orderNumber=orderNumber-1 WHERE orderNumber>@OrderNumber

	IF @@ERROR > 0 BEGIN
		SET @Result = 0
		ROLLBACK TRAN
	END ELSE BEGIN
		SET @Result = 1
		COMMIT TRAN
	END
	
	SELECT @Result
	END
	END


GO
/****** :  StoredProcedure [dbo].[sp_Rest_Commend_Zone_getList]    ű: 02/01/2010 14:33:08 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Venson>
-- Create date: <2007-8-14>
-- Description:	<ȡ͹ƼƬб>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Rest_Commend_Zone_getList]
@zoneID int = 0,
@regionID int = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
declare @sql varchar(8000)
declare @where varchar(8000)
set @where = ''
if @zoneID <> 0
select @regionID = regionID from tbl_zone where id = @zoneID
if @regionID <> 0
set @where = @where + ' and region.id ='+ str(@regionID)
set @sql =' SELECT
		Zone.id AS ZoneId,
		Zone.name AS ZoneName,
		Data.orderNumber AS OrderNumber,
		Province.name AS ProvinceName,
		province.ID as provinceID,
		City.name AS CityName,
		city.id as CityID,
		Region.name AS RegionName,
		Region.id as regionID
	FROM tbl_topZone AS Data INNER JOIN
		tbl_zone AS Zone ON Zone.id=Data.zoneID INNER JOIN
		tbl_province AS Province ON Province.id=Zone.provinceId	INNER JOIN
		tbl_city AS City ON City.id=Zone.cityID INNER JOIN
		tbl_region AS Region ON Region.id=Zone.regionID where 1=1'
set @sql = @sql + @where
set @sql = @sql + ' ORDER BY Data.orderNumber'
exec(@sql)	
END




GO
/****** :  StoredProcedure [dbo].[sp_rest_DeleteRelation]    ű: 02/01/2010 14:33:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [dbo].[sp_rest_DeleteRelation]
@mainRestID bigint=0,
@subRestID bigint=0
as
begin
	if @mainRestID>0 and @subRestID>0 begin
		if @mainRestID=@subRestID begin
			select -2
		end else if exists(select * from tbl_restChainRelation where mainRestID=@mainRestID and restID=@subRestID) begin
			delete from tbl_restChainRelation where  mainRestID=@mainRestID and restID=@subRestID
			if not exists(select * from tbl_restChainRelation where mainRestID=@mainRestID and mainRestID!=RestID)
				delete from tbl_restChainRelation where mainRestID=@mainRestID and restID=@mainRestID
			select 1
		end else 
			select 0
	end else 
		select -1

end



GO
/****** :  StoredProcedure [dbo].[sp_rest_editMain]    ű: 02/01/2010 14:33:10 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE  [dbo].[sp_rest_editMain]
@id int=0,--͹ID
@reserveDays int=0,--ǰԤ
@reserveMenuMode int=0,--Ԥ˵ʾ
@UpdateCyc varchar(50),--˵
@deliverTimeS varchar(8000), 
@businessTimes varchar(8000),
@responseTime int=0,--Ӧʱ
@DeliverMoney int,--ͽ
@SenderAmount int,
@DeliverArea varchar(100), 
@DeliverNote varchar(8000), 
@AreaIdS varchar(8000),--ͲͷΧ
@result int =0 output
AS
if @id>0 begin
	begin tran
		update tbl_restIntro set 
				UpdateCyc=@UpdateCyc
				,DeliverMoney=@DeliverMoney
				,SenderAmount=@SenderAmount			
				,DeliverArea=@DeliverArea 
				,DeliverNote=@DeliverNote
			where restId=@id
		update tbl_restaurant set responseTime=@responseTime,reserveDays=@reserveDays,reserveMenuMode=@reserveMenuMode where ID=@id
		exec sp_addDeliverTime @id,@deliverTimeS
        exec dp_ShopBusinessTime_add @id,@businessTimes
		--exec [sp_restArea_add] @id,@AreaIdS
		set @result=@id
	if @@error>0 begin
		rollback tran
	end else begin
		commit tran
	end
end
select @result














GO
/****** :  StoredProcedure [dbo].[sp_rest_editOther]    ű: 02/01/2010 14:33:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE PROCEDURE  [dbo].[sp_rest_editOther]
@id int=0,--͹ID
@Email varchar(50)='',--˵
@MsnQQ varchar(50)='', 
@URL varchar(100)='',
@Settlement varchar(50)='',--㷽ʽ
@OrderNote varchar(50)='', 
@StallAmount int=0, --λ
@Pamount int=0,--
@Bamount int=0,--
@Policy varchar(50)='',--Ż
@Discount float=0,--ۿ
@Traffic varchar(100)='',--ͨ·
@result int =0 output
AS
if @id>0
	begin	
	update tbl_restIntro set 
			Email=@Email
			,MsnQQ=@MsnQQ
			,URL=@URL
			,Settlement=@Settlement 
			,OrderNote=@OrderNote
			,StallAmount=@StallAmount
			,Pamount=@Pamount
			,Bamount=@Bamount
			,Policy=@Policy
			,Discount=@Discount
			,Traffic=@Traffic
		where restId=@id
	set @result=@id
	end
select @result







GO
/****** :  StoredProcedure [dbo].[sp_Rest_getListByManager]    ű: 02/01/2010 14:33:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- =============================================
-- Author:		<Venson>
-- Create date: <2007-6-27>
-- Description:	<ȡɹĲ͹бBy UserId, ֻȡ˺>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Rest_getListByManager]
	@UserId BIGINT = 0,
	@RestName VARCHAR(50)='',
    @State int =-1,  ----  -1  0Զ 1꣬2ͣӪҵ
    @intRestName int=0,   --0 Ĭ 1 2 
    @intUpTime int =0,  --0 Ĭ 1 2 
    @intOreTime int=0 --0 Ĭ 1 2 
    
AS
BEGIN
	SET NOCOUNT ON;
	
     declare @sql varchar(8000)
     declare @where varchar(8000)
     declare @orderby varchar(8000)
     
     set @orderby=' order by Rest.[name] asc'
     if @intRestName=1 set @orderby=' order by Rest.[name] asc'
     if @intRestName=2 set @orderby=' order by Rest.[name] desc'
     
     if @intUpTime=1 set @orderby=' order by state.updatetime asc'
     if @intUpTime=2 set @orderby=' order by state.updatetime desc'
     
     if @intOreTime=1 set @orderby=' order by state.restoretime asc'
     if @intOreTime=2 set @orderby=' order by state.restoretime desc'
     set @where=''
     if @State <> -1  set @where=' and state.state='+cast(@state as varchar(20))
     if @RestName <> ''  set @where=' AND (Rest.[name] LIKE ''%'+@RestName+'%''or Rest.[spy] like ''%'+@restname+'%'' or rest.[qpy] like ''%'+@restname+'%'')'+@where
     if @userid <>0
     begin
     set @sql='SELECT Rest.*, state.state as BusinessState,state.content,state.updateUserid,state.updatetime,state.restoretime ,users.nickname FROM
		 tbl_restaurant as Rest left join tbl_ShopBusinessState as state on Rest.id=state.shopID
            left join tbl_user as users on state.updateuserid=users.id where Rest.id in
         (
			SELECT id AS restID FROM tbl_restaurant WHERE userID='+cast(@UserId as varchar(100))+' OR MuserID='+cast(@UserId as varchar(100))+'
			UNION
			SELECT restID FROM tbl_restUser WHERE userID='+cast(@UserId as varchar(100))+'
		 ) 
		 and Rest.isDelete=0 AND Rest.SClassID=3 and Rest.state = 1 '+@where+@orderby
     end
     if @userid = 0
     set @sql='SELECT Rest.*, state.state as BusinessState,state.content,state.updateUserid,state.updatetime,
(select count(rest.id) from tbl_restaurant as rest left join tbl_ShopBusinessState as state2 on Rest.id=state2.shopID where rest.isDelete=0 AND rest.SClassID=3 and state2.state=0) as zhengchang,
(select count(rest.id) from tbl_restaurant as rest left join tbl_ShopBusinessState as state2 on Rest.id=state2.shopID where rest.isDelete=0 AND rest.SClassID=3 and state2.state=1) as shouwan,
(select count(rest.id) from tbl_restaurant as rest left join tbl_ShopBusinessState as state2 on Rest.id=state2.shopID where rest.isDelete=0 AND rest.SClassID=3 and state2.state=2) as zanting,
state.restoretime ,users.nickname FROM
		 tbl_restaurant as Rest left join tbl_ShopBusinessState as state on Rest.id=state.shopID
            left join tbl_user as users on state.updateuserid=users.id where Rest.isDelete=0 AND Rest.SClassID=3 and Rest.state = 1'+@where+@orderby
exec (@sql)
--select(@sql)
select @@rowcount
END


















GO
/****** :  StoredProcedure [dbo].[sp_Rest_getListByName]    ű: 02/01/2010 14:33:17 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Venson>
-- Create date: <2007-8-1>
-- Description:	<ƻȡ͹б>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Rest_getListByName]
	@Name varchar(8000) = ''
AS
BEGIN

	SET NOCOUNT ON;

	SET @Name = '%' + @Name + '%'
    SELECT * FROM v_Rest_OrderNavigationList WHERE [name] LIKE @Name
END



GO
/****** :  StoredProcedure [dbo].[sp_Rest_getOrderNavigationList]    ű: 02/01/2010 14:33:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


















-- =============================================
-- Author:		<Venson>
-- Create date: <2007-7-2>
-- Description:	<͵>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Rest_getOrderNavigationList]
	--ʡID
	@ProvinceId INT = 0,
	--ID
	@CityId INT = 0, 
	--ID
	@RegionId INT = 0,
	--ƬID
	@ZoneId INT = 0,
	--ID
	@AreaId INT = 0,
	--ؼ
	@AreaName varchar(8000) = '',
	--ͽΧ
	@DeliverMoneyRange INT = 0,
	--͹
	@RestName varchar(8000) = '',
	--ͷ
	@MenuClass INT = 0,
	--ϵ
	@FoodMode INT = 0,
	--Ͳʱ
	@DeliverDateRange INT = 0,
	--۷Χ
	@PriceRange INT = 0,
	--Ʒ
	@MenuName varchar(8000) = '',
	--ǰҳ
	@PageIndex INT = 1,
	--ÿҳ¼
	@PageSize INT = 10,
	--ֶID
	@OrderByFieldId INT = 0,
	--˳
	@OrderByDirectionId INT = 0,
	--ʱ
	@DeliverDay INT = 0
AS
BEGIN
	SET NOCOUNT ON;

	--Declare
	DECLARE @Sql nvarchar(4000)
	DECLARE @Where varchar(8000)
	DECLARE @OrderBy varchar(8000)
	DECLARE @OrderByFieldName varchar(8000)
	DECLARE @OrderByDirectionName varchar(8000)

	DECLARE @ProvinceIdStr varchar(8000)
	DECLARE @CityIdStr varchar(8000)
	DECLARE @RegionIdStr varchar(8000)
	DECLARE @ZoneIdStr varchar(8000)
	DECLARE @AreaIdStr varchar(8000)
	DECLARE @FoodModeStr varchar(8000)
	DECLARE @DeliverDayStr VARCHAR(10)

	DECLARE @TotalCount INT
	DECLARE @TotalPage INT
	DECLARE @StartRowId INT
    DECLARE @EndRowId INT

	--Convert
	SET @ProvinceIdStr = CAST(@ProvinceId AS varchar(8000))
	SET @CityIdStr = CAST(@CityId AS varchar(8000))
	SET @RegionIdStr = CAST(@RegionId AS varchar(8000))
	SET @ZoneIdStr = CAST(@ZoneId AS varchar(8000))
	SET @AreaIdStr = CAST(@AreaId AS varchar(8000))
	SET @FoodModeStr = CAST(@FoodMode AS varchar(8000))
	SET @DeliverDayStr = CAST(@DeliverDay AS VARCHAR(10))

	--WHERE
	SET @Where = 'WHERE 1=1'

	IF @ProvinceId > 0 AND @CityId > 0 AND @RegionId = 0 AND @ZoneId = 0 AND @AreaId = 0 AND @AreaName = '' BEGIN
		SET @Where = @Where + ' AND RestId IN (SELECT RestId FROM v_Rest_OrderNavigationList WHERE provinceID='
			+ @ProvinceIdStr + ' AND cityID=' + @CityIdStr + ')'
	END ELSE IF @ProvinceId > 0 OR @CityId > 0 OR @RegionID > 0 OR @ZoneId > 0 OR @AreaId > 0 OR @AreaName <> '' BEGIN
		SET @Where = @Where + ' AND RestId IN (SELECT RestId FROM v_Shop2Area WHERE 1=1 '
		IF @ProvinceId > 0 SET @Where = @Where + ' AND ProvinceId=' + @ProvinceIdStr
		IF @CityId > 0 SET @Where = @Where + ' AND CityId=' + @CityIdStr
		IF @RegionId > 0 SET @Where = @Where + ' AND RegionId=' + @RegionIdStr
		IF @ZoneId > 0 SET @Where = @Where + ' AND ZoneId=' + @ZoneIdStr
		IF @AreaId > 0 SET @Where = @Where + 'AND AreaId=' + @AreaIdStr
		IF @AreaName <> '' SET @Where = @Where + ' AND AreaName LIKE ''%' + @AreaName + '%'''
		SET @Where = @Where + ')'
	END

	IF @FoodMode > 0 SET @Where = @Where + ' AND RestId IN '
		+ '(SELECT restID FROM tbl_foodMode2Rest WHERE foodModeID=' + @FoodModeStr + ')'

	IF @RestName <> '' SET @Where = @Where + ' AND Name LIKE ''%' + @RestName + '%'''

	IF @DeliverMoneyRange = 1 SET @Where = @Where + ' AND (DeliverMoney>=5 AND deliverMoney<=10)'
	IF @DeliverMoneyRange = 2 SET @Where = @Where + ' AND (DeliverMoney>=10 AND deliverMoney<=20)'
	IF @DeliverMoneyRange = 3 SET @Where = @Where + ' AND (DeliverMoney>=20 AND deliverMoney<=50)'
	IF @DeliverMoneyRange = 4 SET @Where = @Where + ' AND (DeliverMoney>=50 AND deliverMoney<=100)'
	IF @DeliverMoneyRange = 5 SET @Where = @Where + ' AND DeliverMoney>=100'

	IF @DeliverDateRange = 1
		SET @Where = @Where + ' AND RestId IN (SELECT restID FROM tbl_deliverTime WHERE (startClock<=8.0 AND endClock>=8.0) OR (startClock<=9.0 AND endClock>=9.0))'
	ELSE IF @DeliverDateRange = 2
		SET @Where = @Where + ' AND RestId IN (SELECT restID FROM tbl_deliverTime WHERE (startClock<=11.3 AND endClock>=11.3) OR (startClock<=13.0 AND endClock>=13.0))'
	ELSE IF @DeliverDateRange = 3
		SET @Where = @Where + ' AND RestId IN (SELECT restID FROM tbl_deliverTime WHERE (startClock<=17.0 AND endClock>=17.0) OR (startClock<=19.0 AND endClock>=19.0))'
	ELSE IF @DeliverDateRange = 4
		SET @Where = @Where + ' AND RestId IN (SELECT restID FROM tbl_deliverTime WHERE (startClock<=19.0 AND endClock>=19.0) OR (startClock<=22.0 AND endClock>=22.0))'

	IF @PriceRange = 1 BEGIN
		SET @Where = @Where + ' AND (RestId IN (SELECT DISTINCT(restID) FROM tbl_menuTable WHERE price<=5)'
		SET @Where = @Where + ' OR RestId IN (SELECT DISTINCT(restID) FROM tbl_suiteMenuConfig WHERE price<=5))'
	END ELSE IF @PriceRange = 2 BEGIN
		SET @Where = @Where + ' AND (RestId IN (SELECT DISTINCT(restID) FROM tbl_menuTable WHERE price>=5 AND price<=10)'
		SET @Where = @Where + ' OR RestId IN (SELECT DISTINCT(restID) FROM tbl_suiteMenuConfig WHERE price>=5 AND price<=10))'
	END ELSE IF @PriceRange = 3 BEGIN
		SET @Where = @Where + ' AND (RestId IN (SELECT DISTINCT(restID) FROM tbl_menuTable WHERE price>=10 AND price<=20)'
		SET @Where = @Where + ' OR RestId IN (SELECT DISTINCT(restID) FROM tbl_suiteMenuConfig WHERE price>=10 AND price<=20))'
	END ELSE IF @PriceRange = 4 BEGIN
		SET @Where = @Where + ' AND (RestId IN (SELECT DISTINCT(restID) FROM tbl_menuTable WHERE price>=20 AND price<=30)'
		SET @Where = @Where + ' OR RestId IN (SELECT DISTINCT(restID) FROM tbl_suiteMenuConfig WHERE price>=20 AND price<=30))'
	END ELSE IF @PriceRange = 5 BEGIN
		SET @Where = @Where + ' AND (RestId IN (SELECT DISTINCT(restID) FROM tbl_menuTable WHERE price>=30 AND price<=40)'
		SET @Where = @Where + ' OR RestId IN (SELECT DISTINCT(restID) FROM tbl_suiteMenuConfig WHERE price>=30 AND price<=40))'
	END ELSE IF @PriceRange = 6 BEGIN
		SET @Where = @Where + ' AND (RestId IN (SELECT DISTINCT(restID) FROM tbl_menuTable WHERE price>=40)'
		SET @Where = @Where + ' OR RestId IN (SELECT DISTINCT(restID) FROM tbl_suiteMenuConfig WHERE price>=30 AND price<=40))'
	END

	IF @MenuClass = 1 BEGIN
		SET @Where = @Where + ' AND (RestId IN (SELECT restID FROM tbl_menuClass WHERE [name] LIKE ''%ײ%'')'
		SET @Where = @Where + ' OR RestId IN (SELECT restID FROM tbl_suiteMenuClass WHERE [name] LIKE ''%ײ%''))'
	END
	IF @MenuClass = 2 BEGIN
		SET @Where = @Where + ' AND (RestId IN (SELECT restID FROM tbl_menuClass WHERE [name] LIKE ''%Ƿ%'')'
		SET @Where = @Where + ' OR RestId IN (SELECT restID FROM tbl_suiteMenuClass WHERE [name] LIKE ''%Ƿ%''))'
	END
	IF @MenuClass = 3 BEGIN
		SET @Where = @Where + ' AND (RestId IN (SELECT restID FROM tbl_menuClass WHERE [name] LIKE ''%ʳ%'')'
		SET @Where = @Where + ' OR RestId IN (SELECT restID FROM tbl_suiteMenuClass WHERE [name] LIKE ''%ʳ%''))'
	END
	IF @MenuClass = 4 BEGIN
		SET @Where = @Where + ' AND (RestId IN (SELECT restID FROM tbl_menuClass WHERE [name] LIKE ''%%'')'
		SET @Where = @Where + ' OR RestId IN (SELECT restID FROM tbl_suiteMenuClass WHERE [name] LIKE ''%%''))'
	END
	IF @MenuClass = 5 BEGIN
		SET @Where = @Where + ' AND (RestId IN (SELECT restID FROM tbl_menuClass WHERE [name] LIKE ''%պ%'')'
		SET @Where = @Where + ' OR RestId IN (SELECT restID FROM tbl_suiteMenuClass WHERE [name] LIKE ''%պ%''))'
	END
	IF @MenuClass = 6 BEGIN
		SET @Where = @Where + ' AND (RestId IN (SELECT restID FROM tbl_menuClass WHERE [name] LIKE ''%%'')'
		SET @Where = @Where + ' OR RestId IN (SELECT restID FROM tbl_suiteMenuClass WHERE [name] LIKE ''%%''))'
	END
	IF @MenuClass = 7 BEGIN
		SET @Where = @Where + ' AND (RestId IN (SELECT restID FROM tbl_menuClass WHERE [name] LIKE ''%%'')'
		SET @Where = @Where + ' OR RestId IN (SELECT restID FROM tbl_suiteMenuClass WHERE [name] LIKE ''%%''))'
	END
--	IF @MenuClass = 8 BEGIN--
--		SET @Where = @Where + ' AND (RestId IN (SELECT restID FROM tbl_menuClass WHERE
--			[name] NOT LIKE ''%ײ%'' AND [name] NOT LIKE ''%Ƿ%'' AND [name] NOT LIKE ''%ʳ%''
--			AND [name] NOT LIKE ''%%'' AND [name] NOT LIKE ''%պ%'' AND [name] NOT LIKE ''%%''
--			AND [name] NOT LIKE ''%%'')'
--		SET @Where = @Where + ' AND RestId IN (SELECT restID FROM tbl_suiteMenuClass WHERE
--			[name] NOT LIKE ''%ײ%'' AND [name] NOT LIKE ''%Ƿ%'' AND [name] NOT LIKE ''%ʳ%''
--			AND [name] NOT LIKE ''%%'' AND [name] NOT LIKE ''%պ%'' AND [name] NOT LIKE ''%%''
--			AND [name] NOT LIKE ''%%''))'
--	END

	IF @MenuName <> '' BEGIN
		SET @Where = @Where + ' AND (RestId IN (SELECT DISTINCT(MenuTable.restID) FROM tbl_menuTable AS MenuTable '
			+ 'LEFT JOIN tbl_menuClass AS MenuClass ON MenuClass.id=MenuTable.classID '
			+ 'WHERE MenuClass.isDeliver=1 AND MenuClass.isDelete=0 AND (MenuTable.deliverDay & ' + @DeliverDayStr + ')>0 AND MenuTable.state=0 AND MenuTable.[name] LIKE ''%' + @MenuName + '%'')'
		SET @Where = @Where + ' OR RestId IN (SELECT DISTINCT(SuiteMenuTable.restID) FROM tbl_suiteMenuTable AS SuiteMenuTable '
			+ 'LEFT JOIN tbl_suiteMenuClass AS SuiteMenuClass ON SuiteMenuClass.id=SuiteMenuTable.classID '
			+ 'WHERE SuiteMenuClass.isDelete=0 AND (SuiteMenuClass.dayID & ' + @DeliverDayStr + ')>0 AND (SuiteMenuTable.deliverDay & ' + @DeliverDayStr + ')>0 AND SuiteMenuTable.classID>0 AND SuiteMenuTable.isDelete=0 AND SuiteMenuTable.[name] LIKE ''%' + @MenuName + '%''))'
	END

	--TotoalCount
	SET @Sql = N'SELECT @TotalCountOut=Count(RestId) FROM v_Rest_OrderNavigationList ' + @Where
	EXEC sp_executesql @Sql, N'@TotalCountOut INT OUTPUT', @TotalCountOut=@TotalCount OUTPUT

	--TotalPage
	SET @TotalPage = CEILING((@TotalCount + 0.0) / @PageSize)
	
	--CheckPageIndex
	IF @PageIndex < 1 SET @PageIndex = 1
	IF @PageIndex > @TotalPage SET @PageIndex = @TotalPage

	--RowRange
    SET @StartRowId = (@PageIndex - 1) * @PageSize + 1
    set @EndRowId = @StartRowId + @PageSize - 1

	--OrderBy
	IF @OrderByFieldId < 0 OR @OrderByFieldId > 4 SET @OrderByFieldId = 0
	IF @OrderByFieldId = 0 SET @OrderByFieldName = 'SClassId'
	IF @OrderByFieldId = 1 SET @OrderByFieldName = 'DeliverMoney'
	IF @OrderByFieldId = 2 SET @OrderByFieldName = 'Expenditure'
	IF @OrderByFieldId = 3 SET @OrderByFieldName = 'FPoint'
	IF @OrderByFieldId = 4 SET @OrderByFieldName = 'SPoint'

	IF @OrderByDirectionId <> 0 AND @OrderByDirectionId <> 1 SET @OrderByDirectionId = 1
	IF @OrderByDirectionId = 0 SET @OrderByDirectionName = 'ASC'
	IF @OrderByDirectionId = 1 SET @OrderByDirectionName = 'DESC'

	SET @OrderBy = 'ORDER BY Rank DESC, ' + @OrderByFieldName + ' ' + @OrderByDirectionName + ', RestId'

	--SQL
	SET @Sql = 'SELECT * FROM (
		SELECT *, () OVER(' + @OrderBy + ') as RowId FROM v_Rest_OrderNavigationList ' + @Where
		+ ') AS T WHERE RowId BETWEEN ' + CAST(@StartRowId AS VARCHAR(50)) + ' AND ' + CAST(@EndRowId AS VARCHAR(50))

	--GetTable
	EXEC (@Sql)

	--PageInfo
	SELECT @PageIndex AS PageIndex, @PageSize AS PageSize, @TotalCount AS TotalCount, @TotalPage AS TotalPage
END



















GO
/****** :  StoredProcedure [dbo].[sp_rest_getRelation]    ű: 02/01/2010 14:33:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







CREATE procedure [dbo].[sp_rest_getRelation]
@mainRestID bigint=0,
@subRestID bigint=0,
@userID bigint=0,
@limit int=0
as
begin
	declare @restID bigint
	if @useriD>0 begin
		select a.*,mr.name as mainRestName,sr.name as subRestName 
		from tbl_restChainRelation a 
			left join tbl_restaurant mr on mr.id=a.mainRestID 
			left join tbl_restaurant sr on sr.id=a.restID 
		where a.mainRestID=a.restID and restID in 
			(
				select id from tbl_restaurant where userid=@userid 
					or id in (select restID from tbl_restUser where userID=@userID)
			)
	end else if @mainRestID>0 and @subRestID>0 begin--0,ʾָĲ͹
		select a.*,mr.name as mainRestName,sr.name as subRestName 
		from tbl_restChainRelation a 
			left join tbl_restaurant mr on mr.id=a.mainRestID 
			left join tbl_restaurant sr on sr.id=a.restID 
		where a.mainRestID=@mainRestID and a.restID=@subRestID
	end if @mainRestID>0 and @subRestID=0 begin --ID0,ID0,ʾ͹µӲ͹
		select a.*,mr.name as mainRestName,sr.name as subRestName 
		from tbl_restChainRelation a 
			left join tbl_restaurant mr on mr.id=a.mainRestID 
			left join tbl_restaurant sr on sr.id=a.restID 
		where a.mainRestID=@mainRestID
	end if @mainRestID>0 and @subRestID=-1 begin --ID0,ID0,ʾ͹µӲ͹,ʾ͹
		select a.*,mr.name as mainRestName,sr.name as subRestName 
		from tbl_restChainRelation a 
			left join tbl_restaurant mr on mr.id=a.mainRestID 
			left join tbl_restaurant sr on sr.id=a.restID 
		where a.mainRestID=@mainRestID and a.mainRestID!=a.restID
	end if @subRestID>0 begin --ID0,ʾָIDӲ͹
		select a.*,mr.name as mainRestName,sr.name as subRestName 
		from tbl_restChainRelation a 
			left join tbl_restaurant mr on mr.id=a.mainRestID 
			left join tbl_restaurant sr on sr.id=a.restID 
		where a.restID=@subRestID
	end if @subRestID<0 and @mainRestID=0 begin --IDС0,ID0,ʾͬĲ͹ݣʾ͹
		set @restID=-@subRestID
		select a.*,mr.name as mainRestName,sr.name as subRestName 
		from tbl_restChainRelation a 
			left join tbl_restaurant mr on mr.id=a.mainRestID 
			left join tbl_restaurant sr on sr.id=a.restID 
		where a.mainRestID=(select top 1 mainRestID from tbl_restChainRelation where restID=@restID)
	end else if @subRestID<0 and @mainRestID=-1 begin --IDС0,ID-1,ʾͬĲ͹,ʾ͹
		set @restID=-@subRestID
		select a.*,mr.name as mainRestName,sr.name as subRestName 
		from tbl_restChainRelation a 
			left join tbl_restaurant mr on mr.id=a.mainRestID 
			left join tbl_restaurant sr on sr.id=a.restID 
		where a.mainRestID=(select top 1 mainRestID from tbl_restChainRelation where restID=@restID)
			and a.mainRestID!=a.restID
	end else if @subRestID<0 and @mainRestID=-2 begin --IDС0,ID-2,ʾͬĲ͹,ʾǰID
		set @restID=-@subRestID
		if @limit>0		
			DECLARE @sql VARCHAR(8000)
        set   @sql='	select top '+cast(@limit   as   varchar)+' a.*,mr.name as mainRestName,sr.name as subRestName 
			from tbl_restChainRelation a 
				left join tbl_restaurant mr on mr.id=a.mainRestID 
				left join tbl_restaurant sr on sr.id=a.restID 
			where a.mainRestID=(select top 1 mainRestID from tbl_restChainRelation where restID=@restID)
				and a.restID!=@restID'  
    		 
      EXEC (@sql) 
      end 
		else
			select a.*,mr.name as mainRestName,sr.sclassid,sr.address,sr.isDelete,sr.state,sr.logoPhotoid,sr.name as subRestName ,sr.responseTime,z.name as zoneName,sri.deliverMoney,rs.name
			from tbl_restChainRelation a 
				left join tbl_restaurant mr on mr.id=a.mainRestID 
				left join tbl_restaurant sr on sr.id=a.restID 
				left join tbl_zone z on z.id=sr.zoneID
				left join tbl_restIntro sri on sri.restID=sr.id
                left join tbl_restClass rs on rs.id=sri.classID
			where a.mainRestID=(select top 1 mainRestID from tbl_restChainRelation where restID=@restID)
				and a.restID!=@restID and sr.state=1 and sr.isDelete=0 and sr.sclassid=3
	end
	select @@rowcount









GO
/****** :  StoredProcedure [dbo].[sp_Rest_getSimpleInfo]    ű: 02/01/2010 14:33:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Venson>
-- Create date: <2007-7-17>
-- Description:	<ȡ͹ݼϢ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Rest_getSimpleInfo] 
	@Id INT = 0
AS
BEGIN
	SET NOCOUNT ON;

	SELECT
		Rest.id AS RestId,
		Rest.[name] AS RestName,
		Rest.SClassID AS SClassId,
		Rest.address AS Address,
		Intro.deliverMoney AS DeliverMoney,
		ISNULL(Map.mapX, 0) AS MapX,
		ISNULL(Map.mapY, 0) AS MapY,
		Rest.state as State
	FROM tbl_restaurant AS Rest
		LEFT JOIN tbl_restMapInfo AS Map ON Map.restID=Rest.id
		LEFT JOIN tbl_restIntro AS Intro ON Intro.restID=Rest.id
	WHERE Rest.id=@Id
END



GO
/****** :  StoredProcedure [dbo].[sp_rest_isRelationRest]    ű: 02/01/2010 14:33:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE procedure [dbo].[sp_rest_isRelationRest]
@restID bigint=0
as
begin			
	if exists(select * from tbl_restChainRelation where restID=@RestID and restID=mainRestID)
		select 1 --
	else if exists(select * from tbl_restChainRelation where restID=@RestID and restID!=mainRestID)
		select 2 --ֵ 
	else
		select 0		

end






GO
/****** :  StoredProcedure [dbo].[sp_rest_isRestNameExist]    ű: 02/01/2010 14:33:24 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE  [dbo].[sp_rest_isRestNameExist]
@id int=0,--͹ID
@zoneID int=0,
@name varchar(40)--͹
AS
	select count(*) as amount from tbl_restaurant where zoneId=@zoneID and name=@name and id<>@id and isdelete=0






GO
/****** :  StoredProcedure [dbo].[sp_rest_menuSearch]    ű: 02/01/2010 14:33:26 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<gcy>
-- Create date: <2008-1-15>
-- Description:	<Ԫơ¥Ʋѯ>
-- =============================================
CREATE procedure [dbo].[sp_rest_menuSearch]
	@elementName varchar(8000)='',
	@areaName varchar(8000)='',
	@areaID int=0,
	@startPrice float=-1,
	@endPrice float=-1,
	@startDeliverTime float=0,
	@endDeliverTime float=0,
	@deliverDay int=0, -- 1,2,4,8,16,32,64 δһ	
	@PageSize int=10,
	@PageIndex int=1,
	@menuType int=-1,--˵
	@orderColumn varchar(8000)='price',
	@orderDirect varchar(8000)=''
as 
declare @str varchar(8000),@sql varchar(8000),@sql1 varchar(8000) ,@sql2 varchar(8000),@sqlOrderBy varchar(8000),@sqlHead varchar(8000),@sqlCount varchar(8000),@between varchar(8000),@orderBy varchar(8000)
set @sql = ''
set @sql1 = ''
set @sql2 = ''
set @sqlHead = ''
set @sqlCount = ''

if @orderColumn<>'' begin
	set @sqlOrderBy = @orderColumn + ' ' + @orderDirect
end else begin
	set @sqlOrderBy = 'price'
end
set @sqlCount = ' declare @PageIndex int,@PageSize int,@TotalCount int,@TotalPage int,@startRow int,@endRow int'
set @sqlCount = @sqlCount + ' set @PageIndex=' + Cast(@PageIndex as varchar(8000))
set @sqlCount = @sqlCount + ' set @PageSize=' + Cast(@PageSize as varchar(8000))
set @sqlCount = @sqlCount + ' select @TotalCount=count(*) from ('
set @sqlHead = ' select * from ('
set @sql = @sql + '	select 
						* ,
						() over( order by ' + @sqlOrderBy + ') as rows
					from 
					('
							/*--------------ײ͡ʼ-------------------*/
set @sql1 = @sql1 + '		select smCF.[name] as configName,smcf.id as configID,r.id as restID,r.[name] as restName 
								   ,smT.id as menuID,smT.[name] as menuName
								   ,[dbo].[f_suiteMenuConfigContent_Get](smcf.id) as configContent,smCF.price,smT.photoID,r.menuType,1 as isDeliver
							from tbl_suiteMenuConfig smCF 
								left join tbl_restaurant r on r.id=smCF.restID	
								left join tbl_suiteMenuTable smT on smT.id=smCF.menuID		
							where 1=1 '
if @elementName<>'' begin		
	set @sql1 = @sql1 + ' and smCF.id in 
								(	/*--ԪƲѯ*/
									select configID from tbl_suiteMenuContent smC 
										left join tbl_suiteMenuElement smE on smE.id=smC.ElementID 
									where smE.isDelete=0 and (smE.[name] like ''%' + @elementName + '%'' or smE.spy like ''%' + @elementName + '%'' or smE.qpy like ''%' + @elementName + '%'')
								)'
end	
if @areaName<>'' begin
	set @sql1 = @sql1 + '	and r.id in 
								(	/*--¥Ʋѯ*/
									select restID from tbl_shop2Area s2a left join tbl_area a on a.id=s2a.areaID 
									where a.isdelete=0 and a.id=a.parentID and (a.[name] like ''%' + @areaName + '%'' or a.spy like ''%' + @areaName + '%''  or a.qpy like ''%' + @areaName + '%'')
								)'
end
if @areaID>0 begin
	set @sql1 = @sql1 + ' and r.id in 
								(	/*--¥IDѯ*/
									select restID from tbl_shop2Area s2a left join tbl_area a on a.id=s2a.areaID 
									where a.isdelete=0 and a.id=a.parentID and a.id=' + Cast(@areaID as varchar(8000)) + '
								)'
end
if @deliverDay>0 begin
	set @sql1 = @sql1 + '	and (smT.deliverDay & ' + Convert(varchar(8000),@deliverDay) + ')>0 /*-- 1,2,4,8,16,32,64 δһ*/		 
								and smT.id in 
									(/*--ʱ*/
										select MenuID from tbl_suiteMenuList smL left join tbl_suiteMenuClass smCl on smCl.id=smL.classID
											where smCl.isDelete=0 and (smCl.dayID & ' + Convert(varchar(8000),@deliverDay) + ')>0 /*-- 1,2,4,8,16,32,64 δһ*/
									)'
end
	set @sql1 = @sql1 + '	and r.isDelete=0 and r.state=1 and r.menuType=1 and smT.isDelete=0 '
if @startPrice>=0 begin
	set @sql1 = @sql1 + ' and smCF.price >=  ' + Convert(varchar(8000),@startPrice)
end
if @endPrice>0 begin
	set @sql1 = @sql1 + ' and smCF.price <= ' + Convert(varchar(8000),@endPrice)
end
	set @sql1 = @sql1 + ' and smCF.isDelete=0 '
if @startDeliverTime>0 and @endDeliverTime>0 begin
	set @sql1 = @sql1 + ' and r.id in (select distinct(RestId) from tbl_deliverTime where ((' + Cast(@startDeliverTime as varchar(8000)) + ' between startClock and endClock)or(' + Cast(@endDeliverTime as varchar(8000)) + ' between startClock and endClock)))'
end
					------------------ײ͡--------------------

					------------------򵥲˵ʼ----------------
	set @sql2 = @sql2 + '	select '''' as configName,
									0  as configID,
									r.id as restID,
									r.[name] as restName,
									mt.id as menuID,
									mt.[name] as menuName,
									'''' as configContent,
									mt.price,
									menuPhotoID as photoID,
									r.menuType,
									isNull(mC.isDeliver,0) as isDeliver
							from tbl_menuTable mT 
								left join tbl_restaurant r on r.id= mt.restID
								left join tbl_menuClass mC on mC.id=mT.classID
							where 1=1 '
								--Ʒѯ
if @elementName<>'' begin
	set @sql2 = @sql2 + '			and (mt.[name] like ''%' + @elementName + '%'' or mt.spy like ''%' + @elementName + '%'' or mt.qpy like ''%' + @elementName + '%'')'
end
if @areaName<>'' begin
	set @sql2 = @sql2 + '			and r.id in 
										(	/*--¥Ʋѯ*/
											select restID from tbl_shop2Area s2a left join tbl_area a on a.id=s2a.areaID
											where a.isDelete=0 and a.id=a.parentID and (a.[name] like ''%' + @areaName + '%'' or a.spy like ''%' + @areaName + '%'' or a.qpy like ''%' + @areaName + '%'')
										)'
end
if @areaID>0 begin
	set @sql2 = @sql2 + ' and r.id in 
								(	/*--¥IDѯ*/
									select restID from tbl_shop2Area s2a left join tbl_area a on a.id=s2a.areaID 
									where a.isDelete=0 and a.id=a.parentID and a.id=' + Cast(@areaID as varchar(8000)) + '
								)'
end
if @deliverDay>0 begin
   set @sql2 = @sql2 + '			and (mt.deliverDay & '+Convert(varchar(8000),@deliverDay)+')>0 /*-- 1,2,4,8,16,32,64 δһ*/'
end
	set @sql2 = @sql2 + '			and mC.isDelete=0 and mt.state=0 and r.isDelete=0 and r.state=1 and r.menuType=0 '
if @startPrice>=0 begin
	set @sql2 = @sql2 + '			and mt.price >=' + Convert(varchar(8000),@startPrice)
end
if @endPrice>=0 begin
	set @sql2 = @sql2 + '			and mt.price <= ' + Convert(varchar(8000),@endPrice)
end
if @startDeliverTime>0 and @endDeliverTime>0 begin
	set @sql2 = @sql2 + '			and r.id in (select distinct(RestId) from tbl_deliverTime where ((' + Cast(@startDeliverTime as varchar(8000)) + ' between startClock and endClock)or(' + Cast(@endDeliverTime as varchar(8000)) + ' between startClock and endClock)))'
end
							/*------------------򵥲˵----------------*/
if @menuType=0 begin--ֻѯ򵥲˵
	set @sql = @sql + @sql2
end else if @menuType=1 begin--ֻѯƲ˵
	set @sql = @sql +  @sql1
end else begin--
	set @sql = @sql +  @sql1 + ' union ' + @sql2
end

set @sql = @sql + '	) as t
 		) as tt where 1=1 '

/* ҳϢʼ */
set @str = @sqlCount + @sql 
					+ ' set @TotalPage=ceiLing((@TotalCount+0.0)/@PageSize)
					if @pageIndex<1 set @pageIndex=1
					if @pageIndex>@totalPage set @pageIndex=@totalPage
					set @startRow = (@PageIndex-1)*@PageSize+1
					set @endRow = @PageIndex*@PageSize '

set @between = ' and rows between @startRow and @endRow '

set @str = @str + @sqlHead + @sql + @between
		+ ' select @PageIndex as PageIndex,@PageSize as PageSize,@TotalCount as TotalCount,@TotalPage as TotalPage'
exec(@str)
--select @str









GO
/****** :  StoredProcedure [dbo].[sp_Rest_MonthTopTen_getList]    ű: 02/01/2010 14:33:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Venson>
-- Create date: <2007-7-14>
-- Description:	<ȡ͹б>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Rest_MonthTopTen_getList]
AS
BEGIN
	SET NOCOUNT ON;

    SELECT TOP 10 Data.id AS SortId, Rest.id AS RestId, Rest.[name] AS RestName
		, Data.color AS Color,Data.StyleName as StyleName
	FROM tbl_monthTop10 AS Data INNER JOIN tbl_restaurant AS Rest
		ON Data.restID=Rest.id
	WHERE Rest.state=1 AND Rest.isDelete=0
	ORDER BY Data.id
END





GO
/****** :  StoredProcedure [dbo].[sp_Rest_NewTop_getList]    ű: 02/01/2010 14:33:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Venson>
-- Create date: <2007-7-18>
-- Description:	<ȡ½(Ƽ)͹>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Rest_NewTop_getList]
AS
BEGIN
	SET NOCOUNT ON;

    SELECT TOP 10
		Data.id AS SortId,
		Data.addTime AS AddTime,
		Data.addUserID AS AddUserId,
		Data.color AS Color,
		Data.StyleName as StyleName,
		Rest.id AS RestId,
		Rest.[name] AS RestName,
		Rest.logoPhotoID AS RestLogoPhotoId
	FROM tbl_newRest AS Data
		INNER JOIN tbl_restaurant AS Rest ON Rest.id=Data.restID
	WHERE Rest.state=1 AND Rest.isDelete=0
	ORDER BY Data.id
END





GO
/****** :  StoredProcedure [dbo].[sp_rest_SetMenuType]    ű: 02/01/2010 14:33:30 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_rest_SetMenuType]
@restID int=0,
@userID bigint=0,
@menuType int=0
 AS
if @userID>0
	update tbl_restaurant set menuType=@menuType where id=@restID 
		and ( 
				userID=@userID or id in (select restID from tbl_restUser where  userID=@userID)
			)
else
	update tbl_restaurant set menuType=@menuType where id=@restID 
select 1

GO
/****** :  StoredProcedure [dbo].[sp_rest_setRelation]    ű: 02/01/2010 14:33:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE procedure [dbo].[sp_rest_setRelation]
@mainRestID bigint=0,
@subRestID bigint=0
as
begin
	if @mainRestID=@subRestID begin
		select -2
	end else if @mainRestID>0 and @subRestID>0 begin		
		if not exists(select * from tbl_restChainRelation where restID=@subRestID and restID!=mainRestID)
			and not exists (select * from tbl_restChainRelation where mainRestID=@subRestID)
			and not exists (select * from tbl_restChainRelation where restID=@mainRestID and restID!=mainRestID) begin
			insert into tbl_restChainRelation (mainRestID,restID) values(@mainRestID,@subRestID)
			--mainRestID=restID ļ¼Ϊ,Ĭ
			if not exists(select * from tbl_restChainRelation where mainRestID=@mainRestID and restID=@mainRestID)
				insert into tbl_restChainRelation(mainRestID,restID) values(@mainRestID,@mainRestID)
			select 1
		end else 
			select 0
	end else 
		select -1

end





GO
/****** :  StoredProcedure [dbo].[sp_rest_updateClickAmount]    ű: 02/01/2010 14:33:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



create PROCEDURE [dbo].[sp_rest_updateClickAmount]
@restId int=0
AS
	update tbl_restaurant set clickAmount=clickAmount+1 where  id=@restId



GO
/****** :  StoredProcedure [dbo].[sp_restArea_add]    ű: 02/01/2010 14:33:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_restArea_add]
@ID int,
@str varchar(8000)
AS
declare @substr  varchar(8000),@m  int,@n  int  
declare @splitStr char
set @splitStr='|'
set  @m=CHARINDEX(@splitStr,@str)  
set  @n=1
delete from tbl_shop2Area where restID=@ID
WHILE  @m>0  
BEGIN  
      set  @substr=substring(@str,@n,@m-@n)  
	--select @substr,@ID,left(@substr,5),right(@substr,5)
   if(select count(*) from tbl_shop2Area where restID=@ID and areaID=@substr)=0
   	 insert into tbl_shop2Area(restID,areaID)values(@ID,@substr) 
      set  @n=@m+1  
      set  @m=CHARINDEX(@splitStr,@str,@n)  
END


GO
/****** :  StoredProcedure [dbo].[sp_restBulletin_add]    ű: 02/01/2010 14:33:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







CREATE PROCEDURE [dbo].[sp_restBulletin_add]
@ID int,
@restID int,
@title varchar(50),
@classID int=0,
@toUrl varchar(100)='',
@content text,
@postTime datetime,
@startTime dateTime,
@endTime dateTime,
@userID bigint=0,
@result int =0 output
 AS

declare @state1 int,@isDelete1 int,@postTime1 dateTime
if @id>0 begin
	update tbl_restBulletin set restID=@restID,title=@title,classID=@classID,toUrl=@toUrl,content=@content,postTime=getDate(),startTime=@startTime,endTime=@endTime,userid=@userID where id=@id
	select @state1=state,@isDelete1=isDelete,@restId = restid from tbl_restBulletin where id=@id
	if @classID=1 or @classID=2 or @classID=3
	begin
		if @state1=2 and @isDelete1=0 begin --δͨĲδϵĹı״̬Ϊ0,ύʱΪǰʱ
			update tbl_rest_manager set newNotice=newNotice + 1 where restid = @restid	
			update tbl_restBulletin set state=0,postTime=getDate() where id=@id
		end
	end
	set @result=1
end else begin
	--update tbl_rest_manager set newNotice=newNotice + 1 where restid = @restid
	if @classID=1 or @classID=2 or @classID=3
	begin
		if(@endTime >=Convert(varchar(10),getDate(),120))
		begin
			update tbl_rest_manager set noticing=noticing + 1 where restid = @restid
		end
		else begin
			update tbl_rest_manager set oldNotice = oldNotice +1 where restid = @restId
		end
	end
	insert into tbl_restBulletin(restID,title,classID,toUrl,content,startTime,endTime,userid) values(@restID,@title,@classID,@toUrl,@content,@startTime,@endTime,@userID)
	set @result=2
end
select @result






GO
/****** :  StoredProcedure [dbo].[sp_restBulletin_delete]    ű: 02/01/2010 14:33:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE PROCEDURE [dbo].[sp_restBulletin_delete]
@ID int=0,
@userID bigint=0,
@isAdmin int=0
 AS
declare @isDelete int
declare @isRead int
declare @state int
declare @restid int
declare @startDate datetime
declare @endDate datetime
declare @classID int
select @classID=classID, @isDelete = isDelete ,@isRead = isRead,@state = state,@restid = restid ,@startDate=startTime,@endDate = endTime from tbl_restBulletin
where id=@id
if @classID=1 or @classID=2 or @classID=3
begin
	if @isDelete = 0 and @State = 0
	begin
	--select * from tbl_restBulletin
	update tbl_rest_manager set newNotice = newNotice -1 where restid = @restid
	end
	else if @isDelete =0 and @state =1
	begin
		if @endDate >=Convert(varchar(10),getDate(),120) 
		begin
			update tbl_rest_manager set noticing= noticing-1 where restid=@restid
		end
		else
		begin
			update tbl_rest_manager set oldNotice= oldNotice-1 where restid=@restid
		end
	end
END		
if @isAdmin>0 
	update tbl_restBulletin set isDelete=1 where id=@ID
	and tbl_restBulletin.restID in (select restID from tbl_restaurant where tbl_restaurant.userid=@userid  or tbl_restaurant.id in (select restID from tbl_restUser where userID=@userID))
else if @ID>0
	update tbl_restBulletin set isDelete=1 where id=@ID

select 1




GO
/****** :  StoredProcedure [dbo].[sp_restBulletin_get]    ű: 02/01/2010 14:33:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE PROCEDURE [dbo].[sp_restBulletin_get]
@ID int=0,
@restID int=0,
@userID bigint=0,
@classID int=0,
@startDate varchar(20)='',
@endDate varchar(20)='',
@state int=-100,
@isRead int=-100,
@isOverdue int=-1,
@isDelete int=-100,
@ZoneID int=0,--ҳƼƬ
@areaID int=0,
@restState int=-1, --͹״̬
@ClassIDsIn varchar(20)=''
 AS

declare @sql1 varchar(8000),@sql2 varchar(8000),@where varchar(8000),@orderStr varchar(8000)
set @where = ''
set @orderStr = ''
set @sql1 = '
select * from (
			select a.*,d.trueName as adminName,c.name as className,b.name as restName ,e.state as shopstate,u.nickname as userName
			,(case a.state when 0 then '''' when 1 then '''' when 2 then ''δͨ'' end) as stateName
			,(case a.isDelete when 0 then '''' when 1 then '''' end) as isDeleteName
		    ,(case a.isRead when 0 then ''δ'' when 1 then '''' end) as isReadName
			,(
				case 
				when dateDiff(d,a.endTime,Convert(varchar,getDate(),102))>0 then 1
				else 0
				end
			 ) as isOverdue
	from tbl_restBulletin a 
		left join tbl_restaurant b on b.id=a.restID
		left join tbl_restBulletinClass c on c.id=a.classID
		left join tbl_systemUser d on a.adminID = d.id 
        left join  tbl_ShopBusinessState as e on e.shopid=a.restid
        left join tbl_user as u on a.userid=u.id
 	where b.isDelete=0 '--
if @id>0 
	set @where = @where + ' and a.id=' + cast(@id as varchar(8000))
if @restID>0
	set @where = @where + ' and a.restID=' + cast(@restID as varchar(8000))
if @userID>0
	set @where = @where + ' and ( b.userid=' + cast(@userid as varchar(8000)) + '  or b.id in (select restID from tbl_restUser where userID=' + cast(@userid as varchar(8000)) + '))'
if 	@startDate<>'' and @endDate<>''
	set @where = @where + ' and a.startTime between convert(dateTime,' + @startDate + ') and convert(dateTime,' + @endDate + ')'
						+ ' and a.endTime between convert(dateTime,' + @startDate + ') and convert(dateTime,' + @endDate + ')'
if @classID>0
	set @where = @where + ' and a.classID=' + cast(@classID as varchar(8000))

if @state>-100
	set @where = @where + ' and a.state=' + cast(@state as varchar(8000))

if @isRead>-100
	set @where = @where + ' and a.isRead=' + cast(@isRead as varchar(8000))

if @isOverdue=1--ѹ
	set @where = @where + ' and dateDiff(d,a.endTime,Convert(varchar,getDate(),102))>0'
if @isOverdue=0--δ
	set @where = @where + ' and dateDiff(d,a.endTime,Convert(varchar,getDate(),102))<=0'	

if @isDelete>-100 begin
	set @where = @where + ' and a.isDelete=' + cast(@isDelete as varchar(8000))
	if @isDelete=0
		set @orderStr = ') as T order by isOverdue asc,position desc,endTime desc, postTime desc '
	else
		set @orderStr = ') as T order by state desc, isRead asc,postTime desc '
end 

if @ZoneID>0
	set @where = @where + ' and a.restID in 
	(		
		select sa.restID from tbl_shop2Area sa 
		inner join tbl_area a on a.id=sa.areaID
		inner join tbl_zone z on z.id=a.zoneID
		where z.id=' + cast(@ZoneID as varchar(8000)) + '
	)'
if @areaID>0
	set @where = @where + ' and a.restID in 
	(
		select restID from tbl_shop2Area where areaID=' + cast(@areaID as varchar(8000)) + '
	)
	'
if @ClassIDsIn<>''
begin
	set @where=@where+' and c.id in('+@ClassIDsIn+')'
end
if @restState>-1
	set @where = @where + ' and b.state=1 '
if @orderStr='' 
	set @sql1 = @sql1 + @where + ') as T order by isOverdue asc,position desc,endTime desc, postTime desc ' + ' select @@RowCount '
else
	set @sql1 = @sql1 + @where + @orderStr + ' select @@RowCount '
--select @sql1
exec(@sql1)

















GO
/****** :  StoredProcedure [dbo].[sp_restBulletin_get1]    ű: 02/01/2010 14:33:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









CREATE PROCEDURE [dbo].[sp_restBulletin_get1]
--@ID int=0,
--@restID int=0,
--@userID bigint=0,
--@classID int=0,
--@startDate varchar(20)='',
--@endDate varchar(20)='',
--@state int=-100,
--@isRead int=-100,
--@isOverdue int=-1,
--@isDelete int=-100,
@ZoneID int=0,--ҳƼƬ
@areaID int=0,
@restState int=-1 --͹״̬
 AS

declare @sql varchar(8000), @sql1 varchar(8000),@sql2 varchar(8000),@sql3 varchar(8000) ,@where varchar(8000),@orderStr varchar(8000)
set @where = ''
set @orderStr = ''
set @sql = 'select a.*,d.trueName as adminName,c.name as className,b.name as restName 
			,(case a.state when 0 then '''' when 1 then '''' when 2 then ''δͨ'' end) as stateName
			,(case a.isDelete when 0 then '''' when 1 then '''' end) as isDeleteName
		    ,(case a.isRead when 0 then ''δ'' when 1 then '''' end) as isReadName
			,(
				case 
				when dateDiff(d,a.endTime,Convert(varchar,getDate(),102))>0 then 1
				else 0
				end
			 ) as isOverdue
	from tbl_restBulletin a 
		left join tbl_restaurant b on b.id=a.restID
		left join tbl_restBulletinClass c on c.id=a.classID
		left join tbl_systemUser d on a.adminID = d.id 
 	where b.isDelete=0 '--and b.state=1 
--if @id>0 
--	set @where = @where + ' and a.id=' + cast(@id as varchar(8000))
--if @restID>0
--	set @where = @where + ' and a.restID=' + cast(@restID as varchar(8000))
--if @userID>0
--	set @where = @where + ' and ( b.userid=' + cast(@userid as varchar(8000)) + '  or b.id in (select restID from tbl_restUser where userID=' + cast(@userid as varchar(8000)) + '))'
--if 	@startDate<>'' and @endDate<>''
--	set @where = @where + ' and a.startTime between convert(dateTime,' + @startDate + ') and convert(dateTime,' + @endDate + ')'
--						+ ' and a.endTime between convert(dateTime,' + @startDate + ') and convert(dateTime,' + @endDate + ')'
--if @classID>0
--	set @where = @where + ' and a.classID=' + cast(@classID as varchar(8000))
--
--if @state>-100
--	set @where = @where + ' and a.state=' + cast(@state as varchar(8000))
--
--if @isRead>-100
--	set @where = @where + ' and a.isRead=' + cast(@isRead as varchar(8000))



if @ZoneID>0
	set @where = @where + ' and a.restID in 
	(		
		select sa.restID from tbl_shop2Area sa 
		inner join tbl_area a on a.id=sa.areaID
		inner join tbl_zone z on z.id=a.zoneID
		where z.id=' + cast(@ZoneID as varchar(8000)) + '
	)'
if @areaID>0
	set @where = @where + ' and a.restID in 
	(
		select restID from tbl_shop2Area where areaID=' + cast(@areaID as varchar(8000)) + '
	)
	'
--δ
set @sql1 = @sql + @where + ' and dateDiff(d,a.endTime,Convert(varchar,getDate(),102))<=0 and a.isDelete = 0'
set @sql1 = @sql1 + ' order by a.position desc,a.endTime desc, a.postTime desc'
--ѹ
set @sql2 = @sql + @where + ' and dateDiff(d,a.endTime,Convert(varchar,getDate(),102))>0 and a.isDelete = 0'
set @sql2 = @sql2 + ' order by a.position desc,a.endTime desc, a.postTime desc'
--if @isOverdue=1--ѹ
--	set @where = @where + ' and dateDiff(d,a.endTime,Convert(varchar,getDate(),102))>0'
--if @isOverdue=0
--	set @where = @where + ' and dateDiff(d,a.endTime,Convert(varchar,getDate(),102))<=0'	
set @sql3 = @sql + @where + ' and a.isDelete = 1 order by a.state desc, a.isRead asc,a.postTime desc '
--if @isDelete>-100 begin
--	set @where = @where + ' and a.isDelete=' + cast(@isDelete as varchar(8000))
--	if @isDelete=0
--		set @orderStr = ' order by a.position desc,a.endTime desc, a.postTime desc '
--	else
--		set @orderStr = ' order by a.state desc, a.isRead asc,a.postTime desc '
--end 
--if @orderStr='' 
--	set @sql1 = @sql1 + @where + ' order by a.position desc,a.endTime desc, a.postTime desc ' + ' select @@RowCount '
--else
--	set @sql1 = @sql1 + @where + @orderStr + ' select @@RowCount '

declare @strSql varchar(8000)
set @strSql = @sql1 +' union '+ @sql2 +' union '+ @sql3 +' select @@rowCount'
select @strSql
--exec (@strSql)














GO
/****** :  StoredProcedure [dbo].[sp_restBulletin_getRestCommend]    ű: 02/01/2010 14:33:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







CREATE PROCEDURE [dbo].[sp_restBulletin_getRestCommend]	
	@ParentZoneID int=0,
	@SubZoneID int=0,
	@limit int=10	
 AS
DECLARE @sql VARCHAR(8000)
set   @sql='select * from ( select top '+cast(@limit   as   varchar)+' b.id,b.title,b.restID,b.postTime,b.isDelete,b.startTime,b.endTime,b.state,b.position
		,c.[name] as className,r.[name] as restName 
		,(case b.state when 0 then '''' when 1 then '''' when 2 then ''δͨ'' end) as stateName
		,(case b.isDelete when 0 then '''' when 1 then '''' end) as isDeleteName
		,(case b.isRead when 0 then ''δ'' when 1 then '''' end) as isReadName
		/*,(
			case 
			when dateDiff(d,b.endTime,Convert(varchar,getDate(),102))>0 then 1
			else 0
			end
		 ) as isOverdue*/
		,0 as isOverdue
	from tbl_restBulletin b 
		left join tbl_restBulletinClass c on c.id=b.classID
		left join tbl_restaurant r on r.id=b.restID
	where dateDiff(d,b.endTime,Convert(varchar,getDate(),102))<=0
	and b.isDelete=0 and b.state=1 and b.classID=2 and b.restID  in 
	(		
		select sa.restID from tbl_shop2Area sa 
		inner join tbl_area a on a.id=sa.areaID
		inner join tbl_zone z on z.id=a.zoneID
		where z.id=@ParentZoneID
	)
) as t
order by isOverdue asc, position desc,endTime desc, postTime desc'  
		 
  EXEC (@sql)   






GO
/****** :  StoredProcedure [dbo].[sp_restBulletin_update]    ű: 02/01/2010 14:33:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








CREATE PROCEDURE [dbo].[sp_restBulletin_update]
@ID int = 0,
@restID int = 0,
@title varchar(50),
@classID int=0,
@toUrl varchar(100)='',
@content text = '',
@startTime varchar(8000) = '',
@endTime varchar(8000) = '',
@isRead int = 0 ,--0δĶ1Ķ
@state int = 0 ,--0ˣ1У2˲ͨ-1
@adminID int = 0,
@reply varchar(8000) = 0,
@position int = 0,
@result int =0 output
 AS
declare @isDelete int
set @isDelete = 0
declare @state0 int
declare @isDelete0 int
select @state0= state,@isDelete0=isDelete from tbl_restBulletin where id = @id
if @state = -1 begin ---1Ϊϣ״̬Ͳı䣬ΪǾ͸ı״̬ΪĲֵ
set @isDelete = 1 
select @state = state from tbl_restBulletin where id = @id
end
	update tbl_restBulletin set restID=@restID,title=@title,classID=@classID,
toUrl=@toUrl,content=@content,startTime=@startTime,endTime=@endTime ,isRead = @isRead,
state= @state,isDelete = @isDelete ,adminID = @adminID,reply = @reply,position = @position where id=@id	
if @@error <> 0
begin
set @result = -1
select @result
return @result
end
--ҳ޸Ŀʼ
if @isDelete0 <>0 --ΪϹ,ҳκ޸
begin
	if @@error = 0
	begin
	set @result = 1
	end
	select @result 
	return @result
end
if @state0=0 begin --δ״̬תΪѾ
	if @isDelete = 0 begin
		if @startTime <=convert(varchar(10),getdate(),120) and @endtime >=convert(varchar(10),getdate(),120) and @state=1
		begin
		update tbl_rest_manager set newNotice = newNotice-1 ,noticing=noticing+1 where restid=@restId
		end
		else if @endtime <convert(varchar(10),getdate(),120) and @state=1
		begin
		update tbl_rest_manager set newNotice= newNotice -1,oldNotice = oldNotice +1 where restid= @restid 
		end
		else begin --δͨ
			update tbl_rest_manager set newNotice = newNotice-1 where restid = @restid
		end
	end
	else --δ״ֱ̬
	begin
		update tbl_rest_manager set newNotice = newNotice-1 where restid = @restid
	end
end
else begin
	if @state0=1 and @isdelete = 0 --ͨ ڹ֮ת
	begin
		if @endtime >=convert(varchar(10),getdate(),120)
		begin
			update tbl_rest_manager set noticing = noticing + 1,oldNotice = oldNotice -1 where restid = @restid
		end
		else
		begin
			update tbl_rest_manager set oldNotice = oldNotice + 1,noticing = noticing - 1 where restid = @restid
		end
	end
	if @isDelete =1 and @state0=1 --ͨ 
	begin
		if @endtime >=convert(varchar(10),getdate(),120)
		begin
			update tbl_rest_manager set noticing = noticing - 1 where restid = @restid
		end
		else
		begin
			update tbl_rest_manager set oldNotice = oldNotice -1 where restid = @restid
		end
	end
end
--ҳ޸Ľ

if @@error = 0
begin
set @result = 1
end
select @result









GO
/****** :  StoredProcedure [dbo].[sp_restBulletin_updateState]    ű: 02/01/2010 14:33:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_restBulletin_updateState]
	@ID int=0,
	@state int=0
AS
declare @restid int
declare @state0 int
declare @startTime varchar(120)
declare @endTime varchar(120)
declare @isDelete int
select @restid = restId ,@state0=state,@startTime = startTime,@endTime = endTime,@isdelete= isdelete from tbl_restBulletin where id= @id
update tbl_restBulletin set state=@state where id=@id

select 1



GO
/****** :  StoredProcedure [dbo].[sp_RestBulletinAdd]    ű: 02/01/2010 14:33:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
Create PROCEDURE [dbo].[sp_RestBulletinAdd]
@restID int, 
@title varchar(50), 
@toUrl varchar(100), 
@content text,
@postTime datetime,
@result int=0 output
AS
begin
INSERT INTO tbl_restBulletin(restID,title,toUrl,content,postTime)  
values(@restID,@title,@toUrl,@content,@postTime)
set @result=1
end
select @result


GO
/****** :  StoredProcedure [dbo].[sp_restBulletinClass_add]    ű: 02/01/2010 14:33:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


create PROCEDURE [dbo].[sp_restBulletinClass_add]
@ID int=0,
@name varchar(200)=''
 AS

if @id>0
	update tbl_restBulletinClass set [name]=@name where id=@id
else
	insert into tbl_restBulletinClass([name]) values(@name)


GO
/****** :  StoredProcedure [dbo].[sp_restBulletinClass_delete]    ű: 02/01/2010 14:33:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


create PROCEDURE [dbo].[sp_restBulletinClass_delete]
@ID int=0,
@isDelete int=0
 AS

if @id>0
	update tbl_restBulletinClass set isDelete=@isDelete where id=@id
select 1


GO
/****** :  StoredProcedure [dbo].[sp_restBulletinClass_get]    ű: 02/01/2010 14:33:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE PROCEDURE [dbo].[sp_restBulletinClass_get]
@id int=0,
@ClassIDsIn varchar(8000)=''
AS
declare @sql varchar(8000)
declare @str varchar(8000)
set @str=''
set @sql=''
if @ClassIDsIn<>''
	set @str='and id in('+@ClassIDsIn+')'
if @id>0
	set @sql='select * from  tbl_restBulletinClass where id=@id and isDelete=0'
else
	set @sql='select * from  tbl_restBulletinClass where isDelete=0 '+@str+' order by position'

exec (@sql)



GO
/****** :  StoredProcedure [dbo].[sp_RestBulletinDelete]    ű: 02/01/2010 14:33:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_RestBulletinDelete]
@id int,
@result int=0 output
AS
begin
update tbl_restBulletin set isDelete=-1 where id=@id
set @result=1
end
select @result

GO
/****** :  StoredProcedure [dbo].[sp_RestBulletinSelect]    ű: 02/01/2010 14:33:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_RestBulletinSelect]
@id int=0
AS
if @id=0
begin
select a.id,b.id,b.name,a.title,a.toUrl,a.content,a.postTime
from tbl_restBulletin a left join tbl_restaurant b on a.restID=b.id
where a.isDelete=0
 order by a.id desc
end
else
begin
select a.id,b.id,b.name,a.title,a.toUrl,a.content,a.postTime
from tbl_restBulletin a left join tbl_restaurant b on a.restID=b.id
where a.id=@id and a.isDelete=0
 order by a.id desc
end



GO
/****** :  StoredProcedure [dbo].[sp_RestBulletinUpdate]    ű: 02/01/2010 14:33:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_RestBulletinUpdate]
@id int,
@title varchar(50), 
@content text,
@postTime datetime,
@result int=0 output
AS
begin
update tbl_restBulletin set title=@title,content=@content,postTime=@postTime
where id=@id
set @result=1
end
select @result

GO
/****** :  StoredProcedure [dbo].[sp_restChainRelation_getAmount]    ű: 02/01/2010 14:33:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [dbo].[sp_restChainRelation_getAmount]
@mainRestID bigint=0,
@restID bigint=0
As
if @mainRestID>0
	select count(*) as amount from tbl_restChainRelation where mainRestID=@mainRestID
else if @restID>0
	select count(*) as amount from tbl_restChainRelation where restID=@restID
	

GO
/****** :  StoredProcedure [dbo].[sp_restChainRelation_getList]    ű: 02/01/2010 14:33:56 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Venson>
-- Create date: <2007-8-8>
-- Description:	<ȡ͹б>
-- =============================================
CREATE PROCEDURE [dbo].[sp_restChainRelation_getList]
	@RestId BIGINT = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    DECLARE @Count INT
	DECLARE @MainRestId INT

	SELECT @Count=COUNT(mainRestID) FROM tbl_restChainRelation
	WHERE mainRestID=@RestId

	IF @Count > 0 BEGIN--
		SELECT * FROM tbl_restChainRelation WHERE mainRestID=@RestId
	END ELSE BEGIN--
		SELECT TOP 1 @MainRestId=mainRestID FROM tbl_restChainRelation WHERE restID=@RestId
		IF @MainRestId IS NULL BEGIN--ûм¼
			SELECT NULL
		END ELSE BEGIN--м¼
			SELECT Data.mainRestID AS MainRestId,
				Data.restID AS RestId,
				(SELECT Name FROM tbl_restaurant WHERE id=Data.mainRestID) AS MainRestName,
				(SELECT Name FROM tbl_restaurant WHERE id=Data.restID) RestName
			FROM tbl_restChainRelation AS Data
			WHERE mainRestID=@MainRestId
		END
	END
END


GO

/****** :  StoredProcedure [dbo].[sp_restClass_get]    ű: 02/01/2010 14:33:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_restClass_get]
@id int=0
AS
if @id>0 
	select * from tbl_restClass where id=@id
else
	select * from tbl_restClass order by name desc


GO
/****** :  StoredProcedure [dbo].[sp_RestClassAdd]    ű: 02/01/2010 14:33:59 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_RestClassAdd]
@name varchar(20)='',
@note varchar(50)='',
@result int=0 output
AS
if (select count(*) from tbl_restClass where name=@name)>0
begin
set @result=2
end
else
begin
insert into tbl_restClass(name,note) values(@name,@note)
set @result=1
end
select @result


GO
/****** :  StoredProcedure [dbo].[sp_RestClassDelete]    ű: 02/01/2010 14:34:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_RestClassDelete]
@id int,
@result int=0 output
AS
begin
delete from tbl_restClass where id=@id
set @result=1
end
select @result

GO
/****** :  StoredProcedure [dbo].[sp_RestClassSelect]    ű: 02/01/2010 14:34:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_RestClassSelect]
@id int=0
AS
if @id=0
begin
select * from tbl_restClass
end
else
begin
select * from tbl_restClass where id=@id
end

GO
/****** :  StoredProcedure [dbo].[sp_RestClassUpdate]    ű: 02/01/2010 14:34:02 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_RestClassUpdate]
@id int,
@name varchar(20)='',
@note varchar(50)='',
@result int=0 output
AS
if (select count(*) from tbl_restClass where id<>@id and name=@name)>0
begin
set @result=2
end
else
begin
update tbl_restClass set name=@name,note=@note where id=@id
set @result=1
end
select @result

GO
/****** :  StoredProcedure [dbo].[sp_RestCommendDelete]    ű: 02/01/2010 14:34:03 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_RestCommendDelete]
	@RestId BIGINT = 0,
	@ZoneId INT = 0
AS
BEGIN
	DELETE FROM tbl_RestCommend WHERE restID=@RestId AND zoneID=@ZoneId
	IF @@ROWCOUNT > 0
		SELECT 1
	ELSE
		SELECT 0
END



GO
/****** :  StoredProcedure [dbo].[sp_RestCommendSelect]    ű: 02/01/2010 14:34:04 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_RestCommendSelect]
@restID int=0
AS
if @restID=0
begin
select a.id,a.restID,b.name from tbl_RestCommend a 
left join tbl_restaurant b on a.restID=b.id 
where b.isDelete<>1 and b.state<>0
order by a.id
end 
else 
begin
select a.id,a.restID,b.name from tbl_RestCommend a 
left join tbl_restaurant b on a.restID=b.id 
where a.restID=@restID  and b.isDelete<>1 and b.state<>0
order by a.id
end






GO
/****** :  StoredProcedure [dbo].[sp_RestCommendUpdate]    ű: 02/01/2010 14:34:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

create PROCEDURE [dbo].[sp_RestCommendUpdate]
@restID int,
@sign int=0,
@result int=0 output
AS
declare @id int
select @id=id from tbl_RestCommend where restID=@restID
if @sign<>1 and @sign<>2 
begin
set @result=0
end
if @sign=1 --
begin
--жϱǷѾһǣ
if (select min(id) from tbl_RestCommend)=@id
set @result=1
else
--ǰһλǰһλ
begin
update tbl_RestCommend set id=id+1 where id=@id-1
update tbl_RestCommend set id=id-1 where restID=@restID
set @result=1
end
end 
if @sign=2 --
begin
--жϱ͵ǷѾǣ
if (select max(id) from tbl_RestCommend)=@id
set @result=1
else
begin
--͵һλǰһλ
update tbl_RestCommend set id=id-1 where id=@id+1
update tbl_RestCommend set id=id+1 where restID=@restID
set @result=1
end 
end 
select @result 

GO
/****** :  StoredProcedure [dbo].[sp_RestCommentBasisDateStatis]    ű: 02/01/2010 14:34:06 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


 CREATE PROCEDURE [dbo].[sp_RestCommentBasisDateStatis]
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1',
@resttype int=0
AS
begin
if @resttype=1 begin 

select a.shopID restid,b.name restname,
CommentsCount=count(*)
from tbl_ShopComments a 
left  join tbl_restaurant b on a.shopID=b.id
where a.posttime >= @StartDate and a.posttime < @EndDate
GROUP BY a.shopID,b.name  order by  CommentsCount desc  

end  if @resttype=0 begin

select a.shopID restid,b.name restname,
CommentsCount=count(*)
from tbl_ShopComments a 
left  join tbl_restaurant b on a.shopID=b.id
where a.posttime >= @StartDate and a.posttime < @EndDate
and b.SClassID<>3
GROUP BY a.shopID,b.name order by  CommentsCount desc 

end if @resttype=3 begin
select a.shopID restid,b.name restname,
CommentsCount=count(*)
from tbl_ShopComments a 
left  join tbl_restaurant b on a.shopID=b.id
where a.posttime >= @StartDate and a.posttime < @EndDate
and b.SClassID=3
GROUP BY a.shopID,b.name order by  CommentsCount desc 
end

END









GO
/****** :  StoredProcedure [dbo].[sp_RestCommentBasisDateStatisInfo]    ű: 02/01/2010 14:34:07 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_RestCommentBasisDateStatisInfo]
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1',
@resttype int=0,
@restid int 
AS
begin
if @resttype=1 begin 
select  a.id CommentsId,b.name restname ,c.nickname userName,
a.postTime CommentsDate,a.content CommentsContent
from tbl_ShopComments a 
left  join tbl_restaurant b on a.shopID=b.id
left  join tbl_user c on a.userID=c.id
where a.posttime between @StartDate and @EndDate and b.id=@restid
 

end  if @resttype=0 begin

select  a.id CommentsId,b.name restname ,c.nickname userName,
a.postTime CommentsDate,a.content CommentsContent
from tbl_ShopComments a 
left  join tbl_restaurant b on a.shopID=b.id
left  join tbl_user c on a.userID=c.id
where a.posttime between @StartDate and @EndDate and b.id=@restid 
and b.SClassID<>3
 

end if @resttype=3 begin
select  a.id CommentsId,b.name restname ,c.nickname userName,
a.postTime CommentsDate,a.content CommentsContent
from tbl_ShopComments a 
left  join tbl_restaurant b on a.shopID=b.id
left  join tbl_user c on a.userID=c.id
where a.posttime between @StartDate and @EndDate and b.id=@restid 
and b.SClassID=3

end

END










GO
/****** :  StoredProcedure [dbo].[sp_RestCountGeograpDistrStatis]    ű: 02/01/2010 14:34:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_RestCountGeograpDistrStatis]
@ProvinceID int=0,
@CityID int=0,
@RegionID int=0,
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1',
@resttype int,
@GeograpSign int
AS
begin
DECLARE @Sql nvarchar(4000)
DECLARE @c float
DECLARE @Where varchar(8000)
DECLARE @ProvinceIdStr varchar(8000)
DECLARE @CityIdStr varchar(8000)
DECLARE @RegionIdStr varchar(8000)
SET @ProvinceIdStr = CAST(@ProvinceID AS varchar(8000))
SET @CityIdStr = CAST(@CityID AS varchar(8000))
SET @RegionIdStr = CAST(@RegionID AS varchar(8000))
SET @Where = ''
IF @ProvinceID > 0 OR @CityID > 0 OR @RegionID > 0
BEGIN
IF @ProvinceId > 0 SET @Where = @Where + ' AND a.ProvinceId=' + @ProvinceIdStr + ' AND '
IF @CityId > 0 SET @Where = @Where + ' a.CityId=' + @CityIdStr + ' AND '
IF @RegionId > 0 SET @Where = @Where + ' a.RegionId=' + @RegionIdStr + ' AND '
SET @Where = SUBSTRING(@Where, 1, LEN(@Where)-4)
END

set @sql='  select @TotalRestCount=count(*)
from  tbl_restaurant  a  '
if @GeograpSign=3 begin 
set @sql=@sql + '  left join tbl_region  b  on a.regionID=b.id  '
end if @GeograpSign=2 begin 
set @sql=@sql + '  left join tbl_city  b  on a.cityID=b.id   '
end if @GeograpSign=1 begin 
set @sql=@sql + '  left join tbl_province b  on a.ProvinceID=b.id  '
end

if @resttype<>4 begin
if @resttype=3 begin
set @sql=@sql + ' where  a.SClassID=3 '  
end else begin
set @sql=@sql + ' where  a.SClassID<>3' 
end 
end

if @resttype<>4 begin
set @sql=@sql + ' ' +  @Where
end else begin
set @sql=@sql + ' where 1=1  '  +  @Where
end

set @sql=@sql + '  and a.addTime >= ''' + CAST(@StartDate as varchar(20)) + 
'''   and  a.addTime <  ''' + CAST(@EndDate as varchar(20)) +  ''''

EXEC sp_executesql @Sql, N'@TotalRestCount float OUTPUT', @TotalRestCount=@c OUTPUT

set @sql=''
set @sql=@sql + '  select b.id id,
b.name name,
count(*) RestCount,
TotalRestCount=' + str(@c,10,2) + 
' from  tbl_restaurant a  '
if @GeograpSign=3 begin 
set @sql=@sql + '  left join tbl_zone  b  on a.zoneID=b.id  '
end if @GeograpSign=2 begin 
set @sql=@sql + '  left join tbl_region  b  on a.regionID=b.id  '
end if @GeograpSign=1 begin 
set @sql=@sql + '  left join tbl_city  b  on a.cityID=b.id  '
end
set @sql=@sql + '  where a.addTime >= ''' + CAST(@StartDate as varchar(20)) + 
'''   and  a.addTime <  ''' + CAST(@EndDate as varchar(20)) +  '''  ' +  @Where

if @resttype<>4 begin
if @resttype=3 begin
set @sql=@sql + ' and a.SClassID=3 '  
end else begin
set @sql=@sql + ' and a.SClassID<>3' 
end 
end

set @sql=@sql + '  group  by b.id,b.name  order by  RestCount desc '

EXEC(@Sql)
end











GO
/****** :  StoredProcedure [dbo].[sp_RestCountGeograpDistrStatisInfo]    ű: 02/01/2010 14:34:10 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_RestCountGeograpDistrStatisInfo]
@ProvinceID int=0,
@CityID int=0,
@RegionID int=0,
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1',
@resttype int,
@GeograpId int, 
@GeograpSign int
AS
begin
DECLARE @Sql nvarchar(4000)
DECLARE @Where varchar(8000)
DECLARE @ProvinceIdStr varchar(8000)
DECLARE @CityIdStr varchar(8000)
DECLARE @RegionIdStr varchar(8000)
SET @ProvinceIdStr = CAST(@ProvinceID AS varchar(8000))
SET @CityIdStr = CAST(@CityID AS varchar(8000))
SET @RegionIdStr = CAST(@RegionID AS varchar(8000))
SET @Where = ''
IF @ProvinceID > 0 OR @CityID > 0 OR @RegionID > 0
BEGIN
IF @ProvinceId > 0 SET @Where = @Where + ' AND a.ProvinceId=' + @ProvinceIdStr + ' AND '
IF @CityId > 0 SET @Where = @Where + ' a.CityId=' + @CityIdStr + ' AND '
IF @RegionId > 0 SET @Where = @Where + ' a.RegionId=' + @RegionIdStr + ' AND '
SET @Where = SUBSTRING(@Where, 1, LEN(@Where)-4)
END
set @sql='
select a.name restname,a.addtime addtime 
from tbl_restaurant a 
'
if @GeograpSign=3 begin 
set @sql=@sql + '  left join tbl_zone  b  on a.zoneID=b.id  '
end if @GeograpSign=2 begin 
set @sql=@sql + '  left join tbl_region  b  on a.regionID=b.id  '
end if @GeograpSign=1 begin 
set @sql=@sql + '  left join tbl_city  b  on a.cityID=b.id  '
end
set @sql=@sql + '  
where a.addTime >= ''' + CAST(@StartDate as varchar(20)) + 
'''   and  a.addTime <  ''' + CAST(@EndDate as varchar(20)) +  ''''

if @resttype<>4 begin
	if @resttype=3 begin
	set @sql=@sql + ' and a.SClassID=3 ' + space(5) +   @Where 
	end else begin
	set @sql=@sql + ' and a.SClassID<>3 ' + space(5) +   @Where 
	end
end else begin  
set @sql=@sql +  space(5) +  @Where 
end 

if @GeograpSign=3 begin
set @sql=@sql + '  and  a.zoneID=' + str(@GeograpId)
end if @GeograpSign=2 begin 
set @sql=@sql + '  and  a.regionID=' + str(@GeograpId)
end if @GeograpSign=1 begin 
set @sql=@sql + '  and  a.cityID=' + str(@GeograpId)
end
 
EXEC(@Sql)
end
 



















GO
/****** :  StoredProcedure [dbo].[sp_RestCountGrowthStatis]    ű: 02/01/2010 14:34:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_RestCountGrowthStatis]
@ProvinceID int=0,
@CityID int=0,
@RegionID int=0,
@ZoneID int=0,
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1',
@resttype int
AS
begin
DECLARE @Sql nvarchar(4000)
DECLARE @Where varchar(8000)
DECLARE @ProvinceIdStr varchar(8000)
DECLARE @CityIdStr varchar(8000)
DECLARE @RegionIdStr varchar(8000)
DECLARE @ZoneIdStr varchar(8000)
SET @ProvinceIdStr = CAST(@ProvinceID AS varchar(8000))
SET @CityIdStr = CAST(@CityID AS varchar(8000))
SET @RegionIdStr = CAST(@RegionID AS varchar(8000))
SET @ZoneIdStr = CAST(@ZoneID AS varchar(8000))
SET @Where = ''
IF @ProvinceID > 0 OR @CityID > 0 OR @RegionID > 0 OR @ZoneID > 0
BEGIN
IF @ProvinceId > 0 SET @Where = @Where + ' AND a.ProvinceId=' + @ProvinceIdStr + ' AND '
IF @CityId > 0 SET @Where = @Where + ' a.CityId=' + @CityIdStr + ' AND '
IF @RegionId > 0 SET @Where = @Where + ' a.RegionId=' + @RegionIdStr + ' AND '
IF @ZoneId > 0 SET @Where = @Where + ' a.ZoneId=' + @ZoneIdStr + ' AND '
SET @Where = SUBSTRING(@Where, 1, LEN(@Where)-4)
END
 
set @sql='
SELECT substring(CONVERT(varchar(100),a.addTime, 112),1,6) datestr,
RestCount=count(*)
from tbl_restaurant a 
'
if @resttype<>4 begin
		if @resttype=3 begin
		set @sql=@sql + '  
where a.addTime >= ''' + CAST(@StartDate as varchar(20)) + 
'''   and  a.addTime <  ''' + CAST(@EndDate as varchar(20)) +  '''' + 
' and a.SClassID=3 '+ space(5) +   @Where 
+ ' group by substring(CONVERT(varchar(100),a.addTime, 112),1,6) '
+ ' order by substring(CONVERT(varchar(100),a.addTime, 112),1,6) asc'
		end else begin
		set @sql=@sql + '  
where a.addTime >= ''' + CAST(@StartDate as varchar(20)) + 
'''   and  a.addTime <  ''' + CAST(@EndDate as varchar(20)) +  '''' + 
' and a.SClassID<>3 '+ space(5) +   @Where 
+ ' group by substring(CONVERT(varchar(100),a.addTime, 112),1,6) '
+ ' order by substring(CONVERT(varchar(100),a.addTime, 112),1,6) asc'
		end
end else begin
set @sql=@sql + '  
where a.addTime >= ''' + CAST(@StartDate as varchar(20)) + 
'''   and  a.addTime <  ''' + CAST(@EndDate as varchar(20)) +  '''  ' + @Where 
+ ' group by substring(CONVERT(varchar(100),a.addTime, 112),1,6) '
+ ' order by substring(CONVERT(varchar(100),a.addTime, 112),1,6) asc'
end

EXEC(@Sql)
end
 












GO
/****** :  StoredProcedure [dbo].[sp_RestCountGrowthStatisInfo]    ű: 02/01/2010 14:34:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_RestCountGrowthStatisInfo]
@ProvinceID int=0,
@CityID int=0,
@RegionID int=0,
@ZoneID int=0,
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1',
@resttype int
AS
begin
DECLARE @Sql nvarchar(4000)
DECLARE @Where varchar(8000)
DECLARE @ProvinceIdStr varchar(8000)
DECLARE @CityIdStr varchar(8000)
DECLARE @RegionIdStr varchar(8000)
DECLARE @ZoneIdStr varchar(8000)
SET @ProvinceIdStr = CAST(@ProvinceID AS varchar(8000))
SET @CityIdStr = CAST(@CityID AS varchar(8000))
SET @RegionIdStr = CAST(@RegionID AS varchar(8000))
SET @ZoneIdStr = CAST(@ZoneID AS varchar(8000))
SET @Where = ''
IF @ProvinceID > 0 OR @CityID > 0 OR @RegionID > 0 OR @ZoneID > 0
BEGIN
IF @ProvinceId > 0 SET @Where = @Where + ' AND a.ProvinceId=' + @ProvinceIdStr + ' AND '
IF @CityId > 0 SET @Where = @Where + ' a.CityId=' + @CityIdStr + ' AND '
IF @RegionId > 0 SET @Where = @Where + ' a.RegionId=' + @RegionIdStr + ' AND '
IF @ZoneId > 0 SET @Where = @Where + ' a.ZoneId=' + @ZoneIdStr + ' AND '
SET @Where = SUBSTRING(@Where, 1, LEN(@Where)-4)
END
 
set @sql='
SELECT a.name restname,
a.addtime addtime
from tbl_restaurant a 
'
set @sql=@sql + '  
where a.addTime >= ''' + CAST(@StartDate as varchar(20)) + 
'''   and  a.addTime <  ''' + CAST(@EndDate as varchar(20)) +  '''' 

if @resttype<>4 begin
	if @resttype=3 begin
	set @sql=@sql +  ' and a.SClassID=3 '+ space(5) + @Where 
	end else begin
	set @sql=@sql +  ' and a.SClassID<>3 ' + space(5) + @Where 
	end
end else begin
set @sql=@sql + space(5) + @Where 
end

EXEC(@Sql)
end
 












GO
/****** :  StoredProcedure [dbo].[sp_RestCountMonitorStatis]    ű: 02/01/2010 14:34:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_RestCountMonitorStatis]
AS
begin
	declare @Total bigint
	declare @lastRestC bigint
	declare @CurRestC bigint
	declare @lastWeekC bigint
	declare @YesRestC bigint
	declare @TodRestC bigint
		declare @lastMonth_Start DateTime
		declare @lastMonth_End DateTime
		declare @CurMonth_Start DateTime
		declare @CurMonth_End DateTime
		declare @lastWeek_Start DateTime
		declare @lastWeek_End DateTime
		declare @YesReg_Start DateTime
		declare @YesReg_End DateTime
		declare @TodReg_Start DateTime
		declare @TodReg_End DateTime
    --µĵһ   2007-08-01 00:00:00.000
    set @lastMonth_Start=DATEADD(mm, DATEDIFF(mm,0,dateadd(m,-1,getdate())), 0)
    --µһ 2007-08-31 23:59:59.997
    set @lastMonth_End=dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)) 
    --µĵһ   2007-09-01 00:00:00.000
    set @CurMonth_Start=DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
    --µһ 2007-09-30 23:59:59.997
    set @CurMonth_End=dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
    --һ 2007-09-10 00:00:00.000
    set @lastWeek_Start= dateadd(wk,-1,DATEADD(wk,DATEDIFF(wk,0,getdate()),0))
    --ս 2007-09-17 00:00:00.000
    set @lastWeek_End=  DATEADD(wk,DATEDIFF(wk,0,getdate()),0)
    -- 2007-09-17 00:00:00.000
    set @YesReg_Start= CONVERT(DateTime,CONVERT(varchar(100), dateadd(d,-1,getdate()), 23))
    -- 2007-09-18 00:00:00.000
    set @YesReg_End= CONVERT(DateTime,CONVERT(varchar(100),getdate(), 23))
    --տʼ 2007-09-18 00:00:00.000
    set @TodReg_Start= @YesReg_End
    --ս 2007-09-19 00:00:00.000
    set @TodReg_End= CONVERT(DateTime,CONVERT(varchar(100),dateadd(d,1,getdate()), 23)) 
    
	select @Total=count(*)  from tbl_restaurant
    select @lastRestC=count(*)   from tbl_restaurant
    where addtime between @lastMonth_Start and @lastMonth_End
    select @CurRestC=count(*)   from tbl_restaurant
    where addtime between @CurMonth_Start and @CurMonth_End
    select @lastWeekC=count(*)   from tbl_restaurant
    where addtime >= @lastWeek_Start and addtime < @lastWeek_End
    select @YesRestC=count(*)   from tbl_restaurant
    where addtime >= @YesReg_Start and addtime < @YesReg_End
    select @TodRestC=count(*)   from tbl_restaurant
    where addtime >= @TodReg_Start and addtime < @TodReg_End

	select  @Total Total,
	@lastRestC lastRestC,
	@CurRestC  CurRestC,
	@lastWeekC lastWeekC,
	@YesRestC  YesRestC,
	@TodRestC  TodRestC

end
 
 






















GO
/****** :  StoredProcedure [dbo].[sp_RestDeletedInfoSelect]    ű: 02/01/2010 14:34:17 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create PROCEDURE [dbo].[sp_RestDeletedInfoSelect]
@restid int=0
AS	
begin
   if @restid <0   begin
	  SELECT tbl_restaurant.*, tbl_area.name AS areaName, tbl_city.name AS cityName, 
      tbl_zone.name AS zoneName, tbl_province.name AS provinceName, 
      tbl_region.name AS regionName, tbl_user.Name AS userName, tbl_restIntro.mobile, 
      tbl_restIntro.fax, tbl_restIntro.email, tbl_restIntro.msnQQ, tbl_restIntro.expenditure, 
      tbl_restIntro.discount, tbl_restIntro.discountNote, tbl_restIntro.policy, 
      tbl_restIntro.deliverMoney, tbl_restIntro.deliverNote, tbl_restIntro.chainMsg, 
      tbl_restIntro.mapUrl, tbl_restIntro.URL, tbl_restIntro.PAmount, tbl_restIntro.BAmount, 
      tbl_restIntro.stallAmount, tbl_restIntro.traffic, tbl_restIntro.deliverArea,tbl_restIntro.settlement,tbl_restIntro.orderNote,tbl_restIntro.policy
	  ,tbl_restIntro.isPost,tbl_restIntro.content,tbl_restIntro.NPosition
	  ,tbl_restIntro.PostTime,tbl_restIntro.updateCyc,tbl_restIntro.senderAmount
      FROM tbl_restaurant LEFT OUTER JOIN
      tbl_restIntro ON tbl_restaurant.id = tbl_restIntro.restID LEFT OUTER JOIN
      tbl_user ON tbl_restaurant.userID = tbl_user.id LEFT OUTER JOIN
      tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
      tbl_region ON tbl_restaurant.regionID = tbl_region.id LEFT OUTER JOIN
      tbl_province ON tbl_restaurant.provinceID = tbl_province.id LEFT OUTER JOIN
      tbl_city ON tbl_restaurant.cityID = tbl_city.id LEFT OUTER JOIN
      tbl_area ON tbl_restaurant.areaID = tbl_area.id
	  where   tbl_restaurant.isDelete=1
	  order by tbl_restaurant.sclassID desc, tbl_restaurant.id desc 
   end  if @restid >0   begin
	  SELECT tbl_restaurant.*, tbl_area.name AS areaName, tbl_city.name AS cityName, 
      tbl_zone.name AS zoneName, tbl_province.name AS provinceName, 
      tbl_region.name AS regionName, tbl_user.Name AS userName, tbl_restIntro.mobile, 
      tbl_restIntro.fax, tbl_restIntro.email, tbl_restIntro.msnQQ, tbl_restIntro.expenditure, 
      tbl_restIntro.discount, tbl_restIntro.discountNote, tbl_restIntro.policy, 
      tbl_restIntro.deliverMoney, tbl_restIntro.deliverNote, tbl_restIntro.chainMsg, 
      tbl_restIntro.mapUrl, tbl_restIntro.URL, tbl_restIntro.PAmount, tbl_restIntro.BAmount, 
      tbl_restIntro.stallAmount, tbl_restIntro.traffic, tbl_restIntro.deliverArea,tbl_restIntro.settlement,tbl_restIntro.orderNote,tbl_restIntro.policy
	  ,tbl_restIntro.isPost,tbl_restIntro.content,tbl_restIntro.NPosition
	  ,tbl_restIntro.PostTime,tbl_restIntro.updateCyc,tbl_restIntro.senderAmount
      FROM tbl_restaurant LEFT OUTER JOIN
      tbl_restIntro ON tbl_restaurant.id = tbl_restIntro.restID LEFT OUTER JOIN
      tbl_user ON tbl_restaurant.userID = tbl_user.id LEFT OUTER JOIN
      tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
      tbl_region ON tbl_restaurant.regionID = tbl_region.id LEFT OUTER JOIN
      tbl_province ON tbl_restaurant.provinceID = tbl_province.id LEFT OUTER JOIN
      tbl_city ON tbl_restaurant.cityID = tbl_city.id LEFT OUTER JOIN
      tbl_area ON tbl_restaurant.areaID = tbl_area.id
	  where   tbl_restaurant.isDelete=1 and tbl_restaurant.id=@restid
	  order by tbl_restaurant.sclassID desc, tbl_restaurant.id desc 
   end
end








GO
/****** :  StoredProcedure [dbo].[sp_RestInfoDelete]    ű: 02/01/2010 14:34:17 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_RestInfoDelete]
@id int=0,
@result int=0 output
AS
begin
update tbl_restaurant set isDelete=1 where id=@id
set @result=1 
end 
select @result



GO
/****** :  StoredProcedure [dbo].[sp_RestInfoResume]    ű: 02/01/2010 14:34:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_RestInfoResume]
@restid int=0,
@result int=0 output
AS
begin
update tbl_restaurant set isDelete=0 where id=@restid
set @result=1 
end 
select @result





GO
/****** :  StoredProcedure [dbo].[sp_RestInfoSelect]    ű: 02/01/2010 14:34:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_RestInfoSelect]
@id int=0,
@RestName varchar(8000)=''
AS

if  @id=0 and @RestName='' begin 
select  a.id,a.name,b.email,c.email from tbl_restaurant a
left join tbl_user b on a.userID=b.id
left join tbl_user c on a.MuserID=c.id
where  a.isDelete=0
end

if  @id=0 and @RestName<>'' begin
select  a.id,a.name,b.email,c.email from tbl_restaurant a
left join tbl_user b on a.userID=b.id
left join tbl_user c on a.MuserID=c.id 
where a.name like '%' + @RestName + '%' and  a.isDelete=0
end

if  @id<>0 and @RestName='' begin
select  a.id,a.name,b.email,c.email from tbl_restaurant a
left join tbl_user b on a.userID=b.id
left join tbl_user c on a.MuserID=c.id 
where a.id=@id  and  a.isDelete=0
end

if  @id<>0 and @RestName<>'' begin
select  a.id,a.name,b.email,c.email from tbl_restaurant a
left join tbl_user b on a.userID=b.id
left join tbl_user c on a.MuserID=c.id 
where  a.id=@id  and  a.name like '%' + @RestName + '%' 
and a.isDelete=0
end

GO
/****** :  StoredProcedure [dbo].[sp_RestInfoUpdate]    ű: 02/01/2010 14:34:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_RestInfoUpdate]
               @RestId    INT  = 0,
               @UserName  VARCHAR(30)  = '',
               @MUserName VARCHAR(32)  = '',
				@adminID int = 0 ,
				@content varchar(8000) = '',
               @Result    INT  = 0 OUTPUT

AS
  DECLARE  @userid INT
  
  DECLARE  @muserid INT
  declare @historyRecord varchar(8000)
  declare @spResult int
  set @historyRecord =''
  SELECT @userid = Id
  FROM   Tbl_User
  WHERE  eMail = @UserName
  
  SELECT @muserid = Id
  FROM   Tbl_User
  WHERE  eMail = @MUserName
  
    IF lTrim(@UserName) <> ''
      BEGIN
        IF lTrim(@MUserName) <> ''
          BEGIN
            IF (SELECT COUNT(* )
                FROM   Tbl_User
                WHERE  eMail = @UserName) = 0
              BEGIN
                SET @Result = 1
              END
            ELSE
              BEGIN
                IF (SELECT COUNT(* )
                    FROM   Tbl_User
                    WHERE  eMail = @MUserName) = 0
                  BEGIN
                    SET @Result = 2
                  END
                ELSE
                  BEGIN
                    UPDATE Tbl_Restaurant
                    SET    UserId = @userid,
                           MuseRid = @muserid
                    WHERE  Id = @RestId
                    SET @Result = 3
                  END
              END
          END
        ELSE
          BEGIN
            IF (SELECT COUNT(* )
                FROM   Tbl_User
                WHERE  eMail = @UserName) = 0
              BEGIN
                SET @Result = 1
              END
            ELSE
              BEGIN
                UPDATE Tbl_Restaurant
                SET    UserId = @userid
                WHERE  Id = @RestId
                
                SET @Result = 3
              END
          END
      END
    
    IF lTrim(@UserName) = ''
      BEGIN
        IF lTrim(@MUserName) <> ''
          BEGIN
            IF (SELECT COUNT(* )
                FROM   Tbl_User
                WHERE  eMail = @MUserName) = 0
              BEGIN
                SET @Result = 2
              END
            ELSE
              BEGIN
                UPDATE Tbl_Restaurant
                SET    MuseRid = @muserid
                WHERE  Id = @RestId
                
                SET @Result = 3
              END
          END
      END
if @Result = 3 begin
	exec sp_systemLogAdd @adminID,1,@content,@historyRecord,@spResult output
	if @spResult <> 1 begin set @Result = -1 end
end
 SELECT @Result

GO
/****** :  StoredProcedure [dbo].[sp_RestIsHaveSignUp]    ű: 02/01/2010 14:34:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create PROCEDURE [dbo].[sp_RestIsHaveSignUp]
@restid int=0,
@result int=0 output
AS
-- /0δǩԼ 1ǩԼ
begin

select @result=count(*) from tbl_restSignUp where restid=@restid

if @result<>0 begin
set @result=1
end

select @result

end
GO

/****** :  StoredProcedure [dbo].[sp_restMapInfo_get]    ű: 02/01/2010 14:34:24 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create PROCEDURE  [dbo].[sp_restMapInfo_get] 
@restID bigint=0
AS

if @restID>0
	begin
		select restID,mapCity,mapX,mapY from tbl_restMapInfo where restID=@restID		
	end
	



GO
/****** :  StoredProcedure [dbo].[sp_restMapInfo_getArea]    ű: 02/01/2010 14:34:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[sp_restMapInfo_getArea]
@restID int
as
	select m.*,a.name as areaName from tbl_areaMapInfo m left join tbl_area a on m.areaID=a.id 
	where a.id in (select areaID from tbl_shop2area where restid=@restID)




GO
/****** :  StoredProcedure [dbo].[sp_RestMapTopDelete]    ű: 02/01/2010 14:34:26 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
create PROCEDURE [dbo].[sp_RestMapTopDelete]
@restID int,
@result int=0 output
AS
declare @id int
begin
select @id=id from tbl_RestMapTop where restID=@restID
if (select max(id) from tbl_RestMapTop)= @id
begin
update tbl_RestMapTop set id=id-1 where restID<>@restID
set @result=1
end
if (select min(id) from tbl_RestMapTop)= @id
begin
set @result=1
end
else
begin
update tbl_RestMapTop set id=id-1 where id>@id
set @result=1
end
delete from  tbl_RestMapTop where restID=@restID
end 
select @result 


GO
/****** :  StoredProcedure [dbo].[sp_RestMapTopSelect]    ű: 02/01/2010 14:34:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_RestMapTopSelect]
@restID int=0
AS
if @restID=0
begin
select a.id,a.restID,b.name from tbl_RestMapTop a 
left join tbl_restaurant b on a.restID=b.id 
where b.isDelete<>1 and b.state<>0
order by a.id
end 
else 
begin
select a.id,a.restID,b.name from tbl_RestMapTop a 
left join tbl_restaurant b on a.restID=b.id 
where a.restID=@restID and b.isDelete<>1 and b.state<>0 
order by a.id
end






GO
/****** :  StoredProcedure [dbo].[sp_RestMapTopUpdate]    ű: 02/01/2010 14:34:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

create PROCEDURE [dbo].[sp_RestMapTopUpdate]
@restID int,
@sign int=0,
@result int=0 output
AS
declare @id int
select @id=id from tbl_RestMapTop where restID=@restID
if @sign<>1 and @sign<>2 
begin
set @result=0
end
if @sign=1 --
begin
--жϱǷѾһǣ
if (select min(id) from tbl_RestMapTop)=@id
set @result=1
else
--ǰһλǰһλ
begin
update tbl_RestMapTop set id=id+1 where id=@id-1
update tbl_RestMapTop set id=id-1 where restID=@restID
set @result=1
end
end 
if @sign=2 --
begin
--жϱ͵ǷѾǣ
if (select max(id) from tbl_RestMapTop)=@id
set @result=1
else
begin
--͵һλǰһλ
update tbl_RestMapTop set id=id-1 where id=@id+1
update tbl_RestMapTop set id=id+1 where restID=@restID
set @result=1
end 
end 
select @result 

GO

/****** :  StoredProcedure [dbo].[sp_RestOrderMoneyCountRankStatis]    ű: 02/01/2010 14:34:30 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_RestOrderMoneyCountRankStatis]
@Sign int=1
AS
/*
	ǿ޸2007-12-18 ޸ģ38
	cast(cast(Year(GETDATE()) 
	Ϊ
	cast(cast(Year(dateadd(m,1,GETDATE())) 
*/
begin 
	if @Sign =1 begin
		select top 50 a.restid restid,a.restname restname,
        sum(a.total) OrderMoney,OrderCount=count(*)
		from v_Order_GeneralList a  left join tbl_restaurant b on a.restid=b.id
		where  a.state=1 and b.isdelete=0 group by a.restid,a.restname  order by sum(a.total) desc
	end
    if @Sign =2 begin
		select top 50 a.restid restid,a.restname restname,
        sum(a.total) OrderMoney,OrderCount=count(*)
		from v_Order_GeneralList a  left join tbl_restaurant b on a.restid=b.id
		where  a.state=1 and  a.date_time >= CONVERT(varchar(100), GETDATE(), 23)
        and  a.date_time < DATEADD(d, 1, CONVERT(DateTime,CONVERT(varchar(100), GETDATE(), 23)))
        and b.isdelete=0
        group by a.restid,a.restname  order by sum(a.total) desc
	end
    if @Sign =3 begin
		select top 50 a.restid restid,a.restname restname,
        sum(a.total) OrderMoney,OrderCount=count(*)
		from v_Order_GeneralList a  left join tbl_restaurant b on a.restid=b.id
		where  a.state=1  and  a.date_time >=
        cast(cast(Year(GETDATE()) as varchar(8000)) + '-' + 
        cast(Month(GETDATE()) as varchar(8000)) + '-1' as datetime)
        and  a.date_time <
        cast(cast(Year(dateadd(m,1,GETDATE())) as varchar(8000)) + '-' + 
        cast(Month(dateadd(m,1,GETDATE())) as varchar(8000)) + '-1' as datetime)
        and b.isdelete=0
        group by a.restid,a.restname  order by sum(a.total) desc
	end
end


GO
/****** :  StoredProcedure [dbo].[sp_RestOrderRankStatis]    ű: 02/01/2010 14:34:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_RestOrderRankStatis]
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1',
@orderstate int
AS
begin 

if @orderstate=3 begin

select a.restid restid,
a.restname restname,
sum(a.total) OrderMoney,
OrderCount=count(*)
from v_Order_GeneralList a
left join tbl_restaurant b on a.restid=b.id
where a.date_time >=  CAST(@StartDate as varchar(20))
and  a.date_time <  CAST(@EndDate as varchar(20))
group by a.restid,a.restname 
order by sum(a.total) desc

end else begin

select a.restid restid,
a.restname restname,
sum(a.total) OrderMoney,
OrderCount=count(*)
from v_Order_GeneralList a
left join tbl_restaurant b on a.restid=b.id
where a.date_time >=  CAST(@StartDate as varchar(20))
and  a.date_time <  CAST(@EndDate as varchar(20))
and a.state=@orderstate
group by a.restid,a.restname
order by sum(a.total) desc

end

end


GO
/****** :  StoredProcedure [dbo].[sp_RestOrderRankStatisInfo]    ű: 02/01/2010 14:34:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_RestOrderRankStatisInfo]
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1',
@orderstate int,
@RestID int
AS
begin 

if  @orderstate=3  begin

select a.restname restname,
a.id orderid,
a.date_time ordertime,
a.state orderstate,
a.total ordermoney
from v_Order_GeneralList a
left join tbl_restaurant b on a.restid=b.id
where a.date_time >=  CAST(@StartDate as varchar(20))
and  a.date_time <  CAST(@EndDate as varchar(20))
and a.restid=@RestID

end else begin

select a.restname restname,
a.id orderid,
a.date_time ordertime,
a.state orderstate,
a.total ordermoney
from v_Order_GeneralList a
left join tbl_restaurant b on a.restid=b.id
where a.date_time >=  CAST(@StartDate as varchar(20))
and  a.date_time <  CAST(@EndDate as varchar(20))
and  a.state=@orderstate and a.restid=@RestID

end

end

GO
/****** :  StoredProcedure [dbo].[sp_RestOrdersDeductsReportStatis]    ű: 02/01/2010 14:34:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_RestOrdersDeductsReportStatis]
@RestId int,
@StartDate datetime ='1900-1-1',
@EndDate datetime='1999-1-1'
AS --//orderclass:1 ͨ 2 ײ
begin

select a.id as id, a.deliverDate as deliverDate, 
a.total as total, deductTotal=a.total*c.deduct,
a.ordertype as orderclass
from  v_Order_GeneralList a
left join tbl_restaurant b on a.restID=b.id 
left join tbl_restSignUp c on a.restID=c.restID
where b.id=@RestId and a.state=1 and b.SClassID=3
and a.date_time >= @StartDate and a.date_time < @EndDate
order by deductTotal desc 
end








GO
/****** :  StoredProcedure [dbo].[sp_RestRankUpdate]    ű: 02/01/2010 14:34:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_RestRankUpdate]
@RestId int,
@Rank int,
@result int=0 output
AS
begin
update tbl_restaurant set rank=@Rank where id=@RestId
set @result=1
end
select @result

GO
/****** :  StoredProcedure [dbo].[sp_restRegReport]    ű: 02/01/2010 14:34:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_restRegReport]
@startDate varchar(10),
@endDate varchar(10)
 AS
select convert(varchar,addTime,112) as reportDate,count(*) as amount from tbl_restaurant
where addTime between @startDate and dateadd(d,1,@endDate)
group by convert(varchar,addTime,112)
GO
/****** :  StoredProcedure [dbo].[sp_RestSClassUpdate]    ű: 02/01/2010 14:34:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_RestSClassUpdate]
@RestId int,
@SClassId int,
@result int=0 output
AS
begin
update tbl_restaurant set SClassID=@SClassId where id=@RestId
--update tbl_restIntro set ispost = 1 where restID = @restID
set @result=1
end
select @result


GO
/****** :  StoredProcedure [dbo].[sp_restSignUp_add]    ű: 02/01/2010 14:34:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_restSignUp_add]
@userID bigint,
@restID int,
@note text,
@startDate varchar(20)='',
@result int =0 output
 AS
declare @cnt int
set @cnt=0
select @cnt=count(*) from tbl_restSignUp where restID=@restID
if @cnt>0--޸
	begin
	update tbl_restSignUp set restID=@restID,userID=@userID,note=@note,startDate = @startDate where restID=@restID
	set @result=1
	end
else--
	begin
	insert into tbl_restSignUp(restID,userID,note,startDate) values(@restID,@userID,@note,@startDate)
	set @result=2
	end
select @result

GO
/****** :  StoredProcedure [dbo].[sp_restSignUp_get]    ű: 02/01/2010 14:34:39 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_restSignUp_get]
@ID int=0,
@restID int=0
 AS

if @ID>0  --
	begin
		select a.*,b.name as userName,c.name as restName 
		from tbl_restSignUp	a 
		left join tbl_SystemUser b on a.userID=b.id
		left join tbl_restaurant c on a.restID=c.id
		where a.ID=@ID
	end
else if @restID>0--
	begin
		select a.*,b.name as userName,c.name as restName 
		from tbl_restSignUp	a 
		left join tbl_SystemUser b on a.userID=b.id
		left join tbl_restaurant c on a.restID=c.id
		where a.restID=@restID
	end
GO
/****** :  StoredProcedure [dbo].[sp_restSignUp_report]    ű: 02/01/2010 14:34:40 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_restSignUp_report]
@userID int=0
 AS

if @userID>0  
	begin
		select a.*,b.name as userName,c.name as restName 
		from tbl_restsignUp a 
		left join tbl_SystemUser b on a.userID=b.id
		left join tbl_restaurant c on a.restID=c.id
		where b.id=@userID
		order by a.userID
	end
else
		select a.*,b.name as userName,c.name as restName 
		from tbl_restsignUp a 
		left join tbl_SystemUser b on a.userID=b.id
		left join tbl_restaurant c on a.restID=c.id		
		order by a.userID
GO
/****** :  StoredProcedure [dbo].[sp_restSignUp_systemUserGet]    ű: 02/01/2010 14:34:41 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_restSignUp_systemUserGet]
@ID int
 AS
if @ID>0--
	begin
	select * from tbl_systemUser where id=@id	
	end
else--
	begin
	select * from tbl_systemUser	
	end
GO
/****** :  StoredProcedure [dbo].[sp_RestSignUpAdd]    ű: 02/01/2010 14:34:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










CREATE PROCEDURE [dbo].[sp_RestSignUpAdd]
@restid int=0,
@userid int=0,
@SignUpTime datetime=getdate,
@deduct float,
@SignUpContent varchar(8000),
@adminID int = 0,
@content varchar(8000) = '',
@GMoney float,
@fallInDate varchar(200)='',
@platFormPayment float='',
@startDate varchar(20)='',
@Result int=0 output

AS

declare @count int
select @count = count(id) from tbl_restSignUpHistory
where fallInDate >= @startDate and restid=@restid
if @count>0 begin
set @result=-1
select @result
return
end

SET XACT_ABORT ON  --  try  
    begin
    begin tran
	declare @spResult int
	declare @str varchar(4000)
set @str = ''
exec sp_systemlogAdd @adminID,2,@content,@str,@spResult output
insert into tbl_restSignUpHistory(userID,restID,date_time,deduct,note,getmoney,fallInDate,platFormPayment,startDate,operateUserId) 
values(@userid,@restid,@SignUpTime,@deduct,@SignUpContent,@GMoney,@fallInDate,@platFormPayment,@startDate,@adminId)
if (select count(id) from tbl_restSignUp where restid=@restid)=0
begin
insert into tbl_restSignUp(userID,restID,date_time,deduct,note,getmoney,fallInDate,platFormPayment,startDate,operateUserId) 
values(@userid,@restid,@SignUpTime,@deduct,@SignUpContent,@GMoney,@fallInDate,@platFormPayment,@startDate,@adminId)
end
else begin
update tbl_restSignUp 
set userID=@userid,
date_time=@SignUpTime,
deduct=@deduct, 
note=@SignUpContent,
getmoney=@GMoney,
platFormPayment = @platFormPayment,
fallInDate = @fallInDate,
startDate=@startDate,
operateUserId=@adminId,
updateTime = getDate()
where restID=@restid
end
 
	set @Result = 1
end  
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result








GO
/****** :  StoredProcedure [dbo].[sp_RestSignUpSelect]    ű: 02/01/2010 14:34:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE PROCEDURE [dbo].[sp_RestSignUpSelect]
@restid int=0
AS
begin
select a.userid,c.name,a.date_time,a.deduct,a.note,a.getmoney,
a.fallInDate,a.platFormPayment,a.startDate
from tbl_restSignUp a 
left join tbl_systemUser b  on a.userid=b.id
left join tbl_restaurant c  on a.restID=c.id
where a.restID=@restid
end








GO
/****** :  StoredProcedure [dbo].[sp_RestSignUpUpdate]    ű: 02/01/2010 14:34:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE PROCEDURE [dbo].[sp_RestSignUpUpdate]
@historyId int = 0,
@restid int=0,
@userid int=0,
@SignUpTime datetime=getdate,
@deduct float,
@SignUpContent varchar(8000),
@GMoney float,
@adminID int = 0,
@content varchar(8000) = '',
@platFormPayment float = 0,
@fallInDate varchar(200) = '',
@startDate varchar(20)='',
@Result int=0 output

AS
declare @spResult int
declare @str varchar(4000)
declare @count int
select @count = count(id) from tbl_restSignUpHistory
where fallInDate >= @startDate and id<>@historyId and restid=@restid
if @count>0 begin
set @result=-1
select @result
return
end
SET XACT_ABORT ON  --  try  
    begin
    begin tran
set @str = ''
exec sp_systemlogAdd @adminID,2,@content,@str,@spResult output

update tbl_restSignUpHistory
set userID=@userid,
date_time=@SignUpTime,
deduct=@deduct, 
note=@SignUpContent,
getmoney=@GMoney,
platFormPayment = @platFormPayment,
fallInDate = @fallInDate,
startDate=@startDate,
operateUserId=@adminId,
updateTime = getDate()
where id=@historyId

update tbl_restSignUp 
set userID=@userid,
date_time=@SignUpTime,
deduct=@deduct, 
note=@SignUpContent,
getmoney=@GMoney,
platFormPayment = @platFormPayment,
fallInDate = @fallInDate,
startDate=@startDate,
operateUserId=@adminId,
updateTime = getDate()
where restID=@restid
 
	set @Result = 1
end  
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result







GO
/****** :  StoredProcedure [dbo].[sp_RestStateUpdate]    ű: 02/01/2010 14:34:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_RestStateUpdate]
@RestId int,
@State int,
@result int=0 output
AS
begin
update tbl_restaurant set State=@State where id=@RestId
-- update tbl_restIntro set ispost = 1 where restID = @restID
set @result=1
end
select @result



GO
/****** :  StoredProcedure [dbo].[sp_restStyle_get]    ű: 02/01/2010 14:34:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--͹ʽ
CREATE procedure [dbo].[sp_restStyle_get]
	@restStyleID int=0,
	@restID bigint=0,
	@state int=1
as
	declare @sql varchar(8000),@where varchar(8000)
	set @where=''
	if @restID>0 begin
		set @sql='select a.id as RestID,a.restStyleID ,b.* from tbl_restIntro a left join tbl_restStyleCollections b on b.id=a.restStyleID
			where a.restID=' + convert(varchar(8000),@restID) + ' and  b.isDelete=0 '
		if @state>-1 
			 set @where = ' and b.state=' + convert(varchar(8000),@state)			
	end else begin
		set @sql = 'select * from tbl_restStyleCollections where  isDelete=0 '
		if @restStyleID>0 
			set @where = ' and ID=' + convert(varchar(8000),@restStyleID)		
		if @state>-1
			set @where = @where + ' and state=' + convert(varchar(8000),@state)		
	end
	set @sql = @sql + @where + ' order by name'
	exec(@sql)







GO
/****** :  StoredProcedure [dbo].[sp_restStyle_update]    ű: 02/01/2010 14:34:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


--͹ʽ
CREATE procedure [dbo].[sp_restStyle_update]
	@restID bigint=0,
	@restStyleName varchar(50)
as	
	declare @restStyleID int
	select top 1 @restStyleID=id from tbl_restStyleCollections where [name]=@restStyleName
	if @@rowCount=0 
		set @restStyleID=0
	if exists(select * from tbl_restIntro where restID=@restID)	
		update tbl_restIntro set restStyleID=@restStyleID where restID=@restID
	else 
		insert into tbl_restIntro(restID,restStyleID) values(@restID,@restStyleID)
	
	select @restStyleID


GO
/****** :  StoredProcedure [dbo].[sp_RestStyleCollectionsAdd]    ű: 02/01/2010 14:34:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_RestStyleCollectionsAdd]
@name varchar(8000),
@cssPath varchar(8000),
@cssHeadPath varchar(8000) ='',
@price float,
@note varchar(8000)='',
@state int,
@result int = 0 output	
AS
begin	
		
		if ((select count(id) from tbl_RestStyleCollections where isDelete = 0 and name = @name)>0)
			set @result =  -1	
		else if ((select count(id) from tbl_RestStyleCollections where isDelete = 0 and cssPath = @cssPath)>0)
			set @result =  -2
		else begin
			insert into tbl_RestStyleCollections (name,cssPath,cssHEadPath,price,note,state)
			values(@name,@cssPath,@cssHeadPath,@price,@note,@state)
			if @@error = 0	begin
				set @result = 1
			end else 
				set @result = 0
		end			
	select @result
end	


GO
/****** :  StoredProcedure [dbo].[sp_RestStyleCollectionsUpdate]    ű: 02/01/2010 14:34:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_RestStyleCollectionsUpdate]
@restStyleID int,
@name varchar(8000),
@cssPath varchar(8000),
@cssHeadPath varchar(8000) ='',
@price float,
@note varchar(8000)='',
@state int,
@result int = 0 output	
AS
	if ((select count(id) from tbl_RestStyleCollections where isDelete = 0 and name = @name and id<>@restStyleID)>0)
		set @result =  -1	
	else if ((select count(id) from tbl_RestStyleCollections where isDelete = 0 and cssPath = @cssPath and id<>@restStyleID)>0)
		set @result = -2
	else begin
		update tbl_RestStyleCollections set name =@name,csspath=@cssPath,cssHeadPath=@cssHeadPath,
		price = @price,note = @note,state = @state where id= @restStyleID
		if @@error = 0	begin
			set @result = 1
		end else
			set @result = 0	
	end  
	select @result




GO
/****** :  StoredProcedure [dbo].[sp_RestStyleReport]    ű: 02/01/2010 14:34:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_RestStyleReport]
AS
BEGIN
select a.name, isnull(b.total,0) as total from tbl_restStyleCollections  as a left join	
(select restStyleID,count(distinct restID) as total from tbl_restIntro group by  restStyleID)
as b on a.id = b.restStyleID order by a.name
END


GO
/****** :  StoredProcedure [dbo].[sp_RestToRestCommend]    ű: 02/01/2010 14:34:56 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE PROCEDURE [dbo].[sp_RestToRestCommend]
	@RestId BIGINT = 0,
	@ZoneId INT = 0
AS
BEGIN
	INSERT INTO tbl_RestCommend(restID, zoneID) VALUES (@RestId, @ZoneId)
	IF @@ROWCOUNT > 0
		SELECT 1
	ELSE
		SELECT 0
END



GO
/****** :  StoredProcedure [dbo].[sp_RestToRestMapTop]    ű: 02/01/2010 14:34:57 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



create PROCEDURE [dbo].[sp_RestToRestMapTop]
@RestId int,
@UserId int,
@result int=0 output
AS
declare @id int
select @id=max(id)+1 from tbl_RestMapTop
begin
if (select count(*) from tbl_RestMapTop where RestId=@RestId)>0
begin
set @result=-1
end
else
begin
insert into tbl_RestMapTop(id,restID,addUserID) values(@id,@RestId,@UserId)
set @result=1
end
end
select @result



GO
/****** :  StoredProcedure [dbo].[sp_RestUserAdd]    ű: 02/01/2010 14:34:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE PROCEDURE [dbo].[sp_RestUserAdd]
@restID int,
@userName varchar(8000),
@adminId int =0,
@content varchar(8000)='',
@result int=0 output
AS
declare @userid int
declare @historyRecord varchar(8000)
  declare @spResult int
  set @historyRecord =''
if (select count(*) from  tbl_user where email=@userName and state <>-1)>0  begin

    select @userid=id from tbl_user where email=@userName and state<>-1

    if exists( select * from tbl_restUser where userid=@userid and restid=@restID ) begin
    set @result=2
    end  else begin
	exec sp_systemLogAdd @adminID,1,@content,@historyRecord,@spResult output
    insert into tbl_restUser(userID,restID) values(@userid,@restID)
    set @result=1
    end

end else  begin
    set @result=0
end 

select @result 










GO
/****** :  StoredProcedure [dbo].[sp_RestUserDelete]    ű: 02/01/2010 14:34:59 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_RestUserDelete]
@id int,
@adminId int =0,
@content varchar(8000)='',
@result int=0 output
AS
begin
declare @historyRecord varchar(8000)
  declare @spResult int
  set @historyRecord =''
  exec sp_systemLogAdd @adminID,1,@content,@historyRecord,@spResult output
delete from tbl_restUser where id=@id
set @result=1
end
select @result



GO
/****** :  StoredProcedure [dbo].[sp_RestUserSelect]    ű: 02/01/2010 14:35:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_RestUserSelect]
@restID int
AS
begin
select a.id id ,b.id userid, b.email UserName 
from tbl_restUser a
left join  tbl_user b on  a.userID=b.id
where a.restID=@restID and b.state<>-1
end 







GO
/****** :  StoredProcedure [dbo].[sp_saveSMS]    ű: 02/01/2010 14:35:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE PROCEDURE [dbo].[sp_saveSMS]
@id int=0,
@orderID bigint,
@mobile varchar(20),
@message text,
@result int,
@adminUserID int,
@classID int=0 -- 0Ϊ,1
 AS
declare @messageID int
declare @state int
if @id=0 begin
	insert into tbl_SMSHistory(userID,orderID,mobile,message,result,classID)values(@adminUserID,@orderID,@mobile,@message,@result,@classID)
	select @state=state from tbl_order where id=@orderID
	set @messageID=@@IDENTITY
end else begin
	update tbl_smsHistory set userID=@adminUserID,orderID=@orderID,mobile=@mobile,[message]=@message,result=@result,classID=@classID where id=@id
	set @messageID=@id
end
select @messageID
	
	--update tbl_order set state=1 where id=@orderID



GO
/****** :  StoredProcedure [dbo].[sp_saveSMSResult]    ű: 02/01/2010 14:35:03 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_saveSMSResult]
@messageID int,
@subID int,
@mobile varchar(16),
@result int
 AS
insert into tbl_smsResult(messageID,subid,mobile,result)values(@messageID,@subID,@mobile,@result)
select 1
GO
/****** :  StoredProcedure [dbo].[sp_Search_Rest]    ű: 02/01/2010 14:35:04 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO












-- =============================================
-- Author:		<Venson>
-- Create date: <2008-1-12>
-- Description:	<͹>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Search_Rest]
	@Name VARCHAR(50) = '',--͹ƹؼ
	@StartDeliverClock FLOAT = 0.0,--µʼʱ
	@EndDeliverClock FLOAT = 0.0,--µֹʱ
	@AreaId INT = 0,--ʹ¥ID
	@PageIndex INT = 1,--ҳ
	@PageSize INT = 1,--ҳС
	@OrderByName INT = 1,--ֶ(1:Rank, 2:DeliverMoney,3:Rate)
	@OrderByDirection INT = 1--(1:ASC, 2:DESC)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @Sql nvarchar(4000)
	DECLARE @Where varchar(8000)
	DECLARE @OrderBy varchar(8000)
	DECLARE @StartDeliverClockStr VARCHAR(10)
	DECLARE @EndDeliverClockStr VARCHAR(10)

	DECLARE @TotalCount INT
	DECLARE @TotalPage INT
	DECLARE @StartRowId INT
    DECLARE @EndRowId INT

	--WHERE
	SET @Where = 'WHERE 1=1 '
	IF @Name <> ''
	BEGIN
		SET @Name = REPLACE(@Name, '''', '''''')
		SET @Name = '%' + @Name + '%';
		SET @Where = @Where + ' AND Name LIKE ''' + @Name + ''''
	END		
	IF @StartDeliverClock > 0 AND @EndDeliverClock > 0
	BEGIN
		SET @StartDeliverClockStr = CAST(@StartDeliverClock AS VARCHAR(10))
		SET @EndDeliverClockStr = CAST(@EndDeliverClock AS VARCHAR(10))
		SET @Where = @Where + ' AND Id IN (SELECT DISTINCT(RestId) FROM tbl_DeliverTime WHERE (StartClock<='
			+ @StartDeliverClockStr + ' AND EndClock>=' + @StartDeliverClockStr + ') OR (StartClock<=' + @EndDeliverClockStr + ' AND EndClock>=' + @EndDeliverClockStr + '))'
	END
	IF @AreaId > 0
	BEGIN
		SET @Where = @Where + ' AND v.Id IN (SELECT DISTINCT(RestId) FROM tbl_Shop2Area WHERE AreaId=' + CAST(@AreaId AS VARCHAR(10)) + ')'
	END

	--TotoalCount
	SET @Sql = N'SELECT @TotalCountOut=Count(Id) FROM v_Search_Rest as v ' + @Where
	EXEC sp_executesql @Sql, N'@TotalCountOut INT OUTPUT', @TotalCountOut=@TotalCount OUTPUT

	--TotalPage
	SET @TotalPage = CEILING((@TotalCount + 0.0) / @PageSize)
	
	--CheckPageIndex
	IF @PageIndex < 1 SET @PageIndex = 1
	IF @PageIndex > @TotalPage SET @PageIndex = @TotalPage

	--RowRange
    SET @StartRowId = (@PageIndex - 1) * @PageSize + 1
    set @EndRowId = @StartRowId + @PageSize - 1

	--Order by
	if @OrderByName = 1
	    set @OrderBy = 'ORDER BY Rank'
	else if @OrderByName = 2 begin
		if @AReaID>0
			set @OrderBy = 'ORDER BY sa.DeliveryMoney '
		else
			set @OrderBy = 'ORDER BY DeliverMoney'
	end else if @OrderByName = 3
        set @OrderBy = 'ORDER BY Rate'

   IF @OrderByDirection = 2 SET @OrderBy = @OrderBy + ' DESC'
   
   if @Areaid >0
   SET @OrderBy = @OrderBy + ' , [dbo].[f_getShopBusinessState](v.Id) asc'
   else 
   SET @OrderBy = @OrderBy + ' , [dbo].[f_getShopBusinessState](Id) asc'


if @AreaId>0 begin
	SET @Sql = 'SELECT T.Id, T.Name, T.LogoPhotoId, t.samoney, t.satime, T.Rank,T.Rate,T.SignUpDate, T.ClassName,[dbo].[f_getShopBusinessStateStr](T.Id) as BusinessStateStr FROM (
		SELECT v.*,sa.deliverymoney as samoney, sa.Responsetime as satime, () OVER(' + @OrderBy + ') as RowId FROM v_Search_Rest as v left join tbl_shop2area as sa on sa.restID=v.id and sa.areaID=' + CAST(@AreaId AS VARCHAR(50)) + ' ' + @Where
		+ ') AS T  WHERE RowId BETWEEN ' + CAST(@StartRowId AS VARCHAR(50)) + ' AND ' + CAST(@EndRowId AS VARCHAR(50))
end else begin
	SET @Sql = 'SELECT Id, Name, LogoPhotoId, DeliverMoney, ResponseTime, Rank,Rate,SignUpDate, ClassName,[dbo].[f_getShopBusinessStateStr](T.Id) as BusinessStateStr FROM (
		SELECT *, () OVER(' + @OrderBy + ') as RowId FROM v_Search_Rest ' + @Where
		+ ') AS T WHERE RowId BETWEEN ' + CAST(@StartRowId AS VARCHAR(50)) + ' AND ' + CAST(@EndRowId AS VARCHAR(50))
end	
	--EXEC
	EXEC (@Sql)
    --select @sql
	--PageInfo
	SELECT @PageIndex AS PageIndex, @PageSize AS PageSize, @TotalCount AS TotalCount, @TotalPage AS TotalPage
END













GO
/****** :  StoredProcedure [dbo].[sp_Search_StandardArea]    ű: 02/01/2010 14:35:06 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











-- =============================================
-- Author:		<Venson>
-- Create date: <2008-1-12>
-- Description:	<׼¥>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Search_StandardArea] 
	@ProvinceId INT = 0,--ʡID
	@CityId INT = 0, --ID
	@RegionId INT = 0,--ID
	@AreaName VARCHAR(50) = '',--¥ƹؼ
	@Letter VARCHAR(50) = '',--ĸ
	@PageIndex INT = 1,--ҳ
	@PageSize INT = 1,--ҳС
    @RestId int =0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @Sql nvarchar(4000)
	DECLARE @Where varchar(8000)

	DECLARE @TotalCount INT
	DECLARE @TotalPage INT
	DECLARE @StartRowId INT
    DECLARE @EndRowId INT

	--WHERE
	SET @Where = 'WHERE 1=1'
	IF @ProvinceId > 0 SET @Where = @Where + ' AND ProvinceId=' + CAST(@ProvinceId AS VARCHAR(10))
	IF @CityId > 0 SET @Where = @Where + ' AND CityId=' + CAST(@CityId AS VARCHAR(10))
	IF @RegionId > 0 SET @Where = @Where + ' AND RegionId=' + CAST(@RegionId AS VARCHAR(10))
	IF @AreaName <> ''
	BEGIN
		SET @AreaName = REPLACE(@AreaName, '''', '''''')
		set @AreaName = '%' + @AreaName + '%'
		--SET @Where = @Where + ' AND (Name LIKE ''' + @AreaName + ''' or Label like ''' + @AreaName + ''' or spy LIKE ''' + @AreaName + ''' or qpy LIKE ''' + @AreaName + ''')'
	END
	IF @Letter <> ''
	BEGIN
		SET @Letter = REPLACE(@Letter, '''', '''''')
		SET @Letter = @Letter + '%';
		SET @Where = @Where + ' AND (spy LIKE ''' + @Letter + ''')'
	END
	if @RestId>0
       set @where =@where + ' and id in(select areaid from tbl_shop2area where restid='+cast(@restid as varchar(10))+')'
	--TotoalCount
	SET @Sql = N'SELECT @TotalCountOut=Count(Id) FROM ('
		+ 'select * from v_Search_StandardArea ' + @Where + ' and (Name like ''%' + @AreaName + '%'' or spy like ''%' + @AreaName + '%'' or qpy like ''%' + @AreaName + '%'')'
		+ ') as area'
    --select @sql as ddd
	EXEC sp_executesql @Sql, N'@TotalCountOut INT OUTPUT', @TotalCountOut=@TotalCount OUTPUT

	--TotalPage
	SET @TotalPage = CEILING((@TotalCount + 0.0) / @PageSize)
	
	--CheckPageIndex
	IF @PageIndex < 1 SET @PageIndex = 1
	IF @PageIndex > @TotalPage SET @PageIndex = @TotalPage

	--RowRange
    SET @StartRowId = (@PageIndex - 1) * @PageSize + 1
    set @EndRowId = @StartRowId + @PageSize - 1

	SET @Sql = 'SELECT * FROM ('
		+ 'SELECT *, () OVER(ORDER BY unionid, name) as RowId FROM ('
		+ 'select *, 1 as unionid from v_Search_StandardArea ' + @Where + ' and (Name like ''%' + @AreaName + '%'' or spy like ''%' + @AreaName + '%'' or qpy like ''%' + @AreaName + '%'')'
		+ ') as area'
		+ ') AS T WHERE RowId BETWEEN ' + CAST(@StartRowId AS VARCHAR(50)) + ' AND ' + CAST(@EndRowId AS VARCHAR(50))
	
	--EXEC
	EXEC (@Sql)
   -- select (@sql)
	--PageInfo
	SELECT @PageIndex AS PageIndex, @PageSize AS PageSize, @TotalCount AS TotalCount, @TotalPage AS TotalPage
END












GO
/****** :  StoredProcedure [dbo].[sp_Search_WebSearch]    ű: 02/01/2010 14:35:08 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_Search_WebSearch]
@isAll varchar(6),
@top int,
@type int,
@key varchar(200),
@istag int
AS
declare @sql varchar(8000)
set @sql = 'select'
	
	if @isAll = 'true'
		set @sql = @sql + ' top ' + cast(@top as varchar(3))
	
	if @type = '1'
	begin
		set @sql = @sql + ' td.*,tu.nickName from tbl_userDiary td join tbl_user tu on td.userID = tu.id where'
		if @istag = '0'
			set @sql = @sql + ' title like ''%' + @key + '%'' or content like ''%' + @key + '%'''
		else if @istag = '1'
			set @sql = @sql + ' label like ''%' + @key + '%'''
		set @sql = @sql + ' and td.isDelete=0 and tu.state>=0 order by postTime desc'
	end
	else if @type = '2'
	begin
		set @sql = @sql + ' tp.*,tu.nickName from tbl_userPhoto tp join tbl_user tu on tp.userID = tu.id where'
		if @istag = '0'
			set @sql = @sql + ' tp.name like ''%' + @key + '%'' or note like ''%' + @key + '%'''
		else if @istag = '1'
			set @sql = @sql + ' label like ''%' + @key + '%'''
		set @sql = @sql + ' and tu.state>=0 order by uploadTime desc'
	end
	else if @type = '3'
	begin
		set @sql = @sql + ' tm.*,tu.nickName from tbl_Media tm join tbl_user tu on tm.userID = tu.id where'
		if @istag = '0'
			set @sql = @sql + ' title like ''%' + @key + '%'' or content like ''%' + @key + '%'''
		else if @istag = '1'
			set @sql = @sql + ' label like ''%' + @key + '%'''
		set @sql = @sql + ' and isVideo=0 and tu.state>=0 order by postTime desc'
	end
	else if @type = '4'
	begin
		set @sql = @sql + ' tm.*,tu.nickName from tbl_news tm left join tbl_user tu on tm.userID = tu.id where'
		if @istag = '0'
			set @sql = @sql + ' title like ''%' + @key + '%'' or content like ''%' + @key + '%'''
		else if @istag = '1'
			set @sql = @sql + ' label like ''%' + @key + '%'''
		set @sql = @sql + ' and isDelete=0 and tu.state>=0 order by postTime desc'
	end
	else if @type = '5'
	begin
		set @sql = @sql + ' td.*,tu.nickName from tbl_circleData td join tbl_user tu on td.userID = tu.id where'
		if @istag = '0'
			set @sql = @sql + ' td.[name] like ''%' + @key + '%'' or note like ''%' + @key + '%'''
		else if @istag = '1'
			set @sql = @sql + ' tag like ''%' + @key + '%'''
		set @sql = @sql + ' and isDelete=0 and tu.state>=0 order by creatTime desc'
	end
	else if @type = '6'
	begin
		set @sql = @sql + ' td.*,tu.nickName from tbl_activityData td join tbl_user tu on td.userID = tu.id where'
		if @istag = '0'
			set @sql = @sql + ' td.[name] like ''%' + @key + '%'' or note like ''%' + @key + '%'''
		else if @istag = '1'
			set @sql = @sql + ' tag like ''%' + @key + '%'''
		set @sql = @sql + ' and isDelete=0 and tu.state>=0 order by creatTime desc'
	end

exec (@sql)
select @@rowcount
GO
/****** :  StoredProcedure [dbo].[sp_searchRestAll]    ű: 02/01/2010 14:35:10 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_searchRestAll]
@keyWord varchar(20)
AS
      SELECT tbl_restaurant.*, tbl_area.name AS areaName, tbl_city.name AS cityName, 
      tbl_zone.name AS zoneName, tbl_province.name AS provinceName, 
      tbl_region.name AS regionName, tbl_user.Name AS userName, tbl_restIntro.mobile, 
      tbl_restIntro.fax, tbl_restIntro.email, tbl_restIntro.msnQQ, tbl_restIntro.expenditure, 
      tbl_restIntro.discount, tbl_restIntro.discountNote, tbl_restIntro.policy, 
      tbl_restIntro.deliverMoney, tbl_restIntro.deliverNote, tbl_restIntro.chainMsg, 
      tbl_restIntro.mapUrl, tbl_restIntro.URL, tbl_restIntro.PAmount, tbl_restIntro.BAmount, 
      tbl_restIntro.stallAmount, tbl_restIntro.traffic, tbl_restIntro.deliverArea,tbl_restIntro.settlement,tbl_restIntro.orderNote,tbl_restIntro.policy,tbl_restaurant.state
FROM tbl_restaurant LEFT OUTER JOIN
      tbl_restIntro ON tbl_restaurant.id = tbl_restIntro.restID LEFT OUTER JOIN
      tbl_user ON tbl_restaurant.userID = tbl_user.id LEFT OUTER JOIN
      tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
      tbl_region ON tbl_restaurant.regionID = tbl_region.id LEFT OUTER JOIN
      tbl_province ON tbl_restaurant.provinceID = tbl_province.id LEFT OUTER JOIN
      tbl_city ON tbl_restaurant.cityID = tbl_city.id LEFT OUTER JOIN
      tbl_area ON tbl_restaurant.areaID = tbl_area.id
      where   tbl_restaurant.isDelete=0 and tbl_restaurant.name like '%'+@keyWord+'%'
order by tbl_restaurant.id desc
GO
/****** :  StoredProcedure [dbo].[sp_searchRestaurant]    ű: 02/01/2010 14:35:10 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE PROCEDURE [dbo].[sp_searchRestaurant]
@id int =0,
@userID int =0,
@restName varchar(30)
AS
if @id>0 begin 
	SELECT tbl_restaurant.*, tbl_area.name AS areaName, tbl_city.name AS cityName, 
      tbl_zone.name AS zoneName, tbl_province.name AS provinceName, 
      tbl_region.name AS regionName, tbl_user.Name AS userName, tbl_restIntro.mobile, 
      tbl_restIntro.fax, tbl_restIntro.email, tbl_restIntro.msnQQ, tbl_restIntro.expenditure, 
      tbl_restIntro.discount, tbl_restIntro.discountNote, tbl_restIntro.policy, 
      tbl_restIntro.deliverMoney, tbl_restIntro.deliverNote, tbl_restIntro.chainMsg, 
      tbl_restIntro.mapUrl, tbl_restIntro.URL, tbl_restIntro.PAmount, tbl_restIntro.BAmount, 
      tbl_restIntro.stallAmount, tbl_restIntro.traffic, tbl_restIntro.deliverArea,tbl_restIntro.settlement,tbl_restIntro.orderNote,tbl_restIntro.policy
	FROM tbl_restaurant LEFT OUTER JOIN
      tbl_restIntro ON tbl_restaurant.id = tbl_restIntro.restID LEFT OUTER JOIN
      tbl_user ON tbl_restaurant.userID = tbl_user.id LEFT OUTER JOIN
      tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
      tbl_region ON tbl_restaurant.regionID = tbl_region.id LEFT OUTER JOIN
      tbl_province ON tbl_restaurant.provinceID = tbl_province.id LEFT OUTER JOIN
      tbl_city ON tbl_restaurant.cityID = tbl_city.id LEFT OUTER JOIN
      tbl_area ON tbl_restaurant.areaID = tbl_area.id
	where tbl_restaurant.id=@id and tbl_restaurant.isDelete=0  and tbl_restaurant.state=1
	order by tbl_restaurant.id desc
end
else begin if @userID>0 begin --ûĲ͹
			SELECT tbl_restaurant.*, tbl_area.name AS areaName, tbl_city.name AS cityName, 
				  tbl_zone.name AS zoneName, tbl_province.name AS provinceName, 
				  tbl_region.name AS regionName, tbl_user.Name AS userName, tbl_restIntro.mobile, 
				  tbl_restIntro.fax, tbl_restIntro.email, tbl_restIntro.msnQQ, tbl_restIntro.expenditure, 
				  tbl_restIntro.discount, tbl_restIntro.discountNote, tbl_restIntro.policy, 
				  tbl_restIntro.deliverMoney, tbl_restIntro.deliverNote, tbl_restIntro.chainMsg, 
				  tbl_restIntro.mapUrl, tbl_restIntro.URL, tbl_restIntro.PAmount, tbl_restIntro.BAmount, 
				  tbl_restIntro.stallAmount, tbl_restIntro.traffic, tbl_restIntro.deliverArea,tbl_restIntro.settlement,tbl_restIntro.orderNote,tbl_restIntro.policy
				,(select count(*) from tbl_restBulletin where restID=tbl_restaurant.id and isDelete=0) as bulletinAmount	
				,(select count(*) from tbl_shopComments where shopID=tbl_restaurant.id and isDelete=0) as commentsAmount
			FROM tbl_restaurant LEFT OUTER JOIN
				  tbl_restIntro ON tbl_restaurant.id = tbl_restIntro.restID LEFT OUTER JOIN
				  tbl_user ON tbl_restaurant.userID = tbl_user.id LEFT OUTER JOIN
				  tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
				  tbl_region ON tbl_restaurant.regionID = tbl_region.id LEFT OUTER JOIN
				  tbl_province ON tbl_restaurant.provinceID = tbl_province.id LEFT OUTER JOIN
				  tbl_city ON tbl_restaurant.cityID = tbl_city.id LEFT OUTER JOIN
				  tbl_area ON tbl_restaurant.areaID = tbl_area.id
			where tbl_restaurant.isDelete=0 and tbl_restaurant.name like '%'+@restName+'%'  and (tbl_restaurant.userid=@userid or tbl_restaurant.id in (select restID from tbl_restUser where  userID=@userID))
			order by tbl_restaurant.sclassID desc, tbl_restaurant.name asc
		end else if @userID<0 begin
			SELECT tbl_restaurant.*, tbl_area.name AS areaName, tbl_city.name AS cityName, 
			  tbl_zone.name AS zoneName, tbl_province.name AS provinceName, 
			  tbl_region.name AS regionName, tbl_user.Name AS userName, tbl_restIntro.mobile, 
			  tbl_restIntro.fax, tbl_restIntro.email, tbl_restIntro.msnQQ, tbl_restIntro.expenditure, 
			  tbl_restIntro.discount, tbl_restIntro.discountNote, tbl_restIntro.policy, 
			  tbl_restIntro.deliverMoney, tbl_restIntro.deliverNote, tbl_restIntro.chainMsg, 
			  tbl_restIntro.mapUrl, tbl_restIntro.URL, tbl_restIntro.PAmount, tbl_restIntro.BAmount, 
			  tbl_restIntro.stallAmount, tbl_restIntro.traffic, tbl_restIntro.deliverArea,tbl_restIntro.settlement,tbl_restIntro.orderNote,tbl_restIntro.policy
			FROM tbl_restaurant LEFT OUTER JOIN
			  tbl_restIntro ON tbl_restaurant.id = tbl_restIntro.restID LEFT OUTER JOIN
			  tbl_user ON tbl_restaurant.userID = tbl_user.id LEFT OUTER JOIN
			  tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
			  tbl_region ON tbl_restaurant.regionID = tbl_region.id LEFT OUTER JOIN
			  tbl_province ON tbl_restaurant.provinceID = tbl_province.id LEFT OUTER JOIN
			  tbl_city ON tbl_restaurant.cityID = tbl_city.id LEFT OUTER JOIN
			  tbl_area ON tbl_restaurant.areaID = tbl_area.id
			where  tbl_restaurant.isDelete=0  and tbl_restaurant.name like '%'+@restName+'%'  and tbl_restaurant.state=1
			order by tbl_restaurant.sclassID desc, tbl_restaurant.name asc
		end
end

select @@rowCount




GO
/****** :  StoredProcedure [dbo].[sp_searchShop]    ű: 02/01/2010 14:35:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_searchShop]
@keyWord varchar(50)='',
@searchClass int =0,
@classID int=-1
 AS

if @searchClass=1
	select a.id,a.name,a.SClassID,a.address,b.name as regionName,c.name as zoneName,d.deliverMoney from tbl_restaurant a,tbl_region b,tbl_zone c,tbl_restIntro d where a.regionID=b.id and a.zoneID=c.id and d.restID=a.ID and a.name like '%'+@keyWord+'%' and a.state=1  and a.isdelete=0 order by a.sclassID desc,a.name asc
else
	if @searchClass=2
		select a.id,a.name,a.SClassID,a.address,b.name as regionName,c.name as zoneName,d.deliverMoney from tbl_restaurant a,tbl_region b,tbl_zone c,tbl_restIntro d where a.regionID=b.id and a.zoneID=c.id and d.restID=a.ID and  a.zoneID in (select id from tbl_zone where name like '%'+@keyWord+'%' ) and a.state=1  and a.isdelete=0 order by a.sclassID desc,a.name asc
	else
	    if @searchClass=3
		select a.id,a.name,a.SClassID,a.address,b.name as regionName,c.name as zoneName,d.deliverMoney from tbl_restaurant  a,tbl_region b,tbl_zone c,tbl_restIntro d where a.regionID=b.id and a.zoneID=c.id and d.restID=a.ID and   a.ID in (select restID from tbl_shop2Area where areaID in (select id from tbl_area  where name like '%'+@keyWord+'%'  ))
		 and a.state=1 and a.isdelete=0 order by a.sclassID desc,a.name asc
	    else
		if @searchClass=4
		select a.id,a.name,a.SClassID,a.address,b.name as regionName,c.name as zoneName,d.deliverMoney from tbl_restaurant a,tbl_region b,tbl_zone c,tbl_restIntro d where a.regionID=b.id and a.zoneID=c.id and d.restID=a.ID and a.id in (select distinct restID from tbl_menuTable where name like '%'+@keyWord+'%') and a.state=1  and a.isdelete=0 	order by a.sclassID desc,a.name asc

GO
/****** :  StoredProcedure [dbo].[sp_searchUser]    ű: 02/01/2010 14:35:13 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_searchUser]
@userName varchar(16)
 AS
if @userName<>''
	select * from tbl_user where name like '%'+@userName+'%' and state>=0  order by id desc
else
	select * from tbl_user where state>=0 order by id desc
	select @@rowcount
GO
/****** :  StoredProcedure [dbo].[sp_SendOrdersTimeStatis]    ű: 02/01/2010 14:35:14 ******/
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go







Create PROCEDURE [dbo].[sp_SendOrdersTimeStatis]
@ProvinceID int=0,
@CityID int=0,
@RegionID int=0,
@ZoneID int=0,
@StartDate datetime='2002-1-1',
@EndDate datetime='2020-1-1',
@State int=1
AS
begin
	DECLARE @Sql varchar(8000)
	DECLARE @Where varchar(8000)
	DECLARE @ProvinceIdStr varchar(8000)
	DECLARE @CityIdStr varchar(8000)
	DECLARE @RegionIdStr varchar(8000)
	DECLARE @ZoneIdStr varchar(8000)
	DECLARE @StateStr varchar(2)
	declare @whereState varchar(8000)
	SET @ProvinceIdStr = CAST(@ProvinceID AS varchar(8000))
	SET @CityIdStr = CAST(@CityID AS varchar(8000))
	SET @RegionIdStr = CAST(@RegionID AS varchar(8000))
	SET @ZoneIdStr = CAST(@ZoneID AS varchar(8000))
	SET @StateStr = CAST(@State AS varchar(2))
	SET @Where = ''
    set @Sql=''
		IF @ProvinceID > 0 OR @CityID > 0 OR @RegionID > 0 OR @ZoneID > 0
			BEGIN
				IF @ProvinceId > 0 SET @Where = @Where + ' and b.ProvinceId=' + @ProvinceIdStr 
				IF @CityId > 0 SET @Where = @Where + ' and b.CityId=' + @CityIdStr 
				IF @RegionId > 0 SET @Where = @Where + ' and b.RegionId=' + @RegionIdStr 
				IF @ZoneId > 0 SET @Where = @Where + ' and b.ZoneId=' + @ZoneIdStr 
			END
		if @State<>-3
			set @whereState=' and a.state='+@StateStr
		else 
			set @whereState=' and a.state<>-3'
   declare @Date_Temp datetime
   set @Date_Temp='2000-1-1'
   while (@Date_Temp<'2000-1-2')  begin
         if @sql<>'' begin
			set @sql=@sql + ' union all  select  datestr=''' + 
			substring(CONVERT(varchar(100), @Date_Temp, 108),1,5) + '-'  +
			substring(CONVERT(varchar(100), dateadd(mi,30,@Date_Temp), 108),1,5) + ''' , 
			count(*) OrderCount ,
		    convert(decimal(10,2),sum(a.total)) OrderMoney
			from v_Order_GeneralList a
			left join tbl_area b on a.areaID=b.id  '
			set @sql=@sql + '  where  a.deliverdate >= ''' 
			+ cast(@StartDate as varchar(20)) + '''  and   a.deliverdate < ''' 
			+ cast(@EndDate as varchar(20)) + '''  '+@whereState+' '  
			+ ' and  convert(datetime,substring(CONVERT(varchar(100), a.deliverdate, 108),1,5)) >=
			convert(datetime,'''+ substring(CONVERT(varchar(100), @Date_Temp, 108),1,5) + ''' )  
			and  convert(datetime,substring(CONVERT(varchar(100), a.deliverdate, 108),1,5)) <
			convert(datetime,''' + substring(CONVERT(varchar(100), dateadd(mi,30,@Date_Temp), 108),1,5) + ''') '
			+ @Where
		 end else begin 
     	    set @sql= ' select  datestr=''' + 
			substring(CONVERT(varchar(100), @Date_Temp, 108),1,5) + '-'  +
			substring(CONVERT(varchar(100), dateadd(mi,30,@Date_Temp), 108),1,5) + ''' , 
			count(*) OrderCount ,
			convert(decimal(10,2),sum(a.total)) OrderMoney
			from v_Order_GeneralList a
			left join tbl_area b on a.areaID=b.id  '
			set @sql=@sql + '  where  a.deliverdate >= ''' 
			+ cast(@StartDate as varchar(20)) + '''  and   a.deliverdate < ''' 
			+ cast(@EndDate as varchar(20)) + '''  '+@whereState+' ' 
			+ ' and  convert(datetime,substring(CONVERT(varchar(100), a.deliverdate, 108),1,5)) >=
			convert(datetime,'''+ substring(CONVERT(varchar(100), @Date_Temp, 108),1,5) + ''' )  
			and  convert(datetime,substring(CONVERT(varchar(100), a.deliverdate, 108),1,5)) <
			convert(datetime,''' + substring(CONVERT(varchar(100), dateadd(mi,30,@Date_Temp), 108),1,5) + ''') '
			+ @Where
     end
  set @Date_Temp=dateadd(mi,30,@Date_Temp)
  end 
EXEC(@Sql)
end

















GO
/****** :  StoredProcedure [dbo].[sp_serviceLogin]    ű: 02/01/2010 14:35:16 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_serviceLogin]
@Name varchar(16),
@password varchar(32)
 AS
declare @ID int
set @ID=0

select @ID=(ID) from tbl_serviceUser where name=@name and password=@password

select @ID
GO
/****** :  StoredProcedure [dbo].[sp_SetAreaPhoto]    ű: 02/01/2010 14:35:17 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<melack>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_SetAreaPhoto] 
	@AreaId int=0,
    @PhotoId int=0
AS
BEGIN
	
	SET NOCOUNT ON;

  
	if @AreaId > 0

    update tbl_area set PhotoId=@PhotoId where id=@AreaId
   if @@RowCount >0 
    select 1
   else
    select 0

       
END





GO
/****** :  StoredProcedure [dbo].[sp_shieldIP_manage]    ű: 02/01/2010 14:35:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









CREATE procedure [dbo].[sp_shieldIP_manage]
@opera varchar(10),
@ip varchar(15)=''
AS
declare @ret int

if @opera='find'
	begin
		select count(ip) as cnt from tbl_shieldIP where IP=@IP		
	end
else if @opera='get'
	begin
		select ip from tbl_shieldIP
	end
else if @opera='add'
	begin
		if (select count(ip) from tbl_shieldIP where IP=@IP)=0
			insert into tbl_shieldIP(ip) values(@ip)
	end
else if @opera='delete'
	begin
	delete from tbl_shieldIP where IP=@IP
	end












GO
/****** :  StoredProcedure [dbo].[sp_shieldKeyWord_add]    ű: 02/01/2010 14:35:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_shieldKeyWord_add]	
	@id int=0,@word varchar(20),@replaceTo varchar(20),@ret int=0 output
AS
BEGIN	
	SET NOCOUNT ON	
	if @id>0
		begin
		update tbl_shieldKeyWord set word=@word,replaceTo=@replaceTo where id=@id
		set @ret=1
		end
	else
		begin
		insert into tbl_shieldKeyWord(word,replaceTo) values(@word,@replaceTo)
		set @ret=2
		end
	select @ret
    
END


GO
/****** :  StoredProcedure [dbo].[sp_shieldKeyWord_delete]    ű: 02/01/2010 14:35:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_shieldKeyWord_delete]
	@id int=0
AS
BEGIN	
	SET NOCOUNT ON;	
	if @id>0	
		delete from tbl_shieldKeyWord where id=@id
	select @id
END


GO
/****** :  StoredProcedure [dbo].[sp_shieldKeyWord_get]    ű: 02/01/2010 14:35:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_shieldKeyWord_get] 
	@id int=0	
AS
BEGIN	
	SET NOCOUNT ON
	if @id>0
		select id,word,replaceTo from tbl_shieldKeyWord where id=@id
	else
		select id,word,replaceTo from tbl_shieldKeyWord order by id desc
    
END



GO
/****** :  StoredProcedure [dbo].[sp_Shop_DeliveArea_count]    ű: 02/01/2010 14:35:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		melack
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Shop_DeliveArea_count]
	-- Add the parameters for the stored procedure here
	@ShopId int=0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	select vv.RegionName,vv.RegionId, count(vv.id) as Num
              from v_Shop_DeliverArea as vv where shopid=@ShopId group by RegionName,RegionId
END




GO
/****** :  StoredProcedure [dbo].[sp_Shop_DeliverArea_getList]    ű: 02/01/2010 14:35:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO












-- =============================================
-- Author:		<VENSON>
-- Create date: <2008-4-7>
-- Description:	<IDȡͲͷΧ¥б>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Shop_DeliverArea_getList] 
	@ShopId bigint = 0,
	@RegionId int = 0,
	@AreaName varchar(50) = '',
	@letter varchar(50) = '',
	@sortType int = -1,
	@PageIndex int = 1,
	@PageSize int = 1
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @Sql nvarchar(4000)
	DECLARE @Where varchar(8000)
	DECLARE @TotalCount INT
	DECLARE @TotalPage INT
	DECLARE @StartRowId INT
    DECLARE @EndRowId INT

	--Where
	SET @Where = 'where 1=1' 
	
	IF @ShopId > 0 SET @Where = @Where + ' AND ShopId=' + CAST(@ShopId AS VARCHAR(20))		
	
	IF @RegionId > 0 SET @Where = @Where + ' AND RegionId=' + CAST(@RegionId AS VARCHAR(20))
	
	IF @AreaName <> ''
	BEGIN
		SET @AreaName = REPLACE(@AreaName, '''', '''''')
		SET @Where = @Where + ' AND (AreaName LIKE ''%' + @AreaName + '%'' OR Spy LIKE ''%' + @AreaName + '%'' OR Qpy LIKE ''%' + @AreaName + '%'')'
	END
	
	IF @letter <> ''
	BEGIN
		SET @letter = REPLACE(@letter, '''', '''''')
		SET @Where = @Where + ' AND (Spy LIKE ''' + @letter + '%'' OR Qpy LIKE ''' + @letter + '%'')'
	END

	declare @sortStr varchar(8000)
	set @sortStr = ''
	if @sortType = -1
	set @sortStr =' order by areaName'
	if @sortType= 1
	set @sortStr = ' order by areaName desc'
	if @sortType = -3
	set @sortStr = ' order by ResponseTime'
	if @sortType = 3
	set @sortStr = ' order by ResponseTime Desc'
	if @sortType = -2
	set @sortStr = ' order by DeliveryMoney'
	if @sortType = 2
	set @sortStr = ' order by DeliveryMoney desc'
	--TotoalCount
	SET @Sql = N'SELECT @TotalCountOut=Count(Id) FROM v_Shop_DeliverArea ' + @Where
	EXEC sp_executesql @Sql, N'@TotalCountOut INT OUTPUT', @TotalCountOut=@TotalCount OUTPUT

	IF @PageSize = -1 -- -1Ϊȫ
	BEGIN
		SELECT @PageIndex=1, @TotalPage=1
		SET @Sql = 'SELECT * FROM v_Shop_DeliverArea ' + @Where + ' ORDER BY Name'
	END
	ELSE
	BEGIN
		--TotalPage
		SET @TotalPage = CEILING((@TotalCount + 0.0) / @PageSize)
		
		--CheckPageIndex
		IF @PageIndex < 1 SET @PageIndex = 1
		IF @PageIndex > @TotalPage SET @PageIndex = @TotalPage

		--RowRange
		SET @StartRowId = (@PageIndex - 1) * @PageSize + 1
		set @EndRowId = @StartRowId + @PageSize - 1
		
		--SQL
		SET @Sql = 'SELECT * FROM (
			SELECT *, () OVER('+ @sortStr +') AS RowId FROM v_Shop_DeliverArea ' + @Where
			+ ') AS T WHERE RowId BETWEEN ' + CAST(@StartRowId AS VARCHAR(50)) + ' AND ' + CAST(@EndRowId AS VARCHAR(50))
	END

	EXEC (@Sql)
    --select (@sql)
	--PageInfo
	SELECT
		@PageIndex AS PageIndex, @PageSize AS PageSize,
		@TotalCount AS TotalCount, @TotalPage AS TotalPage
END













GO
/****** :  StoredProcedure [dbo].[sp_Shop_DeliverArea_getTimeMoney]    ű: 02/01/2010 14:35:24 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<ylm>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Shop_DeliverArea_getTimeMoney]
	-- Add the parameters for the stored procedure here
	@ShopId int =0,
    @AreaId int =0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	select responseTime,DeliveryMoney from v_Shop_DeliverArea where ShopId=@ShopId AND AreaId=@AreaId
END

GO
/****** :  StoredProcedure [dbo].[sp_Shop_DeliverArea_isInByAreaId]    ű: 02/01/2010 14:35:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<VENSON>
-- Create date: <2008-4-7>
-- Description:	<¥IDǷĳ̵ͷΧ>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Shop_DeliverArea_isInByAreaId]
	@ShopId bigint = 0,
	@AreaId bigint = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @TotalCount INT

    SELECT
		@TotalCount=COUNT(Id)
	FROM
		v_Shop_DeliverArea
	WHERE
		ShopId=@ShopId AND AreaId=@AreaId

	IF @TotalCount > 0
		SELECT 1
	ELSE
		SELECT 0
END

GO
/****** :  StoredProcedure [dbo].[sp_ShopCommentAdd]    ű: 02/01/2010 14:35:26 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:	wangjh
-- Create date:2008-1-3
-- Description:	ۻظ
-- =============================================
CREATE PROCEDURE  [dbo].[sp_ShopCommentAdd]
@ID int, --ظID
@Reply varchar(8000) = '', --ظϢ
@adminID int = 0, --̨ԱID
@content varchar(8000) = '', --־
@Result int = 0 output
AS
BEGIN
 SET XACT_ABORT ON  --  try  
	BEGIN  
	begin tran 
    begin
	declare @spResult int
	declare @str varchar(4000)
	set @str = ''
	exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output 
  update tbl_ShopComments set reply = @Reply where id = @ID
	set @Result =1  
	end  
	if @@error>0 
	begin 
	set @Result = 0
	ROLLBACK TRAN
	end 
    else 
    begin
    set @Result =1 
	COMMIT TRAN
	end
	select @Result
end
end

GO
/****** :  StoredProcedure [dbo].[sp_ShopCommentDelete]    ű: 02/01/2010 14:35:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_ShopCommentDelete]
@id int,
@result int=0 output
AS
begin
declare @restid int
declare @auditing int
declare @replySource int
declare @isDelete int
select @restid = shopId ,@auditing=auditing,@replySource=replySource ,@isdelete = isdelete from tbl_ShopComments where id= str(@id)
select @auditing, @replySource, @isDelete
if @auditing =0 and @replySource=0 and @isDelete = 0 --жǷ,Ƿظ
begin
update tbl_rest_manager set newMessage = newMessage -1 where restid = str(@restid)
end
update tbl_ShopComments set isDelete=-1 where id=@id
set @result=1
end
select @result



GO
/****** :  StoredProcedure [dbo].[sp_shopComments_Add]    ű: 02/01/2010 14:35:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE PROCEDURE [dbo].[sp_shopComments_Add]
@ID int,
@title varchar(50),
@shopID int,
@KPoint  int=0,--ζ
@HPoint int=0,--
@SPoint int=0,--
@personAvg [numeric](18, 2)=0,
@FPoint int=0,--ϲ
@FMenu varchar(100)='',
@classLabel varchar(100)='',
@carStation varchar(100)='',
@content text,
@userID bigint=0,
@postTime datetime,
@IP varchar(15)='',
@result int=0
AS
if @ID>0
begin
	update tbl_shopComments set title=@title, shopID=@shopID,KPoint=@KPoint,HPoint=@HPoint,SPoint=@SPoint,personAvg=@personAvg,FPoint=@FPoint,FMenu=@FMenu,classLabel=@classLabel
			,carStation=@carStation,content=@content,postTime=@postTime,ip=@IP
			where id=@ID				
	set @result=1
end
else
begin
	insert into tbl_shopComments(title,shopID,KPoint,HPoint,SPoint,personAvg,FPoint,FMenu,classLabel
	,carStation,content,userID,postTime,IP)
	values(@title,@shopID,@KPoint,@HPoint,@SPoint,@personAvg,@FPoint,@FMenu,@classLabel
	,@carStation,@content,@userID,@postTime,@IP)
	update tbl_rest_manager set newMessage = newMessage + 1 where restid = @shopid		
	set @result=2
end
select @result





GO
/****** :  StoredProcedure [dbo].[sp_shopComments_auditing]    ű: 02/01/2010 14:35:32 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_shopComments_auditing]
@ID int =0,
@auditing int=1,
@result int=0
 AS

if @ID>0
	begin
	update tbl_shopComments set auditing=@auditing where id=@ID
	set @result=1
	end
select @result
GO
/****** :  StoredProcedure [dbo].[sp_shopComments_delete]    ű: 02/01/2010 14:35:33 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_shopComments_delete]
@ID int =0,
@result int=0
 AS

if @ID>0
	begin
	update tbl_shopComments set isDelete=1 where id=@ID
	set @result=1
	end
select @result
GO
/****** :  StoredProcedure [dbo].[sp_shopComments_get]    ű: 02/01/2010 14:35:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE PROCEDURE [dbo].[sp_shopComments_get]
@ID int =0,
@shopID int =0,
@userID bigint=0,
@isAdmin int =0,
@startTime varchar(30)='',
@endTime varchar(30)='',
@auditing int=-2,
@pageIndex int=1,
@pageSize int=10
 AS
begin
declare @sqlCount varchar(8000),@sql varchar(8000),@sqlMain varchar(8000),@where varchar(8000)
set @sqlMain = ''
set @where = ''
if @id>0
	set @where = @where + ' and id=' + cast(@id as varchar(8000))
if @shopID>0
	set @where = @where + ' and shopID=' + cast(@shopID as varchar(8000))
if @userID>0
	set @where = @where + ' and userID=' + cast(@userID as varchar(8000))
if len(@startTime)>0 and len(@endTime)>0 begin
	set @where = @where + ' and postTime>=''' + cast(@startTime as varchar(8000)) + ''' and posttime<dateAdd(day,1,''' + cast(@endTime as varchar(8000)) + ''')'
end
if @auditing>-2
	set @where = @where + ' and auditing=' + cast(@auditing as varchar(8000))

set @sqlCount = ' declare @PageIndex int,@PageSize int,@TotalCount int,@TotalPage int,@startRow int,@endRow int'
set @sqlCount = @sqlCount + ' set @PageIndex=' + Cast(@PageIndex as varchar(8000))
set @sqlCount = @sqlCount + ' set @PageSize=' + Cast(@PageSize as varchar(8000))
set @sqlCount = @sqlCount + ' select @TotalCount=Count(id) from v_shopComments where 1=1 '
set @sqlCount = @sqlCount + @where 
			+ ' set @TotalPage=ceiLing((@TotalCount+0.0)/@PageSize)
				if @pageIndex<1 set @pageIndex=1
				if @pageIndex>@totalPage set @pageIndex=@totalPage
				set @startRow = (@PageIndex-1)*@PageSize+1
				set @endRow = @PageIndex*@PageSize '

set @sql = ' select * from (
	select *
		,(case when replySource=1 then ''͹ƹ'' when replySource=2 then ''ͷ'' end) as replySourceName
		,(case when replySource=1 then (select nickName from tbl_user where id=replyUserID) when replySource=2 then (select nickName from tbl_SystemUser where id=replyUserID) end) as replyUserName
		,() over(order by PostTime desc) as rows from v_shopComments where 1=1 '
	+ @where 
	+ ') as t  where rows between @startRow and @endRow '

set @sql = @sqlCount + @sql + ' select @TotalCount as TotalCount,@PageIndex as PageIndex,@PageSize as PageSize,@TotalPage as TotalPage '
exec(@sql)
--select @sql



/*if @ID>0
	select * from v_shopComments where id=@ID
else if @shopID>0	
	begin
		if @userID>0 and @isAdmin=0
			select * from v_shopComments where shopID=@shopID and userID=@userID order by postTime desc,a.id desc			
		else
			if @isAdmin=1 begin	
				if @auditing=-2 begin--ȫ
					if len(@startTime)>0 and len(@endTime)>0 begin
						select * from v_shopComments where shopID=@shopID and postTime>=@startTime and posttime<dateAdd(day,1,@endTime)order by postTime desc,a.id desc		
					end else begin
						select * from v_shopComments where shopID=@shopID order by postTime desc,a.id desc		
					end 
				end else begin
					if len(@startTime)>0 and len(@endTime)>0 begin
						select * from v_shopComments where shopID=@shopID and auditing=@auditing and postTime>=@startTime and posttime<dateAdd(day,1,@endTime)order by postTime desc,a.id desc		
					end else begin
						select * from v_shopComments where shopID=@shopID and auditing=@auditing order by postTime desc,a.id desc		
					end
				end
			end	else--ǰ̨ʾ24С֮ǰ
				select * from v_shopComments where shopID=@shopID and auditing=1 order by postTime desc,a.id desc		--a.postTime<=dateadd(hour,-12,getdate()) 
						
	end
else
	if @isAdmin=1
	if @auditing!=-2  
		select a.*,c.name as restaurantName from v_shopComments a ,tbl_restaurant c 
			where a.shopID=c.ID and a.auditing=@auditing  order by a.postTime desc,a.id desc		
	else --2ȫ
		select a.*,c.name as restaurantName from v_shopComments a ,tbl_restaurant c 
			where a.shopID=c.ID order by a.postTime desc,a.id desc		

select @@Rowcount*/

end



GO
/****** :  StoredProcedure [dbo].[sp_shopComments_getTopList]    ű: 02/01/2010 14:35:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









-- =============================================
-- Author:		<Venson>
-- Create date: <2007-7-19>
-- Description:	<ȡ͹>
-- =============================================
CREATE PROCEDURE [dbo].[sp_shopComments_getTopList]
AS
BEGIN
	SET NOCOUNT ON;

    SELECT TOP 5
		id AS Id,
		title AS Title,
		shopID AS RestId,
		userID AS UserId,
		ISNULL(nickName, '') AS NickName,
		ISNULL(sex, 0) AS Sex,
		Content,reply,
		RestName,
		PostTime
		,ReplySource
		,ReplyUserId
		,replyTime
		,(case when replySource=1 then '͹ƹ' when replySource=2 then 'ͷ' end) as replySourceName
		,(case when replySource=1 then (select nickName from tbl_user where id=replyUserID) when replySource=2 then (select nickName from tbl_SystemUser where id=replyUserID) end) as replyUserName
	FROM v_shopComments WHERE Auditing=1 ORDER BY id DESC
END










GO
/****** :  StoredProcedure [dbo].[sp_shopComments_ReplyAdd]    ű: 02/01/2010 14:35:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [dbo].[sp_shopComments_ReplyAdd]
@id bigint=0,
@reply varchar(8000),
@replySource int=0,
@replyUserId bigint=0 --1͹ݹԱظ2ͷ̨ظ
as
declare @restid int
declare @auditing int
declare @isDelete int
declare @replySource0 int
select @restid = shopId ,@auditing=auditing,@isDelete= isDelete,@replySource0=replySource from tbl_ShopComments where id= str(@id)
if @auditing =0 and @isDelete = 0 and @replySource0 = 0
begin
select @auditing
update tbl_rest_manager set newMessage = newMessage -1 where restid = str(@restid)
end
	update tbl_shopComments set reply=@reply,replySource=@replySource,replyUserID=@replyUserID,replyTime=getDate() where id=@id
	select 1




GO
/****** :  StoredProcedure [dbo].[sp_shopComments_restGet]    ű: 02/01/2010 14:35:38 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_shopComments_restGet]
@ID int =0,
@key varchar(100)=''
 AS
if @key!=''
	select * from tbl_restaurant
		 where name like '%'  +@key+ '%' and  tbl_restaurant.isDelete=0  and tbl_restaurant.state=1 
		order by name asc
if @ID>0
	select * from tbl_restaurant where id=@ID  and tbl_restaurant.isDelete=0  and tbl_restaurant.state=1

else 
	select * from tbl_restaurant where  tbl_restaurant.isDelete=0  and tbl_restaurant.state=1 order by name asc
GO
/****** :  StoredProcedure [dbo].[sp_ShopCommentSelect]    ű: 02/01/2010 14:35:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_ShopCommentSelect]
@AuditSign int =2,
@RestName varchar(8000) = ''
AS
 declare @sql varchar(8000) 
 set @sql =  'select a.*,b.name,c.nickname,c.email 
			,(case when a.replySource=1 then ''͹ƹ'' when a.replySource=2 then ''ͷ'' end) as replySourceName
			,(case when replySource=1 then (select nickName from tbl_user where id=replyUserID) when replySource=2 then (select nickName from tbl_SystemUser where id=replyUserID) end) as replyUserName	
from tbl_ShopComments a 
left join tbl_restaurant b on a.shopID=b.id
left join tbl_user c on a.userID=c.id
where a.isDelete=0'
if @RestName <> ''
begin
 set @sql = @sql + ' and b.name = '''+ @RestName +''''
end
if @AuditSign<>2
begin
 set @sql = @sql + ' and a.auditing = '+ str(@AuditSign) +''
end
	set @sql = @sql + ' order by postTime desc'
exec (@sql)
--if @AuditSign=2
--select a.*,b.name,c.nickname,c.email from tbl_ShopComments a 
--left join tbl_restaurant b on a.shopID=b.id
--left join tbl_user c on a.userID=c.id
--where a.isDelete=0  and b.name like '%@RestName%'
--order by a.id desc
--else
--begin
--select a.*,b.name,c.nickname ,c.email from tbl_ShopComments a 
--left join tbl_restaurant b on a.shopID=b.id
--left join tbl_user c on a.userID=c.id
--where a.Auditing=@AuditSign and a.isDelete=0  and b.name like '%@RestName%'
--order by a.id desc
--end 








GO
/****** :  StoredProcedure [dbo].[sp_ShopCommentUpdate]    ű: 02/01/2010 14:35:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_ShopCommentUpdate]
@id int,
@AuditSign int,
@result int=0 output
AS
begin
declare @restid int
declare @auditing int
declare @replySource int
declare @isDelete int
select @restid = shopId ,@auditing=auditing,@replySource=replySource,@isDelete = isDelete from tbl_ShopComments where id= str(@id)
if @auditing =0 and @isDelete = 0 and @replySource = 0
begin
update tbl_rest_manager set newMessage = newMessage -1 where restid = str(@restid)
end
update tbl_ShopComments set Auditing=@AuditSign where id=str(@id)
set @result=1
end
select @result





GO
/****** :  StoredProcedure [dbo].[sp_SingleOrdersDeductsReportStatis]    ű: 02/01/2010 14:35:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_SingleOrdersDeductsReportStatis]
               @SignsUser VARCHAR(50)  = '',
               @StartDate DATETIME  = '1900-1-1',
               @EndDate   DATETIME  = '9999-1-1'
AS
declare @sql varchar(8000)
BEGIN

set @sql='  
select a.RestId, a.RestName, 
OrderCount=count(*), 
OrderMoney=sum(a.total), 
OrderDeduct=sum(a.total)*d.deduct
from   
v_Order_GeneralList a  
,tbl_restaurant c 
,tbl_restSignUp d 
,tbl_systemUser b 
where  
a.state=1 
and a.restID=c.id 
and a.restID = d.restID 
and d.userid=b.id 
and a.date_time >=  ''' +  CAST(@StartDate AS VARCHAR(20)) + 
'''   and  a.date_time <  ''' + CAST(@EndDate AS VARCHAR(20)) + ''' '  
+ ' and  b.name=''' + ltrim(rtrim(@SignsUser)) + 
'''  GROUP BY a.RestId, a.RestName, d.deduct  '
EXEC( @sql)
END

GO
/****** :  StoredProcedure [dbo].[sp_SingleRestHotVegeStatis]    ű: 02/01/2010 14:35:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_SingleRestHotVegeStatis]
@restid int,
@StartDateStr datetime='1900-1-1',
@EndDateStr datetime='9999-1-1'
AS
begin

select ccc.id id,
ccc.MenuName MenuName,
sum(ccc.OrderCount) OrderCount,
sum(ccc.OrderMoney) OrderMoney
from 
(
select a.menuID id,c.name MenuName,
sum(a.amount) OrderCount,
sum(a.menuSum)  OrderMoney
from
tbl_orderDetail a 
left join tbl_order b on a.orderid=b.id
left join tbl_menuTable c on a.menuID=c.id
left join tbl_restaurant d on b.restID=d.id
where b.date_time >=  CAST(@StartDateStr as varchar(20))
and  b.date_time <  CAST(@EndDateStr as varchar(20)) 
and  d.SClassID=3 and d.id=@restid
group by a.menuID,c.name

union all

select a.menuID id,c.name MenuName,
sum(a.amount) OrderCount,
sum(a.menuSum)  OrderMoney
from
tbl_suiteMenuOrderDetail a 
left join tbl_suiteMenuOrder b on a.orderid=b.id
left join tbl_suiteMenuTable c on a.menuID=c.id
left join tbl_restaurant d on b.restID=d.id
where b.date_time >=  CAST(@StartDateStr as varchar(20))
and  b.date_time <  CAST(@EndDateStr as varchar(20)) 
and  d.SClassID=3 and d.id=@restid
group by a.menuID,c.name

) ccc
where ccc.MenuName is not null
group  by  ccc.id,ccc.MenuName
order by OrderCount desc ,OrderMoney desc
end






GO
/****** :  StoredProcedure [dbo].[sp_SingleRestOrdersBasisDateStatis]    ű: 02/01/2010 14:35:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_SingleRestOrdersBasisDateStatis]
@restid int=0,
@StartDateStr datetime='1900-1-1',
@EndDateStr datetime='9999-1-1',
@orderstate int
AS
begin
DECLARE @Sql nvarchar(4000)
DECLARE @M float

set @sql=' select @TotalMoney=sum(a.total) from v_Order_GeneralList a  '

set @sql=@sql + '  where  1=1  ' 
+ '  and  a.restid=' + str(@restid) 
+ '  and  a.deliverDate >=  ''' + cast(@StartDateStr as varchar(20))
+ '''  and  a.deliverDate <''' + cast(@EndDateStr as varchar(20)) + ''''

if @orderstate<>-2 begin 
set @sql=@sql + '  and  a.state=' + str(@orderstate)
end

EXEC sp_executesql @Sql, N'@TotalMoney float OUTPUT', @TotalMoney=@M OUTPUT

if  @M is null begin
set @M=0
end

set @sql=''
set @sql='
select  
CONVERT(varchar(100), a.deliverDate, 112) strdate,
OrderCount=count(*),
OrderMoney=sum(a.total),
TotalMoney=' + str(@M,10,2) + ' 
from v_Order_GeneralList a  '

set @sql=@sql + '  where  1=1  ' 
+ '  and  a.restid=' + str(@restid) 
+ '  and  a.deliverDate >=  ''' + cast(@StartDateStr as varchar(20))
+ '''  and  a.deliverDate <''' + cast(@EndDateStr as varchar(20)) + ''''

if @orderstate<>-2 begin 
set @sql=@sql + '  and a.state=' + str(@orderstate)
end

set @sql=@sql + '   group by CONVERT(varchar(100), a.deliverDate, 112) '

EXEC(@Sql)
end
 












GO
/****** :  StoredProcedure [dbo].[sp_SingleRestOrdersBasisDateStatisInfo]    ű: 02/01/2010 14:35:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create PROCEDURE [dbo].[sp_SingleRestOrdersBasisDateStatisInfo]
@restid int=0,
@StartDateStr datetime='1900-1-1',
@EndDateStr datetime='9999-1-1',
@orderstate int
AS
begin  
DECLARE @Sql nvarchar(4000)

set @Sql=' 
select 
a.id OrderId,
b.name restname,
c.email username,
a.date_time OrderDate,
a.total OrderMoney
from v_Order_GeneralList a 
left join tbl_restaurant b on a.restid=b.id
left join tbl_user c on a.userid=c.id  '

set @sql=@sql + '  where  1=1  ' 
+ '  and  a.restid=' + str(@restid) 
+ '  and  a.deliverDate >=  ''' + cast(@StartDateStr as varchar(20))
+ '''  and  a.deliverDate <''' + cast(@EndDateStr as varchar(20)) + ''''

if @orderstate<>-2 begin 
set @sql=@sql + '  and a.state=' + str(@orderstate)
end

EXEC(@Sql)
end
 










GO
/****** :  StoredProcedure [dbo].[sp_SingleRestOrdersGeograpDistrStatis]    ű: 02/01/2010 14:35:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_SingleRestOrdersGeograpDistrStatis]
@restid int=0,
@ProvinceId int=0,
@CityId int=0,
@RegionId int=0,
@ZoneId int=0,
@StartDateStr datetime='1900-1-1',
@EndDateStr datetime='9999-1-1',
@orderstate int,
@Sign int
AS
begin
DECLARE @Sql nvarchar(4000)
DECLARE @M  float
DECLARE @Where varchar(8000)
DECLARE @ProvinceIdStr varchar(8000)
DECLARE @CityIdStr varchar(8000)
DECLARE @RegionIdStr varchar(8000)
DECLARE @ZoneIdStr varchar(8000)
SET @ProvinceIdStr = CAST(@ProvinceId AS varchar(8000))
SET @CityIdStr = CAST(@CityId AS varchar(8000))
SET @RegionIdStr = CAST(@RegionId AS varchar(8000))
SET @ZoneIdStr = CAST(@ZoneId AS varchar(8000))
SET @Where = ''
IF @ProvinceId > 0 OR @CityId > 0 OR @RegionId > 0 OR @ZoneId > 0
BEGIN
IF @ProvinceId > 0 SET @Where = @Where + ' AND b.ProvinceId=' + @ProvinceIdStr  
IF @CityId > 0 SET @Where = @Where + ' AND b.CityId=' + @CityIdStr 
IF @RegionId > 0 SET @Where = @Where + ' AND b.RegionId=' + @RegionIdStr 
IF @ZoneId > 0 SET @Where = @Where + ' AND b.ZoneId=' + @ZoneIdStr  
END

set @sql= ' SELECT  @TotalMoney=sum(a.total) 
 from v_Order_GeneralList  a , tbl_area  b '

set @sql=@sql + '  where  a.areaID=b.id  ' 
+ @where + ' and a.restid=' + str(@restid) 
+ '  and  a.date_time >=  ''' + cast(@StartDateStr as varchar(20))
+ '''  and  a.date_time <''' + cast(@EndDateStr as varchar(20)) + ''''

if @orderstate<>-2 begin 
set @sql=@sql + ' and a.state=' + str(@orderstate)
end

EXEC sp_executesql @Sql, N'@TotalMoney float OUTPUT', @TotalMoney=@M OUTPUT

if  @M is null begin
set @M=0
end
set @sql=''
set @sql=' select c.id id,
c.name Name,
OrderCount=count(*),
OrderMoney=sum(a.total),
TotalMoney='+ str(@M,10,2) +  '  from v_Order_GeneralList a   
inner join tbl_area  b  on  a.areaID=b.id  '

if @Sign=4 begin
set @sql=@sql + '  left join tbl_area  c   on  a.areaID=c.id  ' 
end if @Sign=3 begin
set @sql=@sql + '  left join tbl_zone  c  on  b.zoneID=c.id  ' 
end if @Sign=2 begin
set @sql=@sql + '  left join tbl_region c  on b.regionID=c.id  ' 
end if @Sign=1 begin
set @sql=@sql + '  left join tbl_city   c  on b.cityID=c.id  ' 
end

set @sql=@sql + '  where  a.restid=' + str(@restid) 
+ ' and  a.date_time >=  ''' + cast(@StartDateStr as varchar(20))
+ '''  and  a.date_time <''' + cast(@EndDateStr as varchar(20)) + ' ''' 
+ @where

if @orderstate<>-2 begin 
set @sql=@sql + ' and a.state=' + str(@orderstate)
end

set @sql=@sql + ' and  c.name is not null  group by c.id,c.name '

EXEC(@Sql)
end


















GO
/****** :  StoredProcedure [dbo].[sp_SingleRestOrdersGeograpDistrStatisInfo]    ű: 02/01/2010 14:35:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_SingleRestOrdersGeograpDistrStatisInfo]
@restid int=0,
@ProvinceId int=0,
@CityId int=0,
@RegionId int=0,
@ZoneId int=0,
@StartDateStr datetime='1900-1-1',
@EndDateStr datetime='9999-1-1',
@orderstate int,
@Sign int,
@GeograpId int
AS
begin
DECLARE @Sql nvarchar(4000)
DECLARE @M int
DECLARE @Where varchar(8000)
DECLARE @ProvinceIdStr varchar(8000)
DECLARE @CityIdStr varchar(8000)
DECLARE @RegionIdStr varchar(8000)
DECLARE @ZoneIdStr varchar(8000)
SET @ProvinceIdStr = CAST(@ProvinceId AS varchar(8000))
SET @CityIdStr = CAST(@CityId AS varchar(8000))
SET @RegionIdStr = CAST(@RegionId AS varchar(8000))
SET @ZoneIdStr = CAST(@ZoneId AS varchar(8000))
SET @Where = ''
IF @ProvinceId > 0 OR @CityId > 0 OR @RegionId > 0 OR @ZoneId > 0
BEGIN
IF @ProvinceId > 0 SET @Where = @Where + ' AND b.ProvinceId=' + @ProvinceIdStr + ' AND '
IF @CityId > 0 SET @Where = @Where + ' b.CityId=' + @CityIdStr + ' AND '
IF @RegionId > 0 SET @Where = @Where + ' b.RegionId=' + @RegionIdStr + ' AND '
IF @ZoneId > 0 SET @Where = @Where + ' b.ZoneId=' + @ZoneIdStr + ' AND '
SET @Where = SUBSTRING(@Where, 1, LEN(@Where)-4)
END

set @sql=' select c.email username,
a.id OrderId,
a.date_time OrderDate,
a.total OrderMoney
from v_Order_GeneralList a
left join  tbl_area b on a.areaID=b.id  
left join tbl_user c on a.userid=c.id  '

set @sql=@sql + ' where  1=1  ' 
+ @where + ' and a.restid=' + str(@restid) 
+ ' and  a.date_time >=  ''' + cast(@StartDateStr as varchar(20))
+ '''  and  a.date_time <''' + cast(@EndDateStr as varchar(20)) + ''''

if @orderstate<>-2 begin 
set @sql=@sql + ' and a.state=' + str(@orderstate)
end

if @Sign=4 begin
set @sql=@sql + '  and a.areaID='+ str(@GeograpId) 
end if @Sign=3 begin
set @sql=@sql + '  and b.zoneID='+ str(@GeograpId) 
end if @Sign=2 begin
set @sql=@sql + '  and b.regionID='+ str(@GeograpId) 
end if @Sign=1 begin
set @sql=@sql + '  and b.cityID='+ str(@GeograpId) 
end

EXEC(@Sql)
end
 












GO
/****** :  StoredProcedure [dbo].[sp_SingleRestOrdersStatis]    ű: 02/01/2010 14:35:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_SingleRestOrdersStatis]
@restid int,
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1',
@ordertype int,
@uniontype int
AS
begin
declare @sql varchar(8000)

set @sql= '
select substring(CONVERT(varchar(100),a.date_time, 112),1,6) datestr,
OrderCount=count(*),
OrderMoney=sum(a.total)
from v_Order_GeneralList a
where a.date_time >= ''' + cast(@StartDate as varchar(20)) + 
''' and a.date_time <  ''' +  cast(@EndDate as varchar(20)) + ''''

set @sql=@sql + '  and a.state=1  and a.restid='+ str(@restid)

if @uniontype<>0 begin
   if @uniontype=1 begin
   set @sql=@sql + '
and 
(
a.restid in ( select mainRestID  from tbl_restChainRelation )
or
a.restid in ( select restID from tbl_restChainRelation )
) '
   end  else begin
    set @sql=@sql + '
and 
(
a.restid not  in ( select mainRestID  from tbl_restChainRelation )
and 
a.restid not  in ( select restID from tbl_restChainRelation )
) '
   end
end


if @ordertype<>0 begin
   if @ordertype=1 begin
   set @sql=@sql + '  and 
(
(select count(*) from tbl_suiteMenuOrderDetail where orderID=a.id)=1 
or 
(select count(*) from tbl_orderDetail where orderID=a.id)=1
 ) 
 '
   end  else begin
    set @sql=@sql +  '  and 
(
(select count(*) from tbl_suiteMenuOrderDetail where orderID=a.id)>1 
or 
(select count(*) from tbl_orderDetail where orderID=a.id)>1
 ) 
 '
   end
end

set @sql=@sql + '  group by substring(CONVERT(varchar(100),a.date_time, 112),1,6)'
set @sql=@sql+ ' order by substring(CONVERT(varchar(100),a.date_time, 112),1,6)'
Exec(@sql)
end












GO
/****** :  StoredProcedure [dbo].[sp_SingleRestUserRankStatis]    ű: 02/01/2010 14:35:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_SingleRestUserRankStatis]
@restid int,
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1'
AS
begin

select a.userid userid,
b.email username,
b.nickname nickname,
sum(a.total) OrderMoney,
OrderCount=count(*)
from  v_Order_GeneralList a
LEFT JOIN  tbl_user b on a.userid=b.id
where a.restid=@restid 
and a.date_time >= @StartDate 
and  a.date_time < @EndDate 
group by a.userid,b.email,b.nickname
order by OrderMoney desc
 
END












GO
/****** :  StoredProcedure [dbo].[sp_SingleRestUserRankStatisInfo]    ű: 02/01/2010 14:35:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_SingleRestUserRankStatisInfo]
@restid int,  
@userid int,
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1'
AS
begin
 
select b.email UserName,a.id orderid,a.date_time ordertime,
a.total orderMoney,a.restname restname
FROM v_Order_GeneralList a
LEFT JOIN tbl_user b on a.userid=b.id  
where  a.date_time >= @StartDate 
and  a.date_time < @EndDate 
and  a.userid = @userid 
and  a.restid = @restid
 
END






GO
/****** :  StoredProcedure [dbo].[sp_SingleSignsDeductsReportStatis]    ű: 02/01/2010 14:35:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_SingleSignsDeductsReportStatis]
               @SignsUserName VARCHAR(50)  = '',
               @StartDate     DATETIME  = '1900-1-1',
               @EndDate       DATETIME  = '9999-1-1'
AS
  BEGIN
    SELECT b.Name AS RestName,
           a.GetMoney AS Deducts
    FROM   Tbl_RestSignUp a
           LEFT JOIN Tbl_Restaurant b
             ON a.RestId = b.Id
           LEFT JOIN Tbl_SystemUser c
             ON a.UserId = c.Id
    WHERE  c.Name = ltrim(rtrim(@SignsUserName))
           AND a.Date_Time >= @StartDate
                                   AND a.Date_Time < @EndDate
order by  Deducts desc 
  END





GO
/****** :  StoredProcedure [dbo].[sp_SingleUnionOrdersStatis]    ű: 02/01/2010 14:35:56 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_SingleUnionOrdersStatis]
@ProvinceID int=0,
@CityID int=0,
@RegionID int=0,
@ZoneID int=0,
@AreaID int=0,
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1'
AS
begin
DECLARE @Sql nvarchar(4000)
DECLARE @Where varchar(8000)
DECLARE @ProvinceIdStr varchar(8000)
DECLARE @CityIdStr varchar(8000)
DECLARE @RegionIdStr varchar(8000)
DECLARE @ZoneIdStr varchar(8000)
DECLARE @AreaIdStr varchar(8000)
SET @ProvinceIdStr = CAST(@ProvinceID AS varchar(8000))
SET @CityIdStr = CAST(@CityID AS varchar(8000))
SET @RegionIdStr = CAST(@RegionID AS varchar(8000))
SET @ZoneIdStr = CAST(@ZoneID AS varchar(8000))
SET @AreaIdStr = CAST(@AreaID AS varchar(8000))
SET @Where = ''
IF @ProvinceID > 0 OR @CityID > 0 OR @RegionID > 0 OR @ZoneID > 0 OR @AreaID > 0
BEGIN
IF @ProvinceId > 0 SET @Where = @Where + ' AND  b.ProvinceId=' + @ProvinceIdStr + ' AND '
IF @CityId > 0 SET @Where = @Where + ' b.CityId=' + @CityIdStr + ' AND '
IF @RegionId > 0 SET @Where = @Where + ' b.RegionId=' + @RegionIdStr + ' AND '
IF @ZoneId > 0 SET @Where = @Where + ' b.ZoneId=' + @ZoneIdStr + ' AND '
IF @AreaID > 0 SET @Where = @Where + ' b.areaId=' + @AreaIdStr + ' AND '
SET @Where = SUBSTRING(@Where, 1, LEN(@Where)-4)
END
/*1:|2:϶|3:ȫ*/
set @sql='  select OrderType=1,count(*) OrderCount,sum(a.total) OrderMoney
from v_Order_GeneralList a
left join tbl_area b on a.areaID=b.id  '
set @sql=@sql + ' where  a.date_time >= ''' + cast(@StartDate as varchar(20)) + '''  
and  a.date_time < ''' + cast(@EndDate as varchar(20)) + ''''
set @sql=@sql +'  and ((select count(*) from tbl_orderDetail where orderID=a.id)=1  
or (select count(*) from tbl_suiteMenuOrderDetail where orderID=a.id)=1)  and a.state=1 '
set @sql=@sql + space(5) + @where 
/*1:|2:϶|3:ȫ*/
set @sql=@sql + '  union all select OrderType=2,count(*) OrderCount,sum(a.total) OrderMoney
from v_Order_GeneralList a
left join tbl_area b on a.areaID=b.id  '
set @sql=@sql + ' where  a.date_time >= ''' + cast(@StartDate as varchar(20)) + '''  
and  a.date_time < ''' + cast(@EndDate as varchar(20)) + ''''
set @sql=@sql +'  and ((select count(*) from tbl_orderDetail where orderID=a.id)>1  
or (select count(*) from tbl_suiteMenuOrderDetail where orderID=a.id)>1)  and a.state=1 '
set @sql=@sql + space(5) + @where 
/*1:|2:϶|3:ȫ*/
set @sql=@sql + '  union all  select OrderType=3,count(*) OrderCount,sum(a.total) OrderMoney
from v_Order_GeneralList a
left join tbl_area b on a.areaID=b.id  '
set @sql=@sql + ' where  a.date_time >= ''' + cast(@StartDate as varchar(20)) + '''  
and  a.date_time < ''' + cast(@EndDate as varchar(20)) + '''  and a.state=1 '
set @sql=@sql + space(5) + @where 
EXEC(@Sql)
end
 











GO
/****** :  StoredProcedure [dbo].[sp_SingleUnionOrdersStatisInfo]    ű: 02/01/2010 14:35:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_SingleUnionOrdersStatisInfo]
@ProvinceID int=0,
@CityID int=0,
@RegionID int=0,
@ZoneID int=0,
@AreaID int=0,
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1',
@Sign int=3
/*@Sign 1:|2:϶|3:ȫ*/
AS
begin
DECLARE @Sql nvarchar(4000)
DECLARE @Where varchar(8000)
DECLARE @ProvinceIdStr varchar(8000)
DECLARE @CityIdStr varchar(8000)
DECLARE @RegionIdStr varchar(8000)
DECLARE @ZoneIdStr varchar(8000)
DECLARE @AreaIdStr varchar(8000)
SET @ProvinceIdStr = CAST(@ProvinceID AS varchar(8000))
SET @CityIdStr = CAST(@CityID AS varchar(8000))
SET @RegionIdStr = CAST(@RegionID AS varchar(8000))
SET @ZoneIdStr = CAST(@ZoneID AS varchar(8000))
SET @AreaIdStr = CAST(@AreaID AS varchar(8000))
SET @Where = ''
IF @ProvinceID > 0 OR @CityID > 0 OR @RegionID > 0 OR @ZoneID > 0 OR @AreaID > 0
BEGIN
IF @ProvinceId > 0 SET @Where = @Where + ' AND b.ProvinceId=' + @ProvinceIdStr + ' AND '
IF @CityId > 0 SET @Where = @Where + ' b.CityId=' + @CityIdStr + ' AND '
IF @RegionId > 0 SET @Where = @Where + ' b.RegionId=' + @RegionIdStr + ' AND '
IF @ZoneId > 0 SET @Where = @Where + ' b.ZoneId=' + @ZoneIdStr + ' AND '
IF @AreaID > 0 SET @Where = @Where + ' b.areaId=' + @AreaIdStr + ' AND '
SET @Where = SUBSTRING(@Where, 1, LEN(@Where)-4)
END
set @sql='
select a.id orderid,a.RestName restname,
a.OrderType ordertype,a.orderContent orderContent,
a.total total,a.date_time date_time 
from v_Order_GeneralList a
left join tbl_area b on a.areaID=b.id    where  1=1  and  a.state=1 
 and  a.date_time >= ''' + cast(@StartDate as varchar(20)) + 
'''  and  a.date_time < ''' + cast(@EndDate as varchar(20)) + ''''

if @Sign=1 begin
set @sql=@sql+ '  and   ((select count(*) from tbl_orderDetail where orderID=a.id)=1  
or (select count(*) from tbl_suiteMenuOrderDetail where orderID=a.id)=1) '
end 

if @Sign=2 begin
set @sql=@sql+ '  and   ((select count(*) from tbl_orderDetail where orderID=a.id)>1  
or (select count(*) from tbl_suiteMenuOrderDetail where orderID=a.id)>1) '
end 

set @sql=@sql+ space(5)+ @where

EXEC(@Sql)
end


















GO
/****** :  StoredProcedure [dbo].[sp_SingleUserOrderStatis]    ű: 02/01/2010 14:36:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_SingleUserOrderStatis]
@restid int=0,
@StartDateStr datetime='1900-1-1',
@EndDateStr datetime='9999-1-1',
@orderstate int,
@username varchar(8000)=''
/*
 * @orderstate  -1   0  1  2 
 */
AS
begin

DECLARE @Sql nvarchar(4000)

set @sql=' 
select  
substring(CONVERT(varchar(100),a.date_time, 112),1,6) datestr,
count(*) OrderCount,
sum(a.total) OrderMoney
from v_Order_GeneralList a  
left join  tbl_user b on a.userid=b.id '

set @sql=@sql + '   where  1=1  and  a.date_time >= ''' +
cast(@StartDateStr as varchar(20)) +  '''  and  a.date_time <  ''' + 
cast(@EndDateStr as varchar(20)) + ''''

if @restid<>0 begin
set @sql=@sql + '   and  a.restid=' + str(@restid)
end

if @orderstate<>-2 begin
set @sql=@sql + '   and  a.state=' + str(@orderstate)
end

set @sql=@sql + '   and  b.email=''' + ltrim(rtrim(@username)) + 
'''  group by substring(CONVERT(varchar(100),a.date_time, 112),1,6)'

EXEC(@Sql)
end

















GO
/****** :  StoredProcedure [dbo].[sp_SingleUserOrderStatisInfo]    ű: 02/01/2010 14:36:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_SingleUserOrderStatisInfo]
@restid int=0,
@orderstate int,
@username varchar(8000)='',
@StartDateStr datetime='1900-1-1',
@EndDateStr datetime='9999-1-1'
/*
 * @orderstate  -1   0  1  2 
 */
AS
begin
DECLARE @Sql nvarchar(4000)

set @sql='
select a.id orderid,a.RestName restname,
a.OrderType ordertype,a.orderContent orderContent,
a.total total,a.date_time date_time 
from v_Order_GeneralList a
left join tbl_restaurant b on a.restID=b.id
left join tbl_user c on a.userid=c.id   
'

set @sql=@sql + '   where  1=1  and  a.date_time >= ''' +
cast(@StartDateStr as varchar(20)) +  '''  and  a.date_time <  ''' + 
cast(@EndDateStr as varchar(20)) + ''''

if @restid<>0 begin
set @sql=@sql + '   and  a.restid=' + str(@restid)
end

if @orderstate<>-2 begin
set @sql=@sql + '   and  a.state=' + str(@orderstate)
end

set @sql=@sql + '   and  c.email=''' + ltrim(rtrim(@username)) + ''''

EXEC(@Sql)
end


















GO
/****** :  StoredProcedure [dbo].[sp_SMSHistory_get]    ű: 02/01/2010 14:36:03 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_SMSHistory_get]
@orderID bigint=0,
@mobile varchar(20)='',
@startTime varchar(30)='',
@endTime varchar(30)='',
@resultClass int=0, --0Ϊȫ,1Ϊɹ,-1Ϊɹ
@ClassID int=-1,--0Ϊ,1Ϊ,-1Ϊȫ
@orderBy int=0, -- 0ΪID,1Ϊ,2Ϊֻ
@orderByClass int=1 -- 0Ϊ,1Ϊݼ 
AS
begin	
	
	declare @sql varchar(8000)
	declare @where varchar(8000)	
	declare @strOrderBy varchar(8000)
	set @where = ''
	set @strOrderBy = ''
	set @sql = 'select a.*,(case when a.classID=0 then '''' when a.classID=1 then '''' end) as className from tbl_SMSHistory a '
	if @orderID>0
		set @where = @where + ' and a.orderID like ''' + cast(@orderID as varchar(8000)) + '%'''
	if len(@mobile)>0		
		set @where = @where + ' and a.mobile like ''%' + @mobile + '%'''
	if len(@startTime)>5 and len(@endTime)>5
		set @where = @where + ' and (a.sendTime between ''' + @startTime + ''' and dateAdd(d,1,''' + @endTime + '''))'	
	if @ClassID>-1
		set @where = @where + ' and a.classID='+cast(@ClassID as varchar(8000))
	
	if @resultClass = -1
		set @where = @where + ' and a.result != 0'			
	else if @resultClass = 1	
		set @where = @where + ' and a.result = 0'
	/*  */
	if @orderBy=0 
		set @strOrderBy = ' a.id '
	else if @orderBy=1
		set @strOrderBy = ' a.orderID '
	else if @orderBy=2
		set @strOrderBy = ' a.mobile '
	else 
		set @strOrderBy = ' a.id '
	
	/* 0/1ݼ  */
	if @orderByClass=0
		set @strOrderBy = @strOrderBy + 'asc'
	else if @orderByClass=1
		set @strOrderBy = @strOrderBy + 'desc'

	set @sql=@sql + ' where  0=0 '+ @where + ' order by ' + @strOrderBy
	
	exec(@sql)

	select @@rowcount
end


GO
/****** :  StoredProcedure [dbo].[sp_smsStatus_add]    ű: 02/01/2010 14:36:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







CREATE PROCEDURE  [dbo].[sp_smsStatus_add]
@id bigint=0,
@classID int=0,
@msgid varchar(20)='',
@mobile varchar(20)='',
@subSn int=0,
@status int=0
AS
declare @result int
if @id>0 begin
	update tbl_smsStatus set classID=@classID, msgid=@msgID,mobile=@mobile,subSn=@subSn,status=@status where id=@id
	set @result=@id
end else begin
	insert into tbl_smsStatus(classID,msgid,mobile,subSn,status) values(@classID,@msgid,@mobile,@subSn,@status)
	set @result=@@identity
end
select @result







GO
/****** :  StoredProcedure [dbo].[sp_smsStatus_get]    ű: 02/01/2010 14:36:06 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










CREATE PROCEDURE  [dbo].[sp_smsStatus_get]
@id bigint=0,
@classID int=-1,--0,1
@msgid varchar(20)='',
@mobile varchar(20)='',
@subSn int=-1,
@status int=-1,
@state int=-1,
@startTime varchar(30)='',
@endTime varchar(30)=''
AS
declare @sql varchar(8000)
declare @where varchar(8000)	
declare @strOrderBy varchar(8000)
set @where = ''
set @strOrderBy = ''
set @sql = 'select a.*,(case when a.classID=0 then '''' when a.classID=1 then '''' end) as className,b.orderID,b.message from tbl_smsStatus a '
set @sql = @sql + ' left join tbl_smshistory b on b.id=(case when isnumeric(a.msgid)=1 then a.msgid else ''0'' end)'

if @id>0
	set @where = @where + ' and a.classID=' + cast(@id as varchar(8000))
if @classID>-1
	set @where = @where + ' and a.classID=' + cast(@classID as varchar(8000))
if len(@msgid)>0
	set @where = @where + ' and a.msgid='''+@msgid + ''''
if len(@mobile)>0		
	set @where = @where + ' and a.mobile=''' + @mobile + ''''
--if @subSn>-1		
	--set @where = @where + ' and a.subSn=' + cast(@subSn as varchar(8000))
--if @status>-1		
--	set @where = @where + ' and a.status=' + cast(@status as varchar(8000))
if @state>-1		
	set @where = @where + ' and a.state=' + cast(@state as varchar(8000))

if len(@startTime)>5 and len(@endTime)>5
	set @where = @where + ' and (a.date_time between ''' + @startTime + ''' and dateAdd(d,1,''' + @endTime + '''))'	
set @sql=@sql + ' where 1=1 ' + @where + ' order by a.id desc '
exec(@sql)
select @@rowCount









GO
/****** :  StoredProcedure [dbo].[sp_smsStatus_updateState]    ű: 02/01/2010 14:36:08 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE PROCEDURE  [dbo].[sp_smsStatus_updateState]
@id bigint=0,
@state int=0
AS
	update tbl_smsStatus set state=@state where id=@id
select 1




GO
/****** :  StoredProcedure [dbo].[sp_Space_indexPopSpace]    ű: 02/01/2010 14:36:10 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_Space_indexPopSpace]
@top int
AS

DECLARE @sql VARCHAR(8000)
set   @sql='select top '+cast(@top   as   varchar)+'  tp.userID,tu.nickName,td.spaceName,sex,td.note,tu.photo,tr.name city,ti.integral,td.truename from 
((((tbl_topPerson tp join tbl_user tu on tp.userID=tu.id) join tbl_userdetail td on tu.id=td.id)) 
join tbl_userIntegral ti on ti.userID=tu.id)
left join regionAll tr on tr.code=tu.regionID
 order by tp.orderNumber'  
		 
  EXEC (@sql)   

GO
/****** :  StoredProcedure [dbo].[sp_SpreadDepthIntegralRuleAdd]    ű: 02/01/2010 14:36:10 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







--***********************
--Autor:wjh
--datetime:2007-11-23
--description:ƹûֲûֱ
--************************
--drop proc [sp_SpreadDepthIntegralRuleAdd]
CREATE PROCEDURE [dbo].[sp_SpreadDepthIntegralRuleAdd]
@classID int,
@num int,
@rate float,
@adminID int = 0,
@content varchar(8000),
@result int=0  output
AS
SET XACT_ABORT ON  --  try  
    begin
    begin tran
	declare @spResult int
	declare @str varchar(4000)
set @str = ''

if (select count(*) from tbl_SpreadDepthIntegralRule where isDelete=0 and num = @num and classID = @classID)=0
 begin
    exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output 
   insert into tbl_SpreadDepthIntegralRule(classID,num,rate) 
values(@classID,@num,@rate)
      if @@error=0 begin
      set @result=1
      end  else begin
      set @result=0 end
end 

end  
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result















GO
/****** :  StoredProcedure [dbo].[sp_SpreadDepthIntegralRuleDelete]    ű: 02/01/2010 14:36:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









--***********************
--Autor:wjh
--datetime:2007-11-23
--description:ƹûֲûֱɾ
--************************
--drop proc [sp_SpreadDepthIntegralRuleAdd]
CREATE PROCEDURE [dbo].[sp_SpreadDepthIntegralRuleDelete]
@id int,
@adminID int = 0,
@content varchar(8000),
@result int = 0 output
AS
SET XACT_ABORT ON  --  try  
    begin
    begin tran
	declare @spResult int
	declare @str varchar(4000)
set @str = ''
exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
 update tbl_SpreadDepthIntegralRule set isdelete = 1 where id = @id
 if @@error = 0
 begin
   set @result = 1
 end

end  
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result



















GO
/****** :  StoredProcedure [dbo].[sp_SpreadDepthIntegralRuleSelect]    ű: 02/01/2010 14:36:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








--***********************
--Autor:wjh
--datetime:2007-11-23
--description:ƹûֲûֱ
--************************
--drop proc [sp_SpreadDepthIntegralRuleAdd]
CREATE PROCEDURE [dbo].[sp_SpreadDepthIntegralRuleSelect]
@id int = 0,
@classID int = 0
AS
declare @sql varchar(8000)
set @sql = 'select * from tbl_SpreadDepthIntegralRule 
where isDelete=0'
if @id <> 0 
begin
 set @sql = @sql + ' and id ='+ str(@id) +''
end
if @classID <> 0 
begin
 set @sql = @sql +' and classID = '+ str(@classID) +''
end
set @sql = @sql + ' order by num'
exec (@sql)
select @@rowcount





















GO
/****** :  StoredProcedure [dbo].[sp_SpreadDepthIntegralRuleUpdate]    ű: 02/01/2010 14:36:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








--***********************
--Autor:wjh
--datetime:2007-11-23
--description:޸ƹûֲûֱ
--************************
--drop proc [sp_SpreadDepthIntegralRuleAdd]
CREATE PROCEDURE [dbo].[sp_SpreadDepthIntegralRuleUpdate]
@id int,
@classID int,
@num int,
@rate float = 0,
@adminID int = 0,
@content varchar(8000),
@result int=0  output
AS
SET XACT_ABORT ON  --  try  
    begin
    begin tran
	declare @spResult int
	declare @str varchar(4000)
set @str = ''
     if (select count(*) from tbl_SpreadDepthIntegralRule where isDelete=0 and num = @num and classID = @classID and id <> @ID)>0
      begin set @result = 2 end
  
   if @result <> 2
  begin
 exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
   update tbl_SpreadDepthIntegralRule set rate = @rate ,num = @num
  where classID = @classID and id = @id
      if @@error=0 begin
      set @result=1
      end  else begin
      set @result=0 end
   end

end  
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result















GO
/****** :  StoredProcedure [dbo].[sp_SpreadDepthRuleAdd]    ű: 02/01/2010 14:36:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









--***********************
--Autor:wjh
--datetime:2007-11-23
--description:ƹûȹ
--************************
CREATE PROCEDURE [dbo].[sp_SpreadDepthRuleAdd]
@name varchar(8000)='',
@startTime varchar(120),
@endTime varchar(120),
@depth float = 0,
@note varchar(8000),
@adminID int = 0,
@content varchar(8000),
@result int=0  output
AS

SET XACT_ABORT ON  --  try  
    begin
    begin tran
	declare @spResult int
	declare @str varchar(4000)
set @str = ''
if (select count(*) from tbl_SpreadDepthRule where isDelete=0 )=0
 begin
     exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
   insert into tbl_SpreadDepthRule(name,startTime,endTime,depth) 
values(@name,@startTime,@endTime,@depth)
      if @@error=0 begin
      set @result=1
      end  else begin
      set @result=0 end
end 
else 
begin 
     exec sp_IntegralRangCheck 0,'tbl_SpreadDepthRule',@startTime,@endTime
if @@rowCount = 0 
begin
 exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
     insert into tbl_SpreadDepthRule(name,startTime,endTime,depth) 
values(@name,@startTime,@endTime,@depth)
          if @@error=0 begin
          set @result=1
          end else begin
          set @result=0 end
    end  else begin
    set @result=0 end
end 

end  
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result

















GO
/****** :  StoredProcedure [dbo].[sp_SpreadDepthRuleDelete]    ű: 02/01/2010 14:36:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO












--***********************
--Autor:wjh
--datetime:2007-11-23
--description:ƹûȹɾ
--************************
CREATE PROCEDURE [dbo].[sp_SpreadDepthRuleDelete]
@id int = 0,
@adminID int = 0,
@content varchar(8000),
@result int  =0 output
AS
SET XACT_ABORT ON  --  try  
    begin
    begin tran
	declare @spResult int
	declare @str varchar(4000)
set @str = ''
   exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
update tbl_SpreadDepthRule set isdelete = 1 where id = @id
if @@error = 0
begin set @result = 1 end

end  
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result





















GO
/****** :  StoredProcedure [dbo].[sp_SpreadDepthRuleSelect]    ű: 02/01/2010 14:36:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










--***********************
--Autor:wjh
--datetime:2007-11-23
--description:ƹûȹѯ
--************************
CREATE PROCEDURE [dbo].[sp_SpreadDepthRuleSelect]
@id int = 0
AS
   declare @sql varchar(8000)
set @sql =' select id,name,depth,note,Convert(varchar(10),startTime,120) as startTime ,Convert(varchar(10),endTime,120) as endTime from  tbl_SpreadDepthRule  where isdelete = 0 order by startTime desc'
if @id <> 0
begin
 set @sql = @sql + ' and id = @id'
end
exec(@sql)
select @@rowcount




















GO
/****** :  StoredProcedure [dbo].[sp_SpreadDepthRuleUpdate]    ű: 02/01/2010 14:36:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










--***********************
--Autor:wjh
--datetime:2007-11-23
--description:ƹûȹ޸
--************************
CREATE PROCEDURE [dbo].[sp_SpreadDepthRuleUpdate]
@id int,
@name varchar(8000)='',
@startTime varchar(8000),
@endTime varchar(8000),
@depth int = 0,
@note varchar(8000),
@adminID int = 0,
@content varchar(8000),
@result int=0  output
AS
SET XACT_ABORT ON  --  try  
    begin
    begin tran
	declare @spResult int
	declare @str varchar(4000)
set @str = ''
     exec sp_IntegralRangCheck @id,'tbl_SpreadDepthRule',@startTime,@endTime
if @@rowCount = 0 
begin
exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
     update tbl_SpreadDepthRule set name = @name,startTime = @startTime,
endTime = @endTime,Depth = @Depth,note = @note where id = @id 
          if @@error=0 begin
          set @result=1
          end else begin
          set @result=0 end
    end  else begin
    set @result=0 end 

end  
IF @@Error<>0
BEGIN
set @Result = 0
ROLLBACK TRANSACTION--ع
END
ELSE
BEGIN
set @Result = 1
COMMIT TRANSACTION--ύ
END
select @Result


















GO
/****** :  StoredProcedure [dbo].[sp_statOrder2Day]    ű: 02/01/2010 14:36:23 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_statOrder2Day]
@statDate varchar(10)
 AS
declare @restID int
set @restID=0
declare @orderAmount int,@sOrderAmount int,@fOrderAmount int,@nOrderAmount int
declare @statMoney float,@SStatMoney float,@FStatMoney float,@NStatMoney float,@realStatMoney float
declare fulfill cursor for select distinct restid  from tbl_order where date_time between @statDate and dateadd(d,1,@statDate)
open fulfill
fetch next from fulfill into @restID
while (@@fetch_status=0)
	begin
	select @orderAmount=count(*)
	from tbl_order
	 where restID=@restID and date_time between @statDate and dateadd(d,1,@statDate)

	select @statMoney=COALESCE(sum(COALESCE(total,0)),0)
	from tbl_order
	 where restID=@restID and date_time between @statDate and dateadd(d,1,@statDate)

	select @SStatMoney=COALESCE(sum(COALESCE(total,0)),0)
	from tbl_order
	 where restID=@restID and date_time between @statDate and dateadd(d,1,@statDate) and state=1

	select @SOrderAmount=count(*)
	from tbl_order
	 where restID=@restID and date_time between @statDate and dateadd(d,1,@statDate) and state=1

	select @FStatMoney=COALESCE(sum(COALESCE(total,0)),0)
	from tbl_order
 	where restID=@restID and date_time between @statDate and dateadd(d,1,@statDate) and state=-1

	select @FOrderAmount=count(*)
	from tbl_order
	 where restID=@restID and date_time between @statDate and dateadd(d,1,@statDate) and state=-1
	select @NStatMoney=COALESCE(sum(COALESCE(total,0)),0)
	from tbl_order
	 where restID=@restID and date_time between @statDate and dateadd(d,1,@statDate) and state=0

	select @NOrderAmount=count(*)
	from tbl_order
	 where restID=@restID and date_time between @statDate and dateadd(d,1,@statDate) and state=0
	--select @orderAmount,@statMoney,@SOrderAmount,@SStatMoney,@FOrderAmount,@FOrderAmount,@NOrderAmount,@NStatMoney,@restID

--select count(*) from tbl_restOrderStat where restID=@restID and convert(varchar,statDate,112)=convert(varchar,convert(datetime,@statDate),112)
	delete from tbl_restOrderStat where restID=@restID and convert(varchar,statDate,112)=convert(varchar,convert(datetime,@statDate),112)
	insert into tbl_restOrderStat(restID,statDate,orderAmount,SOrderAmount,ForderAmount,NOrderAmount,statMoney,SStatMoney,FStatMoney,NstatMoney)
	values(@restID,@statDate,@orderAmount,@SOrderAmount,@FOrderAmount,@NOrderAmount,@statMoney,@SStatMoney,@FStatMoney,@NstatMoney)

fetch next from fulfill into @restID
end
CLOSE fulfill 
deallocate fulfill
GO
/****** :  StoredProcedure [dbo].[sp_suiteMenuAdd]    ű: 02/01/2010 14:36:24 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE  [dbo].[sp_suiteMenuAdd]
@restID int =0,
@id int=0,
@classID int,
@name varchar(40),
@mainNote  varchar(50),
@Calorie varchar(10),
@Pabulum varchar(30),
@Taste varchar(40),
@photo varchar(100),
@note text,
@orderNumber int,
@result int =0 output
AS
if @id>0 and @restID>0
begin
 	 if(right(@photo,6)='df.jpg')
	update tbl_suiteMenuTable set classID=@classID,name=@name,calorie=@calorie,
	pabulum=@pabulum,taste=@taste,note=@note,mainNote=@mainNote,orderNumber=@orderNumber
	where id=@id
	else
	update tbl_suiteMenuTable set classID=@classID,name=@name,calorie=@calorie,
	pabulum=@pabulum,taste=@taste,note=@note,photoAddr=@photo,mainNote=@mainNote,orderNumber=@orderNumber
	where id=@id
	select 1
end
else
begin
	insert into tbl_suiteMenuTable(restID,classID,name,mainNote,calorie,pabulum,taste,photoAddr,note,orderNumber)
	values(@restID,@classID,@name,@mainNote,@calorie,@pabulum,@taste,@photo,@note,@orderNumber)
	select 2
end
select @result
GO
/****** :  StoredProcedure [dbo].[sp_suiteMenuClassAdd]    ű: 02/01/2010 14:36:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_suiteMenuClassAdd] 
@id int,
@restID int,
@className nvarchar(30),
@remark text='',
@deliverDay int=0,
@orderNumber int=0,
@isReserve int=0
 AS
if (select count(*) from tbl_suiteMenuClass where name=@className and id<>@ID and restID=@restID  and isdelete=0)=0
begin
	if @id>0
		begin
		    update tbl_suiteMenuClass set Name=@className,note=@remark,dayID=@deliverDay,orderNumber=@orderNumber,isReserve=@isReserve where id=@id
		    select 1
		end
	else
			begin
			update tbl_suiteMenuClass set orderNumber=ordernumber+1 where restID=@restID and orderNumber>@orderNumber and ordernumber<=10
			insert into tbl_suiteMenuClass(restID,Name,orderNumber,note,dayID,isReserve)values(@restID,@className,@orderNumber,@remark,@deliverDay,@isReserve)
			select 2
			end
end
else
 select 0



GO
/****** :  StoredProcedure [dbo].[sp_suiteMenuClassDelete]    ű: 02/01/2010 14:36:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_suiteMenuClassDelete]
@ID int
 AS
if @id>0 begin
	update tbl_suiteMenuClass set isDelete=1 where id=@id
	select 1
end else
	select 0
GO
/****** :  StoredProcedure [dbo].[sp_suiteMenuClassGet]    ű: 02/01/2010 14:36:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








CREATE PROCEDURE [dbo].[sp_suiteMenuClassGet]
@restID int=0,
@ID int=0,
@menuID int=0,
@deliverTime int=0,
@isReserve int=-1
 AS
begin
	declare @sql varchar(8000),@where varchar(8000)
	set @sql = 'select id,restID,[name],dayID,note,orderNumber,isReserve,isDelete from tbl_suiteMenuClass where isdelete=0 '
	set @where = ''
	if @id>0
		set @where = @where + ' and id=' + Convert(varchar(8000),@id)	
	if @menuID>0	
		set @where = @where + ' and id in (select classID from  tbl_suiteMenuList where menuID=' + Convert(varchar(8000),@menuID) + ')'		
	if @restID>0
		set @where = @where + ' and restID=' + Convert(varchar(8000),@restID)
	if @deliverTime>0 and @deliverTime<127-- 1,2,4,8,16,32,64 ֱһ
		set @where = @where + ' and (dayID & ' + Convert(varchar(8000),@deliverTime) + ')>0 '
	if @isReserve>-1
		set @where = @where + ' and isReserve=' + Convert(varchar(8000),@isReserve)		
	set @sql = @sql + @where + ' order by orderNumber desc,name'
	exec(@sql)

	--
	--if @id>0
	--	select id,restID,[name],dayID,note,orderNumber,isReserve,isDelete from tbl_suiteMenuClass where id=@id and isdelete=0
	--else if @menuID>0
	--	select id,restID,[name],dayID,note,orderNumber,isReserve,isDelete from tbl_suiteMenuClass where id in (select classID from  tbl_suiteMenuList where menuID=@menuID)
	--else
	--	if @deliverTime>0 begin
	--		select id,restID,[name],dayID,note,orderNumber,isReserve,isDelete from tbl_suiteMenuClass where restID=@restID and (dayID & @deliverTime )>0-- 1,2,4,8,16,32,64 ֱһ
	--										 and isdelete=0  order by orderNumber desc,name
	--	end else begin
	--		select id,restID,[name],dayID,note,orderNumber,isReserve,isDelete from tbl_suiteMenuClass where restID=@restID and isdelete=0  order by orderNumber desc,name
	--	end
end


GO
/****** :  StoredProcedure [dbo].[sp_SuiteMenuClassManage]    ű: 02/01/2010 14:36:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_SuiteMenuClassManage]
@id int=0,--id
@userID int=0,
@operation varchar(20)
 AS
if @operation=''
	return -1
declare @restID int
declare @orderNumber int
declare @maxOrderNumber int
select top 1 @restID=restID,@orderNumber=orderNumber from tbl_suiteMenuClass where id=@id
select @maxOrderNumber=max(orderNumber) from tbl_suiteMenuClass where restID=@restID
if(@operation='delete')
begin
	if @orderNumber>1
		update  tbl_suiteMenuClass set orderNumber=orderNumber-1 where  orderNumber>@orderNumber and restID=@restID
	update  tbl_suiteMenuClass set isdelete=1  where id=@id	
	select 1
	return 
end
if(@operation='orderDown')
begin
	
	if(@orderNumber>0)
	begin
		if @orderNumber>1
			update  tbl_suiteMenuClass set orderNumber=orderNumber+1 where  restID=@restID and  id= (select top 1 id from tbl_suiteMenuClass where orderNumber<@orderNumber and restId=@restID order by orderNumber desc )	
		update tbl_suiteMenuClass set orderNumber=orderNumber-1 where id=@id
		select 1
	end
	else
		select -1
	return 
end
if(@operation='orderUp')
begin
	--select top 1 @rid=restID from tbl_weekTop10 order by id desc
	if(@orderNumber<@maxOrderNumber or @orderNumber=0)
	begin
		if @orderNumber=0
			update  tbl_suiteMenuClass set orderNumber=orderNumber+1 where  restID=@restID and orderNumber>=@orderNumber+1
		else
			update  tbl_suiteMenuClass set orderNumber=orderNumber-1 where  restID=@restID and orderNumber=@orderNumber+1
		update tbl_suiteMenuClass set orderNumber=orderNumber+1 where id=@id
		select 1
	end
	else
		select -1
	return
end

GO
/****** :  StoredProcedure [dbo].[sp_SuiteMenuClassMGet]    ű: 02/01/2010 14:36:32 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_SuiteMenuClassMGet]
@restID int,
@userID bigint
 AS
declare @flag int
exec sp_isRestManager @userID,@restID,@result=@flag output
if @flag>0
select * from tbl_suiteMenuClass where restID=@restID and isdelete=0 order by orderNumber desc,name
-- and ( restID=(select top 1 id from tbl_restaurant where userID=@userID and id=@restID) or restID in (select restID from tbl_restUser where userID=@userID))  order by orderNumber desc,name desc
GO
/****** :  StoredProcedure [dbo].[sp_suiteMenuConfigAdd]    ű: 02/01/2010 14:36:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_suiteMenuConfigAdd] 
@id int,
@restID int,
@classID int=0,
@menuID int,
@Name nvarchar(30),
@price float,
@integral int,
@discount float=0,
@orderNumber int=0,
@IntegralCount int=0,
@RuleMark int=0
 AS

if (select count(*) from tbl_suiteMenuConfig where name=@Name and id<>@ID and menuid=@menuID and isdelete=0)=0
begin
	if @id>0 begin
		    update tbl_suiteMenuConfig set Name=@Name,orderNumber=@orderNumber,price=@price,integral=@integral,menuID=@menuID,IntegralCount=@IntegralCount,RuleMark=@RuleMark where id=@id
		    select 1
	end	else begin
			--update tbl_suiteMenuConfig set orderNumber=ordernumber+1 where restID=@restID and orderNumber>@orderNumber and ordernumber<=10
			insert into tbl_suiteMenuConfig(restID,menuID,Name,orderNumber,price,integral,IntegralCount,RuleMark)values(@restID,@menuID,@Name,@orderNumber,@price,@integral,@IntegralCount,@RuleMark)			
			select 2
	end
end else begin
	select 0
end


GO
/****** :  StoredProcedure [dbo].[sp_suiteMenuConfigDataGet]    ű: 02/01/2010 14:36:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE PROCEDURE [dbo].[sp_suiteMenuConfigDataGet]
@restID int=0,
@configID int=0
 AS
declare @sql varchar(8000),@where varchar(8000)

set @sql = 'select a.*,b.name,b.amount,c.menuID from tbl_suiteMenuContent a,
		tbl_suitemenuelement b,tbl_suitemenuconfig c
	where  b.isDelete=0  and a.elementid=b.id and a.configID=c.id '
if @restID>0
	set @where = ' and  a.restID=' + Cast(@restID as varchar(8000))
if @configID>0
	set @where = ' and c.id=' + Cast(@configID as varchar(8000))
set @sql = @sql + @where + ' order by  a.classID desc'
exec(@sql)




GO
/****** :  StoredProcedure [dbo].[sp_SuiteMenuConfigDataMGet]    ű: 02/01/2010 14:36:36 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_SuiteMenuConfigDataMGet]
@ID int,
@userID bigint
 AS
declare @flag int
declare @restID int
select @restID=a.restid from tbl_suiteMenuTable a,tbl_suiteMenuConfig b where b.id=@id and a.id=b.menuID
exec sp_isRestManager @userID,@restID,@result=@flag output
--select @flag,@restID
if @flag>0
select a.restID,a.name as menuName,a.id as menuID,a.classID,b.id,b.name as configName,b.price,b.orderNumber,b.integral from tbl_suiteMenuTable  a, tbl_suiteMenuConfig b
 where b.id=@ID and a.id=b.menuID and b.isdelete=0 order by b.orderNumber desc,b.name
GO
/****** :  StoredProcedure [dbo].[sp_SuiteMenuConfigDelete]    ű: 02/01/2010 14:36:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



create PROCEDURE [dbo].[sp_SuiteMenuConfigDelete] 
@ID int
AS

if @id>0 begin
	update tbl_suiteMenuconfig set isDelete=1 where id=@id
	select 1
end else
	select 0




GO
/****** :  StoredProcedure [dbo].[sp_suiteMenuConfigDetailAllGet]    ű: 02/01/2010 14:36:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_suiteMenuConfigDetailAllGet] 
@configID bigint	
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
select a.id as menuid,a.name as menuName,c.id as configID,c.name as configName,c.price,c.discount,a.restID,b.isDeliver,a.deliverday as menudeliverDay,d.dayID as classDeliverDay,c.integral,d.id as classID
 from tbl_suiteMenuTable a,tbl_restaurant b,tbl_suiteMenuConfig c,tbl_suiteMenuClass d,tbl_suitemenulist e
 where a.restID=b.id and a.id=c.menuID and c.id=@configID
and a.id =e.menuid and d.id=e.classID

SELECT a.id, a.restID, a.configID, a.elementID,b.name, a.classID, b.amount, COALESCE(c.expendAmount,0) as expendAmount
FROM tbl_suiteMenuContent AS a INNER JOIN
      tbl_suiteMenuElement AS b ON a.elementID = b.id LEFT OUTER JOIN
      tbl_suiteMenuElementExpend AS c ON a.elementID = c.elementID and convert(varchar,c.expendDate,112)=convert(varchar,getDate(),112)
where(a.configId=@configID) order by a.classID
END


GO
/****** :  StoredProcedure [dbo].[sp_suiteMenuConfigDetailGet]    ű: 02/01/2010 14:36:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_suiteMenuConfigDetailGet]
	-- Add the parameters for the stored procedure here
	@configID bigint
AS
BEGIN
	select a.id as menuid,a.name,c.id as configID,c.name as configName,c.price,a.restID,b.isDeliver,a.deliverday,d.dayID,c.integral,d.id as classID
 from tbl_suiteMenuTable a,tbl_restaurant b,tbl_suiteMenuConfig c,tbl_suiteMenuClass d,tbl_suitemenulist e
 where a.restID=b.id and a.id=c.menuID and c.id=@configID
and a.id =e.menuid and d.id=e.classID

SELECT a.id, a.restID, a.configID, a.elementID,b.name, a.classID, b.amount, COALESCE(c.expendAmount,0) as expendAmount
FROM tbl_suiteMenuContent AS a INNER JOIN
      tbl_suiteMenuElement AS b ON a.elementID = b.id LEFT OUTER JOIN
      tbl_suiteMenuElementExpend AS c ON a.elementID = c.elementID
where(a.configId=@configID and b.isDelete=0)
END



GO
/****** :  StoredProcedure [dbo].[sp_suiteMenuConfigGet]    ű: 02/01/2010 14:36:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE PROCEDURE [dbo].[sp_suiteMenuConfigGet] 
@ID int=0,
@restID int=0,
@classID int=0,
@menuID int=0,
@orderByPrice float=0
AS
declare @sql varchar(8000),@where varchar(8000),@orderByStr varchar(8000)
set @where = 'isDelete=0 '
set @orderByStr = ''
if @id>0
	set @where = @where + ' and id=' + Cast(@id as varchar(8000))
else if @menuID>0	
	set @where = @where + ' and menuID=' + Cast(@menuID as varchar(8000))	
else if @classID>0
	set @where = @where + ' and menuID in (select menuId from tbl_suitemenulist where classID=' + Cast(@classID as varchar(8000)) +')'		 
else if @restID>0
	set @where = @where + ' and restID=' + Cast(@restID as varchar(8000))

if @orderByPrice>0 begin	
	set @sql = '
	select * ,() over (order by orderPrice) as row from (
		select *,1 as orderPrice from tbl_suiteMenuconfig 
			where price=' + Cast(@orderByPrice as varchar(8000)) + ' and isDelete=0 ' + @where + '			
		union
		select *,2 as orderPrice from tbl_suiteMenuconfig 
			where  price!=' + Cast(@orderByPrice as varchar(8000)) + ' and isDelete=0 ' + @where + '
	) as t where 1=1 '	
end else begin
	set @sql = ' select *,() over (order by orderNumber desc) as row from tbl_suiteMenuconfig where isDelete=0 '
	set @orderByStr = ' orderNumber desc '
	
end
EXEC  UP_GetDataList @strGetFields='*,1 as row',@tblName='tbl_suiteMenuconfig',@fldName=@orderByStr, 
@PageSize=9999, @PageIndex=1,@strWhere=@where






GO
/****** :  StoredProcedure [dbo].[sp_SuiteMenuConfigMGet]    ű: 02/01/2010 14:36:41 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_SuiteMenuConfigMGet]
@menuID int,
@userID bigint
 AS
declare @flag int
declare @restID int
select @restID=restid from tbl_suiteMenuTable where id=@menuID
exec sp_isRestManager @userID,@restID,@result=@flag output
--select @flag,@restID
if @flag>0
select a.restID,a.name as menuName,a.id as menuID,a.classID,b.id,b.name as configName,b.price,b.integral from tbl_suiteMenuTable  a, tbl_suiteMenuConfig b
 where a.id=@menuID and a.id=b.menuID and b.isdelete=0 order by b.orderNumber desc,b.name
GO
/****** :  StoredProcedure [dbo].[sp_suiteMenuConfinDefine]    ű: 02/01/2010 14:36:42 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE  [dbo].[sp_suiteMenuConfinDefine]
@restID int,
@configID int,
@elementID int,
@classID bigint
 AS
select @restID=restID from tbl_suiteMenuConfig where id=@configID
if (select count(*) from tbl_suiteMenuContent where configID=@configID and elementID=@elementID and classID=@classID)=0
begin
	insert into tbl_suiteMenuContent(restID,configID,elementID,classID)values(@restID,@configID,@elementID,@classID)
	select 1
end
else
	select -1
GO
/****** :  StoredProcedure [dbo].[sp_SuiteMenuContentAdd]    ű: 02/01/2010 14:36:43 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_SuiteMenuContentAdd]
@id bigint=0,
@restID bigint=0,
@classID bigint,
@configID bigint=0,
@elementID bigint=0
AS
BEGIN	
	SET NOCOUNT ON;
	if not exists(select * from tbl_suiteMenuContent where restID=@restID and configID=@configID and classID=@classID and elementID=@elementID)
		begin
			insert into tbl_suiteMenuContent(restID,configID,elementID,classID) values(@restID,@configID,@elementID,@classID) 
			select 1
		end
	else
		select 0
END







GO
/****** :  StoredProcedure [dbo].[sp_SuiteMenuContentClassGet]    ű: 02/01/2010 14:36:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_SuiteMenuContentClassGet]
@ID bigint=0
AS
BEGIN	
	SET NOCOUNT ON;
	if @id>0
		select * from tbl_suiteMenuContentClass where id=@id	
	else
		select * from tbl_suiteMenuContentClass order by id
END






GO
/****** :  StoredProcedure [dbo].[sp_SuiteMenuContentDelete]    ű: 02/01/2010 14:36:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



create PROCEDURE [dbo].[sp_SuiteMenuContentDelete]
@id bigint=0
AS
BEGIN	
	SET NOCOUNT ON;
	
	delete from tbl_suiteMenuContent where id=@id
	select 1
	
END








GO
/****** :  StoredProcedure [dbo].[sp_SuiteMenuContentGet]    ű: 02/01/2010 14:36:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE PROCEDURE [dbo].[sp_SuiteMenuContentGet]
@id bigint=0,
@restID bigint=0,
@menuID bigint=0,
@configID bigint=0,
@classID bigint=0
AS
BEGIN	
	SET NOCOUNT ON;
	if @id>0
		select * from v_suiteMenuContent where id=@id	
	else if @restID>0
		select * from v_suiteMenuContent where restID=@restID	
	else if @configID>0 and @classID>0
		select * from v_suiteMenuContent where configID=@configID and ClassID=@classID
	else if @configID>0
		select * from v_suiteMenuContent where configID=@configID order by classID
	else if @classID>0
		select * from v_suiteMenuContent where ClassID=@classID
	else
		select * from v_suiteMenuContent order by id
END

GO

/****** :  StoredProcedure [dbo].[sp_suiteMenuElementAdd]    ű: 02/01/2010 14:36:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE PROCEDURE [dbo].[sp_suiteMenuElementAdd] 
@id int,
@restID int,
@classID int,
@Name nvarchar(30),
@amount int,
@remark varchar(100)=''
 AS
if (select count(*) from tbl_suiteMenuElement where name=@Name and id<>@ID and restID=@restID and isDelete=0)=0 begin
	if @id>0 begin
		    update tbl_suiteMenuElement set Name=@Name,classID=@classID,amount=@amount,note=@remark where id=@id
		    select 1
	end	else begin			
			insert into tbl_suiteMenuElement(restID,Name,classID,amount,note)values(@restID,@Name,@classID,@amount,@remark)			
			select 2
	end
end else
	select 0




GO
/****** :  StoredProcedure [dbo].[sp_SuiteMenuElementClassGet]    ű: 02/01/2010 14:36:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_SuiteMenuElementClassGet]
@ID int=0
 AS
if @id>0
	select * from tbl_SuiteMenuElementClass where id=@id
else
	select * from tbl_SuiteMenuElementClass order by id


GO
/****** :  StoredProcedure [dbo].[sp_SuiteMenuElementDelete]    ű: 02/01/2010 14:36:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_SuiteMenuElementDelete]
@ID int
 AS
delete from tbl_suiteMenuElement where id=@id
--update tbl_suiteMenuElement set isDelete=1 where id=@id
select 1


GO
/****** :  StoredProcedure [dbo].[sp_SuiteMenuElementDeleteByClassID]    ű: 02/01/2010 14:36:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_SuiteMenuElementDeleteByClassID]
	@restID int = 0,
	@classID int= 0
as
begin
delete from tbl_suiteMenuElement where restID=@restID and classID=@classID 
	and 
	(
		id not in (
		select elementID from tbl_suiteMenuContent 
		where restID=@restID)
		or isDelete=1
	)
	
select 1
end

GO
/****** :  StoredProcedure [dbo].[sp_SuiteMenuElementGet]    ű: 02/01/2010 14:36:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







CREATE PROCEDURE [dbo].[sp_SuiteMenuElementGet]
@ID int=0,
@restID int=0,
@classID int=0,
@configID int=0,
@pageSize int=0,
@page int=0,
@name varchar(50)=''
 AS
if @id>0 
	select sme.*,smec.name as className 
	from tbl_suiteMenuElement sme left join tbl_suiteMenuElementClass smec on sme.classID=smec.id
	where sme.id=@id and sme.isDelete=0
else if @pageSize>0 begin	
	declare @start int,@end int
	set @start=(@page-1)*@pageSize+1
	set @end=@page*@pageSize
	select   *   from
	(      
          select sme.*,smec.name as className ,(select count(*) from tbl_suiteMenuElement e2 where sme.id>= e2.id) as row
			from tbl_suiteMenuElement sme left join tbl_suiteMenuElementClass smec on sme.classID=smec.id
			where  sme.restID=@restID and sme.classID=@classID and sme.isDelete=0 
	)   a      
  where   row   between   @start   and   @end order by a.id

	select count(*)
			from tbl_suiteMenuElement sme left join tbl_suiteMenuElementClass smec on sme.classID=smec.id
			where  sme.restID=@restID and sme.classID=@classID and sme.isDelete=0
end else if len(@name)>0 begin
	select sme.*,smec.name as className ,(select count(*) from tbl_suiteMenuElement e2 where sme.name>= e2.name) as row 
			from tbl_suiteMenuElement sme left join tbl_suiteMenuElementClass smec on sme.classID=smec.id
			where  sme.restID=@restID and (sme.name like '%' + @name + '%' or sme.spy like '%' + @name + '%' or sme.qpy like '%' + @name + '%') and sme.isDelete=0 order by sme.name asc
	select @@rowcount
end else if @classID>0 begin
	select sme.*,smec.name as className ,(select count(*) from tbl_suiteMenuElement e2 where sme.name>= e2.name) as row 
			from tbl_suiteMenuElement sme left join tbl_suiteMenuElementClass smec on sme.classID=smec.id
			where  sme.restID=@restID and sme.classID=@classID and sme.isDelete=0 order by sme.name asc
	select @@rowcount
end




 
  






GO
/****** :  StoredProcedure [dbo].[sp_suiteMenuGet]    ű: 02/01/2010 14:36:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_suiteMenuGet]
@classID int,
@keyWord varchar(30),
@sort int
 AS
declare @sql varchar(500)
set @sql='select  * from tbl_suitemenuTable where isdelete=0 and classID='+ltrim(str(@classID))
if len(@keyWord)>1
begin
       set @sql=@sql+' and name like ''%'+@keyWord+'%'''
end
if @sort =0
	 set @sql=@sql+' order by  orderNumber desc '
--if @sort =1
	-- set @sql=@sql+' order by price '
--if @sort =2
	-- set @sql=@sql+' order by price desc'
if @sort =3
	 set @sql=@sql+' order by name '
set @sql=@sql+' select @@rowcount '
--select @sql
exec(@sql)

--select  * from tbl_menuTable where state=0 and classID=@classID order by orderNumber desc,name
GO
/****** :  StoredProcedure [dbo].[sp_suiteMenuInfoGet]    ű: 02/01/2010 14:36:56 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_suiteMenuInfoGet]
@restID int,
@menuID int,
@configID int
 AS
select a.name,c.name as configName,c.price,a.restID,b.isDeliver,d.dayID,c.integral
 from tbl_suiteMenuTable a,tbl_restaurant b,tbl_suiteMenuConfig c,tbl_suiteMenuClass d
 where a.restID=b.id and a.id=c.menuID and c.id=@configID
and a.classID =d.id
GO
/****** :  StoredProcedure [dbo].[sp_SuiteMenuIsTableNameExist]    ű: 02/01/2010 14:36:57 ******/

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go





CREATE PROCEDURE [dbo].[sp_SuiteMenuIsTableNameExist]
@menuID int=0,
@restID int =0,
@name nvarchar(40)
AS
	select count(*) as Amount from tbl_suiteMenuTable where restID=@restID and name=@name and id<>@menuID and isDelete=0













GO
/****** :  StoredProcedure [dbo].[sp_SuiteMenuListAdd]    ű: 02/01/2010 14:36:59 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create PROCEDURE [dbo].[sp_SuiteMenuListAdd]	
@classID int=0,
@strID varchar(500)
 AS		
declare @splitStr char,@m int,@n int,@subStr varchar(300)
declare @id varchar(10),@nPosition varchar(10),@result int
set @result=1
set @splitStr=','	
set @m=charIndex(@splitStr,@strID)
set @n=1
BEGIN tran
begin 
while @m>0
begin
	set @id=substring(@strID,@n,@m-@n)
	if (select count(*) from tbl_SuiteMenuList where menuID=@id and classID=@classID)=0 begin
	        DELETE FROM tbl_SuiteMenuList WHERE MenuID=@id
			insert into tbl_SuiteMenuList (classID,MenuID) values(@classID,@id)			
	end
	set @n=@m+1
	set @m=charIndex(@splitStr,@strID,@n)
end

if @@error>0 begin
		rollback tran
		set @result=-1
end else begin
		commit tran
		set @result=1
end
select @result
END



GO
/****** :  StoredProcedure [dbo].[sp_SuiteMenuListDelete]    ű: 02/01/2010 14:37:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_SuiteMenuListDelete]	
@classID int=0,
@strID varchar(500)
 AS		
declare @splitStr char,@m int,@n int,@subStr varchar(300)
declare @id varchar(10),@nPosition varchar(10),@result int

set @result=1
set @splitStr=','	
set @m=charIndex(@splitStr,@strID)
set @n=1

begin
begin tran
while @m>0 begin
	set @id=substring(@strID,@n,@m-@n)		
			delete from tbl_SuiteMenuList where menuID=@id and classID=@classID
	set @n=@m+1
	set @m=charIndex(@splitStr,@strID,@n)
end

if @@error>0 begin
		rollback tran
		set @result=-1
end else begin
		commit tran
		set @result=1
end
select @result
end



GO
/****** :  StoredProcedure [dbo].[sp_SuiteMenuMDelete]    ű: 02/01/2010 14:37:01 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_SuiteMenuMDelete]
@ID int,
@userID bigint
 AS
declare @restID int
declare @flag int
select @restID=restID from tbl_suiteMenuTable where id=@id
exec sp_isRestManager @userID,@restID,@result=@flag output
if @flag>0
begin
update tbl_suiteMenuTable set isdelete=1 where id=@id
select 1
end
else
	select -1
-- and ( restID=(select top 1 id from tbl_restaurant where userID=@userID and id=@restID) or restID in (select restID from tbl_restUser where userID=@userID))  order by orderNumber desc,name desc
GO
/****** :  StoredProcedure [dbo].[sp_suiteMenuMyOrderAdminDelete]    ű: 02/01/2010 14:37:02 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_suiteMenuMyOrderAdminDelete]
@adminUserID int,
@orderID int,
@isBack int=0
AS
declare @total float
declare @userID bigint
declare @eUserID bigint

declare @state int
declare @restID int
select @state=state,@restID=restID from tbl_suiteMenuOrder where id=@orderID

if @isBack=0
begin
	if @state=0
		begin
		update tbl_suiteMenuOrder set state=-1 where id=@orderID
			insert into tbl_systemLog(userID,content)values(@adminUserID,'delete orderID '+str(@orderID)+' the last state is'+str(@state))
		select 1
		end
	else
		select -1
end
else
begin	--ɹܶ
	select @state=state,@total= total,@userID=userID  from   tbl_suiteMenuOrder  where id=@orderID and state=1
	if @state>0
	begin
		begin
		begin tran
		insert into tbl_systemLog(userID,content)values(@adminUserID,'delete orderID '+str(@orderID)+' the last state is'+str(@state))
		update tbl_suiteMenuOrder set state=-1 where id=@orderID
		declare @v varchar(50)
		set @total=-@total
		set @v=',ͻûֱȡ,ID'+str(@orderID)
		exec sp_userIntegral @userID,@orderID,@total, @v
		if @eUserID>0
		begin
		   set @total=@total*0.1
		   set @v='Ƽû,ȡ,+ID'+str(@orderID)
		    exec sp_userIntegral @eUserID,@orderID,@total, @v
		end
		if(@@error>0)
			begin
			rollback tran
			select -1
			end
		else
			begin
			commit tran
			select 1
			end
	end
END
END
GO
/****** :  StoredProcedure [dbo].[sp_suiteMenuMyOrderAdminGet]    ű: 02/01/2010 14:37:03 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_suiteMenuMyOrderAdminGet]
@startDate varchar(10),
@endDate nvarchar(10),
@state int=10
AS
if @state<10
	select a.*,b.name as restName  from tbl_suiteMenuOrder a,tbl_restaurant b
	  where a.restID=b.id  and a.deliverDate between cast(convert(varchar ,@startDate,112) as datetime) and  dateadd(d,1,cast(convert(varchar ,@endDate,112) as datetime))
	 --and (b.userID='+ltrim(str(@userID))+'  or b.id in (select restID from tbl_restUser where  userID='+ltrim(str(@userID))+'))	
	and a.state=@state and b.isdelete=0 order by a.date_time desc
else
	
	select a.*,b.name as restName  from tbl_suiteMenuOrder a,tbl_restaurant b
	  where a.restID=b.id  and a.deliverDate between cast(convert(varchar ,@startDate,112) as datetime) and  dateadd(d,1,cast(convert(varchar ,@endDate,112) as datetime))
	 --and (b.userID='+ltrim(str(@userID))+'  or b.id in (select restID from tbl_restUser where  userID='+ltrim(str(@userID))+'))
	and b.isdelete=0 order by a.date_time desc
GO
/****** :  StoredProcedure [dbo].[sp_suiteMenuMyOrderAdminReDelete]    ű: 02/01/2010 14:37:04 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_suiteMenuMyOrderAdminReDelete]
@adminUserID int,
@orderID int
AS
declare @state int
set @state=1
select @state=state from tbl_suiteMenuOrder where id=@orderID and state=-1
if @state=-1
		begin
		begin tran
		update tbl_suiteMenuOrder set state=0 where id=@orderID		
		insert into tbl_systemLog(userID,content)values(@adminUserID,'Undelete orderID '+str(@orderID)+' the last state is'+str(@state))
		if(@@error>0)
			begin
			rollback tran
			select -1
			end
		else
			begin
			commit tran
			select 1
			end
	select 1
	end
else
	select -1
GO
/****** :  StoredProcedure [dbo].[sp_suiteMenuMyOrderdelete]    ű: 02/01/2010 14:37:05 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_suiteMenuMyOrderdelete]
@userID bigint,
@orderID int
AS
declare @state int
select @state=state from tbl_suiteMenuOrder where id=@orderID
if @state=0
	begin
	update tbl_suiteMenuOrder set state=-1 where id=@orderID and userID=@userID
	--if @userID>0
		insert into tbl_userHistory(userID,operation)values(@userID,'Delete the suiteMenu order Record id is '+str(@orderID))
	select 1
	end
else
	select -1
GO
/****** :  StoredProcedure [dbo].[sp_suiteMenuMyOrderGet]    ű: 02/01/2010 14:37:06 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_suiteMenuMyOrderGet]
@userID bigint,
@startDate varchar(10),
@endDate nvarchar(10),
@whereStr varchar(100)
AS
declare @sql varchar(1000)
set @sql='select a.*,b.name as restName  from tbl_suiteMenuOrder a,tbl_restaurant b'
set @sql=@sql+'  where a.restID=b.id  and a.deliverDate between cast(convert(varchar ,'''+@startDate+''',112) as datetime) and  dateadd(d,1,cast(convert(varchar ,'''+@endDate+''',112) as datetime))'
if @userID>0
 set @sql=@sql+' and a.userID='+ltrim(str(@userID))
set @sql=@sql+' and b.isdelete=0'
if len(@whereStr)>5
	set @sql=@sql+' and '+@whereStr
set @sql=@sql+' order by a.date_time desc'
exec(@sql)
--select @sql
GO
/****** :  StoredProcedure [dbo].[sp_suiteMenuMyOrderMDelete]    ű: 02/01/2010 14:37:08 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_suiteMenuMyOrderMDelete]
@userID bigint,
@orderID int
AS
declare @state int
declare @restID int
select @state=state,@restID=restID from tbl_suiteMenuOrder where id=@orderID
declare @flag int
exec sp_isRestManager @userID,@restID,@result=@flag output
if @flag>0
begin
if @state=0
	begin
	update tbl_suiteMenuOrder set state=-1 where id=@orderID
	--if @userID>0
		insert into tbl_userHistory(userID,operation)values(@userID,'Manager Delete the suiteMenu order Record, id is '+str(@orderID))
	select 1
	end
else
	select -1
end
else
	select -1
GO
/****** :  StoredProcedure [dbo].[sp_suiteMenuMyOrderMGet]    ű: 02/01/2010 14:37:09 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_suiteMenuMyOrderMGet]
@userID bigint,
@startDate varchar(10),
@endDate nvarchar(10),
@whereStr varchar(100)
AS
declare @sql varchar(1000)
if @userID>0
begin 
set @sql='select a.*,b.name as restName  from tbl_suiteMenuOrder a,tbl_restaurant b'
set @sql=@sql+'  where a.restID=b.id  and a.deliverDate between cast(convert(varchar ,'''+@startDate+''',112) as datetime) and  dateadd(d,1,cast(convert(varchar ,'''+@endDate+''',112) as datetime))'
set @sql=@sql+' and (b.userID='+ltrim(str(@userID))+'  or b.id in (select restID from tbl_restUser where  userID='+ltrim(str(@userID))+'))'
set @sql=@sql+' and b.isdelete=0'
if len(@whereStr)>5
	set @sql=@sql+' and '+@whereStr
set @sql=@sql+' order by a.date_time desc'
exec(@sql)
end
select @sql
GO
/****** :  StoredProcedure [dbo].[sp_suiteMenuOrder]    ű: 02/01/2010 14:37:10 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_suiteMenuOrder]
@userID bigint,
@name varchar(16),
@phone varchar(20),
@address varchar(50),
@deliverDate int,
@deliverTime datetime,
@restID int,
@strMenuID varchar(200),
@strConfigID varchar(200),
@MenuContent varchar(2000),
@orderContent varchar(2000),
@strAmount varchar(200),
@m1 varchar(200),
@m2 varchar(200),
@m3 varchar(200),
@m4 varchar(200),
@m5 varchar(200),
@m6 varchar(200),
@m7 varchar(200),
@isUseIntegral smallint,
@note text,
@ip varchar(15)
AS

declare @menuID  varchar(20),@amount varchar(20)
--Ĳ˵ID
declare @menuNote varchar(200),@configID varchar(20),@b1 varchar(20),@b2 varchar(20),@b3 varchar(20),@b4 varchar(20),@b5 varchar(20),@b6 varchar(20) ,@b7 varchar(20)
--ĵ,ID,m1,m2,m3,m4,m5,m6,m7
declare @i int,@j int
 --˵id
declare @m  int,@n  int  ,@a1 int,@a2 int ,@a3 int, @a4 int,@a5 int,@a6 int,@a7 int,@c1 int,@c2 int
--mϵ\ݱ@c1 ǲ,@c2configID
declare @k1 int,@k2 int,@k3 int,@k4 int,@k5 int,@k6 int ,@k7 int,@p1 int,@p2 int
--mϵ\ݱ
declare @price float,@sum float,@integral int,@integralTotal int
--۸ܼ
declare @splitStr char,@orderID bigint
--ַͶ
declare @userIntegral int
set @userIntegral=0
set @splitStr='|'
set  @m=CHARINDEX(@splitStr,@strMenuID)  
set  @i=CHARINDEX(@splitStr,@strAmount)  
set @a1=CHARINDEX(@splitStr,@m1)  
set @a2=CHARINDEX(@splitStr,@m2)  
set @a3=CHARINDEX(@splitStr,@m3)  
set @a4=CHARINDEX(@splitStr,@m4)  
set @a5=CHARINDEX(@splitStr,@m5)  
set @a6=CHARINDEX(@splitStr,@m6)  
set @a7=CHARINDEX(@splitStr,@m7)  
set @c1 =CHARINDEX(@splitStr,@menuContent)  
set @c2  =CHARINDEX(@splitStr,@strConfigID)  
set @sum=0
set @integralTotal=0
set  @n=1
set  @j=1
set @k1 =1
set @k2 =1
set @k3 =1
set @k4 =1
set @k5 =1
set @k6 =1
set @k7 =1
set @p1=1
set @p2=1
begin tran
if @isUseIntegral =1 and @userID>0
	select @userIntegral=integral from tbl_userIntegral where userID=@userID
begin
insert into tbl_suiteMenuOrder(userID,restID,name,phone,address,deliverDate,deliverTime,orderContent,ip,note)values(@userID,@restID,@name,@phone,@address,dateadd(d,@deliverDate,getdate()),@deliverTime,@orderContent,@ip,@note)
select @orderID=@@IDENTITY
WHILE  @m>0 
BEGIN  
    	set  @menuID=substring(@strMenuID,@n,@m-@n) 
	set @amount=substring(@strAmount,@j,@i-@j) 
	set @b1 =substring(@m1,@k1,@a1-@k1)
	set @b2 =substring(@m2,@k2,@a2-@k2)
	set @b3 =substring(@m3,@k3,@a3-@k3)
	set @b4 =substring(@m4,@k4,@a4-@k4)
	set @b5 =substring(@m5,@k5,@a5-@k5)
	set @b6 =substring(@m6,@k6,@a6-@k6)
	set @b7 =substring(@m7,@k7,@a7-@k7)
	--select @menuContent,@strConfigID
	set @menuNote =substring(@menuContent,@p1,@c1-@p1)
	set @configID =substring(@strConfigID,@p2,@c2-@p2)
	select @price=price,@integral=integral from tbl_suiteMenuConfig where id=@configID
	--select @menuNote
	insert into tbl_suiteMenuOrderDetail(orderID,menuID,configID,menuContent,amount,price,integral,menuSum,m1,m2,m3,m4,m5,m6,m7)values(@orderID,@menuID,@configID,@menuNote,@amount,@price,@integral,@price*@amount,@b1,@b2,@b3,@b4,@b5,@b6,@b7)
	set @sum=@sum+@price*convert(int,@amount)
	set @integralTotal=@integralTotal+@integral
  	set  @j=@i+1  
      	set  @n=@m+1  
   	set @k1=@a1+1
	set @k2=@a2+1
	set @k3=@a3+1
	set @k4=@a4+1
	set @k5=@a5+1
	set @k6=@a6+1
	set @k7=@a7+1
	set @p1=@c1+1
	set @p2=@c2+1
     	set  @i=CHARINDEX(@splitStr,@strAmount,@j)  
     	set  @m=CHARINDEX(@splitStr,@strMenuID,@n)  
	set  @a1=CHARINDEX(@splitStr,@m1,@k1)  
	set  @a2=CHARINDEX(@splitStr,@m2,@k2)  
	set  @a3=CHARINDEX(@splitStr,@m3,@k3)  
	set  @a4=CHARINDEX(@splitStr,@m4,@k4)  
	set  @a5=CHARINDEX(@splitStr,@m5,@k5)  
	set  @a6=CHARINDEX(@splitStr,@m6,@k6)  
	set  @a7=CHARINDEX(@splitStr,@m7,@k7)  
	set  @c1=CHARINDEX(@splitStr,@menuContent,@p1)  
	set  @c2=CHARINDEX(@splitStr,@strConfigID,@p2)  
END
if @integralTotal>@userIntegral
	set @isUseIntegral=0
update tbl_suiteMenuOrder set total=@sum,integralTotal=@integralTotal,isUseIntegral=@isUseIntegral where id=@orderID
if @@error>0
	begin
	rollback tran
	select -1,@orderID
	end
else
	begin
	commit tran
	select 1,@orderID
	END
	end
GO
/****** :  StoredProcedure [dbo].[sp_suiteMenuOrderReport]    ű: 02/01/2010 14:37:14 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_suiteMenuOrderReport]
@startDate varchar(10),
@endDate varchar(10),
@restID int,
@orderState int,
@keyWord varchar(100)=''
 AS
if len(@keyWord)>0
	begin
		select coalesce(sum(total),0) as total,count(b.id ) as cnt ,b.id as restID,b.name as restName
		from tbl_suiteMenuOrder a,tbl_restaurant b 
		where a.restID=b.ID and  a.date_time between @startDate and dateadd(d,1,@endDate) and a.state=@orderState and b.name like  '%'+ @keyWord + '%'
		and b.SClassID=3 group by b.id,b.name
		
		select coalesce(sum(total),0),count(*) from tbl_suiteMenuOrder
		where date_time between @startDate and dateadd(d,1,@endDate) and state=@orderState   and restID in (select id from tbl_restaurant where SClassID=3 and name like  '%'+ @keyWord + '%')
	end
else if @restID>0
	begin		
		select coalesce(sum(total),0) as total,count(b.id ) as cnt ,b.id as restID,b.name as restName
		from tbl_suiteMenuOrder a,tbl_restaurant b 
		where a.restID=b.ID and  a.date_time between @startDate and dateadd(d,1,@endDate) and a.state=@orderState and b.id=@restID 
		and b.SClassID=3 group by b.id,b.name
		
		select coalesce(sum(total),0),count(*) from tbl_suiteMenuOrder
		where date_time between @startDate and dateadd(d,1,@endDate) and state=@orderState  and restID in (select id from tbl_restaurant where id=@restID  and SClassID=3)
	end
else
	begin
		select coalesce(sum(total),0) as total,count(b.id ) as cnt ,b.id as restID,b.name as restName
		from tbl_suiteMenuOrder a,tbl_restaurant b 
		where a.restID=b.ID and  a.date_time between @startDate and dateadd(d,1,@endDate) and a.state=@orderState  
		and b.SClassID=3 group by b.id,b.name
		
		select coalesce(sum(total),0),count(*) from tbl_suiteMenuOrder
		where date_time between @startDate and dateadd(d,1,@endDate) and state=@orderState   and restID in (select id from tbl_restaurant where SClassID=3)
	end
GO
/****** :  StoredProcedure [dbo].[sp_suitemenuOrderStateSet]    ű: 02/01/2010 14:37:16 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_suitemenuOrderStateSet]
@orderID int,
@result int=0 output
AS
declare @state int
declare @total float
declare @userID bigint
declare @eUserID bigint
declare @integral int
declare @userIntegral int
set @state=1
select @state=state,@total= total,@userID=userID,@integral=integralTotal from   tbl_suiteMenuOrder  where id=@orderID and state=0
select @eUserID=extendUserID from tbl_extendRelation where userID=@userID
--select @state=state from tbl_suiteMenuOrder  where id=@orderID 

if @state=0
	begin
		if @userID>0
			select @userIntegral = integral from tbl_userIntegral where userID=@userID
		update tbl_suiteMenuOrder set state=1 where id=@orderID	
		set @result=1
		declare @v varchar(50)
		set @v='ײͶͻû,ID'+str(@orderID)
		exec sp_userIntegral @userID,@orderID,@total, @v
		if @eUserID>0
		begin
		   set @total=@total*0.1
		   set @v='Ƽûͻû,+ID'+str(@orderID)
		    exec sp_userIntegral @eUserID,@orderID,@total, @v
		end
	end
else if @state=-1
	set @result=-1

select @result
GO
/****** :  StoredProcedure [dbo].[sp_SuiteMenuSearchShop]    ű: 02/01/2010 14:37:17 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_SuiteMenuSearchShop]
@keyWord varchar(50)='',
@searchClass int =0,
@classID int=-1,
@startPrice numeric(18,2)=0,
@endPrice numeric(18,2)=0,
@delivermoney int=0,
@deliverMoneyStart int=0,
@deliverMoneyEnd int=0
 AS
begin
if @searchClass=1
	select a.id,a.name,a.SClassID,a.address,a.logo,b.name as regionName,c.name as zoneName,d.deliverMoney from tbl_restaurant a,tbl_region b,tbl_zone c,tbl_restIntro d where a.regionID=b.id and a.zoneID=c.id and d.restID=a.ID and a.name like '%'+@keyWord+'%' and a.state=1  and a.isdelete=0 and a.SClassID=3  order by a.sclassID desc,a.name asc
else if @searchClass=2
		select a.id,a.name,a.SClassID,a.address,a.logo,b.name as regionName,c.name as zoneName,d.deliverMoney from tbl_restaurant a,tbl_region b,tbl_zone c,tbl_restIntro d where a.regionID=b.id and a.zoneID=c.id and d.restID=a.ID and  a.zoneID in (select id from tbl_zone where name like '%'+@keyWord+'%' ) and a.state=1  and a.isdelete=0 and a.SClassID=3 order by a.sclassID desc,a.name asc
else if @searchClass=3
		select a.id,a.name,a.SClassID,a.address,a.logo,b.name as regionName,c.name as zoneName,d.deliverMoney from tbl_restaurant  a,tbl_region b,tbl_zone c,tbl_restIntro d where a.regionID=b.id and a.zoneID=c.id and d.restID=a.ID and   a.ID in (select restID from tbl_shop2Area where areaID in (select id from tbl_area  where name like '%'+@keyWord+'%'  ))
		 and a.state=1 and a.isdelete=0 and a.SClassID=3 order by a.sclassID desc,a.name asc
else if @searchClass=4
		select a.id,a.name,a.SClassID,a.address,a.logo,b.name as regionName,c.name as zoneName,d.deliverMoney from tbl_restaurant a,tbl_region b,tbl_zone c,tbl_restIntro d where a.regionID=b.id and a.zoneID=c.id and d.restID=a.ID 
			and a.id in (select distinct restID from tbl_suiteMenuElement where name like '%'+@keyWord+'%') 
			and a.state=1  and a.isdelete=0 and a.SClassID=3 
			order by a.sclassID desc,a.name asc
else if @classID>-1
	select a.id,a.classID,a.name,a.SClassID,a.address,a.logo,b.name as regionName,c.name as zoneName,d.deliverMoney 
	from tbl_restaurant a,tbl_region b,tbl_zone c,tbl_restIntro d 
	where a.regionID=b.id and a.zoneID=c.id and d.restID=a.ID 
	and a.state=1  and a.isdelete=0 
	and a.classID=@classID 
	and a.id in (select restID from tbl_suiteMenuConfig where (price between @startPrice and @endPrice) and isDelete=0 and classID in (select id from tbl_suiteMenuClass where isDelete=0))
	and a.SClassID=3 order by a.sclassID desc,a.name asc
else if @deliverMoneyStart>=0 and @deliverMoneyEnd>=0
		select a.id,a.name,a.SClassID,a.address,a.logo,b.name as regionName,c.name as zoneName,d.deliverMoney 
		from tbl_restaurant a,tbl_region b,tbl_zone c,tbl_restIntro d 
		where a.regionID=b.id and a.zoneID=c.id and d.restID=a.ID 
		and(d.deliverMoney between @deliverMoneyStart and @deliverMoneyEnd )and a.state=1  and a.isdelete=0 
		and a.SClassID=3 order by a.sclassID desc,d.deliverMoney desc,a.name asc
else if @searchClass=0
	begin
		select a.id,a.name,a.SClassID,a.address,a.logo,b.name as regionName,c.name as zoneName,d.deliverMoney from tbl_restaurant a,tbl_region b,tbl_zone c,tbl_restIntro d where a.regionID=b.id and a.zoneID=c.id and d.restID=a.ID 
			and a.id in (select distinct restID from tbl_suiteMenuElement ) and a.state=1  and a.isdelete=0 and a.SClassID=3 
			order by a.sclassID desc,a.name asc
	end

end
select @@rowcount






GO
/****** :  StoredProcedure [dbo].[sp_suiteMenuShop_get]    ű: 02/01/2010 14:37:19 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_suiteMenuShop_get]
@limit int
 AS
declare @str varchar(500)
if @limit>0
	set @str ='select top '+str(@limit)+' a.id as restID, a.name as restaurantName,a.logo,c.name as regionName,c.id as regionID  from tbl_restaurant a,tbl_region c where  a.regionID=c.id  and a.state=1  and a.isdelete=0 and a.SClassID=3   order by a.id desc'
exec(@str)
GO
/****** :  StoredProcedure [dbo].[sp_suiteMenuShopTop10_add]    ű: 02/01/2010 14:37:20 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_suiteMenuShopTop10_add]
@id int,
@userID int
 AS
declare @amount int
select @amount=count(*) from tbl_suiteMenuShopTop10 where restID=@id
if(@amount=0)
begin
	insert into tbl_suiteMenuShopTop10(restID,addUserID)values(@id,@userID)
	update tbl_suiteMenuShopTop10 set id=id+1
	select 1
end
else
	select -1
GO
/****** :  StoredProcedure [dbo].[sp_suiteMenuShopTop10_commentaryGet]    ű: 02/01/2010 14:37:21 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_suiteMenuShopTop10_commentaryGet]
@restID int=0
 AS
if @restID>0
	select * from tbl_ShopComments where shopID=@restID and isdelete=0 and auditing=1 order by id desc
GO
/****** :  StoredProcedure [dbo].[sp_suiteMenuShopTop10_get]    ű: 02/01/2010 14:37:21 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_suiteMenuShopTop10_get]
@limit int
 AS
declare @str varchar(500)
set @str ='select top '+str(@limit)+'  a.name as restaurantName,a.logo,b.*,c.name as regionName,c.id as regionID  from tbl_restaurant a,tbl_suiteMenuShopTop10 b,tbl_region c where a.id=b.restID and a.regionID=c.id and a.state=1 and  a.isdelete=0  order by b.id desc'
exec(@str)
GO
/****** :  StoredProcedure [dbo].[sp_suiteMenuShopTop10_manage]    ű: 02/01/2010 14:37:22 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_suiteMenuShopTop10_manage]
@id int,--͹id
@userID int,
@operation varchar(20)
 AS
declare @rid int
if(@operation='delete')
begin
	update  tbl_suiteMenuShopTop10 set id=id-1 where  id> (select top 1 id from tbl_suiteMenuShopTop10 where restID=@id )	
	delete from tbl_suiteMenuShopTop10 where restID=@id		
	select 1
	return 
end
if(@operation='orderDown')
begin
	select top 1 @rid=restID from tbl_suiteMenuShopTop10 order by id asc
	if(@id<>@rid)
	begin
		update  tbl_suiteMenuShopTop10 set id=id+1 where  id= (select top 1 id from tbl_suiteMenuShopTop10 where id<(select top 1 id from tbl_suiteMenuShopTop10 where restID=@id) order by id desc )	
		update tbl_suiteMenuShopTop10 set id=id-1 where restID=@id
		select 1
	end
	else
		select -1
	return 
end
if(@operation='orderUp')
begin
	select top 1 @rid=restID from tbl_suiteMenuShopTop10 order by id desc
	if(@id<>@rid)
	begin
		update  tbl_suiteMenuShopTop10 set id=id-1 where  id= (select top 1 id from tbl_suiteMenuShopTop10 where id>(select top 1 id from tbl_suiteMenuShopTop10 where restID=@id) order by id )	
		update tbl_suiteMenuShopTop10 set id=id+1 where restID=@id
		select 1
	end
	else
		select -1
	return
end
GO
/****** :  StoredProcedure [dbo].[sp_suiteMenuTableAdd]    ű: 02/01/2010 14:37:23 ******/
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go






CREATE PROCEDURE [dbo].[sp_suiteMenuTableAdd]
@id int=0,
@restID int =0,
@classID int=0,
@name nvarchar(40),
@mainNote  varchar(50),
@Calorie varchar(10),
@Pabulum varchar(30),
@Taste varchar(40),
@photoID bigint=0,
@note text='',
@deliverDay int=0,
@orderNumber int=0,
@startTime float=0.0,
@endTime float=0.0,
@url varchar(50)=''
AS
if (select count(*) from tbl_suiteMenuTable where restID=@restID and name=@name and id<>@id and isDelete=0)=0 begin
	if @id>0 and @restID>0 begin
 		if(@photoID<=0)
			update tbl_suiteMenuTable set classID=@classID,name=@name,calorie=@calorie
				,pabulum=@pabulum,taste=@taste,note=@note,mainNote=@mainNote,orderNumber=@orderNumber
				,deliverDay=@deliverDay
			where id=@id
		else
			update tbl_suiteMenuTable set classID=@classID,name=@name,calorie=@calorie
				,pabulum=@pabulum,taste=@taste,note=@note,photoID=@photoID,mainNote=@mainNote,orderNumber=@orderNumber
				,deliverDay=@deliverDay
			where id=@id
		select 1
	end else begin
		insert into tbl_suiteMenuTable(restID,classID,name,mainNote,calorie,pabulum,taste,photoID,note,orderNumber,url,deliverDay)
		values(@restID,@classID,@name,@mainNote,@calorie,@pabulum,@taste,@photoID,@note,@orderNumber,@url,@deliverDay)
		set @id=@@identity
		select 2
	end 
	if @classID>0 begin
		declare @strID varchar(100)
		set @strID=str(@id)+','
		exec [sp_SuiteMenuListAdd] @classID,@strID
	end
end else
	select 0	

















GO
/****** :  StoredProcedure [dbo].[sp_SuiteMenuTableDataMGet]    ű: 02/01/2010 14:37:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_SuiteMenuTableDataMGet]
@ID int,
@userID bigint
 AS
declare @flag int
declare @restID int
select @restID=restid from tbl_suiteMenuTable where id=@id
exec sp_isRestManager @userID,@restID,@result=@flag output
--select @flag,@restID
if @flag>0
select * from tbl_suiteMenuTable where id=@ID and isdelete=0 order by orderNumber desc,name
-- and ( restID=(select top 1 id from tbl_restaurant where userID=@userID and id=@restID) or restID in (select restID from tbl_restUser where userID=@userID))  order by orderNumber desc,name desc
GO
/****** :  StoredProcedure [dbo].[sp_suiteMenuTableGet]    ű: 02/01/2010 14:37:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_suiteMenuTableGet]
	-- Add the parameters for the stored procedure here
@restID bigint=0,
@classID bigint=-1,
@noClassID bigint=0,
@menuID bigint=0,
@deliverDay int=0,
@pageSize int=0,
@page int=0	,
@isSystemImg int=0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	
	if @pageSize>0 and @page>0 begin
		declare @start int,@end int
		set @start=(@page-1)*@pageSize+1
		set @end=@page*@pageSize
		
		--------------------------------------
		if @isSystemImg=1 begin--ȫ
			select * from (	
					select sm.* 
					,(select count(*) from tbl_suitemenuTable e2 where sm.id >= e2.id) as row
					from tbl_suitemenuTable sm 	
					where sm.restID=@restID  and sm.isDelete=0
			) a where row between @start and @end order by orderNumber DESC
			select count(*)	from tbl_suitemenuTable sm 	
					where sm.restID=@restID  and sm.isDelete=0
		end else if @classID>=0 and @deliverDay>0 begin
			select * from (	
					select sm.*,coalesce(sml.classID,0) as menuClassID ,smc.name as className, 
					(select count(*) from tbl_suitemenuTable e2 left join tbl_suiteMenuList on e2.ID=tbl_suiteMenuList.menuID 
					 WHERE restID=@restID and isnull(tbl_suiteMenuList.classID,0)=@classID and isDelete=0 and (deliverDay & @deliverDay)>0 
					 and sm.id >= e2.id) as row 
					from tbl_suitemenuTable sm 
						left join tbl_suiteMenuList sml on sm.ID=sml.menuID
						left join tbl_suiteMenuClass smc on sm.classID=smc.id
						where sm.restID=@restID and coalesce(sml.classID,0)=@classID and sm.isDelete=0
						and (deliverDay & @deliverDay)>0-- 1,2,4,8,16,32,64 δһ						
			) a where row between @start and @end order by orderNumber DESC	
			select count(*) from tbl_suitemenuTable sm 
						left join tbl_suiteMenuList sml on sm.ID=sml.menuID
						left join tbl_suiteMenuClass smc on sm.classID=smc.id
					where sm.restID=@restID and coalesce(sml.classID,0)=@classID and sm.isDelete=0 and (deliverDay & @deliverDay)>0-- 1,2,4,8,16,32,64 ֱһ
		---------------------------------------
		end else if @classID>=0 begin
			select * from (	
					select sm.*,coalesce(sml.classID,0) as menuClassID ,smc.name as className,
					(select count(*) from tbl_suitemenuTable e2 left join tbl_suiteMenuList on e2.ID=tbl_suiteMenuList.menuID  WHERE restID=@restID 
					and isnull(tbl_suiteMenuList.classID,0)=@classID and isDelete=0 and sm.id >= e2.id) as row  from tbl_suitemenuTable sm 
						left join tbl_suiteMenuList sml on sm.ID=sml.menuID
						left join tbl_suiteMenuClass smc on sm.classID=smc.id
					where sm.restID=@restID and coalesce(sml.classID,0)=@classID and sm.isDelete=0						
			) a where row between @start and @end	order by orderNumber DESC	
			select count(*) from tbl_suitemenuTable sm 
						left join tbl_suiteMenuList sml on sm.ID=sml.menuID
						left join tbl_suiteMenuClass smc on sm.classID=smc.id
					where sm.restID=@restID and coalesce(sml.classID,0)=@classID and sm.isDelete=0
		---------------------------------------
		end	else begin -- -1  
			select * from (	
					select sm.*,(select count(*) from tbl_suitemenuTable e2   WHERE restID=@restID  and isDelete=0 and 
					id not in (select menuID from tbl_suiteMenuList where classID=-@classID) and sm.id >= e2.id) as row 
					from tbl_suitemenuTable sm 	
					where sm.restID=@restID  and sm.isDelete=0 and sm.id not in (select menuID from tbl_suiteMenuList where classID=-@classID)
			) a where row between @start and @end	order by orderNumber DESC		
			select count(*)	from tbl_suitemenuTable sm 	
					where sm.restID=@restID  and sm.isDelete=0 and sm.id not in (select menuID from tbl_suiteMenuList where classID=-@classID)
		end
	end else begin
		if(@menuID>0)
			--select *,() over(order by orderNumber desc) as row from tbl_suitemenuTable where id=@menuID and isdelete=0
			select sm.*,coalesce(sml.classID,0) as menuClassID ,smc.name as className
			,(select count(*) from tbl_suitemenuTable e2  where id=@menuID  and isDelete=0 and sm.id >= e2.id) as row 
			from tbl_suitemenuTable sm 
						left join tbl_suiteMenuList sml on sm.ID=sml.menuID
						left join tbl_suiteMenuClass smc on sm.classID=smc.id
					where sm.id=@menuID  and sm.isDelete=0 order by sm.orderNumber DESC	
		else
			if @classID>=0 and @deliverDay>0 begin
				select sm.*,coalesce(sml.classID,0) as menuClassID ,smc.name as className
				,(select count(*) from tbl_suitemenuTable e2 left join tbl_suiteMenuList on e2.ID=tbl_suiteMenuList.menuID  WHERE restID=@restID and 
				isnull(tbl_suiteMenuList.classID,0)=@classID 
							and (deliverDay & @deliverDay)>0 and isDelete=0 and sm.id >= e2.id) as row 
				from tbl_suitemenuTable sm 
						left join tbl_suiteMenuList sml on sm.ID=sml.menuID
						left join tbl_suiteMenuClass smc on sm.classID=smc.id
					where sm.restID=@restID and coalesce(sml.classID,0)=@classID 
							and (deliverDay & @deliverDay)>0-- 1,2,4,8,16,32,64 δһ
							and sm.isDelete=0 order by sm.orderNumber DESC	
			end else if(@classID>=0) begin
				select sm.*,coalesce(sml.classID,0) as menuClassID ,smc.name as className
				,(select count(*) from tbl_suitemenuTable e2 left join tbl_suiteMenuList on e2.ID=tbl_suiteMenuList.menuID  WHERE restID=@restID AND
				 isnull(tbl_suiteMenuList.classID,0)=@classID and isDelete=0 AND sm.id >= e2.id) as row  from tbl_suitemenuTable sm 
						left join tbl_suiteMenuList sml on sm.ID=sml.menuID
						left join tbl_suiteMenuClass smc on sm.classID=smc.id
					where sm.restID=@restID and coalesce(sml.classID,0)=@classID and sm.isDelete=0 order by sm.orderNumber DESC	
			end else begin
				select sm.*,coalesce(sml.classID,0) as menuClassID ,smc.name as className
				,(select count(*) from tbl_suitemenuTable e2 left join tbl_suiteMenuList on e2.ID=tbl_suiteMenuList.menuID  WHERE restID=@restID  and isDelete=0 and sm.id >= e2.id) as row  from tbl_suitemenuTable sm 
						left join tbl_suiteMenuList sml on sm.ID=sml.menuID
						left join tbl_suiteMenuClass smc on sm.classID=smc.id
					where sm.restID=@restID  and sm.isDelete=0 order by sm.orderNumber DESC	
			end
	end
    
END












GO
/****** :  StoredProcedure [dbo].[sp_suiteMenuTableManage]    ű: 02/01/2010 14:37:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_suiteMenuTableManage]
@id int=0,--id
@operation varchar(20)
 AS
declare @restID int
declare @orderNumber int
declare @maxOrderNumber int
declare @classID int
select top 1 @restID=restID,@orderNumber=orderNumber,@classID=classID from tbl_suiteMenuTable where id=@id
select @maxOrderNumber=max(orderNumber) from tbl_suiteMenuTable where restID=@restID
if(@operation='delete')
begin
	if @orderNumber>1
		update  tbl_suiteMenuTable set orderNumber=orderNumber-1 where  orderNumber>@orderNumber and restID=@restID and classID=@classID
	update  tbl_suiteMenuTable set isdelete=1  where id=@id	
	select 1
	return 
end
if(@operation='orderDown')
begin
	
	if(@orderNumber>0)
	begin
		if @orderNumber>1
			update  tbl_suiteMenuTable set orderNumber=orderNumber+1 where  restID=@restID and  id= (select top 1 id from tbl_suiteMenuTable where orderNumber<@orderNumber and restId=@restID and classID=@classID order by orderNumber desc )	
		update tbl_suiteMenuTable set orderNumber=orderNumber-1 where id=@id
		select 1
	end
	else
		select -1
	return 
end
if(@operation='orderUp')
begin
	--select top 1 @rid=restID from tbl_weekTop10 order by id desc
	if(@orderNumber<@maxOrderNumber or @orderNumber=0)
	begin
		if @orderNumber=0
			update  tbl_suiteMenuTable set orderNumber=orderNumber+1 where  restID=@restID and orderNumber>=@orderNumber+1 and classID=@classID
		else
			update  tbl_suiteMenuTable set orderNumber=orderNumber-1 where  restID=@restID and orderNumber=@orderNumber+1 and classID=@classID
		update tbl_suiteMenuTable set orderNumber=orderNumber+1 where id=@id
		select 1
	end
	else
		select -1
	return
end

GO
/****** :  StoredProcedure [dbo].[sp_SuiteMenuTableMGet]    ű: 02/01/2010 14:37:30 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_SuiteMenuTableMGet]
@restID int,
@userID bigint
 AS
declare @flag int
exec sp_isRestManager @userID,@restID,@result=@flag output
if @flag>0
select * from tbl_suiteMenuTable where restID=@restID and isdelete=0 order by orderNumber desc,name
-- and ( restID=(select top 1 id from tbl_restaurant where userID=@userID and id=@restID) or restID in (select restID from tbl_restUser where userID=@userID))  order by orderNumber desc,name desc
GO
/****** :  StoredProcedure [dbo].[sp_suiteRestGet]    ű: 02/01/2010 14:37:32 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO


CREATE PROCEDURE [dbo].[sp_suiteRestGet]
@id int =0,
@userID int =0
AS
if @id>0
begin
if @userID>0
begin
SELECT tbl_restaurant.*, tbl_area.name AS areaName, tbl_city.name AS cityName, 
      tbl_zone.name AS zoneName, tbl_province.name AS provinceName, 
      tbl_region.name AS regionName, tbl_user.Name AS userName, tbl_restIntro.mobile, 
      tbl_restIntro.fax, tbl_restIntro.email, tbl_restIntro.msnQQ, tbl_restIntro.expenditure, 
      tbl_restIntro.discount, tbl_restIntro.discountNote, tbl_restIntro.policy, 
      tbl_restIntro.deliverMoney, tbl_restIntro.deliverNote, tbl_restIntro.chainMsg, 
      tbl_restIntro.mapUrl, tbl_restIntro.URL, tbl_restIntro.PAmount, tbl_restIntro.BAmount, 
      tbl_restIntro.stallAmount, tbl_restIntro.traffic, tbl_restIntro.deliverArea,tbl_restIntro.settlement,tbl_restIntro.orderNote,tbl_restIntro.policy
FROM tbl_restaurant LEFT OUTER JOIN
      tbl_restIntro ON tbl_restaurant.id = tbl_restIntro.restID LEFT OUTER JOIN
      tbl_user ON tbl_restaurant.userID = tbl_user.id LEFT OUTER JOIN
      tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
      tbl_region ON tbl_restaurant.regionID = tbl_region.id LEFT OUTER JOIN
      tbl_province ON tbl_restaurant.provinceID = tbl_province.id LEFT OUTER JOIN
      tbl_city ON tbl_restaurant.cityID = tbl_city.id LEFT OUTER JOIN
      tbl_area ON tbl_restaurant.areaID = tbl_area.id
where tbl_restaurant.id=@id and tbl_restaurant.isDelete=0 and tbl_restaurant.SclassID=3  and (tbl_restaurant.userID=@userID or tbl_restaurant.id in (select restID from tbl_restUser where  userID=@userID and restID=@id))
order by tbl_restaurant.id desc
end
else
	begin
	SELECT tbl_restaurant.*, tbl_area.name AS areaName, tbl_city.name AS cityName, 
      tbl_zone.name AS zoneName, tbl_province.name AS provinceName, 
      tbl_region.name AS regionName, tbl_user.Name AS userName, tbl_restIntro.mobile, 
      tbl_restIntro.fax, tbl_restIntro.email, tbl_restIntro.msnQQ, tbl_restIntro.expenditure, 
      tbl_restIntro.discount, tbl_restIntro.discountNote, tbl_restIntro.policy, 
      tbl_restIntro.deliverMoney, tbl_restIntro.deliverNote, tbl_restIntro.chainMsg, 
      tbl_restIntro.mapUrl, tbl_restIntro.URL, tbl_restIntro.PAmount, tbl_restIntro.BAmount, 
      tbl_restIntro.stallAmount, tbl_restIntro.traffic, tbl_restIntro.deliverArea,tbl_restIntro.settlement,tbl_restIntro.orderNote,tbl_restIntro.policy
FROM tbl_restaurant LEFT OUTER JOIN
      tbl_restIntro ON tbl_restaurant.id = tbl_restIntro.restID LEFT OUTER JOIN
      tbl_user ON tbl_restaurant.userID = tbl_user.id LEFT OUTER JOIN
      tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
      tbl_region ON tbl_restaurant.regionID = tbl_region.id LEFT OUTER JOIN
      tbl_province ON tbl_restaurant.provinceID = tbl_province.id LEFT OUTER JOIN
      tbl_city ON tbl_restaurant.cityID = tbl_city.id LEFT OUTER JOIN
      tbl_area ON tbl_restaurant.areaID = tbl_area.id
where tbl_restaurant.id=@id and tbl_restaurant.isDelete=0 and tbl_restaurant.SclassID=3 
order by tbl_restaurant.id desc
	end
end
else
begin
if @userID>0
begin
SELECT tbl_restaurant.*, tbl_area.name AS areaName, tbl_city.name AS cityName, 
      tbl_zone.name AS zoneName, tbl_province.name AS provinceName, 
      tbl_region.name AS regionName, tbl_user.Name AS userName, tbl_restIntro.mobile, 
      tbl_restIntro.fax, tbl_restIntro.email, tbl_restIntro.msnQQ, tbl_restIntro.expenditure, 
      tbl_restIntro.discount, tbl_restIntro.discountNote, tbl_restIntro.policy, 
      tbl_restIntro.deliverMoney, tbl_restIntro.deliverNote, tbl_restIntro.chainMsg, 
      tbl_restIntro.mapUrl, tbl_restIntro.URL, tbl_restIntro.PAmount, tbl_restIntro.BAmount, 
      tbl_restIntro.stallAmount, tbl_restIntro.traffic, tbl_restIntro.deliverArea,tbl_restIntro.settlement,tbl_restIntro.orderNote,tbl_restIntro.policy
FROM tbl_restaurant LEFT OUTER JOIN
      tbl_restIntro ON tbl_restaurant.id = tbl_restIntro.restID LEFT OUTER JOIN
      tbl_user ON tbl_restaurant.userID = tbl_user.id LEFT OUTER JOIN
      tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
      tbl_region ON tbl_restaurant.regionID = tbl_region.id LEFT OUTER JOIN
      tbl_province ON tbl_restaurant.provinceID = tbl_province.id LEFT OUTER JOIN
      tbl_city ON tbl_restaurant.cityID = tbl_city.id LEFT OUTER JOIN
      tbl_area ON tbl_restaurant.areaID = tbl_area.id
where  tbl_restaurant.isDelete=0 and (tbl_restaurant.userID=@userID or tbl_restaurant.id in (select restID from tbl_restUser where  userID=@userID))
 and tbl_restaurant.SclassID=3 
order by tbl_restaurant.id desc

end
else
  if @userID<0
	begin
	SELECT tbl_restaurant.*, tbl_area.name AS areaName, tbl_city.name AS cityName, 
      tbl_zone.name AS zoneName, tbl_province.name AS provinceName, 
      tbl_region.name AS regionName, tbl_user.Name AS userName, tbl_restIntro.mobile, 
      tbl_restIntro.fax, tbl_restIntro.email, tbl_restIntro.msnQQ, tbl_restIntro.expenditure, 
      tbl_restIntro.discount, tbl_restIntro.discountNote, tbl_restIntro.policy, 
      tbl_restIntro.deliverMoney, tbl_restIntro.deliverNote, tbl_restIntro.chainMsg, 
      tbl_restIntro.mapUrl, tbl_restIntro.URL, tbl_restIntro.PAmount, tbl_restIntro.BAmount, 
      tbl_restIntro.stallAmount, tbl_restIntro.traffic, tbl_restIntro.deliverArea,tbl_restIntro.settlement,tbl_restIntro.orderNote,tbl_restIntro.policy
FROM tbl_restaurant LEFT OUTER JOIN
      tbl_restIntro ON tbl_restaurant.id = tbl_restIntro.restID LEFT OUTER JOIN
      tbl_user ON tbl_restaurant.userID = tbl_user.id LEFT OUTER JOIN
      tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
      tbl_region ON tbl_restaurant.regionID = tbl_region.id LEFT OUTER JOIN
      tbl_province ON tbl_restaurant.provinceID = tbl_province.id LEFT OUTER JOIN
      tbl_city ON tbl_restaurant.cityID = tbl_city.id LEFT OUTER JOIN
      tbl_area ON tbl_restaurant.areaID = tbl_area.id
	where   tbl_restaurant.isDelete=0 and tbl_restaurant.SclassID=3 
order by tbl_restaurant.id desc
	end
end
GO
/****** :  StoredProcedure [dbo].[sp_suiteRestSearch]    ű: 02/01/2010 14:37:34 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO

CREATE PROCEDURE [dbo].[sp_suiteRestSearch]
@id int =0,
@userID int =0,
@restName varchar(30)
AS

if @userID>0
begin
SELECT tbl_restaurant.*, tbl_area.name AS areaName, tbl_city.name AS cityName, 
      tbl_zone.name AS zoneName, tbl_province.name AS provinceName, 
      tbl_region.name AS regionName, tbl_user.Name AS userName, tbl_restIntro.mobile, 
      tbl_restIntro.fax, tbl_restIntro.email, tbl_restIntro.msnQQ, tbl_restIntro.expenditure, 
      tbl_restIntro.discount, tbl_restIntro.discountNote, tbl_restIntro.policy, 
      tbl_restIntro.deliverMoney, tbl_restIntro.deliverNote, tbl_restIntro.chainMsg, 
      tbl_restIntro.mapUrl, tbl_restIntro.URL, tbl_restIntro.PAmount, tbl_restIntro.BAmount, 
      tbl_restIntro.stallAmount, tbl_restIntro.traffic, tbl_restIntro.deliverArea,tbl_restIntro.settlement,tbl_restIntro.orderNote,tbl_restIntro.policy
FROM tbl_restaurant LEFT OUTER JOIN
      tbl_restIntro ON tbl_restaurant.id = tbl_restIntro.restID LEFT OUTER JOIN
      tbl_user ON tbl_restaurant.userID = tbl_user.id LEFT OUTER JOIN
      tbl_zone ON tbl_restaurant.zoneID = tbl_zone.id LEFT OUTER JOIN
      tbl_region ON tbl_restaurant.regionID = tbl_region.id LEFT OUTER JOIN
      tbl_province ON tbl_restaurant.provinceID = tbl_province.id LEFT OUTER JOIN
      tbl_city ON tbl_restaurant.cityID = tbl_city.id LEFT OUTER JOIN
      tbl_area ON tbl_restaurant.areaID = tbl_area.id
where  tbl_restaurant.isDelete=0 and tbl_restaurant.SclassID=3  and tbl_restaurant.name like '%'+@restName+'%'  
and (tbl_restaurant.userid=@userid 
or tbl_restaurant.id in (select restID from tbl_restUser where  userID=@userID)
)
order by tbl_restaurant.id desc
end
GO
/****** :  StoredProcedure [dbo].[sp_systemErrorGet]    ű: 02/01/2010 14:37:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_systemErrorGet]
	-- Add the parameters for the stored procedure here
@id int,
@StartDate varchar(10),
@endDate varchar(10)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	if @id>0
		select * from tbl_systemerrorlog where id=@id
	else
	begin
		select * from tbl_systemerrorlog where 
		errorTime between @startDate and dateadd(d,1,@endDate)
	end
	
END

GO
/****** :  StoredProcedure [dbo].[sp_systemErrorLogAdd]    ű: 02/01/2010 14:37:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_systemErrorLogAdd]
@url varchar(200),
@errortype varchar(20),
@detail varchar(8000),
@ip varchar(15),
@serverIP varchar(15)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	insert into tbl_systemerrorlog(url,errortype,detail,ip,serverip)
	values(@url,@errortype,@detail,@ip,@serverIP)
    -- Insert statements for procedure here
	select 1
END



GO
/****** :  StoredProcedure [dbo].[sp_systemLabel_add]    ű: 02/01/2010 14:37:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







CREATE procedure [dbo].[sp_systemLabel_add]
@ID bigint=0,
@labelString varchar(40),
@type smallint=0,
@note varchar(100)
 AS
begin	
	if @id>0
		begin
		update tbl_systemLabel set labelString=@labelString,[type]=@type,note=@note where id=@id
		select 1
		end
	else
		begin
		insert tbl_systemLabel (labelString,[type],note) values(@labelString,@type,@note)
		select 2
		end
end








GO
/****** :  StoredProcedure [dbo].[sp_systemLabel_delete]    ű: 02/01/2010 14:37:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







create procedure [dbo].[sp_systemLabel_delete]
@ID bigint=0
 AS
begin	
	if @id>0
		begin
		delete from tbl_systemLabel where id=@id
		select 1
		end
	else
		select 0
end








GO
/****** :  StoredProcedure [dbo].[sp_systemLabel_get]    ű: 02/01/2010 14:37:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








CREATE procedure [dbo].[sp_systemLabel_get]
@ID bigint=0,
@type smallint=-1,
@limit int=0
 AS
begin	
	declare @sql varchar(500)	
	if @id>0
		begin
		select * from tbl_systemLabel where id=@id		
		end
	else if @type>-1
		begin		
		if @limit>0
			begin
				set @sql='select top ' + ltrim(str(@limit)) + ' * from tbl_systemLabel where [type]=' + ltrim(str(@type)) + ' order by amount desc'
				exec(@sql)
			end
		else
			select * from tbl_systemLabel where [type]=@type order by amount desc
		end
	else
		begin		
		if @limit>0
			begin
				set @sql='select top ' + ltrim(str(@limit)) + ' * from tbl_systemLabel order by amount desc'
				exec(@sql)
			end
		else
			select * from tbl_systemLabel order by amount desc
		end
end









GO
/****** :  StoredProcedure [dbo].[sp_systemlog_list]    ű: 02/01/2010 14:37:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- =============================================
-- Author:		<melack,Name>
-- Create date: <Create Date,,>
-- Description:	<ȡ̨û¼־>
-- =============================================
CREATE PROCEDURE [dbo].[sp_systemlog_list] 
	
	@PageIndex int =1,
	@PageSize int = 1,
    @UserName varchar(8000)='',
    @RealName varchar(8000)='',
    @Log int = 0,
    @Purview int=0,
    @Statime Datetime='',
    @Endtime Datetime=''
    
    
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	declare @Sql nvarchar(4000)
	declare @totalcount int
    declare @startRowId int
    declare @endRowId int
    declare @TotalPage int
    declare @where varchar(8000)
    declare @Sqlcount nvarchar(4000)


    --
    set @Statime=Convert(varchar(10), @Statime, 120)+' 0:0:0'
    set @Endtime=Convert(varchar(10), @Endtime, 120)+' 23:59:59'
    --declare @TotalCountOut int
    set @where = ' where 1=1 '
    if @UserName<>'' set @where=@where + ' and Logs.errorMessage like ''%'+ @UserName+ '%'''
    if @Log<>0 set @where =@where + ' and Logs.errorClass = '+ cast(@Log as varchar(5))
    if @RealName<>'' set @where =@where + ' and Users.TrueName = '''+@RealName+''''
    if @Purview<>0 set @where =@where +' and Users.role= '+cast(@Purview as varchar(5))
    if @Endtime<>'' set @where = @where +' and Logs.loginTime >= '''+ Convert(varchar(20), @Statime) +''' and loginTime <= '''+ Convert(varchar(20), @EndTime) + ''''
      
        --TotoalCount 
        set @Sqlcount= 'select @TotalCountOut=count(*) from tbl_SystemUserLog as Logs left join tbl_systemUser as Users on
Logs.userid=Users.id '+@where
        EXEC sp_executesql @Sqlcount, N'@TotalCountOut INT OUTPUT', @TotalCountOut=@totalcount OUTPUT
       
        --TotalPage
		SET @TotalPage = CEILING((@TotalCount + 0.0) / @PageSize)
	
		--CheckPageIndex
		IF @PageIndex < 1 SET @PageIndex = 1
		IF @PageIndex > @TotalPage SET @PageIndex = @TotalPage

		--RowRange
		SET @StartRowId = (@PageIndex - 1) * @PageSize + 1
		set @EndRowId = @StartRowId + @PageSize - 1



SET @Sql = 
'select * from(
select Logs.*,Users.name,Users.Role, Users.Truename,() OVER (order by Logs.id desc) as RowId from tbl_SystemUserLog as Logs left join tbl_systemUser as Users on
Logs.userid=Users.id '+@where+'
) as t 
where RowId>=' + CAST(@StartRowId AS VARCHAR(5)) + ' and RowId<=' + CAST(@EndRowId AS VARCHAR(5))

EXEC(@Sql)
--select(@Sql)
select @PageIndex as PageIndex,@PageSize as PageSize ,@TotalPage as TotalPage

END
 




















GO

/****** :  StoredProcedure [dbo].[sp_tempInfo_Add]    ű: 02/01/2010 14:37:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE procedure [dbo].[sp_tempInfo_Add]
@id bigint=0,
@classID int=-1,--0Ϊ,1ΪûϢ
@userID int=0,
@email varchar(255)='',
@content varchar(8000)=''
as
begin
	if 	@id>0
		update tbl_tempInfo set classID=@classID,userID=@userID,[content]=@content,postTime=getDate() where id=@id
	else if @userID>0 and @classID>-1 begin
		if exists(select * from tbl_tempInfo where userID=@userID and classID=@classID)
			update tbl_tempInfo set [content]=@content,state=0,postTime=getDate() where userID=@userID and classID=@classID
		else
			insert into tbl_tempInfo(classID,userID,[content])
				values(@classID,@userID,@content)
	end

	select 1 
end



GO
/****** :  StoredProcedure [dbo].[sp_tempInfo_get]    ű: 02/01/2010 14:37:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [dbo].[sp_tempInfo_get]
@id bigint=0,
@classID int=-1,--0Ϊ,1ΪϢ
@userID int
as
begin

if 	@id>0
	select * from tbl_tempInfo where id=@id
else if @userID>0 and @classID>-1
	select top 1 * from tbl_tempInfo where userID=@userID and classID=@classID and state=0 order by id desc
else 
	select * from tbl_tempInfo where 1=0 order by id desc
end
 


GO
/****** :  StoredProcedure [dbo].[sp_tempInfo_updateState]    ű: 02/01/2010 14:37:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [dbo].[sp_tempInfo_updateState]
@id bigint=0,
@classID int=-1,--0Ϊ,1ΪϢ
@userID int,
@state int=0
as
begin

if 	@id>0
	update tbl_tempInfo set state=@state where id=@id
else if @userID>0 and @classID>-1
	update tbl_tempInfo set state=@state where userID=@userID and classID=@classID 

 
select 1 

end


GO
/****** :  StoredProcedure [dbo].[sp_Theme_copyUserTheme]    ű: 02/01/2010 14:37:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE PROCEDURE [dbo].[sp_Theme_copyUserTheme] 
@userID bigint
AS
declare @result int
select @result=count(*) from tbl_user where id=@userID
if @result=0
	return

insert into tbl_userCss(userID,bgColor,bgPhoto,bgTile,bgPosition,isFixed,BorderColor,borderStyle,borderWidth,
titleBGColor,titleBGPhoto,titleBGPhotoTran,titleFontColor,contentBGColor,contentBGPhoto,contentFontColor,
contentLinkColor,contentLinkActive,mouseStyle,contentBGPhotoTran)

 (select top 1 @userID,bgColor,bgPhoto,bgTile,bgPosition,isFixed,BorderColor,borderStyle,borderWidth,
titleBGColor,titleBGPhoto,titleBGPhotoTran,titleFontColor,contentBGColor,contentBGPhoto,contentFontColor,
contentLinkColor,contentLinkActive,mouseStyle,contentBGPhotoTran from tbl_SystemStyle)

select * from tbl_userCss where userID=@userID

	RETURN

GO
/****** :  StoredProcedure [dbo].[sp_Theme_updateUserCss]    ű: 02/01/2010 14:37:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_Theme_updateUserCss]
@userID bigint,
@id int
AS
	update tbl_userCss set userID=@userID,bgColor=s.bgColor,bgPhoto=s.bgPhoto,bgTile=s.bgTile,
	bgPosition=s.bgPosition,isFixed=s.isFixed,BorderColor=s.BorderColor,borderStyle=s.borderStyle,
	borderWidth=s.borderWidth,titleBGColor=s.titleBGColor,titleBGPhoto=s.titleBGPhoto,
	titleBGPhotoTran=s.titleBGPhotoTran,titleFontColor=s.titleFontColor,contentBGColor=s.contentBGColor,
	contentBGPhoto=s.contentBGPhoto,contentFontColor=s.contentFontColor,contentLinkColor=s.contentLinkColor,
	contentLinkActive=s.contentLinkActive,mouseStyle=s.mouseStyle,
	contentBGPhotoTran=s.contentBGPhotoTran from 
	(select * from tbl_SystemStyle where id=@id) s where userID=@userID
	select @@rowcount

	return


GO
/****** :  StoredProcedure [dbo].[sp_topActivity_manage]    ű: 02/01/2010 14:37:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE PROCEDURE [dbo].[sp_topActivity_manage]
@operate varchar(20),
@activityID bigint=0,
@toCircle int=0,
@limit int=0
 AS
declare @orderNumber int
if @operate='add' 
	begin
		declare @amount int
		declare @cnt int		
		set @amount=0
		set @cnt=0
		
		select @cnt=(count(*)) from tbl_topActivity where activityID=@activityID

		if @cnt=0	
			begin
				select @amount=count(*) from tbl_topActivity 
				insert into tbl_topActivity(activityID,orderNumber)values(@activityID,@amount+1)
			end
		select 1
	end
else if @operate='delete'
	begin
		select @orderNumber=(orderNumber) from tbl_topActivity where activityID=@activityID
		delete from tbl_topActivity where activityID=@activityID
		update tbl_topActivity set orderNumber=orderNumber-1 where orderNumber>@orderNumber
	end
else if @operate='get'
	begin
		declare @sql varchar(500)			
		declare @str varchar(500)
		declare @str1 varchar(100)
		set @str=''
		set @str1=''
		if @limit>0			
			begin			
				set @str1='top ' + ltrim(str(@limit))
			end		
		if @toCircle=1
			set @str=' b.id in (select activityID from tbl_circle2Activity) and cd.isDelete=0'
		if @toCircle=-1
			set @str=' b.id not in (select activityID from tbl_circle2Activity)'
		if len(@str)>0
			set @sql='select ' + @str1 + ' a.*,b.*,u.nickName,cd.name as circleName from tbl_topActivity a left join tbl_activityData b on a.activityID=b.id left join tbl_user u on b.userID=u.id left join tbl_circle2Activity ca on b.id=ca.activityID left join tbl_circleData cd on ca.circleID=cd.id where ' + @str + '  order by orderNumber asc'
		else
			set @sql='select ' + @str1 + ' a.*,b.*,u.nickName,cd.name as circleName from tbl_topActivity a left join tbl_activityData b on a.activityID=b.id left join tbl_user u on b.userID=u.id left join tbl_circle2Activity ca on b.id=ca.activityID left join tbl_circleData cd on ca.circleID=cd.id  order by orderNumber asc'
		--select @sql
		exec(@sql)
	end
else if @operate='orderUp'
	begin		
		select @orderNumber=orderNumber from tbl_topActivity where activityID=@activityID		
		update tbl_topActivity set orderNumber=orderNumber+1 where activityID=(select top 1 activityID from tbl_topActivity where orderNumber=@orderNumber-1 order by orderNumber desc)
		update tbl_topActivity set orderNumber=orderNumber-1 where activityID=@activityID and orderNumber>1		
	end
else if @operate='orderDown'
	begin
		select @orderNumber=orderNumber from tbl_topActivity where activityID=@activityID
		update tbl_topActivity set orderNumber=orderNumber-1 where activityID=(select top 1 activityID from tbl_topActivity where orderNumber>@orderNumber order by orderNumber asc)
		update tbl_topActivity set orderNumber=orderNumber+1 where activityID=@activityID and orderNumber<(select count(*) from tbl_topActivity)
	end





GO
/****** :  StoredProcedure [dbo].[sp_UnionRestOrdersStatis]    ű: 02/01/2010 14:37:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_UnionRestOrdersStatis]
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1'
AS
begin

select substring(CONVERT(varchar(100),a.date_time, 112),1,6) datestr,
OrderCount=count(*),
OrderMoney=sum(a.total)
from v_Order_GeneralList a
where a.date_time >=@StartDate and a.date_time < @EndDate
and 
(
a.restid in ( select mainRestID  from tbl_restChainRelation )
or
a.restid in ( select  restID from tbl_restChainRelation )
)
and a.state=1
group by substring(CONVERT(varchar(100),a.date_time, 112),1,6)
 
end








GO
/****** :  StoredProcedure [dbo].[sp_UpdateAreaStandName]    ű: 02/01/2010 14:37:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







--̨ӱ׼¥

CREATE PROCEDURE  [dbo].[sp_UpdateAreaStandName]
@id int=0,
@zoneID int,
@name varchar(100),
@result int =0 output
AS
--жû¥
if(select count(*) from tbl_area where zoneId=@zoneID and name=@name and id<>@id and isdelete=0 and parentId = id)=0 begin
		update tbl_area set name = @name where id=@id
		if @@error = 0 begin set @result = 1 end
end	else begin 
	set @result = -1
end
select @result









GO
/****** :  StoredProcedure [dbo].[sp_UpdateLastHastenOrderState]    ű: 02/01/2010 14:37:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_UpdateLastHastenOrderState]
@id int=0,
@Sign int=1, 
@result int=0 output
AS
  BEGIN
	    declare @replyContent varchar(8000)
		if @Sign=1 begin
			set	@replyContent='Ʒ5Ӻ󵽴ĵȴ'
        end
		if @Sign=2 begin 
			set	@replyContent='Ʒ15ڵĵȴ'
		end 
		if @Sign=3 begin 
			set	@replyContent='Ʒ30ڵĵȴ'
		end 
		if @Sign=4 begin 
			set	@replyContent='ܱǸڶ󣬶ȡˣǽϵ'
		end 
    update  tbl_hastenOrder  set reply=@replyContent, state=1 where id=@id
	--update  tbl_hastenOrder  set state=1 where orderID = (select orderID from tbl_hastenOrder where id=@id)
			if @@error=0 begin
				set @result=1
			end else begin
				set @result=0
			end 
  END
 select @result





GO
/****** :  StoredProcedure [dbo].[sp_updateQuestionDept]    ű: 02/01/2010 14:37:56 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_updateQuestionDept]
@ID int,
@userID bigint=0,
@answerDept int=0

AS

if @userID>0
	begin
	update tbl_question set answerDept=@answerDept where ID=@ID And userID=@userID
	select 1
	end
else
	begin
	update tbl_question set answerDept=@answerDept where ID=@ID
	select 1
	end

select 1
GO
/****** :  StoredProcedure [dbo].[sp_updateQuestionState]    ű: 02/01/2010 14:37:57 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_updateQuestionState]
@ID int,
@state int=0,
@result int=0 output
AS

	begin
	update tbl_question set state=@state where ID=@ID
	set @result=1
	end
select @result
GO
/****** :  StoredProcedure [dbo].[sp_updateWebMessageById]    ű: 02/01/2010 14:37:59 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_updateWebMessageById]
@id bigint,
@state int
as

update tbl_webMessage set state=@state,sendTime=getDate() where id=@id
select @@ROWCOUNT

GO
/****** :  StoredProcedure [dbo].[sp_UpdateWeekMonthNewOrder]    ű: 02/01/2010 14:38:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_UpdateWeekMonthNewOrder]
                @Sign INT  = 0
AS
  DECLARE  @c1 INT
  
  DECLARE  @c2 INT
  
  SELECT @c2 = 0
  
  IF @Sign = 0
    BEGIN
      SELECT @c1 = COUNT(* )
      FROM   Tbl_WeekTop10  a , tbl_restaurant b
where a.restID=b.id  and b.isDelete<>1 and b.state<>0
             --αBEGIN
             
      DECLARE WeekCur CURSOR LOCAL FORWARD_ONLY DYNAMIC FOR
      SELECT *
      FROM   Tbl_WeekTop10  a , tbl_restaurant b
where a.restID=b.id  and b.isDelete<>1 and b.state<>0 order by a.id asc
      FOR UPDATE OF a.id
      
      OPEN WeekCur
      
      FETCH NEXT FROM WeekCur
      
      WHILE (@@FETCH_STATUS = 0)
            AND (@c2 < @c1)
        BEGIN
          UPDATE Tbl_WeekTop10
          SET    Id = @c2 + 1
          WHERE CURRENT OF WeekCur
          
          SET @c2 = @c2 + 1
          
          FETCH NEXT FROM WeekCur
        END
      
      CLOSE WeekCur
      
      DEALLOCATE WeekCur
      ---αEND
    END
  
  IF @Sign = 1
    BEGIN
      SELECT @c1 = COUNT(* )
      FROM   Tbl_MonthTop10 a , tbl_restaurant b
where a.restID=b.id  and b.isDelete<>1 and b.state<>0
             --αBEGIN
             
      DECLARE MonthCur CURSOR LOCAL FORWARD_ONLY DYNAMIC FOR
      SELECT *
      FROM   Tbl_MonthTop10  a , tbl_restaurant b
where a.restID=b.id  and b.isDelete<>1 and b.state<>0 order by a.id asc
      FOR UPDATE OF a.id
      
      OPEN MonthCur
      
      FETCH NEXT FROM MonthCur
      
      WHILE (@@FETCH_STATUS = 0)
            AND (@c2 < @c1)
        BEGIN
          UPDATE Tbl_MonthTop10
          SET    Id = @c2 + 1
          WHERE CURRENT OF MonthCur
          
          SET @c2 = @c2 + 1
          
          FETCH NEXT FROM MonthCur
        END
      
      CLOSE MonthCur
      
      DEALLOCATE MonthCur
      ---αEND
    END
  
  IF @Sign = 2
    BEGIN
      SELECT @c1 = COUNT(* )
      FROM   Tbl_NewRest a , tbl_restaurant b
where a.restID=b.id  and b.isDelete<>1 and b.state<>0
             --αBEGIN
             
      DECLARE NewCur CURSOR LOCAL FORWARD_ONLY DYNAMIC FOR
      SELECT *
      FROM   Tbl_NewRest a , tbl_restaurant b
where a.restID=b.id  and b.isDelete<>1 and b.state<>0  order by a.id asc
      FOR UPDATE OF a.id
      
      OPEN NewCur
      
      FETCH NEXT FROM NewCur
      
      WHILE (@@FETCH_STATUS = 0)
            AND (@c2 < @c1)
        BEGIN
          UPDATE Tbl_NewRest
          SET    Id = @c2 + 1
          WHERE CURRENT OF NewCur
          
          SET @c2 = @c2 + 1
          
          FETCH NEXT FROM NewCur
        END
      
      CLOSE NewCur
      
      DEALLOCATE NewCur
      ---αEND
    END

  IF @Sign = 3
    BEGIN
      SELECT @c1 = COUNT(* )
      FROM   tbl_RestMapTop a , tbl_restaurant b
where a.restID=b.id  and b.isDelete<>1 and b.state<>0
             --αBEGIN
             
      DECLARE NewMap CURSOR LOCAL FORWARD_ONLY DYNAMIC FOR
      SELECT *
      FROM   tbl_RestMapTop a , tbl_restaurant b
where a.restID=b.id  and b.isDelete<>1 and b.state<>0 order by a.id asc
      FOR UPDATE OF a.id
      
      OPEN NewMap
      
      FETCH NEXT FROM NewMap
      
      WHILE (@@FETCH_STATUS = 0)
            AND (@c2 < @c1)
        BEGIN
          UPDATE tbl_RestMapTop
          SET    Id = @c2 + 1
          WHERE CURRENT OF NewMap
          
          SET @c2 = @c2 + 1
          
          FETCH NEXT FROM NewMap
        END
      
      CLOSE NewMap
      
      DEALLOCATE NewMap
      ---αEND
    END

IF @Sign = 4
    BEGIN
      SELECT @c1 = COUNT(* )
      FROM   tbl_RestCommend  a , tbl_restaurant b
where a.restID=b.id  and b.isDelete<>1 and b.state<>0
             --αBEGIN
             
      DECLARE NewCommend CURSOR LOCAL FORWARD_ONLY DYNAMIC FOR
      SELECT *
      FROM   tbl_RestCommend  a , tbl_restaurant b
where a.restID=b.id  and b.isDelete<>1 and b.state<>0 order by a.id asc
      FOR UPDATE OF a.id
      
      OPEN NewCommend
      
      FETCH NEXT FROM NewCommend
      
      WHILE (@@FETCH_STATUS = 0)
            AND (@c2 < @c1)
        BEGIN
          UPDATE tbl_RestCommend
          SET    Id = @c2 + 1
          WHERE CURRENT OF NewCommend
          
          SET @c2 = @c2 + 1
          
          FETCH NEXT FROM NewCommend
        END
      
      CLOSE NewCommend
      
      DEALLOCATE NewCommend
      ---αEND
    END



GO
/****** :  StoredProcedure [dbo].[sp_user_get]    ű: 02/01/2010 14:38:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








CREATE PROCEDURE [dbo].[sp_user_get]	
	@id int=0,	
	@circleID bigint=0,
	@activityID bigint=0,
	@nickName varchar(16)='',
	@email varchar(50)='',
	@isSearch int=0,
	@strOrder varchar(50)='id desc',
	@limit int=0,
	@circleCommend int=0
AS
BEGIN	
	SET NOCOUNT ON		
	declare @sql varchar(500)
	declare @where varchar(500)	
	declare @str varchar(50)
	set @str=''	
	set @where = ''
	if @limit>0
		set @str=' top ' + ltrim(str(@limit))
	set @sql = 'select ' + @str + ' a.* from tbl_user a '
	set @where=@where + ' and a.state=0 '
	if @id>0		
		set @where=@where + ' and a.id=' + ltrim(str(@id))	
	if @circleID>0
		set @where=@where + ' and a.ID in (select userID from tbl_circleUser where circleID=' + ltrim(str(@circleID)) + ') '
	if @activityID>0
		set @where=@where + ' and a.id in (select userId from tbl_activityUser where level>=0 and activityId=' + ltrim(str(@activityID)) + ')'
	if @circleCommend>0
		set @where=@where + ' and a.ID in (select userID from tbl_circleUser where circleID in (select circleID from tbl_topCircle) )'
	
	if @isSearch>0
		begin
		if len(ltrim(@nickName))>0
			set @where=@where + ' and a.nickName like ''%' + ltrim(@nickName) + '%'''
		if len(ltrim(@email))>0
			set @where=@where + ' and a.email like ''%' + ltrim(@email) + '%'''
		end	
	if len(@where)>0
		set @where=substring(@where,5,len(@where)-4)
	if len(@where)>0
		set @sql=@sql + ' where ' + @where + ' order by a.' + @strOrder
	else
		set @sql=@sql + ' order by a.' + @strOrder
--select @sql
exec(@sql)
select @@rowcount
	
END








GO
/****** :  StoredProcedure [dbo].[sp_UserActivedegreesStatis]    ű: 02/01/2010 14:38:02 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE PROCEDURE [dbo].[sp_UserActivedegreesStatis]
@ProvinceID int=0,
@CityID int=0,
@RegionID int=0,
@ZoneID int=0,
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1'
AS
begin
DECLARE @Sql nvarchar(4000)
DECLARE @Where varchar(8000)
DECLARE @ProvinceIdStr varchar(8000)
DECLARE @CityIdStr varchar(8000)
DECLARE @RegionIdStr varchar(8000)
DECLARE @ZoneIdStr varchar(8000)
SET @ProvinceIdStr = CAST(@ProvinceID AS varchar(8000))
SET @CityIdStr = CAST(@CityID AS varchar(8000))
SET @RegionIdStr = CAST(@RegionID AS varchar(8000))
SET @ZoneIdStr = CAST(@ZoneID AS varchar(8000))
SET @Where = ''
IF @ProvinceID > 0 OR @CityID > 0 OR @RegionID > 0 OR @ZoneID > 0
BEGIN
IF @ProvinceId > 0 SET @Where = @Where + ' AND c.ProvinceId=' + @ProvinceIdStr + ' AND '
IF @CityId > 0 SET @Where = @Where + ' c.CityId=' + @CityIdStr + ' AND '
IF @RegionId > 0 SET @Where = @Where + ' c.RegionId=' + @RegionIdStr + ' AND '
IF @ZoneId > 0 SET @Where = @Where + ' c.ZoneId=' + @ZoneIdStr + ' AND '
SET @Where = SUBSTRING(@Where, 1, LEN(@Where)-4)
END
set @sql='select a.userid userid, b.email username, 
b.nickname nickname,sum(a.total) SumMoney  
from v_Order_GeneralList a
left join tbl_user b on a.userid=b.id
left join tbl_restaurant c on a.restid=c.id
where a.date_time >='''  + CONVERT(varchar(20),@StartDate) + 
'''  and a.date_time < ''' + CONVERT(varchar(20),@EndDate) + 
'''  and a.state=1  ' +  @Where + '  and  len(ltrim(rtrim(b.email)))<>0  
  group by a.userid,b.email,b.nickname  order by  SumMoney  desc ' 
exec(@sql)
end 











GO
/****** :  StoredProcedure [dbo].[sp_UserActivedegreesStatisInfo]    ű: 02/01/2010 14:38:04 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_UserActivedegreesStatisInfo]
@ProvinceID int=0,
@CityID int=0,
@RegionID int=0,
@ZoneID int=0,
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1',
@UserId int
AS
begin
DECLARE @Sql nvarchar(4000)
DECLARE @Where varchar(8000)
DECLARE @ProvinceIdStr varchar(8000)
DECLARE @CityIdStr varchar(8000)
DECLARE @RegionIdStr varchar(8000)
DECLARE @ZoneIdStr varchar(8000)
SET @ProvinceIdStr = CAST(@ProvinceID AS varchar(8000))
SET @CityIdStr = CAST(@CityID AS varchar(8000))
SET @RegionIdStr = CAST(@RegionID AS varchar(8000))
SET @ZoneIdStr = CAST(@ZoneID AS varchar(8000))
SET @Where = ''
IF @ProvinceID > 0 OR @CityID > 0 OR @RegionID > 0 OR @ZoneID > 0
BEGIN
IF @ProvinceId > 0 SET @Where = @Where + ' AND c.ProvinceId=' + @ProvinceIdStr + ' AND '
IF @CityId > 0 SET @Where = @Where + ' c.CityId=' + @CityIdStr + ' AND '
IF @RegionId > 0 SET @Where = @Where + ' c.RegionId=' + @RegionIdStr + ' AND '
IF @ZoneId > 0 SET @Where = @Where + ' c.ZoneId=' + @ZoneIdStr + ' AND '
SET @Where = SUBSTRING(@Where, 1, LEN(@Where)-4)
END
set @sql='select a.date_time ordertime, b.email username, 
b.nickname nickname,a.total orderMoney  
from v_Order_GeneralList a
left join tbl_user b on a.userid=b.id
left join tbl_restaurant c on a.restid=c.id
where a.date_time >='''  + CONVERT(varchar(20),@StartDate) + 
'''  and a.date_time < ''' + CONVERT(varchar(20),@EndDate) + 
'''  and a.state=1  '  +  @Where +  '  and  a.userid=' + str(@UserId)
exec(@sql)
end








GO
/****** :  StoredProcedure [dbo].[sp_UserActiveMonitorStatis]    ű: 02/01/2010 14:38:06 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_UserActiveMonitorStatis]
AS
begin
	declare @Total bigint
	declare @lastOuserC bigint
	declare @CurOuserC bigint
	declare @lastWeekC bigint
	declare @YesOuserC bigint
	declare @TodOuserC bigint
		declare @lastMonth_Start DateTime
		declare @lastMonth_End DateTime
		declare @CurMonth_Start DateTime
		declare @CurMonth_End DateTime
		declare @lastWeek_Start DateTime
		declare @lastWeek_End DateTime
		declare @YesReg_Start DateTime
		declare @YesReg_End DateTime
		declare @TodReg_Start DateTime
		declare @TodReg_End DateTime
    --µĵһ   2007-08-01 00:00:00.000
    set @lastMonth_Start=DATEADD(mm, DATEDIFF(mm,0,dateadd(m,-1,getdate())), 0)
    --µһ 2007-08-31 23:59:59.997
    set @lastMonth_End=dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)) 
    --µĵһ   2007-09-01 00:00:00.000
    set @CurMonth_Start=DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
    --µһ 2007-09-30 23:59:59.997
    set @CurMonth_End=dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
    --һ 2007-09-10 00:00:00.000
    set @lastWeek_Start= dateadd(wk,-1,DATEADD(wk,DATEDIFF(wk,0,getdate()),0))
    --ս 2007-09-17 00:00:00.000
    set @lastWeek_End=  DATEADD(wk,DATEDIFF(wk,0,getdate()),0)
    -- 2007-09-17 00:00:00.000
    set @YesReg_Start= CONVERT(DateTime,CONVERT(varchar(100), dateadd(d,-1,getdate()), 23))
    -- 2007-09-18 00:00:00.000
    set @YesReg_End= CONVERT(DateTime,CONVERT(varchar(100),getdate(), 23))
    --տʼ 2007-09-18 00:00:00.000
    set @TodReg_Start= @YesReg_End
    --ս 2007-09-19 00:00:00.000
    set @TodReg_End= CONVERT(DateTime,CONVERT(varchar(100),dateadd(d,1,getdate()), 23)) 
    
	select @Total=count(*) from (select distinct(userid) from  v_Order_GeneralList) T
    
    select @lastOuserC=count(*) from (select distinct(userid) from  v_Order_GeneralList 
    where date_time between @lastMonth_Start and @lastMonth_End ) T

    select @CurOuserC=count(*) from (select distinct(userid) from  v_Order_GeneralList 
    where date_time between @CurMonth_Start and @CurMonth_End ) T 

    select @lastWeekC=count(*) from (select distinct(userid) from  v_Order_GeneralList 
    where date_time >= @lastWeek_Start and date_time < @lastWeek_End ) T 

    select @YesOuserC=count(*) from (select distinct(userid) from  v_Order_GeneralList
    where date_time >= @YesReg_Start and date_time < @YesReg_End ) T 

    select @TodOuserC=count(*) from (select distinct(userid) from  v_Order_GeneralList
    where date_time >= @TodReg_Start and date_time < @TodReg_End ) T 
 
	select  @Total Total,
	@lastOuserC lastOuserC,
	@CurOuserC  CurOuserC,
	@lastWeekC  lastWeekC,
	@YesOuserC  YesOuserC,
	@TodOuserC  TodOuserC
end



 
 
 
 














GO
/****** :  StoredProcedure [dbo].[sp_userAddress_add]    ű: 02/01/2010 14:38:07 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [dbo].[sp_userAddress_add]
	@userID bigint=0,
	@regionID int=0,
	@zoneID int=0,
	@areaID int=0,	
	@embody  varchar(50),--ûַ
	@otherArea varchar(50),--¥
	@count int=3,
	@result int output
as

declare @provinceID int,@cityID int
select @provinceID=0,@cityID=0
select @provinceID=provinceID,@cityID=cityID from tbl_user where id=@userID
if @provinceID>0 and @cityID>0 begin
	if (select count(*) from tbl_userAddress where userID=@userID)<@count begin
				/*----start----*/	
				if @regionID > 0 begin		
					if @otherArea <> ''	begin
						set @areaID=0
						select @areaID=ID from tbl_area where [name]=@otherArea and provinceID=@provinceID and cityID=@cityID and regionID=@regionID and zoneID=@zoneID
						if @areaID=0 begin
							insert into tbl_area([name],provinceID,cityID,regionID,zoneID,userID,state) values
								(@otherArea,@provinceID,@cityID,@regionID,@zoneID,@userID,0)
							insert into tbl_userAddress(userID,address,regionID,zoneID,areaID) values
									(@userID,@embody,@regionID,@zoneID,@@identity)
						end else begin
							insert into tbl_userAddress(userID,address,regionID,zoneID,areaID) 
												values (@userID,@embody,@regionID,@zoneID,@areaID)	
						end
					end	else begin
						insert into tbl_userAddress(userID,address,regionID,zoneID,areaID) 
												values (@userID,@embody,@regionID,@zoneID,@areaID)	
					end						
				end
				/*----end----*/
				/*if @regionID > 0 begin
					set @zoneID=0
					select @zoneID=zoneID from tbl_area where name=@otherArea and provinceID=@provinceID and cityID=@cityID and regionID=@regionID
					if @zoneid>0 begin
						insert into tbl_userAddress(userID,address,regionID,zoneID,areaID) values
							(@userID,@embody,@regionID,@zoneID,@areaID)
					end else if @otherArea <> '' begin
						insert into tbl_area(name,provinceID,cityID,regionID,zoneID,userID,state) values
							(@otherArea,@provinceID,@cityID,@regionID,@zoneID,@userID,0)
						insert into tbl_userAddress(userID,address,regionID,zoneID,areaID) values
								(@userID,@embody,@regionID,@zoneID,@@identity)
					end 		
				end*/
		return 1
	end	else begin
		return 0
	end
end else begin
	return 0
end
GO
/****** :  StoredProcedure [dbo].[sp_userBank_add]    ű: 02/01/2010 14:38:08 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [dbo].[sp_userBank_add]
	@userID bigint=0,
    @bankName varchar(50),
    @accountName varchar(20),
    @account varchar(50),
	@openBank varchar(50)
as
	if not (exists(select id from tbl_userDetail where id=@userID))
		insert into tbl_userDetail (id) values(@userID)

	update tbl_userDetail set bankName=@bankName,accountName=@accountName,account=@account ,openBank = @openBank where id=@userID

	select 1
		



GO
/****** :  StoredProcedure [dbo].[sp_userBank_get]    ű: 02/01/2010 14:38:10 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[sp_userBank_get]
	@userID bigint=0
as
	if @userID>0
		select * from tbl_userDetail where id=@userID
	else
		select * from tbl_userDetail 
		
		


GO
/****** :  StoredProcedure [dbo].[sp_UserBasicInfoChange]    ű: 02/01/2010 14:38:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_UserBasicInfoChange]
@Id  bigint=0,
---@password varchar(32),
@email  varchar(50) ,
@nickName varchar(16), 
@provinceID int ,
@cityID int ,
@ip  varchar(16),
@regTime  datetime, 
---@state int ,
@trueName  varchar(20),
@cardID varchar(20),
@phone varchar(20),
@mobile varchar(15),
@fax varchar(20),
@msn varchar(40),
@qq varchar(15),
@netContact varchar(50),
@address varchar(50),
@postcode varchar(6),
@note text
AS
	DECLARE @Result int
	begin
	begin tran
if (select count(*) from tbl_user where id<>@id and nickName=@nickName)>0
SET @Result = -1
else
	UPDATE tbl_user SET email=@email,nickName=@nickName
,provinceID=@provinceID,cityID=@cityID,ip=@ip,regTime=@regTime
WHERE id=@id
	UPDATE tbl_userDetail SET trueName=@trueName, cardID=@cardID, 
phone=@phone,mobile=@mobile,fax=@fax,msn=@msn,qq=@qq,netContact=@netContact
,address=@address,postcode=@postcode,note=@note WHERE id=@id
	IF @@error > 0 
    BEGIN
		ROLLBACK TRAN
		SET @Result = 0
	END 
    ELSE 
    BEGIN
		COMMIT TRAN
		SET @Result = 1
	END
	SELECT @Result
end



GO
/****** :  StoredProcedure [dbo].[sp_UserCountGeograpDistrStatis]    ű: 02/01/2010 14:38:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_UserCountGeograpDistrStatis]
@ProvinceID int=0,
@CityID int=0,
@RegionID int=0,
@ZoneID int=0,
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1',
@usertype int,
@Sign int
AS
begin
DECLARE @Sql nvarchar(4000)
DECLARE @Where varchar(8000)
DECLARE @ProvinceIdStr varchar(8000)
DECLARE @CityIdStr varchar(8000)
DECLARE @RegionIdStr varchar(8000)
DECLARE @ZoneIdStr varchar(8000)
SET @ProvinceIdStr = CAST(@ProvinceID AS varchar(8000))
SET @CityIdStr = CAST(@CityID AS varchar(8000))
SET @RegionIdStr = CAST(@RegionID AS varchar(8000))
SET @ZoneIdStr = CAST(@ZoneID AS varchar(8000))
SET @Where = ''
IF @ProvinceID > 0 OR @CityID > 0 OR @RegionID > 0 or @ZoneID>0 BEGIN
IF @ProvinceId > 0 SET @Where = @Where + ' AND  b.ProvinceId=' + @ProvinceIdStr
IF @CityId > 0   SET @Where = @Where + '  AND  b.CityId=' + @CityIdStr
IF @RegionId > 0 SET @Where = @Where + ' AND  b.RegionId=' + @RegionIdStr
IF @ZoneId > 0  SET @Where = @Where + ' AND  b.ZoneId=' + @ZoneIdStr  END

set @sql= '  
select ccc.id,ccc.name, count(*) UserCount  from 
( select  b.id id, b.name name , a.id userid  '   

if @Sign=4  begin 
set @sql=@sql + '  from  tbl_area  b   
left join tbl_userAddress  c  on b.id=c.areaid    
left join tbl_user a  on  c.userid=a.id  '
end if @Sign=3 begin 
set @sql=@sql + '  from  tbl_zone b   
left join tbl_userAddress  c  on b.id=c.zoneid   
left join tbl_user a  on c.userid=a.id  '
end if @Sign=2 begin 
set @sql=@sql + '  from  tbl_region b  
left join tbl_userAddress  c  on b.id=c.regionid  
left join tbl_user a  on c.userid=a.id  '
end if @Sign=1 begin 
set @sql=@sql + '  from  tbl_city  b  
left join tbl_user  a  on a.cityID=b.id   
left join tbl_userAddress  c  on  a.id=c.userid   '
end 

if @usertype=0 begin
set @sql=@sql + '  where  1=1  ' +  @Where 
end else begin
set @sql=@sql + '  where  a.id in (select userid from v_Order_GeneralList where state=1) '  
+ @Where  
end

set @sql=@sql + '  and  b.name is not null  and a.regTime >= ''' + 
cast(@StartDate as varchar(20))+ 
'''  and  a.regTime <  ''' +  cast(@EndDate as varchar(20)) +  
'''  group by b.id,b.name,a.id  ) ccc   
group by  ccc.id, ccc.name   order by  UserCount  desc  '

EXEC(@Sql)
end
























GO
/****** :  StoredProcedure [dbo].[sp_UserCountGeograpDistrStatisInfo]    ű: 02/01/2010 14:38:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_UserCountGeograpDistrStatisInfo]
@ProvinceID int=0,
@CityID int=0,
@RegionID int=0,
@ZoneID int=0,
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1',
@usertype int,
@Sign int,
@id int
AS
begin
DECLARE @Sql nvarchar(4000)
DECLARE @c int
DECLARE @Where varchar(8000)
DECLARE @ProvinceIdStr varchar(8000)
DECLARE @CityIdStr varchar(8000)
DECLARE @RegionIdStr varchar(8000)
DECLARE @ZoneIdStr varchar(8000)
SET @ProvinceIdStr = CAST(@ProvinceID AS varchar(8000))
SET @CityIdStr = CAST(@CityID AS varchar(8000))
SET @RegionIdStr = CAST(@RegionID AS varchar(8000))
SET @ZoneIdStr = CAST(@ZoneID AS varchar(8000))
SET @Where = ''
IF @ProvinceID > 0 OR @CityID > 0 OR @RegionID > 0 or @ZoneID>0
BEGIN

IF @ProvinceId > 0 SET @Where = @Where + ' AND a.ProvinceId=' + @ProvinceIdStr + ' AND '
IF @CityId > 0 SET @Where = @Where + ' a.CityId=' + @CityIdStr + ' AND '
IF @RegionId > 0 SET @Where = @Where + ' c.RegionId=' + @RegionIdStr + ' AND '
IF @ZoneId > 0 SET @Where = @Where + ' c.ZoneId=' + @ZoneIdStr + ' AND '
   
SET @Where = SUBSTRING(@Where, 1, LEN(@Where)-4)
END

set @sql='  select distinct  a.email username ' +
'  from  tbl_user  a  left join tbl_userAddress c on c.userID=a.id  '

if @usertype=1 begin
set @sql= + @sql + ' left join v_Order_GeneralList d on a.id=d.userid  '
end

if @usertype=0 begin
set @sql=@sql + '  where  1=1  ' +  @Where 
end else begin
set @sql=@sql + '  where  a.id in (select userid from v_Order_GeneralList where state=1) ' 
+ @Where
end

if @Sign=4  begin 
set @sql=@sql + '  and c.areaID=' + str(@id)
end if @Sign=3 begin 
set @sql=@sql + '  and c.zoneID=' + str(@id)
end if @Sign=2 begin 
set @sql=@sql + '  and c.regionID=' + str(@id)
end if @Sign=1 begin 
set @sql=@sql + '  and a.cityID=' + str(@id)
end 

set @sql=@sql + '  and a.regTime >= ''' + cast(@StartDate as varchar(20))+ 
'''  and  a.regTime <  ''' +  cast(@EndDate as varchar(20)) +  ''''
 
EXEC(@Sql)
end












GO
/****** :  StoredProcedure [dbo].[sp_UserGeograpDistrStatis]    ű: 02/01/2010 14:38:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_UserGeograpDistrStatis]
@ProvinceID int=0,
@CityID int=0,
@RegionID int=0,
@ZoneID int=0,
@AreaID int=0,
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1',
@usertype int
AS 
begin
DECLARE @Sql nvarchar(4000)
DECLARE @Where varchar(8000)
DECLARE @ProvinceIdStr varchar(8000)
DECLARE @CityIdStr varchar(8000)
DECLARE @RegionIdStr varchar(8000)
DECLARE @ZoneIdStr varchar(8000)
DECLARE @AreaIdStr varchar(8000)
SET @ProvinceIdStr = CAST(@ProvinceID AS varchar(8000))
SET @CityIdStr = CAST(@CityID AS varchar(8000))
SET @RegionIdStr = CAST(@RegionID AS varchar(8000))
SET @ZoneIdStr = CAST(@ZoneID AS varchar(8000))
SET @AreaIdStr = CAST(@AreaID AS varchar(8000))
SET @Where = ''
IF @ProvinceID > 0 OR @CityID > 0 OR @RegionID > 0 OR @ZoneID > 0 
or @AreaID > 0
BEGIN
    if @usertype=0 begin
IF @ProvinceId > 0 SET @Where = @Where + ' AND a.ProvinceId=' + @ProvinceIdStr + ' AND '
IF @CityId > 0 SET @Where = @Where + ' a.CityId=' + @CityIdStr + ' AND '
IF @RegionId > 0 SET @Where = @Where + ' c.RegionId=' + @RegionIdStr + ' AND '
IF @ZoneId > 0 SET @Where = @Where + ' c.ZoneId=' + @ZoneIdStr + ' AND '
IF @AreaID > 0 SET @Where = @Where + ' c.AreaId=' + @AreaIdStr + ' AND '
    END
else
 begin
IF @ProvinceId > 0 SET @Where = @Where + ' AND b.ProvinceId=' + @ProvinceIdStr + ' AND '
IF @CityId > 0 SET @Where = @Where + ' b.CityId=' + @CityIdStr + ' AND '
IF @RegionId > 0 SET @Where = @Where + ' b.RegionId=' + @RegionIdStr + ' AND '
IF @ZoneId > 0 SET @Where = @Where + ' b.ZoneId=' + @ZoneIdStr + ' AND '
IF @AreaID > 0 SET @Where = @Where + ' b.AreaId=' + @AreaIdStr + ' AND '
    END

SET @Where = SUBSTRING(@Where, 1, LEN(@Where)-4)
END

if @usertype=0 begin



set @sql='
select  aaa.dateStr dateStr , count(*) UserCount from 
(
select  
substring(CONVERT(varchar(100),a.regTime, 112),1,6) dateStr,a.id userid
from  tbl_user a
left join tbl_userAddress c on c.userID=a.id
' + ' where  a.regTime >= ''' +
cast(@StartDate as varchar(20))+ '''  and  a.regTime <  ''' + 
cast(@EndDate as varchar(20)) + ''' ' +  @Where 
+ '  group by substring(CONVERT(varchar(100),a.regTime, 112),1,6) ,a.id 
) aaa   group by aaa.dateStr order by dateStr  '

end else begin
set @sql=' 
select a1.dateStr dateStr,count(*) UserCount from
(
select a.userid,
substring(CONVERT(varchar(100),a.date_time, 112),1,6) dateStr
from v_Order_GeneralList a 
left join tbl_area b on a.areaID=b.id
left join tbl_user c on a.userid=c.id
'+ ' where  c.regTime >= ''' +
cast(@StartDate as varchar(20))+ '''  and  c.regTime <  ''' + 
cast(@EndDate as varchar(20)) + ''' ' + '  and  a.date_time >= ''' +
cast(@StartDate as varchar(20))+ '''  and  a.date_time <  ''' + 
cast(@EndDate as varchar(20)) + ''' '  + @Where 
+ '  group by a.userid,substring(CONVERT(varchar(100),a.date_time, 112),1,6)
) a1 group by a1.dateStr order by a1.dateStr '
end
 
EXEC(@Sql)
end

















GO

/****** :  StoredProcedure [dbo].[sp_userIntegral_reduce]    ű: 02/01/2010 14:38:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--ֻBy:gcy δ
CREATE procedure [dbo].[sp_userIntegral_reduce]
	@userID bigint=0,
	@integralReduce int=0,
	@op int=0
as
declare @result int
set @result=0
--begin
--	if @userID>0 and @integralReduce>0  begin
--		if not exists(select userID from tbl_userIntegral where userID=@userID) begin
--			insert into tbl_userIntegral(userID) values(@userID)
--		end
--		declare @integral int , @expendEarnIntegral int,@spreadEarnIntegral int
--		select @integral=integral,@expendEarnIntegral=expendEarnIntegral,@spreadEarnIntegral=spreadEarnIntegral from tbl_userIntegral where userID=@userID
--		
--		if @op=1 begin--Ȼѻû
--			if (@expendEarnIntegral+@spreadEarnIntegral)<@integralReduce
--				set @result=-1	
--			else if @expendEarnIntegral<@integralReduce begin
--				update tbl_userIntegral set expendEarnIntegral=0,spreadEarnIntegral=@spreadEarnIntegral-(@integralReduce-@expendEarnIntegral),integral=@integral-@integralReduce where userID=@userID			
--				set @result=@op
--			end else begin
--				update tbl_userIntegral set expendEarnIntegral=@expendEarnIntegral-@integralReduce,integral=@integral-@integralReduce where userID=@userID			
--				set @result=@op
--			end
--		end else if @op=2 begin--Ȼƹû
--			if (@expendEarnIntegral+@spreadEarnIntegral)<@integralReduce
--				set @result=-2	
--			else if @spreadEarnIntegral<@integralReduce begin
--				update tbl_userIntegral set spreadEarnIntegral=0,expendEarnIntegral=@expendEarnIntegral-(@integralReduce-@spreadEarnIntegral),integral=@integral-@integralReduce where userID=@userID			
--				set @result=@op
--			end else begin
--				update tbl_userIntegral set spreadEarnIntegral=@spreadEarnIntegral-@integralReduce,integral=@integral-@integralReduce where userID=@userID			
--				set @result=@op
--			end
--		end else if @op=3 begin--ֻѻû
--			if @expendEarnIntegral<@integralReduce 
--				set @result=-3				
--			else begin
--				update tbl_userIntegral set expendEarnIntegral=@expendEarnIntegral-@integralReduce,integral=@integral-@integralReduce where userID=@userID			
--				set @result=@op
--			end		
--		end else if @op=4 begin--ֻƹû
--			if @spreadEarnIntegral<@integralReduce
--				set @result=-4	
--			else begin
--				update tbl_userIntegral set spreadEarnIntegral=@spreadEarnIntegral-@integralReduce,integral=@integral-@integralReduce where userID=@userID			
--				set @result=@op
--			end
--
--		end
--	end
--if @@error>0 begin
--	rollback tran
--end else begin
--	commit tran
--end
select @result
	
		
		



GO
/****** :  StoredProcedure [dbo].[sp_userintegralRankStatis]    ű: 02/01/2010 14:38:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_userintegralRankStatis]
@Sign int=1
AS
/*
	ǿ޸2007-12-18 ޸ģ38
	cast(cast(Year(GETDATE()) 
	Ϊ
	cast(cast(Year(dateadd(m,1,GETDATE())) 
*/
begin
    if @Sign =1 begin
	  select DISTINCT top 50  b.email useremail, a.integral from  tbl_userintegral   a 
	  left join tbl_user b on a.userid=b.id  WHERE b.email IS NOT NULL and b.state=0 
      order by  a.integral desc 
	end
    if @Sign =2 begin
      select DISTINCT top 50  b.email useremail, a.integral from  tbl_userintegral   a 
	  left join tbl_user b on a.userid=b.id  
      left join tbl_userIntegralDetail c on a.userID=c.userID
      where c.getTime >= CONVERT(varchar(100), GETDATE(), 23)
      and c.getTime < DATEADD(d, 1, CONVERT(DateTime,CONVERT(varchar(100), GETDATE(), 23))) 
      and b.email IS NOT NULL  and b.state=0 
      order by  a.integral desc		 
	end
    if @Sign =3 begin
      select  DISTINCT top 50   b.email useremail, a.integral from  tbl_userintegral   a 
	  left join tbl_user b on a.userid=b.id  
      left join tbl_userIntegralDetail c on a.userID=c.userID
      where c.getTime >= cast(cast(Year(GETDATE()) as varchar(8000)) + '-' + 
	  cast(Month(GETDATE()) as varchar(8000)) + '-1' as datetime)
	  and c.getTime <
	  cast(cast(Year(dateadd(m,1,GETDATE())) as varchar(8000)) + '-' + 
	  cast(Month(dateadd(m,1,GETDATE())) as varchar(8000)) + '-1' as datetime)
      and b.email IS NOT NULL and b.state=0 
	  order by  a.integral desc		
	end
end

GO

/****** :  StoredProcedure [dbo].[sp_userIP]    ű: 02/01/2010 14:38:24 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

create PROCEDURE [dbo].[sp_userIP]
@userId int=0
AS
if @userID>0
	select top 1 * from tbl_userIP where userID=@userID order by loginTime desc
GO
/****** :  StoredProcedure [dbo].[sp_UserOrderFoodStatis]    ű: 02/01/2010 14:38:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_UserOrderFoodStatis]
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1',
@UserName varchar(8000)=''
AS
begin

   if @UserName='' begin
select a.UserID UserID,
a.RestID RestID,
a.RestName RestName,
sum(a.total) OrderMoney,
OrderCount=count(*)
FROM v_Order_GeneralList a
left join tbl_user b on a.userid=b.id
where a.date_time >=cast(@StartDate as varchar(20))
and  a.date_time <cast(@EndDate as varchar(20)) and a.UserID<>0
and a.state=1
GROUP BY a.UserID,a.RestID,a.RestName  order by OrderMoney desc
   end 

   if @UserName<>'' begin
select a.UserID UserID,
a.RestID RestID,
a.RestName RestName,
sum(a.total) OrderMoney,
OrderCount=count(*)
FROM v_Order_GeneralList a
left join tbl_user b on a.userid=b.id
where b.email like '%'+ rtrim(ltrim(@UserName)) +'%'
and a.date_time >=cast(@StartDate as varchar(20))
and  a.date_time <cast(@EndDate as varchar(20)) and a.UserID<>0
and a.state=1
GROUP BY a.UserID,a.RestID,a.RestName   order by OrderMoney desc
  end 

END














GO
/****** :  StoredProcedure [dbo].[sp_UserOrderFoodStatisInfo]    ű: 02/01/2010 14:38:26 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_UserOrderFoodStatisInfo]
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1',
@userid int=0,
@restid int=0
AS
begin 

if @userid<>0 and @restid <>0 begin

select a.RestName RestName,
b.email UserName,
a.id OrderID,
a.date_time OrderDate,
a.total OrderMoney 
FROM v_Order_GeneralList a
left join tbl_user b on a.userid=b.id
where a.userid=@userid and a.restid=@restid 
and a.date_time >= cast(@StartDate as varchar(20))
and  a.date_time < cast(@EndDate as varchar(20))
and a.state=1

end else begin

select '' as  RestName,
'' as  UserName,
'' as  OrderID,
'' as  OrderDate,
'' as  OrderMoney 

end 


END













GO
/****** :  StoredProcedure [dbo].[sp_UserOrderStatis]    ű: 02/01/2010 14:38:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_UserOrderStatis]
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1',
@ordertype int,
@UserName varchar(8000)=''
AS
begin
DECLARE @Sql nvarchar(4000)

set @sql='  select * from   ( select   
a.userID UserID,
b.email UserName,
sum(a.total) OrderMoney
FROM v_Order_GeneralList a
LEFT JOIN  tbl_user b on a.userid=b.id  
where a.date_time >= ''' +
cast(@StartDate as varchar(20))+ '''  
and   a.date_time < ''' + cast(@EndDate as varchar(20)) + ''''  

if @UserName<>'' begin
set @sql=@sql + '  and  b.email like  ''' + '%' + @UserName + '%' + ''''
end

if @ordertype=1 begin 
set @sql=@sql + '  and ((select count(*) from tbl_suiteMenuOrderDetail 
where orderID=a.id)=1 
or (select count(*) from tbl_orderDetail where orderID=a.id)=1) '
end 

if @ordertype=2 begin 
set @sql=@sql + '  and ((select count(*) from tbl_suiteMenuOrderDetail 
where orderID=a.id)>1 
or (select count(*) from tbl_orderDetail where orderID=a.id)>1) '
end 

set @sql=@sql + ' and len(ltrim(rtrim(b.email)))<>0  group by a.userID,b.email  ) a1 ,'

set @sql=@sql + ' ( select c.userID UserID,OrderCount=count(*)
FROM v_Order_GeneralList c
where c.date_time >= ''' + cast(@StartDate as varchar(20))+ '''  
and   c.date_time <''' +  cast(@EndDate as varchar(20)) + ''''

if @ordertype=1 begin
set @sql=@sql + '  and ((select count(*) from tbl_suiteMenuOrderDetail
where orderID=c.id)=1 
or (select count(*) from tbl_orderDetail where orderID=c.id)=1) '
end 

if @ordertype=2 begin 
set @sql=@sql + '  and ((select count(*) from tbl_suiteMenuOrderDetail 
where orderID=c.id)>1 
or (select count(*) from tbl_orderDetail where orderID=c.id)>1) '
end 

set @sql=@sql + '  group by c.userID  ) a2  where  a1.userID=a2.userID   
order by  a1.OrderMoney  desc '

EXEC(@Sql)
END













GO
/****** :  StoredProcedure [dbo].[sp_UserOrderStatisInfo]    ű: 02/01/2010 14:38:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_UserOrderStatisInfo]
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1',
@ordertype int=0,
@UserID int
AS
begin
DECLARE @Sql nvarchar(4000)

set @sql='select b.email UserName,a.id orderid,a.date_time ordertime,
a.total orderMoney,a.restname restname
FROM v_Order_GeneralList a
LEFT JOIN tbl_user b on a.userid=b.id  where  a.date_time >=''' +
cast(@StartDate as varchar(20))+ '''  and  a.date_time < ''' + 
cast(@EndDate as varchar(20)) + '''  and  b.id =' + str(@UserID)

if  @ordertype=1 begin 
set @sql=@sql + '  and ((select count(*) from tbl_suiteMenuOrderDetail where orderID=a.id)=1 
or (select count(*) from tbl_orderDetail where orderID=a.id)=1) '
end if @ordertype=2 begin 
set @sql=@sql + '  and ((select count(*) from tbl_suiteMenuOrderDetail where orderID=a.id)>1 
or (select count(*) from tbl_orderDetail where orderID=a.id)>1) '
end
EXEC(@Sql)
END








GO
/****** :  StoredProcedure [dbo].[sp_UserPasswordInit]    ű: 02/01/2010 14:38:30 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_UserPasswordInit]
@Id  bigint=0,
@password varchar(32)
AS
	DECLARE @Result int
	begin
	begin tran
	UPDATE tbl_user SET password=@password WHERE id=@id
	IF @@error > 0 
    BEGIN
		ROLLBACK TRAN
		SET @Result = 0
	END 
    ELSE 
    BEGIN
		COMMIT TRAN
		SET @Result = 1
	END
	SELECT @Result
end
GO
/****** :  StoredProcedure [dbo].[sp_UserRegContrastStatis]    ű: 02/01/2010 14:38:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_UserRegContrastStatis]
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1',
@Sign int=1
AS
begin
DECLARE @Sql nvarchar(4000)

if @Sign=1 begin 
set @Sql='select substring(CONVERT(varchar(100),regTime, 112),1,4) ' 
end if @Sign=2 begin
set @Sql='select substring(CONVERT(varchar(100),regTime, 112),1,6) ' 
end if @Sign=3 begin
set @Sql='select CONVERT(varchar(100),regTime, 112) ' 
end

set @Sql=@Sql + ' datestr,count(*) registration from tbl_user
where regTime >= ''' + cast(@StartDate as varchar(20)) +  
''' and  regTime < ''' + cast(@EndDate as varchar(20)) + ''''

if @Sign=1 begin
set @Sql=@Sql + '  group by substring(CONVERT(varchar(100),regTime, 112),1,4)  
 order by substring(CONVERT(varchar(100),regTime, 112),1,4) ' 
end if @Sign=2 begin
set @Sql=@Sql + '  group by substring(CONVERT(varchar(100),regTime, 112),1,6)  
 order by substring(CONVERT(varchar(100),regTime, 112),1,6) '  
end if @Sign=3 begin
set @Sql=@Sql + '  group by CONVERT(varchar(100),regTime, 112)  
 order by CONVERT(varchar(100),regTime, 112)  ' 
end
EXEC(@Sql)
end












GO
/****** :  StoredProcedure [dbo].[sp_userRegReport]    ű: 02/01/2010 14:38:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_userRegReport]
@startDate varchar(10),
@endDate varchar(10)
 AS
select convert(varchar,regTime,102) as reportDate,count(*) as amount from tbl_user
where regTime between @startDate and dateadd(d,1,@endDate)
group by convert(varchar,regTime,102)


GO
/****** :  StoredProcedure [dbo].[sp_UserSingleAmountStatis]    ű: 02/01/2010 14:38:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_UserSingleAmountStatis]
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1'
AS
begin
     DECLARE @Sql nvarchar(4000)
     DECLARE @Date_Temp bigint
     set @Date_Temp=1
     while (@Date_Temp < 100)  begin
         if @sql<>'' begin
				set @sql=@sql + ' union all  select moneyStr=''' +  
				str(@Date_Temp) + '- ' + str(@Date_Temp + 1) + ''' ,
				count(*) OrderCount,sum(a.total) OrderMoney
				from v_Order_GeneralList a
				where  a.date_time >= ''' + cast(@StartDate as varchar(20)) + '''  
				and  a.date_time < ''' + cast(@EndDate as varchar(20)) + '''  
				and a.state=1  
				and a.total >= ''' + str(@Date_Temp) +  '''  
				and a.total < ''' + str(@Date_Temp+1) + '''' 
		  end else begin 
     	     	set @sql= ' select moneyStr=''' +  
				str(@Date_Temp) + '- ' + str(@Date_Temp + 1) + ''' ,
				count(*) OrderCount,sum(a.total) OrderMoney
				from v_Order_GeneralList a
				where  a.date_time >= ''' + cast(@StartDate as varchar(20)) + '''  
				and  a.date_time < ''' + cast(@EndDate as varchar(20)) + '''  
				and a.state=1  
				and a.total >= ''' + str(@Date_Temp) +  '''  
				and a.total < ''' + str(@Date_Temp+1) + '''' 
         end
   set @Date_Temp=@Date_Temp + 1
  end
    set @sql=@sql + '  union  all  select moneyStr=''' + str(100) + '-' + ''',
	count(*) OrderCount,sum(a.total) OrderMoney
	from v_Order_GeneralList a
	where  a.date_time >= ''' + cast(@StartDate as varchar(20)) + '''  
	and  a.date_time < ''' + cast(@EndDate as varchar(20)) + '''  
	and a.state=1  
	and a.total >= ''' + str(100) +  ''''
EXEC(@Sql)
end 
 











GO
/****** :  StoredProcedure [dbo].[sp_UsersOrderMoneyRankStatis]    ű: 02/01/2010 14:38:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_UsersOrderMoneyRankStatis]
@Sign int=1
AS
/*
	ǿ޸2007-12-18 ޸ģ44
	cast(cast(Year(GETDATE()) 
	Ϊ
	cast(cast(Year(dateadd(m,1,GETDATE())) 
*/
begin 
	if @Sign =1 begin
		select top 50 a.userid userid,c.email useremail,sum(a.total) summoney
		from v_Order_GeneralList a
		left join tbl_user c on a.userid=c.id  
		where a.state=1 and c.email is not null and c.state=0
		group by  a.userid,c.email 
		order  by  summoney  desc
	end
    if @Sign =2 begin
        select top 50 a.userid userid,c.email useremail,sum(a.total) summoney
		from v_Order_GeneralList a
		left join tbl_user c on a.userid=c.id  
		where a.state=1 and c.email is not null 
        and a.date_time >= CONVERT(varchar(100), GETDATE(), 23)
        and a.date_time < DATEADD(d, 1, CONVERT(DateTime,CONVERT(varchar(100), GETDATE(), 23)))
		and c.state=0
        group by  a.userid,c.email 
		order  by  summoney  desc
	end
    if @Sign =3 begin
        select top 50 a.userid userid,c.email useremail,sum(a.total) summoney
		from v_Order_GeneralList a
		left join tbl_user c on a.userid=c.id  
		where a.state=1 and c.email is not null  and  a.date_time >=
        cast(cast(Year(GETDATE()) as varchar(8000)) + '-' + 
        cast(Month(GETDATE()) as varchar(8000)) + '-1' as datetime)
        and  a.date_time <
        cast(cast(Year(dateadd(m,1,GETDATE())) as varchar(8000)) + '-' + 
        cast(Month(dateadd(m,1,GETDATE())) as varchar(8000)) + '-1' as datetime)
		and c.state=0
        group by  a.userid,c.email 
		order by  summoney  desc
	end
end



GO
/****** :  StoredProcedure [dbo].[sp_UsersOrderVolumeStatis]    ű: 02/01/2010 14:38:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_UsersOrderVolumeStatis]
@ProvinceID int=0,
@CityID int=0,
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1',
@ordertype int
/* @ordertype 1  2 ϶ */
AS
begin
DECLARE @Sql nvarchar(4000)
DECLARE @Where varchar(8000)
DECLARE @ProvinceIdStr varchar(8000)
DECLARE @CityIdStr varchar(8000)
SET @ProvinceIdStr = CAST(@ProvinceID AS varchar(8000))
SET @CityIdStr = CAST(@CityID AS varchar(8000))
SET @Where = ''
IF @ProvinceID > 0 OR @CityID > 0 
BEGIN
IF @ProvinceId > 0 SET @Where = @Where + ' AND b.ProvinceId=' + @ProvinceIdStr + ' AND '
IF @CityId > 0 SET @Where = @Where + ' b.CityId=' + @CityIdStr + ' AND '
SET @Where = SUBSTRING(@Where, 1, LEN(@Where)-4)
END
set @sql='  select * from  ( select a.userid userid,ordercount=count(*)
from v_Order_GeneralList a
left join tbl_restaurant b on a.restid=b.id
where a.date_time >= ''' +  cast(@StartDate as varchar(20)) + 
'''  and  a.date_time < ''' + cast(@EndDate as varchar(20)) + ''' 
  and a.state=1  '+ @Where 
if @ordertype=1 
begin
set @sql=@sql + '  and
(((select count(*) from tbl_orderDetail where orderID=a.id)=1) or ' +
'((select count(*) from tbl_suiteMenuOrderDetail where orderID=a.id)=1))' 
end if @ordertype=2 begin
set @sql=@sql + '  and
(((select count(*) from tbl_orderDetail where orderID=a.id)>1) or ' +
'((select count(*) from tbl_suiteMenuOrderDetail where orderID=a.id)>1))' 
end
set @sql=@sql + '  group by a.userid  ) a1  left join '

set @sql=@sql + '  ( select a.userid userid,c.email username,
c.nickname nickname,sum(a.total) summoney
from v_Order_GeneralList a
left join tbl_restaurant b on a.restid=b.id
left join tbl_user c on a.userid=c.id  
where a.date_time >= ''' +  cast(@StartDate as varchar(20)) + 
'''  and  a.date_time < ''' + cast(@EndDate as varchar(20)) + '''
  and a.state=1  '+ @Where 
if @ordertype=1 
begin
set @sql=@sql + '  and
(((select count(*) from tbl_orderDetail where orderID=a.id)=1) or ' +
'((select count(*) from tbl_suiteMenuOrderDetail where orderID=a.id)=1))' 
end if @ordertype=2 begin
set @sql=@sql + '  and
(((select count(*) from tbl_orderDetail where orderID=a.id)>1) or ' +
'((select count(*) from tbl_suiteMenuOrderDetail where orderID=a.id)>1))' 
end
set @sql=@sql + ' group by  a.userid,c.email,c.nickname ) a2   
on a1.userid=a2.userid  where len(ltrim(rtrim(a2.username)))<>0   
order  by  a2.summoney  desc '
EXEC(@Sql)
end














GO
/****** :  StoredProcedure [dbo].[sp_UsersOrderVolumeStatisInfo]    ű: 02/01/2010 14:38:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_UsersOrderVolumeStatisInfo]
@ProvinceID int=0,
@CityID int=0,
@StartDate datetime='1900-1-1',
@EndDate datetime='9999-1-1',
@ordertype int,
@UserId int
/* @ordertype 1  2 ϶ */
AS
begin
DECLARE @Sql nvarchar(4000)
DECLARE @Where varchar(8000)
DECLARE @ProvinceIdStr varchar(8000)
DECLARE @CityIdStr varchar(8000)
SET @ProvinceIdStr = CAST(@ProvinceID AS varchar(8000))
SET @CityIdStr = CAST(@CityID AS varchar(8000))
SET @Where = ''
IF @ProvinceID > 0 OR @CityID > 0 
BEGIN
IF @ProvinceId > 0 SET @Where = @Where + ' AND b.ProvinceId=' + @ProvinceIdStr + ' AND '
IF @CityId > 0 SET @Where = @Where + ' b.CityId=' + @CityIdStr + ' AND '
SET @Where = SUBSTRING(@Where, 1, LEN(@Where)-4)
END
set @sql='select a.id orderid,a.userid userid,
a.date_time ordertime,a.total orderMoney
from v_Order_GeneralList a
left join tbl_restaurant b on a.restid=b.id
left join tbl_user c on a.userid=c.id  
where a.date_time >= ''' +  cast(@StartDate as varchar(20)) + 
'''  and  a.date_time < ''' + cast(@EndDate as varchar(20)) + ''' 
and a.state=1  ' + @Where +
' and a.userid='+ str(@UserId)
if @ordertype=1 begin
set @sql=@sql + '  and
  (((select count(*) from tbl_orderDetail where orderID=a.id)=1) or ' +
' ((select count(*) from tbl_suiteMenuOrderDetail where orderID=a.id)=1))' 
end if @ordertype=2 begin
set @sql=@sql + '  and
  (((select count(*) from tbl_orderDetail where orderID=a.id)>1) or ' +
' ((select count(*) from tbl_suiteMenuOrderDetail where orderID=a.id)>1))' 
end
EXEC(@Sql)
end

 









GO
/****** :  StoredProcedure [dbo].[sp_UserStateChange]    ű: 02/01/2010 14:38:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_UserStateChange]
@Id  bigint=0,
@state int
AS
	DECLARE @Result int
	begin
	begin tran
	UPDATE tbl_user SET state=@state WHERE id=@id
	IF @@error > 0 
    BEGIN
		ROLLBACK TRAN
		SET @Result = 0
	END 
    ELSE 
    BEGIN
		COMMIT TRAN
		SET @Result = 1
	END
	SELECT @Result
	end

GO
/****** :  StoredProcedure [dbo].[sp_userUploadFile_add]    ű: 02/01/2010 14:38:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


/****** :  StoredProcedure [dbo].[sp_userUploadFile_add]    ű: 10/31/2006 09:34:42 ******/

CREATE PROCEDURE [dbo].[sp_userUploadFile_add]
@id int=0,
@userID int=0,
@filePath varchar(100),
@domain varchar(50),
@fileSize bigint =0,
@result int =0 output
 AS
if @id>0 begin
	update tbl_userUploadFile set userID=@userID,filePath=@filePath,domain=@domain,fileSize=@fileSize where id=@id
	set @result = @id
end else begin
	insert tbl_userUploadFile(userID,filePath,domain,fileSize) values(@userID,@filePath,@domain,@fileSize)	
	set @result=@@Identity
end
select @result


GO
/****** :  StoredProcedure [dbo].[sp_userUploadFile_delete]    ű: 02/01/2010 14:38:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_userUploadFile_delete]
@id int=0
 AS
if @id>0
	begin
	update tbl_userUploadFile set isDelete=1 where id=@id	
	end

GO
/****** :  StoredProcedure [dbo].[sp_userUploadFile_get]    ű: 02/01/2010 14:38:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


/****** :  StoredProcedure [dbo].[sp_815Class_add]    ű: 10/31/2006 09:34:42 ******/

CREATE PROCEDURE [dbo].[sp_userUploadFile_get]
@id int=0
 AS
if @id>0
	begin
	select id,userID,filePath,fileSize,domain,upLoadTime,isDelete from tbl_userUploadFile where id=@id and isDelete=0
	end



GO
/****** :  StoredProcedure [dbo].[sp_v_AreaSelect]    ű: 02/01/2010 14:38:43 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		wangjh
-- Create date: 2008-4-2
-- Description:	̨С¥бѯ
-- =============================================
CREATE PROCEDURE [dbo].[sp_v_AreaSelect]
	@areaId int = 0,
	@AreaName varchar(100)='',
	@provinceID int=6,
	@cityID int=6,
	@RegionID int=0,
	@ZoneID int=0,
	@label varchar(100)='',
	@type varchar(2) = '0',--0¥ --1׼¥
	@state varchar(4) = '-1', -- -1ΪУ0Ϊرգ1
	@pageIndex int = 1,
	@pageSize int = 0
AS
BEGIN
	declare @sql nvarchar(4000)
	declare @where varchar(8000)
	set @sql = ''
	set @where =' and  isnull(zonename,'''')<>'''' and isnull(regionname,'''')<>'''' and 
isnull(cityname,'''')<>'''' and isnull(provincename,'''')<>''''  '

	--ҳϢ
	declare @startRow int
	declare @endRow int
	declare @totalCount int
	declare @countPage int
	set @totalCount = 0
	set @countPage = 0
	if @areaId <> 0
	set @where = @where + ' and id = '+str(@areaId)
	if @AreaName <> '' begin
	set @AreaName = '%'+@AreaName +'%'
	set @where = @where + ' and name like '''+ @AreaName + ''''
	end
	if @provinceID <> 0 
	set @where = @Where + ' and provinceId ='+ str(@provinceId)
	if @cityID <> 0
	set @where = @where + ' and cityID = '+ str(@cityID)
	if @RegionID <> 0
	set @where = @where + ' and regionID = '+ str(@RegionID)
	if @ZoneID <> 0
	set @where = @where + ' and zoneID = '+ str(@ZoneID)
	if @label <> '' begin
	set @label = '%'+ @label +'%'
	set @where = @where + ' and label like'''+ @label+'''' end
	if @type <> '0'
	set @where = @where + ' and parentId<>0 and parentId = id and isdelete =0'
	if @state <> '-1'
	set @where = @where + ' and state = '+ @state

	--¼
	SET @Sql = N'SELECT @TotalCountOut=Count(id) FROM v_Area where 1=1 '+@where
	EXEC sp_executesql @Sql, N'@TotalCountOut INT OUTPUT', @TotalCountOut=@TotalCount OUTPUT
	
	if @pageSize = 0 begin -- ҳ
	set @sql ='select * from v_area where 1 = 1 ' +@where
	+' order by postTime desc'
	end
	else begin -- ҳʼ
	set @countPage = ceiling((@totalCount+0.0)/@pageSize)
	--ǰҳҳ趨ǰҳҳ
	if (@pageIndex > @countPage AND @countPage!=0)set @pageIndex = @countPage
	if @pageIndex < 1 set @pageIndex =1
	set @startRow = (@pageIndex-1)*@pageSize+1
	set @endRow = @pageIndex * @pageSize
	set @sql =' select * from('
	+'select * ,Row_number() over(order by postTime desc) as row from v_area where 1=1 '+ @where
	+') as t where row between '+ str(@startRow)+' and '+ str(@endRow)
	END
	SET @Where= ' 1=1'+@Where
	if @pageSize = 0 BEGIN
		exec(@sql)
	END
	ELSE
	begin
	exec UP_GetDataList @strGetFields='* ,1 as row',@doCount=1,@tblName='v_area',@fldName='postTime desc', @PageSize=@PageSize, @PageIndex=@PageIndex,@strWhere=@Where
	end
--	exec(@sql)
--	select @AreaName
--select(@sql)
	SELECT @PageIndex AS PageIndex, @PageSize AS PageSize, @TotalCount AS TotalCount, @countPage AS TotalPage
END





GO
/****** :  StoredProcedure [dbo].[sp_validateAdminUser]    ű: 02/01/2010 14:38:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE PROCEDURE [dbo].[sp_validateAdminUser]
@userName varchar(20),
@Password varchar(50),
@ip varchar(15),
@result int =0 output
 AS
declare @tempUser varchar(20)
declare @role int
declare @userID int
select @role=0
select @userID=0
declare @tempPassword varchar(50)
declare @logmessage varchar(50)
select @logmessage=@userName
select @userID=id,@tempPassword=password,@role=role from tbl_systemUser where name=@userName and state=0
if (@tempPassword=@password)
begin
	select @result =1
    insert into tbl_systemUserLog(userID,errorClass,errorMessage,ip)values(@userID,@result,@logmessage,@ip)
end    
else
begin
	select @result=-1
	insert into tbl_systemUserLog(userID,errorClass,errorMessage,ip)values(@userID,@result,@logmessage,@ip)
end
select @result,@userID,@username,@role




GO
/****** :  StoredProcedure [dbo].[sp_VARea]    ű: 02/01/2010 14:38:47 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_VARea]
@id int
AS
declare @userID bigint
declare @state int
select @userID=userID,@state=state from tbl_area where id=@id
if @userID>0
begin
if @state=0 
begin
	update tbl_area set state=1 where id=@ID
	exec sp_userIntegral @userID,0,2,'ӵĽ֤ͨõ'
 	select 1
end
else
begin
	update tbl_area set state=0 where ID=@id
	exec sp_userIntegral @userID,0,-2,'֤ͨȡ'
	select 2
end
end
else
	select -1
GO
/****** :  StoredProcedure [dbo].[sp_WeekTop10Add]    ű: 02/01/2010 14:38:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_WeekTop10Add]
@RestId int,
@UserId int,
@result int=0 output
AS
declare @id int
select @id=max(id)+1 from tbl_weekTop10
begin
if (select count(*) from tbl_weekTop10 where RestId=@RestId)>0
begin
set @result=-1
end
else
begin
insert into tbl_weekTop10(id,restID,addUserID) values(@id,@RestId,@UserId)
set @result=1
end
end
select @result


GO
/****** :  StoredProcedure [dbo].[sp_WeekTopDelete]    ű: 02/01/2010 14:38:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
Create PROCEDURE [dbo].[sp_WeekTopDelete]
@restID int,
@result int=0 output
AS
declare @id int
begin
select @id=id from tbl_weekTop10 where restID=@restID
if (select max(id) from tbl_weekTop10)= @id
begin
update tbl_weekTop10 set id=id-1 where restID<>@restID
set @result=1
end
if (select min(id) from tbl_weekTop10)= @id
begin
set @result=1
end
else
begin
update tbl_weekTop10 set id=id-1 where id>@id
set @result=1
end
delete from  tbl_weekTop10 where restID=@restID
end 
select @result 

GO
/****** :  StoredProcedure [dbo].[sp_WeekTopSelect]    ű: 02/01/2010 14:38:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_WeekTopSelect]
@restID int=0
AS
if @restID=0
begin
select a.id,a.restID,b.name from tbl_weekTop10 a 
left join tbl_restaurant b on a.restID=b.id 
where b.isDelete<>1 and b.state<>0
order by a.id
end 
else 
begin
select a.id,a.restID,b.name from tbl_weekTop10 a 
left join tbl_restaurant b on a.restID=b.id 
where a.restID=@restID and b.isDelete<>1 and b.state<>0 
order by a.id
end





GO
/****** :  StoredProcedure [dbo].[sp_WeekTopUpdate]    ű: 02/01/2010 14:38:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_WeekTopUpdate]
@restID int,
@sign int=0,
@result int=0 output
AS
declare @id int
select @id=id from tbl_weekTop10 where restID=@restID
if @sign<>1 and @sign<>2 
begin
set @result=0
end
if @sign=1 --
begin
--жϱǷѾһǣ
if (select min(id) from tbl_weekTop10)=@id
set @result=1
else
--ǰһλǰһλ
begin
update tbl_weekTop10 set id=id+1 where id=@id-1
update tbl_weekTop10 set id=id-1 where restID=@restID
set @result=1
end
end 
if @sign=2 --
begin
--жϱ͵ǷѾǣ
if (select max(id) from tbl_weekTop10)=@id
set @result=1
else
begin
--͵һλǰһλ
update tbl_weekTop10 set id=id-1 where id=@id+1
update tbl_weekTop10 set id=id+1 where restID=@restID
set @result=1
end 
end 
select @result 
GO
/****** :  StoredProcedure [dbo].[sp_wsr815OrderArray_getCount]    ű: 02/01/2010 14:38:52 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_wsr815OrderArray_getCount]
@state smallint=0
 AS
declare @cnt int
set @cnt=0
select @cnt=count(*) from tbl_815OrderArray where  State=@state
select @cnt
GO
/****** :  StoredProcedure [dbo].[sp_wsr815OrderT_getCount]    ű: 02/01/2010 14:38:52 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_wsr815OrderT_getCount]
@state int=0
 AS
declare @cnt int
set @cnt=0
select @cnt=count(*)  From tbl_815orderT  where state=@state
select @cnt
GO
/****** :  StoredProcedure [dbo].[sp_wsrOrder_getAmountFromState]    ű: 02/01/2010 14:38:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_wsrOrder_getAmountFromState]
@state int=1,
@cnt int=0 output
AS
--select @cnt=count(*) from tbl_order where state=@state
select @cnt=count(state) from v_Order_GeneralList where state=@state
select @cnt

GO
/****** :  StoredProcedure [dbo].[sp_wsrQuestion_getAmountFromState]    ű: 02/01/2010 14:38:54 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_wsrQuestion_getAmountFromState]
@state int=1,
@cnt int=0 output
AS
select @cnt=count(*) from tbl_Question where state=@state and isDelete=0
select @cnt
GO
/****** :  StoredProcedure [dbo].[sp_wsrShopComments_getFromAuditing]    ű: 02/01/2010 14:38:55 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_wsrShopComments_getFromAuditing]
@auditing int 
AS
declare @cnt int 
	select @cnt=count(*) from tbl_ShopComments
		 where  isdelete=0 and auditing=@auditing
select @cnt
GO
/****** :  StoredProcedure [dbo].[sp_wsrSiteMenuOrder_getCount]    ű: 02/01/2010 14:38:56 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_wsrSiteMenuOrder_getCount]
@state int=0--°治,Ҫ0
as
declare @cnt int 
set @cnt=0
--select @cnt=count(*) from tbl_suiteMenuOrder where state=@state
select @cnt

GO
/****** :  StoredProcedure [dbo].[sp_wsrSystem_getCount]    ű: 02/01/2010 14:38:57 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_wsrSystem_getCount]
as
begin  
	declare @amount1 int,@state1 int/*Ʒ1*/
	declare @amount2 int
	set @state1=0
	
	--Ʒ
	select @amount1=count(id) from tbl_giftOrder  where isdelete=0  and state=@state1 

	--עû
	select @amount2=count(id) from tbl_user where state=0 and pass=0	
	select @amount1,@amount2
end


GO
/****** :  StoredProcedure [dbo].[sp_wsrSystemOnlineService_get]    ű: 02/01/2010 14:38:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



create PROCEDURE [dbo].[sp_wsrSystemOnlineService_get]
@sessionID varchar(50)='',
@adminUserName bigint=0
as
begin  
	declare @adminID bigint
	select adminID=id from tbl_systemUser where name=@adminUserName

	--߿ͷһ
	declare @onlineServiceAmount int
	select @onlineServiceAmount=count(id) from tbl_onlineServiceMsg where state=0 and adminID=0
	select @onlineServiceAmount
	
	select @onlineServiceAmount=count(id) from tbl_onlineServiceMsg where state=0 and adminID=@adminID and sessionID=@sessionID
	select @onlineServiceAmount	
end


GO
/****** :  StoredProcedure [dbo].[sp_wsrSystemOnlineService_getAmount]    ű: 02/01/2010 14:38:59 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [dbo].[sp_wsrSystemOnlineService_getAmount]
@sessionID varchar(50)='',
@adminUserName bigint=0
as
begin  
	declare @adminID bigint
	select adminID=id from tbl_systemUser where name=@adminUserName

	--߿ͷһ
	declare @amount1 int,@amount2 int
	
	select @amount1=count(id) from tbl_onlineServiceMsg where state=0 and adminID=0		
	select @amount2=count(id) from tbl_onlineServiceMsg where state=0 and adminID=@adminID and sessionID=@sessionID
	
	select @amount1,@amount2
end


GO
/****** :  StoredProcedure [dbo].[sp_wsrSystemRestBulletin_getAmount]    ű: 02/01/2010 14:39:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [dbo].[sp_wsrSystemRestBulletin_getAmount]
	@state int=-100,
	@isRead int=-100,	
	@isDelete int=-100	
as
	declare @sql varchar(8000)
	set @sql='select count(b.id) from tbl_restBulletin b
		left join tbl_restaurant r on r.id=b.restID
		where  r.isDelete=0 and r.state=1 '--
	if @state>-100
		set @sql=@sql + ' and b.state=' + cast(@state as varchar(8000))
	if @isDelete>-100
		set @sql=@sql + ' and b.isDelete=' + cast(@isDelete as varchar(8000))
	if @isRead>-100
		set @sql=@sql + ' and b.isRead=' + cast(@isRead as varchar(8000))

exec(@sql)
--select @sql



GO
/****** :  StoredProcedure [dbo].[sp_wsrSystemUser_getPassword]    ű: 02/01/2010 14:39:01 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_wsrSystemUser_getPassword]
@userName varchar(20),
@result int=0 output
 AS
declare @password varchar(50)
declare @cnt int
select @cnt = count(*) from tbl_systemUser where name=@userName and state=0
if @cnt>0
	begin
	select @password=password from tbl_systemUser where name=@userName and state=0
	set @result=1	
	end
else
	begin
	set @password=''
	set @result=0
	end
select @result,@password
GO
/****** :  StoredProcedure [dbo].[sp_wsrSystemUserLog_add]    ű: 02/01/2010 14:39:02 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_wsrSystemUserLog_add]
@userName varchar(20),
@ip varchar(15),
@result int =0 output
 AS
set @result=1
declare @userID bigint
declare @errorClass int
set @errorClass=-1
set @userID=0
select @userID=ID from tbl_systemUser where name=@userName
insert into tbl_systemUserLog(userID,errorClass,errorMessage,ip)values(@userID,@errorClass,@userName,@ip)

select @result
GO
/****** :  StoredProcedure [dbo].[sp_wsrUser_getPassword]    ű: 02/01/2010 14:39:03 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_wsrUser_getPassword]
@userName varchar(8000)='',
@email varchar(8000)='',
@result int=0 output
 AS
declare @password varchar(50)
declare @cnt int

if len(@userName)>0 begin
	select @cnt = count(id) from tbl_user where name=@userName and state=0
	if @cnt>0 begin
		select @password=password,@result=id from tbl_user where name=@userName and state=0	
	end else begin
		set @password=''
		set @result=0
	end
end else if len(@email)>0 begin
	select @cnt = count(id) from tbl_user where email=@email and state=0
	if @cnt>0 begin
		select @password=password,@result=id from tbl_user where email=@email and state=0	
	end	else begin
		set @password=''
		set @result=0
	end
end
select @result,@password

GO
/****** :  StoredProcedure [dbo].[sp_wsrUserLog_add]    ű: 02/01/2010 14:39:05 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sp_wsrUserLog_add]
@userName varchar(20),
@ip varchar(15),
@result int =0 output
 AS
set @result=1
declare @userID bigint
declare @state int
declare @msg varchar(2)
set @msg='-2'
set @userID=0
select @userID=ID,@state=state from tbl_user where name=@userName
if @userId=0
	set @msg='-1'
else if @state<0
	set @msg='-3'
insert into tbl_userLoginLog(userName,errorMessage,ip)values(@userName,@msg,@ip)
select @result
GO
/****** :  StoredProcedure [dbo].[sp_wsrUserOrder_getAmountFromState]    ű: 02/01/2010 14:39:06 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_wsrUserOrder_getAmountFromState]
@state int=0,
@userID bigint=0,
@cnt int=0 output
AS
if @userID>0
	select @cnt=count(state) from v_Order_GeneralList
	 where state=@state and restID in(
			select ID from tbl_restaurant 
				where isDelete=0 and --state=1 and 
				(
					userID=@userID  OR MuserID=@userID 		 
					or id in (select restID from tbl_restUser where userID=@userID)
				)
		
	)
select @cnt


GO
/****** :  StoredProcedure [dbo].[sp_wsrUserShopComments_getFromAuditing]    ű: 02/01/2010 14:39:07 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_wsrUserShopComments_getFromAuditing]
@userID bigint,
@startTime dateTime,
@endTime dateTime,
@auditing int =2
AS
declare @cnt int 


if @auditing=2
	select @cnt=count(id) from tbl_ShopComments
		 where  shopID in(
			select ID from tbl_restaurant where isDelete=0 and state=1 and (userID=@userID  or ID in (select restID from tbl_restUser where  userID=@userID))
		) and isdelete=0 and (postTime between @startTime and dateAdd(d,1,@endTime))
else
	select @cnt=count(id) from tbl_ShopComments
		 where  shopID in(
			select ID from tbl_restaurant where isDelete=0 and state=1 and (userID=@userID  or ID in (select restID from tbl_restUser where  userID=@userID))
		) and isdelete=0 and auditing=@auditing
select @cnt

GO
/****** :  StoredProcedure [dbo].[sp_ZoneAdd]    ű: 02/01/2010 14:39:08 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_ZoneAdd]
@ZoneName varchar(40),
@Note varchar(50)='', 
@Color varchar(10)='', 
@provinceID int=0,
@cityID int=0,
@RegionID int,
@result int=0 output
AS
begin
	if exists(select * from tbl_zone where [name]=@ZoneName and provinceID=@provinceID and cityID=@cityID and regionID=@RegionID)
	begin
		set @result=-1
	end
	else
	begin
		insert into tbl_zone(name,provinceID,cityID,regionID,note,color)
		values(@ZoneName,@provinceID,@cityID,@RegionID,@Note,@Color)
		set @result=1
	end
end
select @result

GO
/****** :  StoredProcedure [dbo].[sp_ZoneDelete]    ű: 02/01/2010 14:39:10 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_ZoneDelete]
@ZoneID int=0,
@result int=0 output
AS
begin
delete from tbl_zone where id=@ZoneID
delete from tbl_area where zoneID=@ZoneID
set @result=1
end
select @result


GO
/****** :  StoredProcedure [dbo].[sp_ZoneSelect]    ű: 02/01/2010 14:39:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_ZoneSelect]
@provinceID int=0,
@cityID int=0,
@RegionID int=0
AS
begin
if @provinceID=0 and @cityID=0 and @RegionID=0
begin
select a.id ,a.name,d.id,d.name,b.id,b.name,c.id,c.name,a.note,a.color
from tbl_zone a 
left join tbl_city b on a.cityID =b.id
left join tbl_province c on a.provinceID =c.id
left join tbl_region d on a.regionID =d.id
end
if @RegionID<>0
begin
select a.id ,a.name,d.id,d.name,b.id,b.name,c.id,c.name,a.note,a.color
from tbl_zone a 
left join tbl_city b on a.cityID =b.id
left join tbl_province c on a.provinceID =c.id
left join tbl_region d on a.regionID =d.id 
where a.cityID=@cityID and a.provinceID=@provinceID
and a.regionID=@RegionID
end
if @cityID<>0
begin
select a.id ,a.name,d.id,d.name,b.id,b.name,c.id,c.name,a.note,a.color
from tbl_zone a 
left join tbl_city b on a.cityID =b.id
left join tbl_province c on a.provinceID =c.id
left join tbl_region d on a.regionID =d.id 
where a.cityID=@cityID and a.provinceID=@provinceID
end
if @provinceID<>0
begin
select a.id ,a.name,d.id,d.name,b.id,b.name,c.id,c.name,a.note,a.color
from tbl_zone a 
left join tbl_city b on a.cityID =b.id
left join tbl_province c on a.provinceID =c.id
left join tbl_region d on a.regionID =d.id 
where a.provinceID=@provinceID
end
end



GO
/****** :  StoredProcedure [dbo].[sp_ZoneUpdate]    ű: 02/01/2010 14:39:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_ZoneUpdate]
@ZoneID int=0,
@ZoneName varchar(40),
--@Note varchar(50)='', 
--@Color varchar(10)='', 
@result int=0 output
AS
begin
update tbl_zone set name=@ZoneName  where id=@ZoneID
set @result=1
end
select @result



go











set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go











--------------------------1.5---------------------------------
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

-- =============================================
Create PROCEDURE [dbo].[dp_GiftClass_get]
	-- Add the parameters for the stored procedure here
	@Id int=0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
if @id>0
 select * from tbl_giftclass where id=@id
else
	select * from tbl_GiftClass
END

Go


set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
Create PROCEDURE [dbo].[sp_GiftInfoAdd]
 @name varchar(8000)='',
 @classID int=0,
 @price float=0,
 @expendIntegral float = 0.0,
 @spreadIntegral float = 0.0,
 @worth float=0,
 @photoID int=0,
 @stocks int=0,
 @note varchar(8000)='',
@adminID int = 0,
@content varchar(8000) = '',
@sort int = 0,
@IsNew int=0,
@IsCommend int=0,
@UserValue int=0,
@isShow int=0,
 @result int=0 output 
AS
    begin tran
	declare @spResult int
--	declare @str xml
--set @str = (select isnull(max(id),0)as currID from tbl_gift  for xml auto)
--  exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
  insert into tbl_gift([name],classID,price,worth,photoID,stock,note,expendIntegral,spreadIntegral,sort,isnew,iscommend,uservalue,isShow,changeCount) 
values(@name,@classID,@price,@worth,@photoID,@stocks,@note,@expendIntegral,@spreadIntegral,@sort,@isnew,@iscommend,@uservalue,@isShow,0) 
if  @@error=0 begin
   set @result=1
	commit tran
   end else begin
   set @result=0
    rollback 
   end
select @Result



Go



set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go


-- =============================================
-- Author:		<ylm>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
Create PROCEDURE [dbo].[dp_GiftClass_add]
	-- Add the parameters for the stored procedure here
	@Name varchar(50)='',
    @Id int =0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	if @Id >0
    update tbl_GiftClass set ClassName=@Name where id=@id
    else 
    insert into tbl_GiftClass (ClassName)values(@Name)

  if @@error >0 
  select -1
else 
select 0
END


Go



set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go


-- =============================================
-- Author:		<ylm>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
Create PROCEDURE [dbo].[dp_GiftClass_del]
	@id int =0
AS
BEGIN
	SET NOCOUNT ON;

	if @id >0
    delete from tbl_GiftClass where id=@id
 if @@error >0
 select -1
else
select 0
 END



Go

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
Create PROCEDURE [dbo].[sp_GiftInfoSelect]
@id int=0,
@classid int =0,
@isnew int=0,
@iscommend int=0
AS
begin
  if @id=0 begin 
    if @classid >0
    select * from tbl_gift where isdelete=0 and classid=@classid  order by sort desc,id desc 
    else
    select * from tbl_gift where isdelete=0 order by sort desc,id desc
    
  end else begin 
  select * from tbl_gift where id=@id and isdelete=0 order by sort desc,id desc
  end
end



Go




set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go





-- =============================================
-- Author:		<ylm,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
Create PROCEDURE [dbo].[dp_GiftUpState]
	-- Add the parameters for the stored procedure here
	@id int=0,
    @state int=0,
    @name varchar(50)=''
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
   if @name='isnew'

   begin
    update tbl_gift set isnew=@state where id=@id
   end

   if @name='iscommend'

   begin
   update tbl_gift set iscommend=@state where id=@id
  end 

	if @name='isdelete'
   begin
   update tbl_gift set isdelete=@state,isshow=0,iscommend=0 where id=@id
  end
if @name='isShow'
   begin
   update tbl_gift set isshow=@state,iscommend=0 where id=@id
  end
if @@error >0
select -1
else
select 0 
END





Go


set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go





Create PROCEDURE [dbo].[sp_GiftInfoDelete]
 @ID int=0,
@adminID int = 0,
@content varchar(8000) = '',
 @result int=0 output 
AS 
    begin tran
	declare @spResult int
--	declare @str xml
--set @str = (select * from tbl_gift where id = @ID  for xml auto)
--  exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
   update tbl_gift set isDelete=1,isshow=0,iscommend=0 where id=@ID
   if  @@error=0 begin
   set @result=1
commit tran
   end else begin
   set @result=0
    rollback  
   end
select @Result






set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

Create PROCEDURE [dbo].[sp_GiftInfoUpdate]
 @ID int=0,
 @name varchar(8000)='',
 @classID int=0,
 @price float=0,
 @expendIntegral float = 0.0,
 @spreadIntegral float = 0.0,
 @worth float=0,
 @photoID int=0,
 @stocks int=0,
 @note varchar(8000)='',
@adminID int = 0,
@content varchar(8000) = '',
@sort int = 0,
@IsNew int=0,
@Iscommend int=0,
@UserValue int=0,
@IsShow int=0,
 @result int=0 output 
AS

    begin tran
	declare @spResult int
--	declare @str xml
--set @str = (select * from tbl_gift where id = @ID  for xml auto)
if @photoID<0 begin 
--exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output
  update tbl_gift set name=@name,classID=@classID,price=@price,expendIntegral = @expendIntegral,
spreadIntegral = @spreadIntegral,worth=@worth,stock=@stocks,note=@note ,sort = @sort,isnew=@Isnew,iscommend=@IsCommend,Uservalue=@UserValue,IsShow=@IsShow where id=@id
   if  @@error=0 begin
   set @result=1
commit tran 
   end else begin
   set @result=0
    rollback
   end
end else begin
--exec sp_systemlogAdd @adminID,1,@content,@str,@spResult output 
  update tbl_gift set name=@name,classID=@classID,price=@price,expendIntegral = @expendIntegral,
spreadIntegral = @spreadIntegral,worth=@worth,photoID=@photoID,stock=@stocks,
note=@note ,sort = @sort,isnew=@Isnew,iscommend=@IsCommend,Uservalue=@UserValue,IsShow=@IsShow where id=@id
   if  @@error=0 begin
   set @result=1
commit tran 
   end else begin
   set @result=0
    rollback 
   end
end
select @Result





Go



set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go




Create PROCEDURE [dbo].[sp_gift_get]
	@id int =0,
	@classID int=-1,--
	@idS varchar(8000)='',
	@startDate varchar(20)='',
	@endDate varchar(20)='',
    @isnew int=0,
    @iscommend int=0,
    @myGift int=0
AS
BEGIN
	SET NOCOUNT ON;

	Declare @Sql varchar(8000)
	Declare @Where varchar(8000)
	set @Where=''
	Set @Sql = 'SELECT * FROM tbl_gift '
	if @id>0
		set @where = ' and id=' + CAST(@id AS varchar(8000))	
	if @classID>=0
		Set @Where = @Where + ' AND classID=' + CAST(@classID AS varchar(10))
    if @isnew >0
        set @where =@where +' and isnew=1'
    if @iscommend >0
        set @where =@where + ' and iscommend=1'
	if len(@idS)>0
		set @Where = @Where + ' AND id in (' + @idS + ')'
    if @myGift >0
        set @where =@where +' and expendintegral <= (select expendintegral from tbl_userIntegral  where userid='+cast(@myGift  AS varchar(10))+')'
                           +' and spreadintegral <= (select spreadintegral from tbl_userIntegral  where userid='+cast(@myGift  AS varchar(10))+')'
--	set @Where = @Where + ' AND id in (select giftID from tbl_exchangeConfig '
--	set @Where = @Where + ' where ruleID in (select id from tbl_exchangeRule ' 
--	set @Where = @Where + ' where getdate() between startTime and endTime and isDelete=0))'
	set @Where = @Where + ' AND stock>0 '
	set @Where = @Where +' and isshow=1'
	Set @Where = @Where + ' AND isDelete=0'
	Set @Sql = @Sql + ' WHERE 1=1 ' + @Where + ' ORDER BY sort desc, id DESC'
	exec (@Sql)
	SELECT @@Rowcount
END








Go




set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

 Create PROCEDURE [dbo].[sp_giftOrder_add]
	@id bigint=0,
    @userID bigint=0,
	@trueName varchar(8000),
	@phone varchar(8000),
	@address varchar(8000),
	@postCode varchar(8000),
	@note varchar(8000),
	@sum float=0.0,
	@giftTotalExpend float=0,
	@giftTotalSpread float=0,
	@idS varchar(8000),
	@amountS varchar(8000), 
    @uservalue int=0     
AS
begin
	declare @result int,@giftOrderID bigint,@integral int, @userExpendIntegral int, @userSpreadIntegral int,@integralNote varchar(8000),@stock int,@isFail int
	set @stock=0
	set @isFail=0
	set @result=0
if @userID>0 begin
	select @userExpendIntegral=expendIntegral,@userSpreadIntegral=spreadIntegral from tbl_userIntegral where userID=@userID
	if @giftTotalExpend>@userExpendIntegral or @giftTotalSpread>@userSpreadIntegral
		set @result=-1
	else begin begin tran
			if @id = 0 begin	
				--޸ͳƱµĶһͳƼһ
--				update tbl_statistic set newGiftOrder = newGiftOrder + 1
				insert into tbl_giftOrder(userID,trueName,phone,address,postCode,note,totalExpend,totalSpread,[sum],totalUservalue)
							values(@userID,@trueName,@phone,@address,@postCode,@note,@giftTotalExpend,@giftTotalSpread,@sum,@uservalue)
				set @giftOrderID=@@identity
				/* 涩ϸʼ*/
				if len(@idS)>0 and len(@amountS)>0 begin
					declare @m1 int,@n1 int, @m2 int, @n2 int,@splitStr char,@giftIDStr varchar(50),@amountStr varchar(50)
					declare @expendIntegral float,@spreadIntegral float,@userValueGift float ,@totalExpend float,@totalSpread float
					set @totalExpend=0
					set @totalSpread=0
					set @splitStr=','
					set @m1=1
					set @m2=1
					set @n1=charIndex(@splitStr,@idS)
					set @n2=charIndex(@splitStr,@amountS)
					while @n1>0 begin
						set @giftIDStr=subString(@idS,@m1,@n1-@m1)
						set @amountStr=subString(@amountS,@m2,@n2-@m2)
						select @expendIntegral=expendIntegral,@spreadIntegral=spreadIntegral,@stock=stock,@userValueGift=uservalue from tbl_gift where id=cast(@giftIDStr as int)						
						if @stock<=0 or @stock<convert(int,@amountStr) or @@rowcount=0 begin
							set @isFail=1--治ʧ
							break
						end
						
						insert into tbl_giftOrderDetail(giftOrderID,giftID,amount,expendIntegral,spreadIntegral,uservalue) 
							values(@giftOrderID,@giftIDStr,@amountStr,@expendIntegral,@spreadIntegral,@userValueGift)
						set @totalExpend=@totalExpend+@expendIntegral*convert(int,@amountStr)
						set @totalSpread=@totalSpread+@spreadIntegral*convert(int,@amountStr)
						/* */												
						update tbl_gift set stock=stock-convert(int,@amountStr),changecount=changecount+convert(int,@amountStr) where id=@giftIDStr
						set @m1=@n1+1
						set @m2=@n2+1
						set @n1=charindex(@splitStr,@idS,@m1)
						set @n2=charIndex(@splitStr,@amountS,@m2)
					end	
                    --select @stock,@isFail
					if @isFail=0 begin						
						/* ٻ֡ʼ*/				
					    if @totalExpend>0 begin--Ʒһѻ
							set @integralNote='Ʒһ'
							set @totalExpend=-@totalExpend						
							exec [sp_Member_Integral_UpdateNoReturn] @UserId,0,-3,@totalExpend,@integralNote,@giftOrderID,1
							/*[sp_Member_Integral_UpdateNoReturn] @UserId,@RestId,@Source,@Integral,@Note,@OrderId,@IntegralClassID:1ѻ,2ƹ*/			
						end
						if @totalSpread>0 begin--Ʒһƹ
							set @integralNote='Ʒһ'
							set @totalSpread=-@totalSpread
							exec [sp_Member_Integral_UpdateNoReturn] @UserId,0,-9,@totalSpread,@integralNote,@giftOrderID,2
							/*[sp_Member_Integral_UpdateNoReturn] @UserId,@RestId,@Source,@Integral,@Note,@OrderId,@IntegralClassID:1ѻ,2ƹ*/			
						end
						/* ٻ֡*/
					end
				end
				/* 涩ϸ*/	
								
			end	

		if @@error>0 or @isFail=1 begin--治ʧ
			rollback tran

			if @isFail=1
				set @result=-2
			else
				set @result=-3
		end else begin
			commit tran
			set @result=@giftOrderID
		end	

	end	
end else begin
	set @result=-4 --ûû
end
	select @result
end






Go





set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go





create PROCEDURE [dbo].[sp_GiftOrderInfoSelete]
@ID int=0,
@StartTime datetime,
@EndTime datetime,
@giftstate int=3 
AS
begin
  if @ID=0 begin 
			   if @giftstate=3
					   begin 
							   select gift.*,T.*,users.nickName as adminName,T.amount as amount,u.email as email from tbl_giftOrder as gift 
								left join tbl_user as u on gift.userid=u.id
								left join tbl_user as users on gift.adminid=users.id
								left join (select k.giftorderid as orderid,k.amount as amount,g.* from tbl_giftOrderDetail k left join tbl_gift g on k.giftid=g.id) as T
								on gift.id=T.orderid
								
							where gift.isdelete=0  and  gift.postTime between @StartTime and @EndTime order by gift.id desc
					   end 
			   else
					   begin 
							    select gift.*,T.*,users.nickName as adminName ,T.amount as amount,u.email as email from tbl_giftOrder as gift 
								left join tbl_user as u on gift.userid=u.id
								left join tbl_user as users on gift.adminid=users.id
								left join (select k.giftorderid as orderid,k.amount as amount,g.* from tbl_giftOrderDetail k left join tbl_gift g on k.giftid=g.id) as T
								on gift.id=T.orderid
							where gift.isdelete=0  and  gift.postTime between @StartTime and @EndTime and gift.state=@giftstate order by gift.id desc
					   end 
  end else begin 
                 if @giftstate=3
					   begin 
							    select gift.*,T.*,users.nickName as adminName,u.email as email,T.amount as amount from tbl_giftOrder as gift 
								left join tbl_user as u on gift.userid=u.id
								left join tbl_user as users on gift.adminid=users.id
								left join (select k.giftorderid as orderid,k.amount as amount,g.* from tbl_giftOrderDetail k left join tbl_gift g on k.giftid=g.id) as T
								on gift.id=T.orderid
								 where gift.isdelete=0  and  gift.id=@ID order by gift.id desc
					   end 
			   else
					   begin 
							    select gift.*,T.*,users.nickName as adminName,T.amount as amount,u.email as email from tbl_giftOrder as gift 
								left join tbl_user as u on gift.userid=u.id
								left join tbl_user as users on gift.adminid=users.id
								left join (select k.giftorderid as orderid,k.amount as amount,g.* from tbl_giftOrderDetail k left join tbl_gift g on k.giftid=g.id) as T
								on gift.id=T.orderid
								 where gift.isdelete=0  and  gift.id=@ID and gift.state=@giftstate order by gift.id desc
					   end 
  end
end




Go





set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go








Create  PROCEDURE [dbo].[sp_GiftOrderInfoUpdate]
@id int=0,
@state int=0,
@userid int=0,
@adminID int = 0,
@content varchar(8000) = '',
@Remark varchar(120) = '',
@result int=0 output
AS
	declare @spResult int
--	declare @str xml
--set @str = (select * from tbl_giftOrder where id = @ID  for xml auto)

declare @c float,@cc int,@integralNote varchar(8000),@orderIntegral float,@totalExpend float,@totalSpread float
declare @oldRemark varchar(120) 
 --1) ûΪ
declare @oldState int
select @oldState=state,@orderintegral=[sum],@totalExpend=totalExpend,@totalSpread=totalSpread,@oldRemark = remark from tbl_giftOrder where id=@id
if @remark ='' set @remark = @oldRemark
if(@state=@oldState or (@state>0 and @oldState<0))
	set @result=0
else
    begin 
	if (select integral from tbl_userintegral where userID=@userid)< 0 and  @state>=0       
		begin
			set @result=0 
		end 
    else
	begin 
		begin tran
	
--			if(@oldState =0)--ͳƱ
--			begin
--				update tbl_statistic set newGiftOrder = newGiftOrder -1 
--			end
--			exec sp_systemlogAdd @adminID,1,@content,@str,@spResult OUTPUT
			IF @state!=-1 
				SET @remark=''
		   update tbl_giftOrder set state=@state,remark = @remark,adminid = @adminID,updatetime=getdate() where ID=@id
	  if @state=-1
				 begin
					 --2) ͬʱ,ûʹõĻֻԶع
--					if @orderintegral >0
--						 begin
								select top 1 @totalExpend=amount from tbl_userIntegralDetail where orderID=@id and	source=-3 order by id desc
								if @@rowcount>0 and abs(coalesce(@totalExpend,0))>0 begin
									set @integralNote='Ʒ'
									set @totalExpend=abs(@totalExpend)
									exec [sp_Member_Integral_UpdateNoReturn] @userid,0,3,@totalExpend,@integralNote,@id,1
								end
								select top 1 @totalSpread=amount from tbl_userIntegralDetail where orderID=@id and	source=-9 order by id desc
								if @@rowcount>0 and abs(coalesce(@totalSpread,0))>0 begin
									set @integralNote='Ʒ'
									set @totalSpread=abs(@totalSpread)
									exec [sp_Member_Integral_UpdateNoReturn] @userid,0,9,@totalSpread,@integralNote,@id,2
								end
						 --end
						 --3) ͬʱ,ƷĿĿҲع
					declare @rAmount int
					declare @rGiftID int
					declare @s int
					declare fulfill cursor for select giftID,amount from tbl_giftOrderDetail where giftOrderID =@id
					open fulfill
					fetch next from fulfill into @rGiftID,@rAmount
						while (@@fetch_status=0)
							begin
								update tbl_gift set stock=tbl_gift.stock+@rAmount,changecount=tbl_gift.changecount-@rAmount where id=@rGiftID
								fetch next from fulfill into @rGiftID,@rAmount
							end
					CLOSE fulfill 
					deallocate fulfill		
				end
		else 
                begin
					set @result=1
			    end
        if @@error=0
		begin 
			set @result=1 
			commit
		end else begin
			set @result=0 
			rollback
		end  
      end
    end

select  @result




Go




set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go









-- =============================================
-- Author:		<Venson>
-- Create date: <2007-10-15>
-- Description:	<Description,,>
-- =============================================
Create PROCEDURE [dbo].[sp_Member_Integral_move]
	@SourceUserId BIGINT = 0,--ԴûID
	@TargetUserId BIGINT = 0,--ĿûID
	@MoveIntegral decimal(10,2) = 0,--תƻֵ
	@IntegralClass int ,
	@adminID int = 0 ,
	@content varchar(8000) = ''

AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @SourceUserEmail VARCHAR(50)
	DECLARE @TargetUserEmail VARCHAR(50)
	DECLARE @Count INT
    declare @integralNote varchar(8000)
    declare @source int
    
   
    

	SET @MoveIntegral = ABS(@MoveIntegral)
	
	SELECT @SourceUserEmail=email FROM tbl_user WHERE id=@SourceUserId
	SELECT @TargetUserEmail=email FROM tbl_user WHERE id=@TargetUserId
/*[sp_Member_Integral_UpdateNoReturn] @UserId,@RestId,@Source,@Integral,@Note,@OrderId,@IntegralClassID:1ѻ,2ƹ*/	
if @IntegralClass = 1
begin
	BEGIN TRAN
	set @integralNote ='û"' + @SourceUserEmail + '"û' 
	exec [sp_Member_Integral_UpdateNoReturn] @TargetUserID,0,4,@MoveIntegral,@integralNote,0,@IntegralClass,@adminID,@content
	IF @@ERROR > 0 BEGIN
				ROLLBACK TRAN
				SELECT 0
				return
			END
	set @integralNote ='͸û"' + @TargetUserEmail + '"'
	set @MoveIntegral = 0-@MoveIntegral 
	exec [sp_Member_Integral_UpdateNoReturn] @SourceUserId,0,-4,@MoveIntegral,@integralNote,0,@IntegralClass,@adminID,@content
	IF @@ERROR > 0 BEGIN
			ROLLBACK TRAN
			SELECT 0
			return
		END ELSE BEGIN
			COMMIT TRAN
			SELECT 1
		END

end
else
begin
	BEGIN TRAN
	set @integralNote ='û"' + @SourceUserEmail + '"ý' 
	exec [sp_Member_Integral_UpdateNoReturn] @TargetUserID,0,12,@MoveIntegral,@integralNote,0,@IntegralClass,@adminID,@content
	IF @@ERROR > 0 BEGIN
				ROLLBACK TRAN
				SELECT 0
				return
			END
	set @integralNote ='͸û"' + @TargetUserEmail + '"'
	set @MoveIntegral = 0-@MoveIntegral 
	exec [sp_Member_Integral_UpdateNoReturn] @SourceUserId,0,-12,@MoveIntegral,@integralNote,0,@IntegralClass,@adminID,@content
	IF @@ERROR > 0 BEGIN
			ROLLBACK TRAN
			SELECT 0
			return
		END ELSE BEGIN
			COMMIT TRAN
			SELECT 1
		END
end
END
--	INSERT INTO tbl_userIntegralDetail (userID, source, amount, note, orderID) VALUES (@SourceUserId, 4,
--		@MoveIntegral, 'û"' + @TargetUserEmail + '"', 0)
--
--	SELECT @Count=Count(*) FROM tbl_userIntegral WHERE userID=@SourceUserId
--	If @Count > 0
--		UPDATE tbl_userIntegral SET integral=integral-@MoveIntegral WHERE userID=@SourceUserId
--	Else
--		INSERT INTO tbl_userIntegral (userID, integral) VALUES (@SourceUserId, 0-@MoveIntegral)
--
--	INSERT INTO tbl_userIntegralDetail (userID, source, amount, note, orderID) VALUES (@TargetUserId, -4,
--		0-@MoveIntegral, 'û"' + @SourceUserEmail + '"', 0)
--
--	SELECT @Count=Count(*) FROM tbl_userIntegral WHERE userID=@TargetUserId
--	If @Count > 0
--		UPDATE tbl_userIntegral SET integral=integral+@MoveIntegral WHERE userID=@TargetUserId
--	Else
--		INSERT INTO tbl_userIntegral (userID, integral) VALUES (@TargetUserId, @MoveIntegral)


Go




set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go



Create PROCEDURE [dbo].[sp_GetUntreatedrecordCount]
@Sign int=0,
@email varchar(50) ='',
@StartDate  DATETIME  = '1900-1-1',
@EndDate    DATETIME  = '9999-1-1'
AS
  BEGIN
declare @result int 
if @Sign=3
begin
	if @email<>''
	begin
		  select @result=count(*) from tbl_giftOrder   as orders 
		left join tbl_user as users on orders.userid=users.id 
		where users.email=@email
	end else begin
		select @result=count(*) from tbl_giftOrder 
	end  
end
else
begin
	if @email<>''
	begin
		  select @result=count(*) from tbl_giftOrder   as orders 
		left join tbl_user as users on orders.userid=users.id 
		where orders.state=@Sign and users.email=@email and
		orders.postTime between @StartDate and @EndDate and orders.isDelete=0
	end else begin
		select @result=count(*) from tbl_giftOrder   
		where state=@Sign and  
		postTime between @StartDate and @EndDate and isDelete=0
	end
end
select @result
  END


Go







set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

Create PROCEDURE [dbo].[sp_UserRegisterMonthStatis]
@ProvinceID int=0,
@CityID int=0,
@RegionID int=0,
@ZoneID int=0,
@StartDate varchar(7)='2011-07',
@EndDate varchar(7)='2011-07',
@State int=1
AS
begin

declare @Weekday char(7)
declare @sql varchar(8000)
declare @Where varchar(8000)
DECLARE @ProvinceIdStr varchar(8000)
DECLARE @CityIdStr varchar(8000)
DECLARE @RegionIdStr varchar(8000)
DECLARE @ZoneIdStr varchar(8000)
DECLARE @StateStr varchar(2)
set @sql=''
set @Where=''
SET @ProvinceIdStr = CAST(@ProvinceID AS varchar(8000))
SET @CityIdStr = CAST(@CityID AS varchar(8000))
SET @RegionIdStr = CAST(@RegionID AS varchar(8000))
SET @ZoneIdStr = CAST(@ZoneID AS varchar(8000))
SET @StateStr = CAST(@State AS varchar(2))

IF @ProvinceID > 0 OR @CityID > 0 OR @RegionID > 0 OR @ZoneID > 0
BEGIN
	IF @ProvinceId > 0 SET @Where = @Where + ' and ProvinceId=' + @ProvinceIdStr 
	IF @CityId > 0 SET @Where = @Where + ' and CityId=' + @CityIdStr 
	IF @RegionId > 0 SET @Where = @Where + ' and RegionId=' + @RegionIdStr 
	IF @ZoneId > 0 SET @Where = @Where + ' and ZoneId=' + @ZoneIdStr 
END
if @State<>-3
	set @Where=@Where+' and state='+@StateStr

declare cur_data cursor for
select convert(varchar(7),regtime,120) as regtime from tbl_user 
where convert(varchar(7),regtime,120) between @StartDate and @EndDate
group by convert(varchar(7),regtime,120)
open cur_data
fetch next from cur_data into @Weekday

while(@@fetch_status = 0) 
begin
	if @sql<>'' begin
		set @sql=@sql+' union all select deliverdate='''+cast(@Weekday as char(7))+''',
		count(*) as totalcount,
		isnull(convert(decimal(10,2),sum(total)),0.00) as total
		from v_Order_GeneralList 
		where convert(varchar(7),deliverdate,120)=convert(varchar(7),'''+cast(@Weekday as char(7))+''',120)
		and userid>0
		' +@Where
	end else begin 
	set @sql='select deliverdate='''+cast(@Weekday as char(7))+''',
	count(*) as totalcount,
	isnull(convert(decimal(10,2),sum(total)),0.00) as total
	from v_Order_GeneralList 
	where convert(varchar(7),deliverdate,120)=convert(varchar(7),'''+cast(@Weekday as char(7))+''',120)
	and userid>0
	' +@Where
	end
	fetch next from cur_data into @Weekday
end

close cur_data 
deallocate cur_data  
if @sql=''
set @sql='select deliverdate='''',totalcount=0,total=0.00'
set @sql='select row_number() over(order by deliverdate) as row,usercount,deliverdate,TotalCount,total,convert(decimal(10,2),(total/usercount)) as ave from 
(
select convert(varchar(7),regtime,120) as regtime,count(*) as usercount from tbl_user   
where convert(varchar(7),regtime,120) between '''+@StartDate+''' and '''+@EndDate+'''
group by convert(varchar(7),regtime,120)  ) 
as a
left join 
('+@sql+') 
as b 
on a.regtime=b.deliverdate'
--select @sql
exec (@sql) 

declare @sqlSum varchar(8000)
set @sqlSum='select @@rowcount as row,isnull(sum(usercount),0) as usercount,isnull(sum(total),0.00) as total,isnull(sum(totalcount),0) as totalcount from ('+@sql+') a'                              

exec (@sqlSum)
end



go






set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go



create PROCEDURE [dbo].[sp_UserRegisterSalesStatis]
@StartTime varchar(10)='2011-07',
@EndTime varchar(10)='2011-07',
@OrderByMark varchar(100),
@OrderByName varchar(100),
@State int=1,
@IsDay int=0
AS
begin
declare @orderby varchar(100)
declare @sql varchar(8000)
declare @Where varchar(8000)
declare @WhereStr varchar(8000)
declare @groupby varchar(8000)
declare @deliverdate varchar(8000)
DECLARE @StateStr varchar(2)
set @sql=''
set @Where=' where 1=1'
set @WhereStr=' where 1=1'
set @groupby=''
set @deliverdate=''
SET @StateStr = CAST(@State AS varchar(2))
set @orderby=' order by '+@OrderByName + ' ' +@OrderByMark

if @State<>-3
	set @Where=@Where+' and ttt.state='+@StateStr
	if @IsDay = 0
		begin
			set @Where =@Where+' and  convert(varchar(10),rrr.regtime,120)=convert(varchar(10),'''+@StartTime+''',120)';
			set @WhereStr =@WhereStr+' and  convert(varchar(10),regtime,120)=convert(varchar(10),'''+@StartTime+''',120)';
			set @groupby = ' group by convert(varchar(10),rrr.regtime,120),rrr.email';
			set @deliverdate =',convert(varchar(10),rrr.regtime,120) as regtime';
		end
    else if @IsDay = 1
        begin
            set @Where = @Where+' and  convert(varchar(7),rrr.regtime,120)=convert(varchar(10),'''+ @StartTime + ''',120)';
			set @WhereStr =@WhereStr+' and  convert(varchar(7),regtime,120)=convert(varchar(10),'''+@StartTime+''',120)';
            set @groupby = ' group by convert(varchar(7),rrr.regtime,120),rrr.email';
            set @deliverdate = ',convert(varchar(7),rrr.regtime,120) as regtime';
        end
     else if @IsDay = 2
        begin
            set @groupby = ' group by rrr.email';
        end
    else if @IsDay = 3
		begin
			set @Where =@Where+ ' and  convert(varchar(10),rrr.regtime,120) between convert(varchar(10),''' + @StartTime + ''',120) and convert(varchar(10),''' + @EndTime + ''',120)';
			set @WhereStr =@WhereStr+' and  convert(varchar(10),regtime,120) between convert(varchar(10),''' + @StartTime + ''',120) and convert(varchar(10),''' + @EndTime + ''',120)';
			set @groupby =' group by convert(varchar(10),rrr.regtime,120),rrr.email';
			set @deliverdate = ',convert(varchar(10),rrr.regtime,120) as regtime';
		end

	set @sql='
	if exists(select * from tbl_user '+@WhereStr+')
		begin
			if not exists(select * from v_Order_GeneralList where userid in(
			select id from tbl_user '+@WhereStr+'
			) )
				begin
					select row_number() over(order by total) as row,rrr.email,totalcount=0,
						total=0,
						ave=0.00 '+@deliverdate+'
						from tbl_user rrr
						left join v_Order_GeneralList ttt on rrr.id=ttt.userid '+@WhereStr+' order by total
				end
			else
				begin
					select  row_number() over('+ @orderby+') as row,rrr.email,count(ttt.id) as totalcount,
						isnull(sum(ttt.total),0)as total,
						isnull(convert(decimal(10,2),(sum(ttt.total)/count(ttt.id))),0.00) as ave
						'+@deliverdate+'
						from tbl_user rrr
						left join v_Order_GeneralList ttt on rrr.id=ttt.userid'+@Where+@groupby+' '+ @orderby+'
				end
		end
		else
		begin
			select row=0,email=0,totalcount=0,total=0,ave=0.00,deliverdate=''''
		end
	'
--select @sql
exec (@sql)

select @@rowcount as totalcount
end
