Управление статусом договора по состоянию баланса - История изменений http://wiki.bitel.ru/index.php?title=%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%D0%BE%D0%BC_%D0%B4%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B0_%D0%BF%D0%BE_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8E_%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B0&action=history История изменений этой страницы в вики ru MediaWiki 1.15.1 Thu, 28 Mar 2024 20:12:45 GMT Corwin в 17:02, 23 октября 2009 http://wiki.bitel.ru/index.php?title=%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%D0%BE%D0%BC_%D0%B4%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B0_%D0%BF%D0%BE_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8E_%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B0&diff=1123&oldid=prev <p></p> <table style="background-color: white; color:black;"> <col class='diff-marker' /> <col class='diff-content' /> <col class='diff-marker' /> <col class='diff-content' /> <tr valign='top'> <td colspan='2' style="background-color: white; color:black;">← Предыдущая</td> <td colspan='2' style="background-color: white; color:black;">Версия 17:02, 23 октября 2009</td> </tr> <tr><td colspan="2" class="diff-lineno">Строка 207:</td> <td colspan="2" class="diff-lineno">Строка 207:</td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.tariff.*;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.tariff.*;</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.util.*;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.util.*;</div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">import bitel.billing.server.npay.*;</ins></div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.npay.bean.*;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.npay.bean.*;</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.task.bean.RunTaskData;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.task.bean.RunTaskData;</div></td></tr> <tr><td colspan="2" class="diff-lineno">Строка 363:</td> <td colspan="2" class="diff-lineno">Строка 364:</td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> // запускаем пересчет абонплат для договора cid</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> // запускаем пересчет абонплат для договора cid</div></td></tr> <tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> taskData = </del>new <del class="diffchange diffchange-inline">RunTaskData</del>(new Recalculator(NPAY_MID, db, &quot;&quot;, 0, &quot;&quot;+cid)<del class="diffchange diffchange-inline">);</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </ins>new <ins class="diffchange diffchange-inline">RunTaskDataManager(con).addTask</ins>(new Recalculator(NPAY_MID, db, &quot;&quot;, 0, &quot;&quot;+cid));</div></td></tr> <tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">&nbsp; &nbsp; &nbsp; &nbsp; rtdm = new RunTaskDataManager(con);</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr> <tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> rtdm.addTask(taskData</del>);</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> }</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> }</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>}</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>}</div></td></tr> <!-- diff generator: internal 2024-03-28 20:12:45 --> </table> Fri, 23 Oct 2009 17:02:57 GMT Corwin 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%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%D0%BE%D0%BC_%D0%B4%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B0_%D0%BF%D0%BE_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8E_%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B0 Corwin в 14:15, 23 октября 2009 http://wiki.bitel.ru/index.php?title=%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%D0%BE%D0%BC_%D0%B4%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B0_%D0%BF%D0%BE_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8E_%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B0&diff=1122&oldid=prev <p></p> <table style="background-color: white; color:black;"> <col class='diff-marker' /> <col class='diff-content' /> <col class='diff-marker' /> <col class='diff-content' /> <tr valign='top'> <td colspan='2' style="background-color: white; color:black;">← Предыдущая</td> <td colspan='2' style="background-color: white; color:black;">Версия 14:15, 23 октября 2009</td> </tr> <tr><td colspan="2" class="diff-lineno">Строка 17:</td> <td colspan="2" class="diff-lineno">Строка 17:</td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.tariff.*;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.tariff.*;</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.util.*;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.util.*;</div></td></tr> <tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>import bitel.billing.server.npay.*;</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>import bitel.billing.server.npay<ins class="diffchange diffchange-inline">.bean</ins>.*;</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.task.bean.RunTaskData;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.task.bean.RunTaskData;</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.task.bean.RunTaskDataManager;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.task.bean.RunTaskDataManager;</div></td></tr> <tr><td colspan="2" class="diff-lineno">Строка 97:</td> <td colspan="2" class="diff-lineno">Строка 97:</td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> // получаем текущий баланс (с учетом данного платежа)</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> // получаем текущий баланс (с учетом данного платежа)</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> balance = bu.getBalance(tu.convertCalendarToDate(event.getGenerateTime()), cid);</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> balance = bu.getBalance(tu.convertCalendarToDate(event.getGenerateTime()), cid);</div></td></tr> <tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> limit = cn.<del class="diffchange diffchange-inline">getLimit</del>();</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> limit = cn.<ins class="diffchange diffchange-inline">getBalanceLimit</ins>();</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> fbm = cn.getFakeBalanceMode();</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> fbm = cn.getFakeBalanceMode();</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> bm = cn.getBalanceMode();</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> bm = cn.getBalanceMode();</div></td></tr> <tr><td colspan="2" class="diff-lineno">Строка 207:</td> <td colspan="2" class="diff-lineno">Строка 207:</td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.tariff.*;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.tariff.*;</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.util.*;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.util.*;</div></td></tr> <tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>import bitel.billing.server.npay.*;</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>import bitel.billing.server.npay<ins class="diffchange diffchange-inline">.bean</ins>.*;</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.task.bean.RunTaskData;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.task.bean.RunTaskData;</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.task.bean.RunTaskDataManager;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.task.bean.RunTaskDataManager;</div></td></tr> <tr><td colspan="2" class="diff-lineno">Строка 262:</td> <td colspan="2" class="diff-lineno">Строка 262:</td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> balance = bu.getBalance(tu.convertCalendarToDate(event.getGenerateTime()), cid);</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> balance = bu.getBalance(tu.convertCalendarToDate(event.getGenerateTime()), cid);</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> </div></td></tr> <tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> limit = cn.<del class="diffchange diffchange-inline">getLimit</del>();</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> limit = cn.<ins class="diffchange diffchange-inline">getBalanceLimit</ins>();</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> fbm = cn.getFakeBalanceMode();</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> fbm = cn.getFakeBalanceMode();</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> bm = cn.getBalanceMode();</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> bm = cn.getBalanceMode();</div></td></tr> <!-- diff generator: internal 2024-03-28 20:12:45 --> </table> Fri, 23 Oct 2009 14:15:55 GMT Corwin 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%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%D0%BE%D0%BC_%D0%B4%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B0_%D0%BF%D0%BE_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8E_%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B0 Corwin в 13:28, 23 октября 2009 http://wiki.bitel.ru/index.php?title=%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%D0%BE%D0%BC_%D0%B4%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B0_%D0%BF%D0%BE_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8E_%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B0&diff=1121&oldid=prev <p></p> <table style="background-color: white; color:black;"> <col class='diff-marker' /> <col class='diff-content' /> <col class='diff-marker' /> <col class='diff-content' /> <tr valign='top'> <td colspan='2' style="background-color: white; color:black;">← Предыдущая</td> <td colspan='2' style="background-color: white; color:black;">Версия 13:28, 23 октября 2009</td> </tr> <tr><td colspan="2" class="diff-lineno">Строка 10:</td> <td colspan="2" class="diff-lineno">Строка 10:</td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>1.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>1.</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>&lt;source lang=&quot;java&quot;&gt;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>&lt;source lang=&quot;java&quot;&gt;</div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">import bitel.billing.common.TimeUtils.*;</ins></div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.contract.bean.*;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.contract.bean.*;</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.tariff.bean.*;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.tariff.bean.*;</div></td></tr> <tr><td colspan="2" class="diff-lineno">Строка 199:</td> <td colspan="2" class="diff-lineno">Строка 200:</td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>2.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>2.</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>&lt;source lang=&quot;java&quot;&gt;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>&lt;source lang=&quot;java&quot;&gt;</div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">import bitel.billing.common.TimeUtils.*;</ins></div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.contract.bean.*;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.contract.bean.*;</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.tariff.bean.*;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>import bitel.billing.server.tariff.bean.*;</div></td></tr> <!-- diff generator: internal 2024-03-28 20:12:45 --> </table> Fri, 23 Oct 2009 13:28:37 GMT Corwin 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%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%D0%BE%D0%BC_%D0%B4%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B0_%D0%BF%D0%BE_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8E_%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B0 Corwin в 13:21, 23 октября 2009 http://wiki.bitel.ru/index.php?title=%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%D0%BE%D0%BC_%D0%B4%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B0_%D0%BF%D0%BE_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8E_%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B0&diff=1120&oldid=prev <p></p> <table style="background-color: white; color:black;"> <col class='diff-marker' /> <col class='diff-content' /> <col class='diff-marker' /> <col class='diff-content' /> <tr valign='top'> <td colspan='2' style="background-color: white; color:black;">← Предыдущая</td> <td colspan='2' style="background-color: white; color:black;">Версия 13:21, 23 октября 2009</td> </tr> <tr><td colspan="2" class="diff-lineno">Строка 89:</td> <td colspan="2" class="diff-lineno">Строка 89:</td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> msu = new ModuleAndServiceUtils( con );</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> msu = new ModuleAndServiceUtils( con );</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> bu&nbsp; = new BalanceUtils( con );</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> bu&nbsp; = new BalanceUtils( con );</div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">&nbsp; &nbsp; &nbsp; &nbsp; tu&nbsp; = new TimeUtils();</ins></div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> tpm = new TariffPlanManager(con); </div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> tpm = new TariffPlanManager(con); </div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr> <tr><td colspan="2" class="diff-lineno">Строка 94:</td> <td colspan="2" class="diff-lineno">Строка 95:</td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> // получаем текущий баланс (с учетом данного платежа)</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> // получаем текущий баланс (с учетом данного платежа)</div></td></tr> <tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> balance = bu.getBalance(event.getGenerateTime(), cid);</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> balance = bu.getBalance<ins class="diffchange diffchange-inline">(tu.convertCalendarToDate</ins>(event.getGenerateTime(<ins class="diffchange diffchange-inline">)</ins>), cid);</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> limit = cn.getLimit();</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> limit = cn.getLimit();</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> fbm = cn.getFakeBalanceMode();</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> fbm = cn.getFakeBalanceMode();</div></td></tr> <tr><td colspan="2" class="diff-lineno">Строка 252:</td> <td colspan="2" class="diff-lineno">Строка 253:</td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> tts = cman.getRealtimeTariffTreeSet( cid, df, &quot;npay&quot;, NPAY_MID, true );</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> tts = cman.getRealtimeTariffTreeSet( cid, df, &quot;npay&quot;, NPAY_MID, true );</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> msu = new ModuleAndServiceUtils( con );</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> msu = new ModuleAndServiceUtils( con );</div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">&nbsp; &nbsp; &nbsp; &nbsp; tu&nbsp; = new TimeUtils();</ins></div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> bu&nbsp; = new BalanceUtils( con );</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> bu&nbsp; = new BalanceUtils( con );</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> // получаем текущий баланс (с учетом данного платежа)</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> // получаем текущий баланс (с учетом данного платежа)</div></td></tr> <tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> balance = bu.getBalance(event.getGenerateTime(), cid);</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> balance = bu.getBalance<ins class="diffchange diffchange-inline">(tu.convertCalendarToDate</ins>(event.getGenerateTime(<ins class="diffchange diffchange-inline">)</ins>), cid);</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> </div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> limit = cn.getLimit();</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> limit = cn.getLimit();</div></td></tr> <tr><td colspan="2" class="diff-lineno">Строка 292:</td> <td colspan="2" class="diff-lineno">Строка 294:</td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>начало</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>начало</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>*/</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>*/</div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">&nbsp; &nbsp; &nbsp; &nbsp; som = new ServiceObjectManager(con,NPAY_MID);</ins></div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; serviceList&nbsp; = som.getServiceObjectList( cid, -1 , -1, -1); &nbsp;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; serviceList&nbsp; = som.getServiceObjectList( cid, -1 , -1, -1); &nbsp;</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr> <tr><td colspan="2" class="diff-lineno">Строка 342:</td> <td colspan="2" class="diff-lineno">Строка 345:</td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> if (StatusContract.getDate1().compareTo(df) &lt; 0) {</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> if (StatusContract.getDate1().compareTo(df) &lt; 0) {</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> StatusContract.setDate2(dt);</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> StatusContract.setDate2(dt);</div></td></tr> <tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> cm.<del class="diffchange diffchange-inline">updateStatus</del>(StatusContract);</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> cm.<ins class="diffchange diffchange-inline">setContractStatus</ins>(StatusContract);</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> } else {</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> } else {</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> // или удаляем если дата начала больше даты окончания &nbsp;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> // или удаляем если дата начала больше даты окончания &nbsp;</div></td></tr> <tr><td colspan="2" class="diff-lineno">Строка 352:</td> <td colspan="2" class="diff-lineno">Строка 355:</td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> ncs.setDate1(df);</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> ncs.setDate1(df);</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> ncs.setStatus(0);</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> ncs.setStatus(0);</div></td></tr> <tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> cm.changeStatus(ncs);</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> cm.changeStatus(ncs<ins class="diffchange diffchange-inline">, 1, true</ins>);</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> StatusContract = cm.getStatus(cid, df);</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> StatusContract = cm.getStatus(cid, df);</div></td></tr> <!-- diff generator: internal 2024-03-28 20:12:45 --> </table> Fri, 23 Oct 2009 13:21:33 GMT Corwin 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%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%D0%BE%D0%BC_%D0%B4%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B0_%D0%BF%D0%BE_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8E_%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B0 Corwin в 12:45, 23 октября 2009 http://wiki.bitel.ru/index.php?title=%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%D0%BE%D0%BC_%D0%B4%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B0_%D0%BF%D0%BE_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8E_%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B0&diff=1119&oldid=prev <p></p> <table style="background-color: white; color:black;"> <col class='diff-marker' /> <col class='diff-content' /> <col class='diff-marker' /> <col class='diff-content' /> <tr valign='top'> <td colspan='2' style="background-color: white; color:black;">← Предыдущая</td> <td colspan='2' style="background-color: white; color:black;">Версия 12:45, 23 октября 2009</td> </tr> <tr><td colspan="2" class="diff-lineno">Строка 129:</td> <td colspan="2" class="diff-lineno">Строка 129:</td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>начало</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>начало</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>*/</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>*/</div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">&nbsp; &nbsp; &nbsp; &nbsp; som = new ServiceObjectManager(con,NPAY_MID);</ins></div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; serviceList&nbsp; = som.getServiceObjectList( cid, -1 , -1, -1); &nbsp;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; serviceList&nbsp; = som.getServiceObjectList( cid, -1 , -1, -1); &nbsp;</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr> <tr><td colspan="2" class="diff-lineno">Строка 178:</td> <td colspan="2" class="diff-lineno">Строка 179:</td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> if (StatusContract.getDate1().compareTo(df) &lt; 0) {</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> if (StatusContract.getDate1().compareTo(df) &lt; 0) {</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> StatusContract.setDate2(dt);</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> StatusContract.setDate2(dt);</div></td></tr> <tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> cstm.<del class="diffchange diffchange-inline">updateStatus</del>(StatusContract);</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> cstm.<ins class="diffchange diffchange-inline">setContractStatus</ins>(StatusContract);</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> } else {</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> } else {</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> // или удаляем если дата начала больше даты окончания &nbsp;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> // или удаляем если дата начала больше даты окончания &nbsp;</div></td></tr> <tr><td colspan="2" class="diff-lineno">Строка 188:</td> <td colspan="2" class="diff-lineno">Строка 189:</td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> ncs.setDate1(df);</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> ncs.setDate1(df);</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> ncs.setStatus(4);</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> ncs.setStatus(4);</div></td></tr> <tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> cstm.changeStatus(ncs);</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> cstm.changeStatus(ncs<ins class="diffchange diffchange-inline">, 1, true</ins>); <ins class="diffchange diffchange-inline">// 1 - код пользователя, от лица которого производится изменение состояния</ins></div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> StatusContract = cstm.getStatus(cid, df);</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> StatusContract = cstm.getStatus(cid, df);</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>// print(&quot;cm.getStatus(&quot;+df+&quot;):&quot;+StatusContract.getStatus() );</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>// print(&quot;cm.getStatus(&quot;+df+&quot;):&quot;+StatusContract.getStatus() );</div></td></tr> <!-- diff generator: internal 2024-03-28 20:12:45 --> </table> Fri, 23 Oct 2009 12:45:07 GMT Corwin 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%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%D0%BE%D0%BC_%D0%B4%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B0_%D0%BF%D0%BE_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8E_%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B0 Corban в 06:46, 5 октября 2009 http://wiki.bitel.ru/index.php?title=%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%D0%BE%D0%BC_%D0%B4%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B0_%D0%BF%D0%BE_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8E_%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B0&diff=1094&oldid=prev <p></p> <table style="background-color: white; color:black;"> <col class='diff-marker' /> <col class='diff-content' /> <col class='diff-marker' /> <col class='diff-content' /> <tr valign='top'> <td colspan='2' style="background-color: white; color:black;">← Предыдущая</td> <td colspan='2' style="background-color: white; color:black;">Версия 06:46, 5 октября 2009</td> </tr> <tr><td colspan="2" class="diff-lineno">Строка 105:</td> <td colspan="2" class="diff-lineno">Строка 105:</td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> totalCost = 0d;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> totalCost = 0d;</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">/*</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">Для версии 4.5</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">начало</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">*/</ins></div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> // получаем список услуг</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> // получаем список услуг</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> serviceList&nbsp; = csm.getContractServiceList( cid, df );</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> serviceList&nbsp; = csm.getContractServiceList( cid, df );</div></td></tr> <tr><td colspan="2" class="diff-lineno">Строка 116:</td> <td colspan="2" class="diff-lineno">Строка 120:</td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>&nbsp; // Если услуга относится к модулю &quot;NPay&quot;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>&nbsp; // Если услуга относится к модулю &quot;NPay&quot;</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> if( mid == NPAY_MID ) {</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> if( mid == NPAY_MID ) {</div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">/*</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">конец</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">*/</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">/*</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">То же, но для версии 4.6</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">начало</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">*/</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">&nbsp; &nbsp; &nbsp; &nbsp; serviceList&nbsp; = som.getServiceObjectList( cid, -1 , -1, -1); </ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> for( Iterator it = serviceList.iterator(); it.hasNext(); ) {</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> service = (ServiceObject)it.next();</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> if ( TimeUtils.dateInRange( TimeUtils.convertCalendarToDate( egt ), service.getDate1(), service.getDate2() ) ) {</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> sid = service.getServiceId();</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">/*</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">конец</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">*/</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> // считаем сумму абонплаты</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> // считаем сумму абонплаты</div></td></tr> <tr><td colspan="2" class="diff-lineno">Строка 242:</td> <td colspan="2" class="diff-lineno">Строка 267:</td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> totalCost = 0d;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> totalCost = 0d;</div></td></tr> <tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>&#160;</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">/*</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">Для версии 4.5</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">начало</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">*/</ins></div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> // получаем список услуг</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> // получаем список услуг</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> serviceList&nbsp; = csm.getContractServiceList( cid, df );</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> serviceList&nbsp; = csm.getContractServiceList( cid, df );</div></td></tr> <tr><td colspan="2" class="diff-lineno">Строка 254:</td> <td colspan="2" class="diff-lineno">Строка 282:</td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>&nbsp; // Если услуга относится к модулю &quot;NPay&quot;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>&nbsp; // Если услуга относится к модулю &quot;NPay&quot;</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> if( mid == NPAY_MID ) {</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> if( mid == NPAY_MID ) {</div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">/*</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">конец</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">*/</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">/*</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">То же, но для версии 4.6</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">начало</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">*/</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">&nbsp; &nbsp; &nbsp; &nbsp; serviceList&nbsp; = som.getServiceObjectList( cid, -1 , -1, -1); </ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> for( Iterator it = serviceList.iterator(); it.hasNext(); ) {</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> service = (ServiceObject)it.next();</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> if ( TimeUtils.dateInRange( TimeUtils.convertCalendarToDate( egt ), service.getDate1(), service.getDate2() ) ) {</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"> sid = service.getServiceId();</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">/*</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">конец</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">*/</ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> // считаем сумму абонплаты</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div> // считаем сумму абонплаты</div></td></tr> <tr><td colspan="2" class="diff-lineno">Строка 314:</td> <td colspan="2" class="diff-lineno">Строка 364:</td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>&lt;/source&gt;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>&lt;/source&gt;</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">Обратите внимание на изменения по работе с услугами модуля NPAY в версии 4.6</ins></div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Если есть вопросы по скриптам, пишите в [http://www.bgbilling.ru/forum/privmsg.php?mode=post&amp;u=1576 личку]</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Если есть вопросы по скриптам, пишите в [http://www.bgbilling.ru/forum/privmsg.php?mode=post&amp;u=1576 личку]</div></td></tr> <!-- diff generator: internal 2024-03-28 20:12:45 --> </table> Mon, 05 Oct 2009 06:46:09 GMT Corban 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%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%D0%BE%D0%BC_%D0%B4%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B0_%D0%BF%D0%BE_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8E_%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B0 Corban в 13:51, 26 мая 2009 http://wiki.bitel.ru/index.php?title=%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%D0%BE%D0%BC_%D0%B4%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B0_%D0%BF%D0%BE_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8E_%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B0&diff=981&oldid=prev <p></p> <table style="background-color: white; color:black;"> <col class='diff-marker' /> <col class='diff-content' /> <col class='diff-marker' /> <col class='diff-content' /> <tr valign='top'> <td colspan='2' style="background-color: white; color:black;">← Предыдущая</td> <td colspan='2' style="background-color: white; color:black;">Версия 13:51, 26 мая 2009</td> </tr> <tr><td colspan="2" class="diff-lineno">Строка 313:</td> <td colspan="2" class="diff-lineno">Строка 313:</td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>}</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>}</div></td></tr> <tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>&lt;/source&gt;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>&lt;/source&gt;</div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr> <tr><td colspan="2">&nbsp;</td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">Если есть вопросы по скриптам, пишите в [http://www.bgbilling.ru/forum/privmsg.php?mode=post&amp;u=1576 личку]</ins></div></td></tr> <!-- diff generator: internal 2024-03-28 20:12:45 --> </table> Tue, 26 May 2009 13:51:38 GMT Corban 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%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%D0%BE%D0%BC_%D0%B4%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B0_%D0%BF%D0%BE_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8E_%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B0 Corban:&#32;Новая: Предлагаю вариант управления начислением абонплаты в зависимости от баланса. Всего используется дв... http://wiki.bitel.ru/index.php?title=%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%D0%BE%D0%BC_%D0%B4%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B0_%D0%BF%D0%BE_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8E_%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B0&diff=980&oldid=prev <p>Новая: Предлагаю вариант управления начислением абонплаты в зависимости от баланса. Всего используется дв...</p> <p><b>Новая страница</b></p><div>Предлагаю вариант управления начислением абонплаты в зависимости от баланса.<br /> <br /> Всего используется два скрипта:<br /> <br /> 1. При наступлении события по таймеру (например, каждое первое число в 00:00) необходимо определить сумму необходимую для списания абонплаты и сравнить ее с балансом договора. Если средств недостаточно, то изменить статус договора на &quot;Приостановлен&quot; (в этом состоянии абонплата не начисляется)<br /> <br /> 2. При наступлении события &quot;Поступление платежа&quot;, если договор в состоянии &quot;Приостановлен&quot;, то проверяется также как и в первом случае достаточность средств. Если денег хватает, то статус изменяется на &quot;Активен&quot; и производится начисление абонплат.<br /> <br /> <br /> 1.<br /> &lt;source lang=&quot;java&quot;&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.server.service.bean.*;<br /> import bitel.billing.server.tariff.*;<br /> import bitel.billing.server.util.*;<br /> import bitel.billing.server.npay.*;<br /> import bitel.billing.server.task.bean.RunTaskData;<br /> import bitel.billing.server.task.bean.RunTaskDataManager;<br /> import java.util.*;<br /> <br /> // Если это таймер на начало месяца, в п.1, иначе выход<br /> // соответственно не забываем добавить параметр запуска в задачу &quot;flag=1&quot; <br /> // (вместо 1 подставляем любое число, но оно же должно быть в следующем условии =)<br /> if (event.getFlag() != 1 ) {<br /> return;<br /> <br /> }<br /> <br /> // номер модуля NPAY<br /> NPAY_MID = 4;<br /> <br /> cid = event.getContractID();<br /> cstm = new ContractStatusManager( con );<br /> <br /> <br /> // округляем день (на 00:00:00) события<br /> egt = event.getGenerateTime();<br /> df = egt.clone();<br /> df.clear();<br /> df.set(egt.get(Calendar.YEAR), egt.get(Calendar.MONTH), egt.get(Calendar.DAY_OF_MONTH));<br /> <br /> // получаем день, предыдущий событию<br /> dt = df.clone();<br /> dt.roll(Calendar.DAY_OF_YEAR, -1);<br /> <br /> db = df.clone();<br /> db.roll(Calendar.MONTH, -2);<br /> <br /> <br /> //print( df );<br /> //print( dt );<br /> //print( db );<br /> <br /> <br /> // определяем текущий статус договора<br /> <br /> StatusContractList = cstm.getStatusList(cid, event.getGenerateTime());<br /> if (StatusContractList.size() == 0) <br /> return;<br /> <br /> StatusContract = StatusContractList.get(0);<br /> print(&quot;StatusContract.getStatus():&quot;+StatusContract.getStatus() );<br /> <br /> contract = new ContractManager(con).getContractByID(cid);<br /> contract_groups = contract.getGroups();<br /> <br /> <br /> // выбираем только нужную группу договоров (нам нужна только 1 группа)<br /> if ((contract_groups &amp; (1L)) &gt; 0) {<br /> internet = 1;<br /> } else {<br /> internet = 0;<br /> }<br /> <br /> <br /> if( StatusContract.getStatus() == 0 &amp;&amp; internet == 1)<br /> {<br /> // 1. определить нужно ли приостанавливать договор (если есть абонплата и баланс меньше лимита)<br /> // 1.1 определить баланс и лимит: если баланс &gt; лимита - выход, если меньше, то см. п.1.2<br /> <br /> ctm = new ContractTariffManager( con );<br /> csm = new ContractServiceManager( con );<br /> cu = new ContractUtils( con );<br /> cm = new ContractManager( con );<br /> cn = cm.getContractByID( cid );<br /> tts = cm.getRealtimeTariffTreeSet( cid, df, &quot;npay&quot;, NPAY_MID, true );<br /> msu = new ModuleAndServiceUtils( con );<br /> bu = new BalanceUtils( con );<br /> tpm = new TariffPlanManager(con); <br /> <br /> <br /> <br /> // получаем текущий баланс (с учетом данного платежа)<br /> balance = bu.getBalance(event.getGenerateTime(), cid);<br /> limit = cn.getLimit();<br /> fbm = cn.getFakeBalanceMode();<br /> bm = cn.getBalanceMode();<br /> print ( &quot;balance = &quot;+balance );<br /> print ( &quot;limit = &quot;+limit );<br /> print ( &quot;fbm = &quot;+fbm+&quot;; bm = &quot;+bm );<br /> <br /> // 1.2 получить наработку для всех услуг типа &quot;Абонплата&quot; и если она больше 0, то в п.2 иначе выход<br /> totalCost = 0d;<br /> <br /> // получаем список услуг<br /> serviceList = csm.getContractServiceList( cid, df );<br /> <br /> for( Iterator it = serviceList.iterator(); it.hasNext(); ) {<br /> service = (ContractService)it.next();<br /> sid = service.getServiceID();<br /> mid = msu.getService(sid).getModuleId();<br /> // print ( &quot;Service.title &quot;+msu.getService(sid).getTitle() );<br /> // print ( &quot;Module.title &quot;+msu.getModule(mid).getTitle() );<br /> // Если услуга относится к модулю &quot;NPay&quot;<br /> if( mid == NPAY_MID ) {<br /> <br /> // считаем сумму абонплаты<br /> // перебор тарифов в порядке позиций сначала персональных, потом глобальных<br /> for( TariffModuleTree tree : tts.getTreeList( df ) ) {<br /> req = new TariffRequest();<br /> req.setRequestParam( &quot;action&quot;, &quot;calculate&quot; );<br /> req.setRequestParam( &quot;sid&quot;, sid );<br /> <br /> // считаем абонплату пропорционально количеству дней до конца месяца(действует для тарифов &quot;Пропорционально периоду&quot;)<br /> <br /> // всего дней в месяце<br /> req.setRequestParam( &quot;month_days&quot;, df.getActualMaximum(Calendar.DAY_OF_MONTH) ); <br /> // всего дней до конца месяца<br /> req.setRequestParam( &quot;period_days&quot;, df.getActualMaximum(Calendar.DAY_OF_MONTH) - df.get(Calendar.DAY_OF_MONTH) + 1 ); <br /> <br /> tree.processRequest( req );<br /> <br /> cost = (Double) req.getResponseParam( &quot;cost&quot; ); <br /> // print ( &quot;cost:&quot; + cost );<br /> if( req.wasAccepted() &amp;&amp; cost != null ) {<br /> print( cost );<br /> totalCost += cost;<br /> break;<br /> }<br /> }<br /> }<br /> }<br /> <br /> print (&quot;totalCost = &quot;+totalCost);<br /> if ( totalCost &lt;= 0 || balance-totalCost &gt;= limit) {<br /> print ( &quot;Все ОК!&quot; );<br /> return;<br /> }<br /> <br /> // 2. Приостановить договор. установить статус &quot;Приостановлен&quot;<br /> if (StatusContract.getDate1().compareTo(df) &lt; 0) {<br /> StatusContract.setDate2(dt);<br /> cstm.updateStatus(StatusContract);<br /> } else {<br /> // или удаляем если дата начала больше даты окончания <br /> cstm.deleteStatus(StatusContract.getId());<br /> }<br /> //создаем новое сосотояние<br /> ncs = new ContractStatus();<br /> ncs.setContractId(cid);<br /> ncs.setDate1(df);<br /> ncs.setStatus(4);<br /> cstm.changeStatus(ncs);<br /> StatusContract = cstm.getStatus(cid, df);<br /> // print(&quot;cm.getStatus(&quot;+df+&quot;):&quot;+StatusContract.getStatus() );<br /> }<br /> &lt;/source&gt;<br /> Пересчет абонплаты производится с помощью стандартной задачи для всех договоров. Только учтите, что задача &quot;расчет абонплаты&quot; должен запускаться после таймера с вышеуказанным скриптом с учетом времени его выполнения.<br /> <br /> 2.<br /> &lt;source lang=&quot;java&quot;&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.server.service.bean.*;<br /> import bitel.billing.server.tariff.*;<br /> import bitel.billing.server.util.*;<br /> import bitel.billing.server.npay.*;<br /> import bitel.billing.server.task.bean.RunTaskData;<br /> import bitel.billing.server.task.bean.RunTaskDataManager;<br /> import java.util.*;<br /> <br /> <br /> NPAY_MID = 4;<br /> <br /> cid = event.getContractID();<br /> <br /> cm = new ContractStatusManager( con );<br /> <br /> // округляем день (на 00:00:00) платежа<br /> egt = event.getGenerateTime();<br /> df = egt.clone();<br /> df.clear();<br /> df.set(egt.get(Calendar.YEAR), egt.get(Calendar.MONTH), egt.get(Calendar.DAY_OF_MONTH));<br /> <br /> // получаем день, предыдущий платежу<br /> dt = df.clone();<br /> dt.roll(Calendar.DAY_OF_YEAR, -1);<br /> <br /> // получаем дату начала месяца<br /> db = df.clone();<br /> db.set(Calendar.DAY_OF_MONTH, 1);<br /> <br /> <br /> // определяем текущий статус договора<br /> StatusContractList = cm.getStatusList(cid, event.getGenerateTime());<br /> if (StatusContractList.size() == 0) <br /> return;<br /> <br /> StatusContract = StatusContractList.get(0);<br /> print(&quot;StatusContract.getStatus():&quot;+StatusContract.getStatus() );<br /> <br /> <br /> // если договор приостановлен, то определяем размер абонплаты для снятия и сравниваем с балансом после платежа<br /> if( StatusContract.getStatus() == 4 )<br /> {<br /> <br /> <br /> ctm = new ContractTariffManager( con );<br /> csm = new ContractServiceManager( con );<br /> cu = new ContractUtils( con );<br /> cman = new ContractManager( con );<br /> cn = cman.getContractByID( cid );<br /> tts = cman.getRealtimeTariffTreeSet( cid, df, &quot;npay&quot;, NPAY_MID, true );<br /> msu = new ModuleAndServiceUtils( con );<br /> bu = new BalanceUtils( con );<br /> <br /> <br /> // получаем текущий баланс (с учетом данного платежа)<br /> balance = bu.getBalance(event.getGenerateTime(), cid);<br /> <br /> limit = cn.getLimit();<br /> fbm = cn.getFakeBalanceMode();<br /> bm = cn.getBalanceMode();<br /> <br /> print ( &quot;balance = &quot;+balance );<br /> print ( &quot;limit = &quot;+limit );<br /> print ( &quot;fbm = &quot;+fbm+&quot;; bm = &quot;+bm );<br /> <br /> <br /> totalCost = 0d;<br /> <br /> // получаем список услуг<br /> serviceList = csm.getContractServiceList( cid, df );<br /> <br /> for( Iterator it = serviceList.iterator(); it.hasNext(); ) {<br /> service = (ContractService)it.next();<br /> sid = service.getServiceID();<br /> mid = msu.getService(sid).getModuleId();<br /> // print ( &quot;Service.title &quot;+msu.getService(sid).getTitle() );<br /> // print ( &quot;Module.title &quot;+msu.getModule(mid).getTitle() );<br /> // Если услуга относится к модулю &quot;NPay&quot;<br /> if( mid == NPAY_MID ) {<br /> <br /> // считаем сумму абонплаты<br /> // перебор тарифов в порядке позиций сначала персональных, потом глобальных<br /> for( TariffModuleTree tree : tts.getTreeList( df ) ) {<br /> req = new TariffRequest();<br /> req.setRequestParam( &quot;action&quot;, &quot;calculate&quot; );<br /> req.setRequestParam( &quot;sid&quot;, sid );<br /> <br /> // считаем абонплату пропорционально количеству дней до конца месяца(действует для тарифов &quot;Пропорционально периоду&quot;)<br /> <br /> // всего дней в месяце<br /> req.setRequestParam( &quot;month_days&quot;, df.getActualMaximum(Calendar.DAY_OF_MONTH) ); <br /> // всего дней до конца месяца<br /> req.setRequestParam( &quot;period_days&quot;, df.getActualMaximum(Calendar.DAY_OF_MONTH) - df.get(Calendar.DAY_OF_MONTH) + 1 ); <br /> <br /> tree.processRequest( req );<br /> <br /> cost = (Double) req.getResponseParam( &quot;cost&quot; ); <br /> print ( &quot;cost:&quot; + cost );<br /> if( req.wasAccepted() &amp;&amp; cost != null ) {<br /> print( cost );<br /> totalCost += cost;<br /> break;<br /> }<br /> }<br /> }<br /> }<br /> <br /> print (totalCost+&quot; : &quot;+balance+&quot; - &quot;+limit);<br /> <br /> <br /> <br /> // если денег на продление услуг хватает, то меняем статус договора и даем задание на обсчет услуг с абонплатой<br /> if (totalCost &gt; 0 &amp;&amp; totalCost &lt; (balance - limit)) {<br /> //обновляем дату окончания предыдущего состояния<br /> if (StatusContract.getDate1().compareTo(df) &lt; 0) {<br /> StatusContract.setDate2(dt);<br /> cm.updateStatus(StatusContract);<br /> } else {<br /> // или удаляем если дата начала больше даты окончания <br /> cm.deleteStatus(StatusContract.getId());<br /> }<br /> //создаем новое сосотояние<br /> ncs = new ContractStatus();<br /> ncs.setContractId(cid);<br /> ncs.setDate1(df);<br /> ncs.setStatus(0);<br /> cm.changeStatus(ncs);<br /> <br /> StatusContract = cm.getStatus(cid, df);<br /> print(&quot;cm.getStatus(&quot;+df+&quot;):&quot;+StatusContract.getStatus() );<br /> <br /> // запускаем пересчет абонплат для договора cid<br /> taskData = new RunTaskData(new Recalculator(NPAY_MID, db, &quot;&quot;, 0, &quot;&quot;+cid));<br /> rtdm = new RunTaskDataManager(con);<br /> rtdm.addTask(taskData);<br /> }<br /> }<br /> &lt;/source&gt;</div> Tue, 26 May 2009 13:48:13 GMT Corban 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%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%D0%BE%D0%BC_%D0%B4%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B0_%D0%BF%D0%BE_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8E_%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B0