max писал(а):
что бы током пиздило, но думаю это сложновато будет реализовать!
Хорошая идея, но реализация долгая.В динамическом коде добавляем следующий код (меняем соответственно в строке package ru.test на своё)
Класс можно оставить с названием
UpdateContractDate2 чтобы не путаться в дальнейшем.
Так же изменить
Код:
private final int ADMIN_GROUP = 2; //группа на которую не будет распространяться. Ибо админы - боги
private final int PARAM_ID = 1; // ID текстового параметра
на свои значения.
Компилируем и сохраняем.
Код:
package ru.test;
import java.sql.SQLException;
import java.util.List;
import bitel.billing.server.admin.bgsecure.bean.UserGroupManager;
import bitel.billing.server.contract.bean.ContractParameterManager;
import ru.bitel.bgbilling.common.BGException;
import ru.bitel.bgbilling.common.BGMessageException;
public class UpdateContractDate2
extends bitel.billing.server.contract.action.ActionUpdateContractDate2
{
private final int ADMIN_GROUP = 2; //группа на которую не будет распространяться. Ибо админы - боги
private final int PARAM_ID = 1; // ID текстового параметра
@Override
public void doAction()
throws SQLException, BGException
{
UserGroupManager userGroupManager = new UserGroupManager(con);
List<Integer> groups = userGroupManager.getUserGroups(userID);
if(!groups.contains(ADMIN_GROUP))
{
ContractParameterManager cpm = new ContractParameterManager(con);
if(cpm.getStringParam(cid, PARAM_ID) == null){
throw new BGMessageException( "Запрещено закрывать договор если не заполнено поле" );
}
}
// иначе вызываем родительский метод
super.doAction();
}
}
В конфиге сервера (Сервис - Настройка - Конфигурация) прописываем строчку
Код:
dynaction:contract.ActionUpdateContractDate2=ru.test.UpdateContractDate2
Должно заработать.