<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns:quartz="http://www.opensymphony.com/quartz/JobSchedulingData"
         xsi:schemaLocation="http://www.springframework.net http://www.springframework.net/xsd/spring-objects.xsd" >


  <object id="baseData" abstract="true">
    <property name="Properties" ref="deploymentVars" />
    <property name="DbProvider" ref="DbProvider"/>
    <property name="SessionFactory" ref="NHibernateSessionFactory"/>
    
  </object>

	<object id="agencyFacilityCommentData" type="Sleis.Data.AgencyFacilityCommentData" parent="baseData" init-method="Init" />
  <object id="agencyFacilityData" type="Sleis.Data.AgencyFacilityData" parent="baseData" init-method="Init" />
	<object id="agencyFacilityIdentifierData" type="Sleis.Data.AgencyFacilityIdentifierData" parent="baseData" init-method="Init" />
	<object id="agencyFacilityNaicsData" type="Sleis.Data.AgencyFacilityNaicsData" parent="baseData" init-method="Init" />
	<object id="agencyReleasePointData" type="Sleis.Data.AgencyReleasePointData" parent="baseData" init-method="Init" />
	<object id="agencyReportAttachmentData" type="Sleis.Data.AgencyReportAttachmentData" parent="baseData" init-method="Init" />
	<object id="agencyReportAttachmentDetailData" type="Sleis.Data.AgencyReportAttachmentDetailData" parent="baseData" init-method="Init" />
  <object id="agencyFacilityAlternateNameData" type="Sleis.Data.AgencyFacilityAlternateNameData" parent="baseData" init-method="Init" />
  <object id="agencyCommentData" type="Sleis.Data.AgencyCommentData" parent="baseData" init-method="Init"/>
	<object id="agencyEmissionData" type="Sleis.Data.AgencyEmissionData" parent="baseData" init-method="Init" />
	<object id="agencyEmissionUnitData" type="Sleis.Data.AgencyEmissionUnitData" parent="baseData" init-method="Init" />
  <object id="agencyEmissionUnitIdentifierData" type="Sleis.Data.AgencyEmissionUnitIdentifierData" parent="baseData" init-method="Init"/>
	<object id="agencyProcessEmissionData" type="Sleis.Data.AgencyProcessEmissionData" parent="baseData" init-method="Init" />
	<object id="agencyUnitProcessData" type="Sleis.Data.AgencyUnitProcessData" parent="baseData" init-method="Init" />
  <object id="agencyControlDeviceIdentifierData" type="Sleis.Data.AgencyControlDeviceIdentifierData" parent="baseData" init-method="Init" />
  <object id="agencyReleasePointIdentifierData" type="Sleis.Data.AgencyReleasePointIdentifierData" parent="baseData" init-method="Init"/>
	<object id="amendmentRequestData" type="Sleis.Data.AmendmentRequestData" parent="baseData" init-method="Init" />
	<object id="publicControlDeviceData" type="Sleis.Data.PublicControlDeviceData" parent="baseData" init-method="Init" />
	<object id="agencyControlDeviceData" type="Sleis.Data.AgencyControlDeviceData" parent="baseData" init-method="Init" />
  <object id="agencyControlDevicePollutantData" type="Sleis.Data.AgencyControlDevicePollutantData" parent="baseData" init-method="Init" />  
	<object id="publicControlDevicePollutantData" type="Sleis.Data.PublicControlDevicePollutantData" parent="baseData" init-method="Init" />
  <object id="agencyUnitProcessIdentifierData" type="Sleis.Data.AgencyUnitProcessIdentifierData" parent="baseData" init-method="Init" />
  <object id="cersData" type="Sleis.Data.CersData" parent="baseData" init-method="Init"/>
	<object id="customFieldData" type="Sleis.Data.CustomFieldData" parent="baseData" init-method="Init" />
	<object id="customFieldValueData" type="Sleis.Data.CustomFieldValueData" parent="baseData" init-method="Init" />
  <object id="dataSetData" type="Sleis.Data.DataSetData" parent="baseData" init-method="Init" />
  <!--<object id="emissionData" type="Sleis.Data.EmissionData" parent="baseData" init-method="Init" />-->
	<!--<object id="emissionUnitData" type="Sleis.Data.EmissionUnitData" parent="baseData" init-method="Init" />-->
	<object id="eventData" type="Sleis.Data.EventData" parent="baseData" init-method="Init" />
	<object id="facilityContactData" type="Sleis.Data.FacilityContactData" parent="baseData" init-method="Init" />
  <object id="agencyFacilityContactData" type="Sleis.Data.AgencyFacilityContactData" parent="baseData" init-method="Init" />
	<object id="facilityContactMethodData" type="Sleis.Data.FacilityContactMethodData" parent="baseData" init-method="Init" />
  <object id="agencyFacilityContactMethodData" type="Sleis.Data.AgencyFacilityContactMethodData" parent="baseData" init-method="Init" />
  <object id="publicFacilityData" type="Sleis.Data.PublicFacilityData" parent="baseData" init-method="Init" />
	<object id="facilityEmissionReportData" type="Sleis.Data.FacilityEmissionReportData" parent="baseData" init-method="Init" />
	<object id="facilityMailAddressData" type="Sleis.Data.FacilityMailAddressData" parent="baseData" init-method="Init" />
  <object id="agencyFacilityMailAddressData" type="Sleis.Data.AgencyFacilityMailAddressData" parent="baseData" init-method="Init" />
	<object id="facilityNaicsData" type="Sleis.Data.FacilityNaicsData" parent="baseData" init-method="Init" />
	<object id="publicFacilitySiteAddressData" type="Sleis.Data.PublicFacilitySiteAddressData" parent="baseData" init-method="Init" />
  <object id="agencyFacilitySiteAddressData" type="Sleis.Data.AgencyFacilitySiteAddressData" parent="baseData" init-method="Init" />
	<object id="managementFacilityData" type="Sleis.Data.ManagementFacilityData" parent="baseData" init-method="Init" />
	<object id="naicsData" type="Sleis.Data.NaicsData" abstract="true" parent="baseData" init-method="Init" />
  <object id="newsData" type="Sleis.Data.NewsData" parent="baseData" init-method="Init" />
	<object id="pageData" type="Sleis.Data.PageData" parent="baseData" init-method="Init" />
	<object id="pageFieldData" type="Sleis.Data.PageFieldData" parent="baseData" init-method="Init" />
	<object id="passwordData" type="Sleis.Data.PasswordData" parent="baseData" init-method="Init" />
	<!--<object id="processEmissionData" type="Sleis.Data.ProcessEmissionData" parent="baseData" init-method="Init" />-->

	<object id="publicEmissionData" type="Sleis.Data.PublicEmissionData" parent="baseData" init-method="Init" />
	<object id="publicEmissionUnitData" type="Sleis.Data.PublicEmissionUnitData" parent="baseData" init-method="Init" />
	<object id="publicProcessEmissionData" type="Sleis.Data.PublicProcessEmissionData" parent="baseData" init-method="Init" />
	<object id="publicUnitProcessData" type="Sleis.Data.PublicUnitProcessData" parent="baseData" init-method="Init" />

	<object id="publicReportData" type="Sleis.Data.PublicReportData" parent="baseData" init-method="Init" />
	<object id="publicReleasePointData" type="Sleis.Data.PublicReleasePointData" parent="baseData" init-method="Init" />
	<object id="publicReportAttachmentData" type="Sleis.Data.PublicReportAttachmentData" parent="baseData" init-method="Init" />
	<object id="publicReportAttachmentDetailData" type="Sleis.Data.PublicReportAttachmentDetailData" parent="baseData" init-method="Init" />
	<object id="reportData" type="Sleis.Data.ReportData" parent="baseData" init-method="Init" />
	
	<object id="repudiationData" type="Sleis.Data.RepudiationData" parent="baseData" init-method="Init" />
	<object id="repudiateRequestData" type="Sleis.Data.RepudiateRequestData" parent="baseData" init-method="Init" />
	<object id="roleData" type="Sleis.Data.RoleData" parent="baseData" init-method="Init" />
	<!--<object id="unitProcessData" type="Sleis.Data.UnitProcessData" parent="baseData" init-method="Init" />-->
	<object id="userAnswerData" type="Sleis.Data.UserAnswerData" parent="baseData" init-method="Init" />
	<object id="userContactData" type="Sleis.Data.UserContactData" parent="baseData" init-method="Init" />
	<object id="userData" type="Sleis.Data.UserData" parent="baseData" init-method="Init" />
  <object id="publicRegulationProgramData" type="Sleis.Data.PublicRegulationProgramData" parent="baseData" init-method="Init" />
  <object id="agencyRegulationProgramData" type="Sleis.Data.AgencyRegulationProgramData" parent="baseData" init-method="Init" />
  <object id="controlApproachData" type="Sleis.Data.ControlApproachData" parent="baseData" init-method="Init" />
  <object id="unitProcessReleasePointData" type="Sleis.Data.UnitProcessReleasePointData" parent="baseData" init-method="Init" />
  <object id="publicEntityControlDeviceData" type="Sleis.Data.PublicEntityControlDeviceData" parent="baseData" init-method="Init" />
  <object id="agencyEntityControlDeviceData" type="Sleis.Data.AgencyEntityControlDeviceData" parent="baseData" init-method="Init" />
  
  <object id="simpleLookupItemData" type="Sleis.Data.SimpleLookupItemData" parent="baseData" init-method="Init">
    <property name="Queries">
      <dictionary key-type="string" value-type="string">
				<entry key="SccLevelOne" value="
							 select distinct SCC_LEV_ONE as CODE, SCC_LEV_ONE as VALUE from E_SRC_CLASS WHERE LAST_INV_YEAR IS NULL Or LAST_INV_YEAR >= :year Order By Value
							 " />
				<entry key="SccLevelTwo" value="
							 select distinct  SCC_LEV_TWO as CODE, SCC_LEV_TWO as VALUE from E_SRC_CLASS where SCC_LEV_ONE = :levelOne AND (LAST_INV_YEAR IS NULL Or LAST_INV_YEAR >= :year) Order By Value
							 " />
				<entry key="SccLevelThree" value="
							 select distinct SCC_LEV_THREE as CODE, SCC_LEV_THREE as VALUE  from E_SRC_CLASS where SCC_LEV_ONE = :levelOne AND SCC_LEV_TWO = :levelTwo AND(LAST_INV_YEAR IS NULL Or LAST_INV_YEAR >= :year) Order By Value
							 " />
				<entry key="SccLevelFour" value="
							 select distinct E_SRC_CLASS_CD as CODE, SCC_LEV_FOUR as VALUE from E_SRC_CLASS where SCC_LEV_ONE = :levelOne AND SCC_LEV_TWO = :levelTwo AND SCC_LEV_THREE = :levelThree AND (LAST_INV_YEAR IS NULL Or LAST_INV_YEAR >= :year) Order By Value
							 " />
				<entry key="search-facilities" value="
							  SELECT DISTINCT
                      mfs.FAC_SITE_IDEN
                      + ':~:'
                      + mfs.FAC_SITE_NAME as VALUE,
                      mfs.FAC_SITE_ID        as CODE,                     
                      0 as LAST_INV_YEAR,
                      mfs.FAC_SITE_NAME as CodeDescription
                  FROM
                  (
                      SELECT
                          M_FAC_SITE.FAC_SITE_IDEN,

                          M_FAC_SITE.FAC_SITE_ID,
                          M_FAC_SITE.FAC_SITE_NAME,
                          FAC_SITE_MSTR_IND 
                      FROM
                          M_FAC_SITE
                          LEFT JOIN M_FAC_IDEN ON M_FAC_IDEN.FAC_SITE_ID = M_FAC_SITE.FAC_SITE_ID
                          LEFT JOIN M_ALT_FAC_NAME ON M_ALT_FAC_NAME.FAC_SITE_ID = M_FAC_SITE.FAC_SITE_ID
                      WHERE
                          (M_FAC_SITE.FAC_SITE_NAME like '%' + :term + '%') 
                          OR (M_FAC_SITE.FAC_SITE_IDEN like  '%' + :term + '%')
                          OR (M_FAC_IDEN.FAC_SITE_IDEN like  '%' + :term + '%')
                          OR (M_ALT_FAC_NAME.ALT_NAME like  '%' + :term + '%' )
                  ) mfs                  
                  WHERE
                      mfs.FAC_SITE_MSTR_IND = 1
                  ORDER BY mfs.FAC_SITE_NAME" />
          <entry key="oracle_search-facilities" value="
							  SELECT DISTINCT
                      mfs.FAC_SITE_IDEN
                      || ':~:'
                      || mfs.FAC_SITE_NAME as VALUE,
                      mfs.FAC_SITE_ID        as CODE,
                      0 as LAST_INV_YEAR,
                      mfs.FAC_SITE_NAME
                  FROM
                  (
                      SELECT
                          M_FAC_SITE.FAC_SITE_IDEN,

                          M_FAC_SITE.FAC_SITE_ID,
                          M_FAC_SITE.FAC_SITE_NAME,
                          FAC_SITE_MSTR_IND 
                      FROM
                          M_FAC_SITE
                          LEFT JOIN M_FAC_IDEN ON M_FAC_IDEN.FAC_SITE_ID = M_FAC_SITE.FAC_SITE_ID
                          LEFT JOIN M_ALT_FAC_NAME ON M_ALT_FAC_NAME.FAC_SITE_ID = M_FAC_SITE.FAC_SITE_ID
                      WHERE
                          (lower(M_FAC_SITE.FAC_SITE_NAME) like  '%' || lower(:term) || '%' ) 
                          OR (lower(M_FAC_SITE.FAC_SITE_IDEN) like '%' || lower(:term) || '%' )

                          OR (lower(M_FAC_IDEN.FAC_SITE_IDEN) like '%' || lower(:term) || '%' )
                          OR (lower(M_ALT_FAC_NAME.ALT_NAME) like '%' || lower(:term) || '%' )
                  ) mfs                  
                  WHERE
                      mfs.FAC_SITE_MSTR_IND = 1
                  ORDER BY mfs.FAC_SITE_NAME" />
        <entry key="search-public-control-devices" value="SELECT CTRL_DEVC_IDEN +':~:'+ ISNULL(CTRL_DEVC_DESC,'') Value, CTRL_DEVC_ID as Code, 0 as LAST_INV_YEAR 
																													FROM P_CTRL_DEVC pcd
																													inner join P_FAC_SITE pfs on pfs.FAC_SITE_ID = pcd.FAC_SITE_ID
																													inner join P_FAC_EMIS_RPT pfer on pfer.FAC_EMIS_RPT_ID = pfs.FAC_EMIS_RPT_ID
                                                          inner join M_AGN_RPT ar ON pfer.AGN_RPT_ID = ar.AGN_RPT_ID
																													WHERE (CTRL_DEVC_IDEN LIKE '%' + :term + '%'  OR CTRL_DEVC_DESC LIKE '%' + :term + '%' ) 
                                                            AND (
                                                                  pcd.A_CTRL_DEVC_STAT_CD = 'OP'
                                                                  OR (pcd.A_CTRL_DEVC_STAT_CD IN ('PS', 'TS') AND YEAR(pcd.CTRL_DEVC_STAT_CD_DATE) > ar.RPT_YEAR)
                                                                )
																														AND pfer.AGN_RPT_ID =:reportId" />
          <entry key="oracle_search-public-control-devices" value="SELECT CTRL_DEVC_IDEN || ':~:' || nvl(CTRL_DEVC_DESC,'') Value, CTRL_DEVC_ID as Code, 0 as LAST_INV_YEAR 
																													FROM P_CTRL_DEVC pcd
																													inner join P_FAC_SITE pfs on pfs.FAC_SITE_ID = pcd.FAC_SITE_ID
																													inner join P_FAC_EMIS_RPT pfer on pfer.FAC_EMIS_RPT_ID = pfs.FAC_EMIS_RPT_ID
                                                          inner join M_AGN_RPT ar ON pfer.AGN_RPT_ID = ar.AGN_RPT_ID
																													WHERE (lower(CTRL_DEVC_IDEN) LIKE   '%' ||lower(:term) || '%'  OR lower(CTRL_DEVC_DESC) LIKE   '%' || lower(:term) || '%') 
                                                          AND (
                                                                  pcd.A_CTRL_DEVC_STAT_CD = 'OP'
                                                                  OR (pcd.A_CTRL_DEVC_STAT_CD IN ('PS', 'TS') AND to_char(pcd.CTRL_DEVC_STAT_CD_DATE, 'yyyy') > ar.RPT_YEAR)
                                                                )
																														AND pfer.AGN_RPT_ID =:reportId" />  
        <entry key="search-master-control-devices" value="SELECT CTRL_DEVC_IDEN +':~:'+ ISNULL(CTRL_DEVC_DESC,'') Value, CTRL_DEVC_ID as Code, 0 as LAST_INV_YEAR 
																													FROM M_CTRL_DEVC pcd
																													inner join M_FAC_SITE pfs on pfs.FAC_SITE_ID = pcd.FAC_SITE_ID																																																									
																													WHERE (CTRL_DEVC_IDEN LIKE '%' + :term + '%' OR CTRL_DEVC_DESC LIKE  '%' + :term + '%' ) 
                                                           AND (
                                                                  pcd.A_CTRL_DEVC_STAT_CD = 'OP'
                                                                  OR (pcd.A_CTRL_DEVC_STAT_CD IN ('PS', 'TS') AND YEAR(pcd.CTRL_DEVC_STAT_CD_DATE) > YEAR(GetDate()))
                                                                )
																														AND pfs.FAC_SITE_ID =:facilityId" />
        <entry key="oracle_search-master-control-devices" value="SELECT CTRL_DEVC_IDEN || ':~:' || nvl(CTRL_DEVC_DESC,'') Value, CTRL_DEVC_ID as Code, 0 as LAST_INV_YEAR 
																													FROM M_CTRL_DEVC pcd
																													inner join M_FAC_SITE pfs on pfs.FAC_SITE_ID = pcd.FAC_SITE_ID
																													WHERE (lower(CTRL_DEVC_IDEN) LIKE '%' ||  lower(:term) || '%'  OR lower(CTRL_DEVC_DESC) LIKE  '%' || lower(:term) || '%' ) 
																													AND (
                                                                  pcd.A_CTRL_DEVC_STAT_CD = 'OP'
                                                                  OR (pcd.A_CTRL_DEVC_STAT_CD IN ('PS', 'TS') AND to_char(pcd.CTRL_DEVC_STAT_CD_DATE, 'yyyy') > to_char(sysdate, 'yyyy'))
                                                                )	
                                                          AND pfs.FAC_SITE_ID =:facilityId" />
        <entry key="search-agency-control-devices" value="SELECT CTRL_DEVC_IDEN +':~:'+ ISNULL(CTRL_DEVC_DESC,'') Value, CTRL_DEVC_ID as Code, 0 as LAST_INV_YEAR 
																													FROM M_CTRL_DEVC pcd
																													inner join M_FAC_SITE pfs on pfs.FAC_SITE_ID = pcd.FAC_SITE_ID
                                                          inner join M_AGN_RPT ar ON pfs.AGN_RPT_ID = ar.AGN_RPT_ID
																													WHERE (CTRL_DEVC_IDEN LIKE '%' + :term + '%'  OR CTRL_DEVC_DESC LIKE '%' + :term + '%' )
                                                          AND (
                                                                  pcd.A_CTRL_DEVC_STAT_CD = 'OP'
                                                                  OR (pcd.A_CTRL_DEVC_STAT_CD IN ('PS', 'TS') AND YEAR(pcd.CTRL_DEVC_STAT_CD_DATE) > ar.RPT_YEAR)
                                                                )
																														AND pfs.AGN_RPT_ID =:reportId" />
          <entry key="oracle_search-agency-control-devices" value="SELECT CTRL_DEVC_IDEN || ':~:' || nvl(CTRL_DEVC_DESC,'') Value, CTRL_DEVC_ID as Code, 0 as LAST_INV_YEAR 
																													FROM M_CTRL_DEVC pcd
																													inner join M_FAC_SITE pfs on pfs.FAC_SITE_ID = pcd.FAC_SITE_ID
                                                          inner join M_AGN_RPT ar ON pfs.AGN_RPT_ID = ar.AGN_RPT_ID
																													WHERE (lower(CTRL_DEVC_IDEN) LIKE '%' || lower(:term) || '%'  OR lower(CTRL_DEVC_DESC) LIKE '%' || lower(:term) || '%' ) 
																													 AND (
                                                                  pcd.A_CTRL_DEVC_STAT_CD = 'OP'
                                                                  OR (pcd.A_CTRL_DEVC_STAT_CD IN ('PS', 'TS') AND to_char(pcd.CTRL_DEVC_STAT_CD_DATE, 'yyyy') > ar.RPT_YEAR)
                                                                )	
                                                          AND pfs.AGN_RPT_ID =:reportId" />

        <entry key="search-facility-users" value="SELECT SEC_USER_ID as Code     
                                                      ,USER_FULL_NAME + ':~:' + USER_NAME as Value,
                                                      0 as LAST_INV_YEAR
                                                  FROM SEC_USER WHERE USER_TYPE = 'Facility' 
                                                  AND (USER_NAME LIKE  '%' + :term + '%'  OR USER_FULL_NAME LIKE '%' + :term + '%' ) AND USER_STAT != 'Deleted'"/>

          <entry key="oracle_search-facility-users" value="SELECT SEC_USER_ID as Code     
                                                      ,USER_FULL_NAME || ':~:' || USER_NAME as Value,
                                                      0 as LAST_INV_YEAR
                                                  FROM SEC_USER WHERE USER_TYPE = 'Facility' 
                                                  AND (lower(USER_NAME) LIKE '%' || lower(:term) || '%'  OR lower(USER_FULL_NAME) LIKE '%' || lower(:term) || '%' ) AND USER_STAT != 'Deleted'"/>

      </dictionary>
    </property>
  </object>
  <object id="epaData" type="Sleis.Data.EpaData" parent="baseData" init-method="Init" />
  <object id="submissionCorData" type="Sleis.Data.SubmissionCorData" parent="baseData" init-method="Init" />
  <object id="submissionDocumentData" type="Sleis.Data.SubmissionDocumentData" parent="baseData" init-method="Init" />
</objects>