Переинициализация тарифа в пределах сессии - История изменений http://wiki.bitel.ru/index.php?title=%D0%9F%D0%B5%D1%80%D0%B5%D0%B8%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D1%82%D0%B0%D1%80%D0%B8%D1%84%D0%B0_%D0%B2_%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B0%D1%85_%D1%81%D0%B5%D1%81%D1%81%D0%B8%D0%B8&action=history История изменений этой страницы в вики ru MediaWiki 1.15.1 Fri, 29 Mar 2024 08:52:47 GMT Aardvark:&#32;Новая: В данном случае используется для обновления параметров в пределах сессии после смены тарифа в скрипт... http://wiki.bitel.ru/index.php?title=%D0%9F%D0%B5%D1%80%D0%B5%D0%B8%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D1%82%D0%B0%D1%80%D0%B8%D1%84%D0%B0_%D0%B2_%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B0%D1%85_%D1%81%D0%B5%D1%81%D1%81%D0%B8%D0%B8&diff=1080&oldid=prev <p>Новая: В данном случае используется для обновления параметров в пределах сессии после смены тарифа в скрипт...</p> <p><b>Новая страница</b></p><div>В данном случае используется для обновления параметров в пределах сессии после смены тарифа в скрипте. &lt;br&gt;<br /> В качестве стартового события используется запрос учетного периода модулем Dial-UP.<br /> &lt;source lang=Java&gt;<br /> import bitel.billing.server.contract.bean.*;<br /> import bitel.billing.server.tariff.bean.*;<br /> import bitel.billing.server.script.event.*;<br /> import bitel.billing.common.*;<br /> import java.util.*;<br /> import java.math.*;<br /> import java.lang.*;<br /> <br /> cm = new ContractManager( con );<br /> ctm = new ContractTariffManager( con );<br /> cid = event.getContractID();<br /> chm = new ChargeManager( con );<br /> date = (Calendar)event.getRequestDate();<br /> contract = event.getContract();<br /> <br /> event.setProcessed( true ); // ипользуется для корректной обработки события<br /> <br /> //подготавливаем вчера<br /> yesterday = (Calendar)date.clone();<br /> yesterday.add( Calendar.DAY_OF_YEAR, -1 );<br /> //получаем ID активного тарифного плана и его позицию<br /> tpid = ctm.getContractTariff( cid, date ).getTariffPlanID();<br /> tpos = ctm.getContractTariff( cid, date ).getPos();<br /> <br /> //подгатавливаем новые записи о тарифе на договоре...<br /> <br /> tar = new ContractTariff();<br /> tar.setID(ctm.getContractTariff( cid, date ).getID());<br /> tar.setContractID(cid);<br /> tar.setPos(ctm.getContractTariff( cid, date ).getPos());<br /> tar.setTariffPlanID(tpid);<br /> tar.setDate1 (ctm.getContractTariff( cid, date ).getDate1());<br /> //... закрываем его вчерашним числом...<br /> tar.setDate2 (yesterday);<br /> tar.setComment(&quot;Сюда забиваем коммент&quot;);<br /> //... и обновляем на договоре<br /> ctm.updateContractTariff(tar);<br /> <br /> //подготавливаем новый тариф<br /> tar = new ContractTariff();<br /> tar.setContractID( cid );<br /> // открываем его сегодняшним числом...<br /> tar.setDate1( date );<br /> tar.setPos(tpos + 1 );<br /> //вместо 1 ставим нужный нам номер нового тарифа<br /> tar.setTariffPlanID(1);<br /> tar.setComment(&quot;сюда тоже можем забить коммент&quot;);<br /> // обновляем тариф на договоре<br /> ctm.updateContractTariff(tar);<br /> <br /> // здесь собственно и происходит обновление атрибутов тарифа на новый, <br /> // вместо &lt;mid&gt; подставляем номер модуля dialup<br /> contract.setTts( new ContractManager( con ).getRealtimeTariffTreeSet( contract.getID(), new GregorianCalendar(), &quot;dialup&quot;, &lt;mid&gt;, true ) );<br /> <br /> // Дальше можно добавить любой соус по желанию. <br /> &lt;/source&gt;<br /> В общем случае написан для 4.5, в 4.6 может давать deprecated сообщение про использование дат через Calendar</div> Wed, 23 Sep 2009 12:11:02 GMT Aardvark http://wiki.bitel.ru/index.php/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:%D0%9F%D0%B5%D1%80%D0%B5%D0%B8%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D1%82%D0%B0%D1%80%D0%B8%D1%84%D0%B0_%D0%B2_%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B0%D1%85_%D1%81%D0%B5%D1%81%D1%81%D0%B8%D0%B8