/* * Electronic Logistics Management Information System (eLMIS) is a supply chain management system for health commodities in a developing country setting. * * Copyright (C) 2015 John Snow, Inc (JSI). This program was produced for the U.S. Agency for International Development (USAID). It was prepared under the USAID | DELIVER PROJECT, Task Order 4. * * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.openlmis.report.mapper.lookup; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.openlmis.report.model.dto.FacilityType; import org.springframework.stereotype.Repository; import java.util.List; @Repository public interface FacilityTypeReportMapper { // show only facility types that are likely to report rnr @Select("SELECT id, name ," + " code , nominalMaxmonth , nominalEOP , active , displayOrder"+ " FROM " + " facility_types where id in " + " (select typeid from facilities where facilities.id in " + " (select facilityid from programs_supported)" + " ) " + " order by name") List<FacilityType> getAll(); @Select("select * from facility_types") List<FacilityType> getAllFacilityTypes(); // show only facility types that are likely to report rnr @Select("SELECT id, name " + " FROM " + " facility_types where id in " + " (select typeid from facilities where facilities.id in " + " (select facilityid from programs_supported where programid = #{programId} and active = true)" + " ) " + " order by name") List<FacilityType> getForProgram(@Param("programId") Long programId); @Select("SELECT DISTINCT facility_types.code" + ", facility_types.name" + ", facility_types.displayorder" + " FROM programs_supported" + " JOIN facilities ON facilities.id = programs_supported.facilityid" + " JOIN facility_types ON facility_types.id = facilities.typeid" + " WHERE programs_supported.programid = #{programId}" + " AND programs_supported.active = TRUE" + " AND facilities.id = ANY (#{facilityIds}::INT[])") List<FacilityType> getLevels(@Param("programId") Long programId, @Param("facilityIds")String facilityIds); @Select("SELECT id, name " + " FROM " + " facility_types where id = #{id}") FacilityType getById(Long id); }