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

Лимит на новогодние праздники
http://forum.bitel.ru/viewtopic.php?f=22&t=7582
Страница 1 из 1

Автор:  borin [ 31 дек 2012, 18:41 ]
Заголовок сообщения:  Лимит на новогодние праздники

Всех с наступающим 2013 годом!

Есть абоненты которые не успели заплатить за интернет, и буквально через несколько часов билинг их отключит, и вот хотелось бы подарить им отсрочку платежа на новогодние каникулы, но как сделать массово изменение лимита не знаю, подскажите может кто сталкивался с такой задачей?

Автор:  Phricker [ 31 дек 2012, 19:14 ]
Заголовок сообщения:  Re: Лимит на новогодние праздники

Вас тоже с наступающим

viewtopic.php?f=22&t=7576

Автор:  borin [ 31 дек 2012, 19:34 ]
Заголовок сообщения:  Re: Лимит на новогодние праздники

Спасибо!!! Почти то что нужно, осталось придумать как договора перебрать )

Автор:  Phricker [ 31 дек 2012, 20:07 ]
Заголовок сообщения:  Re: Лимит на новогодние праздники

в глобальных скриптах поведения
Код:
import bitel.billing.server.util.*;
import bitel.billing.server.contract.bean.*;
import bitel.billing.common.*;
import bitel.billing.server.admin.bean.*;
import ru.bitel.common.*;
import java.math.*;
import java.sql.*;
import java.util.*;

public void main( setup, con, conSlave )
{

   String query = "SELECT id FROM contract WHERE gr&(1<<3) > 0";
   PreparedStatement ps = con.prepareStatement( query );
   ResultSet rs = ps.executeQuery();
   while ( rs.next() )
   {
      cid = rs.getInt(1);
      lm = new LimitManager(con);
      summa = new BigDecimal(2000);
      days = 3;
      lm.lowLimit(cid, summa, days);
   }
}

Изменяет лимиты для всех договоров в группе договоров с ID = 3

Автор:  Phricker [ 31 дек 2012, 20:13 ]
Заголовок сообщения:  Re: Лимит на новогодние праздники

Можно и как то так
Код:
import bitel.billing.server.util.*;
import bitel.billing.server.contract.bean.*;
import bitel.billing.common.*;
import bitel.billing.server.admin.bean.*;
import ru.bitel.common.*;
import java.math.*;
import java.sql.*;
import java.util.*;

public void main( setup, con, conSlave )
{

   String query = "SELECT id FROM contract WHERE gr&(1<<3) > 0";
   PreparedStatement ps = con.prepareStatement( query );
   ResultSet rs = ps.executeQuery();
   while ( rs.next() )
   {
      cid = rs.getInt(1);
      lm = new LimitManager(con);
      summa = new BigDecimal(-2000);
      days = 3;
      lm.updateContractLimit(User.USER_SERVER, summa, cid, "Временное изменение лимита на новогодние праздники", "3");
   }
}

Но в этом случае не создается автоматом задача восстановления лимита. Может она и есть где в API но я что то не найду так сразу :)

Автор:  borin [ 31 дек 2012, 21:10 ]
Заголовок сообщения:  Re: Лимит на новогодние праздники

Спасибо огромное, получилось, теперь все будут включены, воспользовался первым способом, немного модернизировав запрос.
Код:
SELECT `id` FROM `contract` WHERE `gr` = 1 AND `status` = 0

Автор:  snark [ 08 янв 2013, 09:26 ]
Заголовок сообщения:  Re: Лимит на новогодние праздники

borin писал(а):
воспользовался первым способом, немного модернизировав запрос.
Код:
SELECT `id` FROM `contract` WHERE `gr` = 1 AND `status` = 0
borin писал(а):
Код:
WHERE `gr` = 1


Группы надо искать так, как было показано выше, т.е. так:
Код:
SELECT ... FROM contract WHERE gr&(1<<цифровой_id_искомой_группы) > 0

Иначе запросто найдете не то, что ищите.

Автор:  dimOn [ 08 янв 2013, 12:08 ]
Заголовок сообщения:  Re: Лимит на новогодние праздники

Ну если группа всегда одна то норм будет и так

Автор:  zavndw [ 19 фев 2014, 10:56 ]
Заголовок сообщения:  Re: Лимит на новогодние праздники

как переделать на 6.0, копипаст не вкатил и лог
Код:
ScriptInstance - Invoke method limit : main

Автор:  Phricker [ 19 фев 2014, 11:03 ]
Заголовок сообщения:  Re: Лимит на новогодние праздники

Так новый год закончился же :D

Динкод.
Я правда нифига не помню когда и зачем я его писал.
Код:
package ru.ellcom.test;

import java.math.BigDecimal;
import java.sql.*;
import java.util.*;

import ru.bitel.bgbilling.kernel.module.common.bean.User;
import ru.bitel.bgbilling.kernel.script.server.dev.GlobalScriptBase;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;
import bitel.billing.common.TimeUtils;
import bitel.billing.server.contract.bean.Contract;
import bitel.billing.server.contract.bean.ContractManager;
import bitel.billing.server.contract.bean.LimitManager;

public class changeLimit
   extends GlobalScriptBase
{
   @Override
   public void execute( Setup setup, ConnectionSet connectionSet )
      throws Exception
   {
      print("Start");
      Connection con  = connectionSet.getConnection();
      ContractManager cm = new ContractManager(con);
      LimitManager lm = new LimitManager(con);
      
      
      long timeStart = System.currentTimeMillis();
      String query =    " SELECT c.id FROM contract AS c " +
                  " WHERE c.title LIKE '301%' AND c.closesumma=0 "; 
      java.sql.PreparedStatement ps = con.prepareStatement( query );
      ResultSet rs = ps.executeQuery();
      while ( rs.next() )
      {
         int cid = rs.getInt(1);
         Contract contract = cm.getContractById(cid);
         if(contract.getFc() == 1)
         {
            print(cid);
            BigDecimal limit = new BigDecimal(-50000);
            lm.updateContractLimit(User.USER_SERVER, limit, cid, "Лимит установленный для кредитовых телефонов", "");
         }
         if(contract.getFc() == 0)
         {
            print(cid);
            BigDecimal limit = new BigDecimal(-10000);
            lm.updateContractLimit(User.USER_SERVER, limit, cid, "Лимит установленный для кредитовых телефонов", "");
         }
      }
      rs.close();
      ps.close();
      long timeEnd = System.currentTimeMillis();
      print( "Process time: " + (timeEnd - timeStart)/1000 + " s." );
            
   }
}

Автор:  zavndw [ 19 фев 2014, 11:13 ]
Заголовок сообщения:  Re: Лимит на новогодние праздники

спс осталось понять что куда:)

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