class BudgetService {

    @Transactional
    public List<Budget> update(List<Budget> budgets, final BindingResult errors,
            final RequestInfo requestInfo) {

        try {

            budgets = fetchRelated(budgets,requestInfo);

            validate(budgets, ACTION_UPDATE, errors);

            if (errors.hasErrors())
                throw new CustomBindException(errors);

        } catch (final CustomBindException e) {

            throw new CustomBindException(errors);
        }

        return budgetRepository.update(budgets, requestInfo);

    }

    @Autowired public  BudgetService(final SmartValidator validator, final BudgetRepository budgetRepository,
            final FinancialYearContractRepository financialYearContractRepository);

}