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

[6.0] Управление статусом договора WEB
http://forum.bitel.ru/viewtopic.php?f=22&t=8405
Страница 1 из 1

Автор:  Dog [ 02 сен 2013, 22:48 ]
Заголовок сообщения:  [6.0] Управление статусом договора WEB

есть простенький скрипт:
Код:
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 КБ | Просмотров: 4415 ]

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

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


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

Автор:  skn [ 02 сен 2013, 23:07 ]
Заголовок сообщения:  Re: [6.0] Управление статусом договора WEB

a) а чего вы хотите получить? какая задача?
б) почему в скрипте используется функция roll(...)

Автор:  Dog [ 02 сен 2013, 23:12 ]
Заголовок сообщения:  Re: [6.0] Управление статусом договора WEB

хочу сделать так, чтобы приостановка была только завтрашним числом. и хочу привинтить проверку, была ли приостановка договора в этом месяце (но это пока планы, сейчас хочу разобраться только со сменой статуса по своему списку дат)
функция roll() как раз чтобы прибавить один день относительно текущего дня.

Автор:  skn [ 02 сен 2013, 23:14 ]
Заголовок сообщения:  Re: [6.0] Управление статусом договора WEB

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 декабря ;-) )

Автор:  Dog [ 02 сен 2013, 23:19 ]
Заголовок сообщения:  Re: [6.0] Управление статусом договора WEB

добавляет значение cal.getTime() в dateList ? я просто с явой на вы, могу и ошибаться =)

Автор:  Dog [ 02 сен 2013, 23:20 ]
Заголовок сообщения:  Re: [6.0] Управление статусом договора WEB

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 января следующего года?

Автор:  skn [ 02 сен 2013, 23:21 ]
Заголовок сообщения:  Re: [6.0] Управление статусом договора WEB

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 января следующего года?


удачи...

Автор:  Dog [ 02 сен 2013, 23:23 ]
Заголовок сообщения:  Re: [6.0] Управление статусом договора WEB

покрайней мере давно уже работает такой скрипт:
Код:
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 );

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

Автор:  skn [ 02 сен 2013, 23:34 ]
Заголовок сообщения:  Re: [6.0] Управление статусом договора WEB

Код:
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

Автор:  Dog [ 03 сен 2013, 00:24 ]
Заголовок сообщения:  Re: [6.0] Управление статусом договора WEB

: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 );

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

Автор:  Dog [ 04 сен 2013, 01:59 ]
Заголовок сообщения:  Re: [6.0] Управление статусом договора WEB

ап!
Код:
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

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

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