/* * 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.core.repository; import lombok.NoArgsConstructor; import org.openlmis.core.domain.PriceSchedule; import org.openlmis.core.domain.Product; import org.openlmis.core.domain.ProductPriceSchedule; import org.openlmis.core.repository.mapper.PriceScheduleMapper; import org.openlmis.core.repository.mapper.ProductMapper; import org.openlmis.core.repository.mapper.ProductPriceScheduleMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; import java.util.List; @Repository @NoArgsConstructor public class ProductPriceScheduleRepository { @Autowired private ProductPriceScheduleMapper mapper; @Autowired private PriceScheduleMapper priceScheduleMapper; @Autowired private ProductMapper productMapper; public void insert(ProductPriceSchedule productPriceSchedule) { mapper.insert(productPriceSchedule); } public void update(ProductPriceSchedule productPriceSchedule) { mapper.update(productPriceSchedule); } //TODO: QUESTION? does this belong here? should this not move to a service? public ProductPriceSchedule getByProductCodeAndPriceSchedule(ProductPriceSchedule productPriceSchedule) { Product product = productMapper.getByCode(productPriceSchedule.getProduct().getCode()); PriceSchedule schedule = priceScheduleMapper.getByCode(productPriceSchedule.getPriceSchedule().getCode()); productPriceSchedule.getPriceSchedule().setId(schedule.getId()); productPriceSchedule.getProduct().setId(product.getId()); return mapper.getByProductCodePriceSchedule(productPriceSchedule.getProduct().getId(), schedule.getId()); } public List<ProductPriceSchedule> getByProductId(Long id) { return mapper.getByProductId(id); } public List<ProductPriceSchedule> getPriceScheduleFullSupplyFacilityApprovedProduct(Long programId, Long facilityId) { return mapper.getPriceScheduleFullSupplyFacilityApprovedProduct(programId, facilityId); } }