<?xml version="1.0"?>
<Entity>
	<Name>Subject</Name>
	<Type>Single</Type>
	<Table>
		<Name>Subject</Name>
		<Column>
			<Name>SubjectCode</Name>
			<DataType>System.String</DataType>
			<IsKey>true</IsKey>
			<IsAllowNull>false</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>SubjectSetCode</Name>
			<DataType>System.String</DataType>
			<IsKey>true</IsKey>
			<IsAllowNull>false</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>SubjectName</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>200</ColumnSize>
		</Column>
		<Column>
			<Name>SubjectType</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>Layer</Name>
			<DataType>System.Int32</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>4</ColumnSize>
		</Column>
		<Column>
			<Name>IsDebit</Name>
			<DataType>System.Int32</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>4</ColumnSize>
		</Column>
		<Column>
			<Name>IsCrebit</Name>
			<DataType>System.Int32</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>4</ColumnSize>
		</Column>
		<Column>
			<Name>OtherCode</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>Currentcy</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>Unit</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>AssistantType</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>Format</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>Balance</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>SupplierItem</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>SupplierItemName</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>PBSItem</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>PBSItemName</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>SubjectID</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>bCus</Name>
			<DataType>System.Int32</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>4</ColumnSize>
		</Column>
		<Column>
			<Name>NCDocbCus</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>bSup</Name>
			<DataType>System.Int32</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>4</ColumnSize>
		</Column>
		<Column>
			<Name>NCDocbSup</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>bItem</Name>
			<DataType>System.Int32</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>4</ColumnSize>
		</Column>
		<Column>
			<Name>NCDocbItem</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>bdept</Name>
			<DataType>System.Int32</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>4</ColumnSize>
		</Column>
		<Column>
			<Name>NCDocbdept</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>bcash</Name>
			<DataType>System.Int32</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>4</ColumnSize>
		</Column>
		<Column>
			<Name>NCDocbcash</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>bBankAccount</Name>
			<DataType>System.Int32</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>4</ColumnSize>
		</Column>
		<Column>
			<Name>NcDocbBankAccount</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>bProject</Name>
			<DataType>System.Int32</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>4</ColumnSize>
		</Column>
		<Column>
			<Name>NcDocbProject</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>bContract</Name>
			<DataType>System.Int32</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>4</ColumnSize>
		</Column>
		<Column>
			<Name>NcDocbContract</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
    <Column>
      <Name>bInnerCus</Name>
      <DataType>System.Int32</DataType>
      <IsKey>false</IsKey>
      <IsAllowNull>true</IsAllowNull>
      <ColumnSize>4</ColumnSize>
    </Column>
    <Column>
      <Name>NcDocbInnerCus</Name>
      <DataType>System.String</DataType>
      <IsKey>false</IsKey>
      <IsAllowNull>true</IsAllowNull>
      <ColumnSize>50</ColumnSize>
    </Column>
		<Column>
			<Name>bproperty</Name>
			<DataType>System.Int32</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>4</ColumnSize>
		</Column>
		<Sql>
			<Name>Insert</Name>
			<String> Insert into Subject (  SubjectCode, SubjectSetCode, SubjectName, SubjectType, Layer, IsDebit, IsCrebit, OtherCode, Currentcy, Unit, AssistantType, Format, Balance, SupplierItem, SupplierItemName, PBSItem, PBSItemName, SubjectID ) values (  @SubjectCode, @SubjectSetCode, @SubjectName, @SubjectType, @Layer, @IsDebit, @IsCrebit, @OtherCode, @Currentcy, @Unit, @AssistantType, @Format, @Balance, @SupplierItem, @SupplierItemName, @PBSItem, @PBSItemName, @SubjectID )</String>
			<CommandType>Text</CommandType>
			<Param>
				<Name>@SubjectCode</Name>
				<Column>SubjectCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@SubjectSetCode</Name>
				<Column>SubjectSetCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@SubjectName</Name>
				<Column>SubjectName</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@SubjectType</Name>
				<Column>SubjectType</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@Layer</Name>
				<Column>Layer</Column>
				<SqlDbType>Int</SqlDbType>
			</Param>
			<Param>
				<Name>@IsDebit</Name>
				<Column>IsDebit</Column>
				<SqlDbType>Int</SqlDbType>
			</Param>
			<Param>
				<Name>@IsCrebit</Name>
				<Column>IsCrebit</Column>
				<SqlDbType>Int</SqlDbType>
			</Param>
			<Param>
				<Name>@OtherCode</Name>
				<Column>OtherCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@Currentcy</Name>
				<Column>Currentcy</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@Unit</Name>
				<Column>Unit</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@AssistantType</Name>
				<Column>AssistantType</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@Format</Name>
				<Column>Format</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@Balance</Name>
				<Column>Balance</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@SupplierItem</Name>
				<Column>SupplierItem</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@SupplierItemName</Name>
				<Column>SupplierItemName</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@PBSItem</Name>
				<Column>PBSItem</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@PBSItemName</Name>
				<Column>PBSItemName</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@SubjectID</Name>
				<Column>SubjectID</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
		</Sql>
		<Sql>
			<Name>Update</Name>
			<String> Update Subject set SubjectName=@SubjectName,SubjectType=@SubjectType,Layer=@Layer,IsDebit=@IsDebit,IsCrebit=@IsCrebit,OtherCode=@OtherCode,Currentcy=@Currentcy,Unit=@Unit,AssistantType=@AssistantType,Format=@Format,Balance=@Balance,SupplierItem=@SupplierItem,SupplierItemName=@SupplierItemName,PBSItem=@PBSItem,PBSItemName=@PBSItemName,SubjectID=@SubjectID where  SubjectCode=@SubjectCode and SubjectSetCode=@SubjectSetCode</String>
			<CommandType>Text</CommandType>
			<Param>
				<Name>@SubjectCode</Name>
				<Column>SubjectCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@SubjectSetCode</Name>
				<Column>SubjectSetCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@SubjectName</Name>
				<Column>SubjectName</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@SubjectType</Name>
				<Column>SubjectType</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@Layer</Name>
				<Column>Layer</Column>
				<SqlDbType>Int</SqlDbType>
			</Param>
			<Param>
				<Name>@IsDebit</Name>
				<Column>IsDebit</Column>
				<SqlDbType>Int</SqlDbType>
			</Param>
			<Param>
				<Name>@IsCrebit</Name>
				<Column>IsCrebit</Column>
				<SqlDbType>Int</SqlDbType>
			</Param>
			<Param>
				<Name>@OtherCode</Name>
				<Column>OtherCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@Currentcy</Name>
				<Column>Currentcy</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@Unit</Name>
				<Column>Unit</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@AssistantType</Name>
				<Column>AssistantType</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@Format</Name>
				<Column>Format</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@Balance</Name>
				<Column>Balance</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@SupplierItem</Name>
				<Column>SupplierItem</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@SupplierItemName</Name>
				<Column>SupplierItemName</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@PBSItem</Name>
				<Column>PBSItem</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@PBSItemName</Name>
				<Column>PBSItemName</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@SubjectID</Name>
				<Column>SubjectID</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
		</Sql>
		<Sql>
			<Name>Delete</Name>
			<String> Delete from Subject  where  SubjectCode=@SubjectCode and SubjectSetCode=@SubjectSetCode</String>
			<CommandType>Text</CommandType>
			<Param>
				<Name>@SubjectCode</Name>
				<Column>SubjectCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@SubjectSetCode</Name>
				<Column>SubjectSetCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
		</Sql>
	  <Sql>
		  <Name>Select</Name>
		  <String>select  * , (select count(*) from Subject ChildSubject where ChildSubject.SubjectSetCode = Subject.SubjectSetCode and ChildSubject.SubjectCode like Subject.SubjectCode+'%' and ChildSubject.Layer=Subject.Layer+1) as ChildNodesCount from Subject where  SubjectSetCode=@SubjectSetCode and SubjectCode=@SubjectCode</String>
		  <CommandType>Text</CommandType>
		  <Param>
			  <Name>@SubjectCode</Name>
			  <Column>SubjectCode</Column>
			  <SqlDbType>VarChar</SqlDbType>
		  </Param>
		  <Param>
			  <Name>@SubjectSetCode</Name>
			  <Column>SubjectSetCode</Column>
			  <SqlDbType>VarChar</SqlDbType>
		  </Param>
		  <Order>
			  <Name>SubjectCode</Name>
			  <Sort>ASC</Sort>
		  </Order>
	  </Sql>
	  <Sql>
		  <Name>SelectAll</Name>
		  <String>select  *, (select count(*) from Subject ChildSubject where ChildSubject.SubjectSetCode = Subject.SubjectSetCode and ChildSubject.SubjectCode like Subject.SubjectCode+'%' and ChildSubject.Layer=Subject.Layer+1) as ChildNodesCount from Subject </String>
		  <CommandType>Text</CommandType>
		  <Order>
			  <Name>SubjectCode</Name>
			  <Sort>ASC</Sort>
		  </Order>
	  </Sql>
	  <Sql>
			<Name>SelectBySubjectSet</Name>
			<String>select  * , (select count(*) from Subject ChildSubject where ChildSubject.SubjectSetCode = Subject.SubjectSetCode and ChildSubject.SubjectCode like Subject.SubjectCode+'%' and ChildSubject.Layer=Subject.Layer+1) as ChildNodesCount from Subject where SubjectSetCode=@SubjectSetCode</String>
			<CommandType>Text</CommandType>
			<Param>
				<Name>@SubjectSetCode</Name>
				<Column>SubjectSetCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Order>
				<Name>SubjectCode</Name>
				<Sort>ASC</Sort>
			</Order>
		</Sql>
		<Sql>
			<Name>SelectByLayer</Name>
			<String>select * , (select count(*) from Subject ChildSubject where ChildSubject.SubjectSetCode = Subject.SubjectSetCode and ChildSubject.SubjectCode like Subject.SubjectCode+'%' and ChildSubject.Layer=Subject.Layer+1) as ChildNodesCount from Subject where  SubjectSetCode=@SubjectSetCode and Layer=@Layer </String>
			<CommandType>Text</CommandType>
			<Param>
				<Name>@SubjectSetCode</Name>
				<Column>SubjectSetCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@Layer</Name>
				<Column>Layer</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Order>
				<Name>SubjectCode</Name>
				<Sort>ASC</Sort>
			</Order>
		</Sql>
		<Sql>
			<Name>SelectChildSubject</Name>
			<String>select  * , (select count(*) from Subject ChildSubject where ChildSubject.SubjectSetCode = Subject.SubjectSetCode and ChildSubject.SubjectCode like Subject.SubjectCode+'%' and ChildSubject.Layer=Subject.Layer+1) as ChildNodesCount from Subject where  SubjectSetCode=@SubjectSetCode and SubjectCode like @SubjectCode+'%' and Layer=@Layer </String>
			<CommandType>Text</CommandType>
			<Param>
				<Name>@SubjectSetCode</Name>
				<Column>SubjectSetCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@SubjectCode</Name>
				<Column>SubjectCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@Layer</Name>
				<Column>Layer</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Order>
				<Name>SubjectCode</Name>
				<Sort>ASC</Sort>
			</Order>
		</Sql>	
	</Table>
</Entity>