BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
СообщениеДобавлено: 02 сен 2013, 22:48 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
есть простенький скрипт:
Код:
import java.util.*;

List dateList = new ArrayList();
Calendar cal = Calendar.getInstance();
cal.roll(Calendar.DAY_OF_MONTH,1);

dateList.add(cal.getTime());
event.setDateList( dateList );

повешен на событие "Получение списка дат для смены статуса договора в Web"
в итоге в ЛК имеем:
Вложение:
1.jpg
1.jpg [ 149.45 КБ | Просмотров: 4398 ]

если например отдать ему пустой список, то напишет: "Смена статуса запрещена системой", если отвязать от события (!и перезагрузить сервер):
то появляется выбор произвольной даты:
Вложение:
2.jpg
2.jpg [ 124.35 КБ | Просмотров: 4398 ]

и приостановка работает:
Вложение:
3.jpg
3.jpg [ 124.16 КБ | Просмотров: 4398 ]


1. что я не так делаю с формированием своего списка дат?
2. почему нельзя отменить действие из ЛК по блокировке договора, а нужно дождаться когда он будет заблокирован, и только тогда активировать его заново?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02 сен 2013, 23:07 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
a) а чего вы хотите получить? какая задача?
б) почему в скрипте используется функция roll(...)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02 сен 2013, 23:12 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
хочу сделать так, чтобы приостановка была только завтрашним числом. и хочу привинтить проверку, была ли приостановка договора в этом месяце (но это пока планы, сейчас хочу разобраться только со сменой статуса по своему списку дат)
функция roll() как раз чтобы прибавить один день относительно текущего дня.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02 сен 2013, 23:14 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
Dog писал(а):
функция roll() как раз чтобы прибавить один день относительно текущего дня.

интересно, а что тогда делает функция add(...) и чем она отличается от roll(...)

подсказка из доки для roll(...) Adds the specified (signed) amount to the specified calendar field without changing larger fields. A negative amount means to roll down.
(очень интересно что вернет roll для 31 декабря ;-) )


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02 сен 2013, 23:19 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
добавляет значение cal.getTime() в dateList ? я просто с явой на вы, могу и ошибаться =)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02 сен 2013, 23:20 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
skn писал(а):
подсказка из доки для roll(...) Adds the specified (signed) amount to the specified calendar field without changing larger fields. A negative amount means to roll down.
(очень интересно что вернет roll для 31 декабря ;-) )

1 января следующего года?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02 сен 2013, 23:21 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
Dog писал(а):
skn писал(а):
подсказка из доки для roll(...) Adds the specified (signed) amount to the specified calendar field without changing larger fields. A negative amount means to roll down.
(очень интересно что вернет roll для 31 декабря ;-) )

1 января следующего года?


удачи...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02 сен 2013, 23:23 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
покрайней мере давно уже работает такой скрипт:
Код:
import java.util.*;

List dateList = new ArrayList();
Calendar cal = Calendar.getInstance();
cal.roll(Calendar.MONTH,1);
cal.set(Calendar.DAY_OF_MONTH,1);
dateList.add(cal.getTime());
event.setDateList( dateList );

на смене тарифа с первого числа следующего месяца, и вроде как никто не помер...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02 сен 2013, 23:34 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
Код:
import java.util.Calendar;

public class a
{
    public static void main( String[] args )
    {
        Calendar cal = Calendar.getInstance();
       
        cal.set( 2013, 11, 31 );
        System.out.println( cal.getTime().toString() );
        cal.roll( Calendar.DAY_OF_MONTH, 1 );
        System.out.println( cal.getTime().toString() );

        System.out.println( "=======================================" );

        cal.set( 2013, 11, 31 );
        System.out.println( cal.getTime().toString() );
        cal.roll( Calendar.MONTH, 1 );
        System.out.println( cal.getTime().toString() );
    }
}


результат (в первой части обратите внимание на месяц и год, а во второй на год)
Код:
Tue Dec 31 23:32:24 YEKT 2013
Sun Dec 01 23:32:24 YEKT 2013
=======================================
Tue Dec 31 23:32:24 YEKT 2013
Thu Jan 31 23:32:24 YEKT 2013


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 сен 2013, 00:24 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
:facepalm:
был не прав, исправился (задания на смену оказывается формируются в группах тарифов):
Код:
import java.util.*;

List dateList = new ArrayList();
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH,1);

dateList.add(cal.getTime());
event.setDateList( dateList );

но сути не меняет, в итоге он все равное не хочет менять статус, по сформированному мною списку.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 сен 2013, 01:59 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
ап!
Код:
09-03/23:56:36  INFO ["http-bio-/0.0.0.0-8080"-exec-7] ScriptEventListener - Caught event: ru.bitel.bgbilling.kernel.event.events.GetContractStatusChangeDatesEvent
09-03/23:56:36  WARN [scrpt-evnt-lstnr-p-4-t-1] ScriptEventListener - You are using old function definition! Use "void onEvent( e, setup, con, conSlave ) {}" instead!
09-03/23:56:36 DEBUG [scrpt-evnt-lstnr-p-4-t-1] ScriptInstance - Eval script Function [id:12; title:Получение списка 2]
09-03/23:56:36  INFO ["http-bio-/0.0.0.0-8080"-exec-7] ScriptEventListener - Process time => 9

в логах вижу вот такое, больше ничего. ругается, но отрабатывает. должно менять или нет?


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

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


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

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


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

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