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

Запрет занесения платежей предыдущим числом
http://forum.bitel.ru/viewtopic.php?f=19&t=6254
Страница 1 из 1

Автор:  Phricker [ 23 дек 2011, 00:41 ]
Заголовок сообщения:  Запрет занесения платежей предыдущим числом

Собственно вот такое задание выдала бухгалтерия. Чтобы рассчеты с кассирами велись день в день.
В самом биллинге есть запрет на занесение предыдущим числом, и закрытый период.
Первое не то, второе не подходит т.к. могут тариф поменять или т.п.. Закрытый период закрывается последним числом предыдущего месяца.
Собственно возникает проблема написания скрипта который будет выдавать ошибку при заведении платежа не сегодняшним числом.

Родился вот такой скрипт на событие "Приход платежа"
Код:
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'


Засада с двух сторон :|
Прошу помощи знатоков :roll:

Автор:  skyb [ 23 дек 2011, 04:20 ]
Заголовок сообщения:  Re: Запрет занесения платежей предыдущим числом

А чем стандартное средства запрета не устроило?

Автор:  Cromeshnic [ 23 дек 2011, 07:10 ]
Заголовок сообщения:  Re: Запрет занесения платежей предыдущим числом

Цитата:
Прошу помощи знатоков

Отвечает Александр Друзь.
Изображение

payDate = TimeUtils.convertStringToDate(event.getRequest().getParameter("date"))

Автор:  Phricker [ 23 дек 2011, 09:56 ]
Заголовок сообщения:  Re: Запрет занесения платежей предыдущим числом

2 Skyb
А есть такие, которые проверяют дату заведения платежа? Есть будущим числом - но это не то.
2 Cromeshnic
Спасибо, сейчас до работы доберусь - проверю

Автор:  Phricker [ 23 дек 2011, 11:11 ]
Заголовок сообщения:  Re: Запрет занесения платежей предыдущим числом

Пардон мой косяк в написании сообщения. Skyb указал.
Я имел в виду, что в самом биллинге есть функционал запрета занесения БУДУЩИМ числом.
Но не предыдущим.
В общем благодаря Кромешнику родилось вот такое вот
Код:
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);

cid = event.getContractId();
payDate = TimeUtils.convertStringToDate(event.getRequest().getParameter("date"));
 
if( TimeUtils.dateBefore(payDate, dateNow)){
   event.setError( "Запрещены приходы с датой ранее текущей", false );
}

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