Собственно вот такое задание выдала бухгалтерия. Чтобы рассчеты с кассирами велись день в день.
В самом биллинге есть запрет на занесение предыдущим числом, и закрытый период.
Первое не то, второе не подходит т.к. могут тариф поменять или т.п.. Закрытый период закрывается последним числом предыдущего месяца.
Собственно возникает проблема написания скрипта который будет выдавать ошибку при заведении платежа не сегодняшним числом.
Родился вот такой скрипт на событие "Приход платежа"
Код:
import bitel.billing.server.script.event.*;
import bitel.billing.server.contract.bean.*;
import bitel.billing.server.util.*;
Calendar calendar = new GregorianCalendar();
dateNow = TimeUtils.convertCalendarToDate(calendar);
payment = event.getPayment();
cid = payment.getContractID();
payDate = payment.getPaymentDate();
if( TimeUtils.dateBefore(payDate, dateNow)){
print( "Запрещено заносить платежи предыдущим числом" );
}
Теперь необходимо выдать еррор в клиент.
Если писать
Код:
if( TimeUtils.dateBefore(payDate, dateNow)){
event.setError( "Запрещено заносить платежи предыдущим числом" );
}
то получаем ошибку
Код:
Method setError( java.lang.String ) not found in class'bitel.billing.server.script.bean.event.PaymentEvent'
Да и в любом случае это не то, т.к. я так понимаю, что событие "Приход платежа" обрабатывается уже ПОСЛЕ прихода платежа.
Если добавить в конфиг биллинга
Код:
action.event_contract_UpdateContractPayment=before
и скрипт поставить на событие "Перед действием"
То получается ошибка
Код:
Method getPayment() not found in class'bitel.billing.server.script.bean.event.ActionBeforeEvent'
Засада с двух сторон
Прошу помощи знатоков