package org.egov.model.repository;
import java.util.List;
import org.egov.commons.CChartOfAccounts;
import org.egov.model.budget.BudgetGroup;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
@Repository
public interface BudgetingGroupRepository extends JpaRepository<BudgetGroup, Long> {
public BudgetGroup findByMajorCode_Id(Long id);
public BudgetGroup findByMajorCode_IdAndIdNotIn(Long majorCodeId, Long id);
public List<BudgetGroup> findByMinCodeGlcodeLessThanEqualAndMaxCodeGlcodeGreaterThanEqual(String minCode,
String minCode1);
public List<BudgetGroup> findByMinCodeGlcodeLessThanEqualAndMaxCodeGlcodeGreaterThanEqualAndIdNotIn(String minCode,
String minCode1, Long id);
@Query("from BudgetGroup where upper(name) like '%'||upper(:name)||'%' order by id")
List<BudgetGroup> findBudgetGroupByNameLike(@Param("name") String name);
@Query("from BudgetGroup where substr(minCode.glcode,1,:length)<=:majorCode and substr(maxCode.glcode,1,:length)>=:majorCode")
public List<BudgetGroup> getBudgetGroupForMappedMajorCode(@Param("length") Integer length,
@Param("majorCode") String majorCode);
@Query("from BudgetGroup where majorCode.glcode<=:minCode and majorCode.glcode>=:minCode")
public BudgetGroup getBudgetGroupForMinorCodesMajorCode(@Param("minCode") String minCode);
@Query("from CChartOfAccounts where length(glcode)=:length order by glcode")
List<CChartOfAccounts> findCOAByLength(@Param("length") Integer length);
public List<BudgetGroup> findByAccountTypeIs(String accountType);
public List<BudgetGroup> findBybudgetingTypeIs(String budgetingType);
public List<BudgetGroup> findByIsActiveTrue();
}