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

reference to Calculator is ambiguous
http://forum.bitel.ru/viewtopic.php?f=19&t=11393
Страница 1 из 1

Автор:  telesystem [ 01 мар 2016, 04:46 ]
Заголовок сообщения:  reference to Calculator is ambiguous

По совету Skn - viewtopic.php?f=19&t=11358#p96639 пытаюсь для версии 6.2 отработать код:
Код:
import java.math.*;
import bitel.billing.server.npay.Calculator;
import bitel.billing.common.TimeUtils;
 
public void main(setup, con, conSlave)
{
      Calendar dt = new GregorianCalendar();
      dt.set(Calendar.DAY_OF_MONTH ,31);
 
      Calculator calculator = new Calculator();
      print(TimeUtils.convertCalendarToDateString(dt));
      calculator.setExecutingTime(dt);
      calculator.setPreCalc();
      // если не ставить эту опцию, то будет считать абонплаты как будто статус активен от dt начиная
      calculator.setActiveFromDate( null );
      calculator.initTask(setup, 0, "mid=16");
      calculator.setCids("12345");
      calculator.startTask();
 
      if (!calculator.isCalcErrors())
      {
        BigDecimal planAccount = BigDecimal.ZERO;
        Map planAccountMap = calculator.getCostCache().getContractAccounts();
        for (Integer contractId : ru.bitel.common.Utils.stringToIntegerList("12345"))
        {
        if(planAccountMap.get(contractId)!=null){
                     planAccount = planAccount.add((BigDecimal)planAccountMap.get(contractId));
        }
        }
 
      print(planAccount);
      }
}


Компилятор усиленно ругается на Calculator calculator = new Calculator();

reference to Calculator is ambiguous
both class ru.bitel.bgbilling.modules.npay.server.Calculator in ru.bitel.bgbilling.modules.npay.server and class bitel.billing.server.npay.Calculator in bitel.billing.server.npay match /opt/bgbilling/BGBillingServer/dyn/GetPay.java

Уважаемы разработчики, подскажите в чем проблема ?

Автор:  dimOn [ 01 мар 2016, 10:56 ]
Заголовок сообщения:  Re: reference to Calculator is ambiguous

в том что
Цитата:
Для версии 5.1.

так попробуйте навскидку
Код:
import ru.bitel.bgbilling.modules.npay.server.Calculator;

Автор:  Phricker [ 01 мар 2016, 11:14 ]
Заголовок сообщения:  Re: reference to Calculator is ambiguous

В 6,2 работает.
Код:
package ru.ellcom.bgbilling.scripts.contract;

import java.math.BigDecimal;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.Map;

import bitel.billing.common.TimeUtils;
import bitel.billing.server.admin.bgsecure.bean.UserGroupManager;
import bitel.billing.server.npay.Calculator;


import ru.bitel.bgbilling.common.BGException;
import ru.bitel.bgbilling.common.BGMessageException;
import ru.bitel.common.Utils;


public class UpdateContractLimit
   extends bitel.billing.server.contract.action.ActionUpdateContractLimit
{
   private final int ADMIN_GROUP = 5;
   private final int ABON_GROUP = 32;
   private final int NPAY_MID = 3;
   
   @Override
    public void doAction()
       throws SQLException, BGException
   {
      UserGroupManager userGroupManager = new UserGroupManager(con);
      List<Integer> groups = userGroupManager.getUserGroups(userID);
      BigDecimal summa = Utils.parseBigDecimal(getParameter("value", ""),BigDecimal.ZERO);
      
      if(!groups.contains(ADMIN_GROUP)&& !groups.contains(ABON_GROUP))
      {
         Calendar now = new GregorianCalendar();
         now.add(Calendar.MONTH, 1);
         Calendar startMonth = TimeUtils.getStartMonth( now );
         Calendar endMonth = TimeUtils.getEndMonth( now );
         
         BigDecimal planAccount = BigDecimal.ZERO;
         
         Calculator calculator = new Calculator();
         calculator.setExecutingTime( endMonth );
         calculator.setPreCalc();
         calculator.setActiveFromDate( startMonth );
         calculator.setTariffOptionEnable( false );
         calculator.initTask( setup, 0, "mid=" + NPAY_MID );
         calculator.setCids( String.valueOf( cid ) );
         calculator.startTask();
         Map planAccountMap = calculator.getCostCache().getContractAccounts();
         planAccount = Utils.maskNull((BigDecimal) planAccountMap.get( cid ));
         if(summa.compareTo(planAccount.multiply(new BigDecimal(2.0)).negate()) < 0)
         {
            throw new BGMessageException( "Запрещено выставление лимита суммой больше чем " + planAccount.multiply(new BigDecimal(2.0)).negate() );
         }
      }
      // иначе вызываем родительский метод
      super.doAction();
   }
}

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