BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 17 июн 2025, 04:33

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: свой Action
СообщениеДобавлено: 27 апр 2015, 12:27 
Не в сети
Клиент

Зарегистрирован: 12 мар 2012, 11:50
Сообщения: 85
Карма: 0
Подскажите как добавить свой action?
Есть вот такой скрипт(до конца не допилен
Код:
   int cid = event.getContractId();
   ContractStatusManager contract_status_manager  = new ContractStatusManager( con );
   Contract contract = new ContractManager(con).getContractById(cid);
   Calendar DateNow = Calendar.getInstance();
   int schDate = DateNow.get(Calendar.DAY_OF_MONTH);
   BalanceUtils bu = new BalanceUtils( con );
   month=bitel.billing.common.TimeUtils.getPrevDay(bitel.billing.common.TimeUtils.getStartMonth (bitel.billing.common.TimeUtils.convertCalendarToDate(DateNow)));
   if (schDate<21)
   {
      contract_balance = bu.getBalanceSumma1 (month, cid);
      bu.close();
      String sql = " SELECT sum(cp.summa) FROM contract_payment as cp left join contract on contract.id=cp.cid where cp.dt > \""+bitel.billing.common.TimeUtils.formatSQLDate(bitel.billing.common.TimeUtils.getStartMonth(month))+"\" and cp.dt <= \""+bitel.billing.common.TimeUtils.formatSQLDate(DateNow)+"\" and cp.cid="+cid;
      PreparedStatement ps = con.prepareStatement( sql );
      ResultSet rs = ps.executeQuery();
      while(rs.next())
      {
         String pm = rs.getString ( 1 );
         print ("SQL Запрос: "+sql);
         print ("Сумма платежей: "+pm);
         BigDecimal sum = new BigDecimal(pm.toString());
         BigDecimal balance=contract_balance.add(sum);
         if (balance.compareTo( new BigDecimal("0.00") )>= 0 && contract.getStatus()!=0)
         {
            
         }
      }
   }

мне нужно что бы при открытии https://url:8080/bgbilling/executer?use ... wd&module=какой_то_модуль&action=мой_экшен&cid=37409
выводилось что то типа как при открытии http://url:8080/bgbilling/executer?user ... &cid=37409

Цитата:
Информация о версии:

Сервер: вер. 6.1.1018 / 25.12.2014 18:48:07
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.7.0_71


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: свой Action
СообщениеДобавлено: 27 апр 2015, 12:47 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
http://wiki.bitel.ru/index.php/%D0%9F%D ... 0%BE%D0%B2
что именно не получается?

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: свой Action
СообщениеДобавлено: 27 апр 2015, 14:08 
Не в сети
Клиент

Зарегистрирован: 12 мар 2012, 11:50
Сообщения: 85
Карма: 0
На сколько я понял, там идет замена стандартного экшена на свой, а мне нужно добавить новый вот к примеру у меня динкод ru.test.Balance
мне нужно что бы оно выполнялось
http://URL:8080/bgbilling/executer?user ... estBalance
в конфиге прописываю dynaction:contract.TestBalance=ru.test.Balance
и ничего не работит
Upd Затупил, вроде разобрался, а как вывести результат в виде xml?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: свой Action
СообщениеДобавлено: 27 апр 2015, 14:29 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
И "замена" и новый одинаково работает, можно точно так же добавить новый экшен.
Какой результат то вывести, вы в коде никакого результата вообще не формируете. Чтобы вывести xml нужно его в экшене сформировать в нужном виде)
Стандартный способ - конструирование dom над rootNode, который доступен в родительском ActionBase
Например:
Код:
Element table = createElement( rootNode, "table" );
table.setAttribute( "foo", "bar" );

Ну итд любую структуру нужную

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: свой Action
СообщениеДобавлено: 27 апр 2015, 14:34 
Не в сети
Клиент

Зарегистрирован: 12 мар 2012, 11:50
Сообщения: 85
Карма: 0
Теперь более-менее понятно, спасибо


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: свой Action
СообщениеДобавлено: 27 апр 2015, 16:26 
Не в сети
Клиент

Зарегистрирован: 12 мар 2012, 11:50
Сообщения: 85
Карма: 0
Вопрос не много не в тему, но как получить данные которые выдает module=contract&action=ContractParameters&cid=cid ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: свой Action
СообщениеДобавлено: 27 апр 2015, 16:59 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Цитата:
Вопрос не много не в тему, но как получить данные которые выдает module=contract&action=ContractParameters&cid=cid ?

по ссылке это тоже есть:
String comment = getParameter( "comment", "" );
int id = getIntParameter( "id", -1 );
итд

ну module и action будет у вас фиксированными, это понятно, наверно
а cid сразу доступен в наследниках ActionBase (просто как переменная cid)

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: свой Action
СообщениеДобавлено: 27 апр 2015, 17:17 
Не в сети
Клиент

Зарегистрирован: 12 мар 2012, 11:50
Сообщения: 85
Карма: 0
dimOn писал(а):
Цитата:
Вопрос не много не в тему, но как получить данные которые выдает module=contract&action=ContractParameters&cid=cid ?

по ссылке это тоже есть:
String comment = getParameter( "comment", "" );
int id = getIntParameter( "id", -1 );
итд

ну module и action будет у вас фиксированными, это понятно, наверно
а cid сразу доступен в наследниках ActionBase (просто как переменная cid)

Наверное не правильно вопрос задал... В общем не нужно посмотреть исходник ActionContractParameters, как оно получает pidы параметров договора и выводит параметры


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: свой Action
СообщениеДобавлено: 27 апр 2015, 17:20 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
http://jd.benow.ca/

Код:
package bitel.billing.server.contract.action;

import bitel.billing.server.ActionBase;
import bitel.billing.server.contract.bean.ContractUtils;
import java.sql.SQLException;
import org.w3c.dom.Element;
import ru.bitel.bgbilling.common.BGException;
import ru.bitel.bgbilling.common.BGIllegalArgumentException;
import ru.bitel.bgbilling.kernel.contract.api.common.bean.ContractParameterGroupName;
import ru.bitel.bgbilling.kernel.contract.api.server.bean.ContractParameterGroupNameDao;

public class ActionContractParameters
  extends ActionBase
{
  public void doAction()
    throws SQLException, BGException
  {
    boolean groupFlag = getIntParameter("all", 0) != 1;
    if (this.cid < 0) {
      this.cid = getIntParameter("id", -1);
    }
    if (this.cid < 0) {
      throw new BGIllegalArgumentException();
    }
    if (getIntParameter("list", 0) == 1)
    {
      Element groups = createElement(this.rootNode, "groups");
      addListItem(groups, "0", "---------------");
      for (ContractParameterGroupName groupName : new ContractParameterGroupNameDao(this.con).list()) {
        addListItem(groups, groupName.getId(), groupName.getTitle());
      }
    }
    Element parameters = createElement(this.rootNode, "parameters");
    new ContractUtils(this.con).addContractParameters(this.cid, groupFlag, parameters, this.rootNode, this.userID.intValue());
  }
}

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB
[ Time : 0.091s | 34 Queries | GZIP : On ]