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

Как пользоваться BalanceDao?
http://forum.bitel.ru/viewtopic.php?f=22&t=13132
Страница 1 из 1

Автор:  Dog [ 27 ноя 2018, 18:51 ]
Заголовок сообщения:  Как пользоваться BalanceDao?

ru.bitel.bgbilling.kernel.contract.balance.server.bean.BalanceDao
Почему то при попытке получить баланс везде получаем 0
Вложение:
2018-11-27_15-47-05.png
2018-11-27_15-47-05.png [ 5.5 КБ | Просмотров: 2197 ]

Код:
BalanceDao bd = new BalanceDao( con );
Contract contract = cm.getContractById( cid );
Сalendar date = Calendar.getInstance();
date = TimeUtils.getStartMonth( date );
ContractBalance contractBalance = bd.getContractBalance( contract.getId(), date.get( Calendar.MONTH ), date.get( Calendar.YEAR ) );
BigDecimal bb = bd.getBalance( contract.getId(), date.get( Calendar.MONTH ), date.get( Calendar.YEAR ) );
BigDecimal saldo = contractBalance.toBalance();
sb.append( "contractBalance:" + bb + ";" + contractBalance.getAccounts() + ";" + contractBalance.getCharges() + ";" + contractBalance.getPayments() + ";" + contractBalance.getReserve() + "\n");


Код:
contractBalance:0;0;0;0;0

Автор:  dimOn [ 27 ноя 2018, 18:55 ]
Заголовок сообщения:  Re: Как пользоваться BalanceDao?

как минимум думаю потому что там надо в обоих местах:
date.get( Calendar.MONTH ) + 1
сначала это проверьте

Автор:  Phricker [ 27 ноя 2018, 19:00 ]
Заголовок сообщения:  Re: Как пользоваться BalanceDao?

1) Не пользоваться BalanceDao а пользоваться BalanceService
2) Помнить что в java.util.Calendar месяцы начинаются с 0.

Код:
import ru.bitel.bgbilling.kernel.container.managed.ServerContext;
import ru.bitel.bgbilling.kernel.contract.balance.common.BalanceService;
import ru.bitel.bgbilling.kernel.script.server.dev.GlobalScriptBase;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;

import java.sql.Connection;
import java.util.Calendar;


public class TestGit
        extends GlobalScriptBase {
    @Override
    public void execute(Setup setup, ConnectionSet connectionSet)
            throws Exception {
        int contractId = 315753;

        Connection con = connectionSet.getConnection();
        ServerContext serverContext = ServerContext.get();
        BalanceService balanceService = serverContext.getService(BalanceService.class, 0);
        Calendar cal = Calendar.getInstance();

        print(balanceService.contractBalanceGet(contractId, cal.get(Calendar.YEAR), cal.get(Calendar.MONTH)).getPayments());
        print(balanceService.contractBalanceGet(contractId, cal.get(Calendar.YEAR), cal.get(Calendar.MONTH) + 1).getPayments());
    }
}


Код:
0
123123.00


Изображение



Upd: Димон опередил, но я пример писал.

Автор:  Phricker [ 27 ноя 2018, 19:06 ]
Заголовок сообщения:  Re: Как пользоваться BalanceDao?

Dog писал(а):
Код:
bd.getContractBalance( contract.getId(), date.get( Calendar.MONTH ), date.get( Calendar.YEAR ) );


Код:
 public ContractBalance getContractBalance(int contractId, int yy, int mm) throws BGException {


И у вас местами поменялся год и месяц видимо.

Автор:  Dog [ 27 ноя 2018, 19:16 ]
Заголовок сообщения:  Re: Как пользоваться BalanceDao?

:facepalm: Спасибо всем =)

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