forum.bitel.ru
http://forum.bitel.ru/

использование API в отчете
http://forum.bitel.ru/viewtopic.php?f=12&t=4124
Страница 1 из 1

Автор:  skyb [ 03 июн 2010, 07:43 ]
Заголовок сообщения:  использование API в отчете

пытаюсь переделать вот этот отчет с использованием API дошел покачто только до этого, не могу понять как привязать тп к учетке и чтоб он просматривал каждый день какой тп стоит и плюсовал куда надо.
Код:
class PaymentUtil
{
    /**
     * Метод
     * @period из какого периода буудут складываться данные
     * @paymentList список всевозможных платежей
     * @return хеш <id_пользователя, сумма_платежей>
     */
    public static Map<Integer, BigDecimal> getUserMonthSum(Date period, List<Payment> paymentList)
    {
        Map<Integer, BigDecimal> userMonthSum = new HashSet<Integer, BigDecimal>()
        // из Date в Calendar для того, что бы выдирать номер месяца
        Calendar selectedPeriod = Calendar.getInstance();
        selectedPeriod.setTime(period);
        // цикл по всему списку переданных платежей
        for (Payment payment : paymentList)
        {
            Calendar paymentDate = Calendar.getInstance();
            paymentDate.setTime(payment.getPaymentDate());
            // суммировать только по тому месяцу, который нужен
            if (paymentDate.get(Calendar.MONTH) == selectedPeriod.get(Calendar.MONTH))
            {
                // переводим ID пользователя в объект, тк Map другое
                // в качестве параметра не воспринимает
                Integer userID = new Integer(payment.getUserID());
                // сумма платежей пользователя за текущий месяц
                BigDecimal curSum = userMonthSum.get(userID);
                BigDecimal curPay = payment.getSumma();
                // если есть уже какая-то сумма, то складываем
                if (curSum != null)
                    curPay = curPay.add(curSum);
                // складываем в мап
                userMonthSum.put(userID, curPay);
            }
        }
   
        return userMonthSum;
    }
}

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/