<?xml version="1.0"?>
<Entity>
	<Name>PBSType</Name>
	<Type>Single</Type>
	<Table>
		<Name>PBSType</Name>
		<Column>
			<Name>PBSTypeCode</Name>
			<DataType>System.String</DataType>
			<IsKey>true</IsKey>
			<IsAllowNull>false</IsAllowNull>
			<ColumnSize>20</ColumnSize>
		</Column>
		<Column>
			<Name>ProjectCode</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>10</ColumnSize>
		</Column>
		<Column>
			<Name>PBSTypeName</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>Description</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>500</ColumnSize>
		</Column>
		<Column>
			<Name>ParentCode</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>20</ColumnSize>
		</Column>
		<Column>
			<Name>FullID</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>100</ColumnSize>
		</Column>
		<Column>
			<Name>SortID</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>Deep</Name>
			<DataType>System.Int32</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>4</ColumnSize>
		</Column>
		<Column>
			<Name>OutLineNumber</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Sql>
			<Name>Select</Name>
			<String> select  PBSTypeCode, ProjectCode, PBSTypeName, Description, ParentCode, FullID, SortID, Deep, OutLineNumber from PBSType where  PBSTypeCode=@PBSTypeCode</String>
			<CommandType>Text</CommandType>
			<Param>
				<Name>@PBSTypeCode</Name>
				<Column>PBSTypeCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
		</Sql>		
		<Sql>
			<Name>SelectMaxSortID</Name>
			<String> select top 1 PBSTypeCode, ProjectCode, PBSTypeName, Description, ParentCode, FullID, SortID, Deep, OutLineNumber from PBSType where ProjectCode=@ProjectCode and ParentCode=@ParentCode order by SortID desc</String>
			<CommandType>Text</CommandType>
			<Param>
				<Name>@ProjectCode</Name>
				<Column>ProjectCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@ParentCode</Name>
				<Column>ParentCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
		</Sql>
		<Sql>
			<Name>SelectByProjectCode</Name>
			<String>
				select  PBSTypeCode, ProjectCode, PBSTypeName, Description, ParentCode, FullID, SortID, Deep, OutLineNumber,(select count(*) from PBSType WebChilds where ParentCode=PBSType.PBSTypeCode) as ChildNodesCount from PBSType where  ProjectCode=@ProjectCode
			</String>
			<CommandType>Text</CommandType>
			<Param>
				<Name>@ProjectCode</Name>
				<Column>ProjectCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
		</Sql>
		<Sql>
			<Name>SelectByProjectCode2</Name>
			<String>
				select  PBSTypeCode, ProjectCode, PBSTypeName, Description, ParentCode, FullID, SortID, Deep, OutLineNumber,(select count(*) from PBSType WebChilds where ParentCode=PBSType.PBSTypeCode and PBSTypeCode in (select PBSTypeCode from PBSTypeProject where ProjectCode=@ProjectCode)) as ChildNodesCount from PBSType where PBSTypeCode in (select PBSTypeCode from PBSTypeProject where ProjectCode=@ProjectCode)
			</String>
			<CommandType>Text</CommandType>
			<Param>
				<Name>@ProjectCode</Name>
				<Column>ProjectCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
		</Sql>
		<Sql>
			<Name>SelectByParentCode</Name>
			<String> select  PBSTypeCode, ProjectCode, PBSTypeName, Description, ParentCode, FullID, SortID, Deep, OutLineNumber from PBSType where ParentCode = @ParentCode order by SortID</String>
			<CommandType>Text</CommandType>
			<Param>
				<Name>@ParentCode</Name>
				<Column>ParentCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
		</Sql>		
		<Sql>
			<Name>SelectAllChildByParentCode</Name>
			<String> select  PBSTypeCode, ProjectCode, PBSTypeName, Description, ParentCode, FullID, SortID, Deep, OutLineNumber from PBSType where FullID like (select FullID + '-%' from PBSType where PBSTypeCode = @ParentCode)</String>
			<CommandType>Text</CommandType>
			<Param>
				<Name>@ParentCode</Name>
				<Column>ParentCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
		</Sql>		
		<Sql>
			<Name>SelectAll</Name>
			<String>
				select  PBSTypeCode, ProjectCode, PBSTypeName, Description, ParentCode, FullID, SortID, Deep, OutLineNumber from PBSType
			</String>
			<CommandType>Text</CommandType>
		</Sql>
		<Sql>
			<Name>Insert</Name>
			<String> Insert into PBSType (  PBSTypeCode, ProjectCode, PBSTypeName, Description, ParentCode, FullID, SortID, Deep, OutLineNumber ) values (  @PBSTypeCode, @ProjectCode, @PBSTypeName, @Description, @ParentCode, @FullID, @SortID, @Deep, @OutLineNumber )</String>
			<CommandType>Text</CommandType>
			<Param>
				<Name>@PBSTypeCode</Name>
				<Column>PBSTypeCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@ProjectCode</Name>
				<Column>ProjectCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@PBSTypeName</Name>
				<Column>PBSTypeName</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@Description</Name>
				<Column>Description</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@ParentCode</Name>
				<Column>ParentCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@FullID</Name>
				<Column>FullID</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@SortID</Name>
				<Column>SortID</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@Deep</Name>
				<Column>Deep</Column>
				<SqlDbType>Int</SqlDbType>
			</Param>
			<Param>
				<Name>@OutLineNumber</Name>
				<Column>OutLineNumber</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
		</Sql>
		<Sql>
			<Name>Update</Name>
			<String> Update PBSType set ProjectCode=@ProjectCode,PBSTypeName=@PBSTypeName,Description=@Description,ParentCode=@ParentCode,FullID=@FullID,SortID=@SortID,Deep=@Deep,OutLineNumber=@OutLineNumber where  PBSTypeCode=@PBSTypeCode</String>
			<CommandType>Text</CommandType>
			<Param>
				<Name>@PBSTypeCode</Name>
				<Column>PBSTypeCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@ProjectCode</Name>
				<Column>ProjectCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@PBSTypeName</Name>
				<Column>PBSTypeName</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@Description</Name>
				<Column>Description</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@ParentCode</Name>
				<Column>ParentCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@FullID</Name>
				<Column>FullID</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@SortID</Name>
				<Column>SortID</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@Deep</Name>
				<Column>Deep</Column>
				<SqlDbType>Int</SqlDbType>
			</Param>
			<Param>
				<Name>@OutLineNumber</Name>
				<Column>OutLineNumber</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
		</Sql>
		<Sql>
			<Name>Delete</Name>
			<String> Delete from PBSType  where  PBSTypeCode=@PBSTypeCode</String>
			<CommandType>Text</CommandType>
			<Param>
				<Name>@PBSTypeCode</Name>
				<Column>PBSTypeCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
		</Sql>
	</Table>
</Entity>
