Advertisement
gogobugogo

serv_sync

Jan 28th, 2014
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 18.48 KB | None | 0 0
  1. import java.sql.*;
  2. import java.util.*;
  3. import java.math.* ;
  4. import bitel.billing.server.contract.bean.*;
  5. import bitel.billing.server.tariff.*;
  6. import bitel.billing.server.util.*;
  7. import bitel.billing.common.KernelConst;
  8. import bitel.billing.server.npay.bean.*;
  9. import bitel.billing.server.script.bean.event.*;
  10. import bitel.billing.server.npay.*;
  11. import bitel.billing.server.task.bean.*;
  12.  
  13. public void onEvent( event, setup, con, conSlave )
  14. {
  15.     //print( event ) ;
  16.     int NPAY_MID = 13 ;
  17.     SidsSynchroManager sidman = new SidsSynchroManager() ;
  18.     int cid = event.getContractId() ;
  19.     //sidman.setDebugMode(0) ;
  20.     sidman.setDebugMode(1);
  21.     //Удаляем не нужные сервисы из договора, за исключением сервисов, которые не синхронизируем.
  22.     sidman.setDeleteNonNeeded(1) ;
  23.     //Указываем ИД модуля абонплат
  24.     sidman.setNpayMid(NPAY_MID) ;
  25.     //Указываем список сервисов, которые не хотим, чтобы синхронизировались
  26.     sidman.notSynchronizeServices("68");
  27.     sidman.synchronizeServices( cid, con ) ;
  28.  
  29.     //Кусок отвечающий за перерасчет абонплаты
  30.     // месяц за который идёт перерасчёт
  31.     dateTask = new GregorianCalendar();
  32.     // набор услуг, 0- все услуги
  33.     serviceSet = 0;
  34.     //Комментарий задачи
  35.     comment = "";
  36.     email = "null";
  37.  
  38.     new RunTaskDataManager( con ).addTask( new Recalculator( NPAY_MID, dateTask, email, serviceSet, Integer.toString(cid), comment ) );
  39.  
  40. }
  41.  
  42.  
  43.  
  44. //Класс синхронизации услуг
  45. public class SidsSynchroManager {
  46.  
  47.     public SidsSynchroManager()
  48.     {
  49.         vSidsData = new Vector() ;
  50.         vNpaySidsData = new Vector() ;
  51.         GregorianCalendar cal = new GregorianCalendar() ;
  52.         cal.set(1970, 0, 1 ) ;
  53.         _DATE1_NULL = cal.getTime() ;
  54.         cal.set(2020, 0, 1 ) ;
  55.         _DATE2_NULL = cal.getTime() ;
  56.     }
  57.  
  58.     public void setNpayMid( int npayMid)
  59.     {
  60.         NPAY_MID = npayMid ;
  61.     }
  62.     public void setDebugMode(int debug)
  63.     {
  64.         _DEBUG = debug ;
  65.     }
  66.     //Не синхронизировать список услуг. через запятую.
  67.     public void notSynchronizeServices( String sids )
  68.     {
  69.         noSynchroList = sids ;
  70.     }
  71.     public void setDeleteNonNeeded( int dnn)//0 - Не удалять не нужные сервисы, 1 - удалять
  72.     {
  73.         deleteNonNeeded = dnn ;
  74.     }
  75.     //Точка входа. Синхронизирует сервисы договора
  76.     public void synchronizeServices( int cid, Connection con )
  77.     {
  78.         vSidsData.clear() ;
  79.         vNpaySidsData.clear() ;
  80.         //Выбираем глобальные тарифы, и запоминаем периоды действия их услуг
  81.         String SQL = "SELECT tree_id, t.title, ct.date1, ct.date2 " +
  82.             "FROM contract_tariff AS ct LEFT JOIN tariff_plan as t ON ct.tpid=t.id " +
  83.             "WHERE ct.cid=" + cid ;
  84.         //print(SQL) ;
  85.         PreparedStatement ps = con.prepareStatement( SQL );
  86.         ResultSet rs = ps.executeQuery();
  87.         while ( rs.next() )
  88.         {
  89.             int tree_id = rs.getInt("tree_id") ;
  90.             String title = rs.getString("title") ;
  91.             Date date1 = rs.getDate("ct.date1") ;
  92.             Date date2 = rs.getDate("ct.date2") ;
  93.             if ( _DEBUG == 1 ) {
  94.                 print ("tree_id=" + tree_id + " title=" + title + " date1=" + TimeUtils.format(date1, "yyyy-MM-dd") + " date2="
  95.                     + TimeUtils.format(date2, "yyyy-MM-dd") ) ;
  96.             }
  97.             findServicesForTariff( tree_id, 0, date1, date2, con) ;//Сохраняем услуги в набор
  98.         }
  99.         //Выбираем персональные тарифы, и запоминаем периоды действия их услуг
  100.         SQL = "SELECT tree_id, title, date1, date2 FROM contract_tree_link WHERE cid=" + cid ;
  101.         ps = con.prepareStatement( SQL );
  102.         rs = ps.executeQuery();
  103.         if ( _DEBUG == 1 ){
  104.             print("personals") ;
  105.         }
  106.         while ( rs.next() )
  107.         {
  108.             int tree_id = rs.getInt("tree_id") ;
  109.             String title = rs.getString("title") ;
  110.             Date date1 = rs.getDate("date1") ;
  111.             Date date2 = rs.getDate("date2") ;
  112.             if( _DEBUG == 1 )   {
  113.                 print ("tree_id=" + tree_id + " title=" + title + " date1=" + TimeUtils.format(date1, "yyyy-MM-dd") + " date2="
  114.                     + TimeUtils.format(date2, "yyyy-MM-dd") ) ;
  115.             }
  116.             findServicesForTariff( tree_id, 0, date1, date2, con ) ;
  117.         }
  118.  
  119.  
  120.         //Для каждой услуги синхронизируем периоды действия, отбрасывая пересекающиеся периоды
  121.         calcActualServicePeriods( vSidsData ) ;
  122.         //Тоже самое для услуг Абонплат.
  123.         calcActualServicePeriods( vNpaySidsData ) ;
  124.  
  125.         //Выводим в вывод, список услуг, так, как они будут заведены. Здесь не могут быть пересекающихся периодов для одной услуги.
  126.         print( "Services must be synchronized with folowing date periods") ;
  127.         printInternalDataForContract( cid ) ;
  128.  
  129.         //Обновляем услуги договора
  130.         updateSynchronizedServices( cid, 0, con )        ;
  131.         //Обновляем услуги абонплат договора
  132.         updateSynchronizedServices( cid, NPAY_MID, con )         ;
  133.     }
  134.  
  135.     public void printInternalDataForContract( int cid )
  136.     {
  137.         print("cid="+cid) ;
  138.         print("SERVICES:") ;
  139.         for( int i = 0; i<vSidsData.size(); i++)
  140.         {
  141.             vSidsData.get(i).printData() ;
  142.         }
  143.         print("NPAY SERVICES:") ;
  144.         for( int i = 0; i<vNpaySidsData.size(); i++)
  145.         {
  146.             vNpaySidsData.get(i).printData() ;
  147.         }
  148.  
  149.     }
  150.  
  151.     private void updateSynchronizedServices( int cid, int nPayMid, Connection con )
  152.     {
  153.         String SQLdelNonNeeded = "" ;
  154.         String SQLsel = "" ;
  155.         String SQLupd = "" ;
  156.         String SQLins = "" ;
  157.         String SQLdel = "" ;
  158.         Vector vSids = vSidsData ;
  159.         String dateNow = TimeUtils.format(new GregorianCalendar(), "yyyy-MM-dd hh:mm:ss") ;
  160.         if ( nPayMid == 0 ){
  161.             SQLsel = "SELECT id, date1, date2 FROM contract_service WHERE cid=" + cid + " AND sid=? ORDER BY date1, date2" ;
  162.             SQLupd = "UPDATE contract_service SET date1=?, date2=?, comment='Service synchronize(update from " +
  163.                 dateNow + ")' WHERE id=?" ;
  164.             SQLins = "INSERT INTO contract_service (cid, sid, date1, date2, comment ) VALUES ( " +
  165.                 cid + ", ? , ? , ?, 'Service    synchronize(insert from " + dateNow + ")')" ;
  166.             SQLdel = "DELETE FROM contract_service WHERE id=?" ;           
  167.             String sidslist = getServiceList(vSidsData) ;
  168.             if ( sidslist == "" ) { sidslist = "-1" ;}
  169.             SQLdelNonNeeded = "DELETE FROM contract_service WHERE cid=" + cid + " AND sid NOT IN (" +
  170.                 sidslist +") AND sid NOT IN (" + noSynchroList + ")" ;
  171.         }
  172.         else{
  173.             vSids = vNpaySidsData ;
  174.             SQLsel = "SELECT id, date1, date2 FROM npay_service_object_" + nPayMid + " WHERE cid=" + cid + " AND sid=? ORDER BY date1, date2" ;
  175.             SQLupd = "UPDATE npay_service_object_" + nPayMid + " SET date1=?, date2=?, comment='Service synchronize!!!(update from " +
  176.                 dateNow + ")' WHERE id=?" ;
  177.             SQLins = "INSERT INTO npay_service_object_" + nPayMid + " (cid, sid, date1, date2, comment ) VALUES ( " +
  178.                 cid + ", ? , ? , ?, 'Service    synchronize(insert from !!!" + dateNow + ")')" ;
  179.             SQLdel = "DELETE FROM npay_service_object_" + nPayMid + " WHERE id=?" ;        
  180.             String sidslist = getServiceList(vNpaySidsData) ;
  181.             if ( sidslist == "" ) {
  182.                  sidslist = "-1" ;
  183.             } else { //Список услуг абонплат для синхронизации не пуст. Добавляем в таблицу contract_module запись при необходимости
  184.                 SQLtmp = "SELECT mid FROM contract_module WHERE cid=" + cid + " AND mid=" + NPAY_MID ;
  185.                 PreparedStatement ps = con.prepareStatement( SQLtmp );
  186.                 rs = ps.executeQuery() ;
  187.                 if( !rs.next() )
  188.                 {
  189.                     SQLtmp = "INSERT INTO contract_module (cid,mid) VALUES (" + cid + "," + NPAY_MID + ")" ;
  190.                     ps = con.prepareStatement( SQLtmp );
  191.                     ps.executeUpdate() ;
  192.                 }
  193.             }
  194.  
  195.             SQLdelNonNeeded = "DELETE FROM npay_service_object_" + nPayMid + " WHERE cid=" + cid + " AND sid NOT IN (" + sidslist + ") AND sid NOT IN (" + noSynchroList + ")" ;
  196.         }
  197.  
  198.  
  199.  
  200.         if ( deleteNonNeeded == 1 )
  201.         {
  202.  
  203.             print( SQLdelNonNeeded ) ;
  204.             PreparedStatement psDelOther = con.prepareStatement( SQLdelNonNeeded ) ;
  205.             psDelOther.executeUpdate( SQLdelNonNeeded ) ;
  206.         }
  207.         PreparedStatement ps = con.prepareStatement( SQLsel );
  208.         PreparedStatement psUpd = con.prepareStatement( SQLupd );
  209.         PreparedStatement psIns = con.prepareStatement( SQLins );
  210.         PreparedStatement psDel = con.prepareStatement( SQLdel );
  211.  
  212.         ResultSet rs ;
  213.         SidsData sd ;
  214.         Date date1, date2 ;
  215.         for( int i = 0; i<vSids.size(); i++)
  216.         {
  217.             sd = vSids.get(i) ;
  218.             int sid = sd.sid ;
  219.             ps.setInt(1, sid) ;
  220.             rs = ps.executeQuery() ;
  221.             j = 0 ;
  222.             while( rs.next() )
  223.             {
  224.                 int id = rs.getInt("id") ;
  225.                 date1 = rs.getDate("date1") ;
  226.                 date2 = rs.getDate("date2") ;
  227.                 //Чтобы при сравнении дат equals не давал exeption, подменяем значения null
  228.                 //print( "date1=" + TimeUtils.format(date1, "yyyy-MM-dd") + " date2=" + TimeUtils.format(date2, "yyyy-MM-dd")) ;
  229.                 if ( date1 == null ){
  230.                     date1 = _DATE1_NULL.clone() ;
  231.                 }
  232.                 if ( date2 == null ){
  233.                     date2 = _DATE2_NULL.clone() ;
  234.                 }
  235.                 //Лишняя услуга, удаляем
  236.                 if ( j >= sd.vDate1.size() )
  237.                 {
  238.                     psDel.setInt( 1, id ) ;
  239.                     psDel.executeUpdate() ;
  240.                     if (_DEBUG==1){
  241.                         print( "Delete service with id=" + id + " for service="+sid +
  242.                     " date1=" + TimeUtils.format(date1, "yyyy-MM-dd") + " date2=" + TimeUtils.format(date2, "yyyy-MM-dd")) ;
  243.                         print( "psDel=" + psDel ) ;
  244.                     }
  245.                     continue ;
  246.                 }
  247.  
  248.  
  249.                 if ( !date1.equals(sd.vDate1.get(j)) || !date2.equals(sd.vDate2.get(j)) )
  250.                 {
  251.                     //Возвращаем значения null при необходимости  для обновления инфы в БД
  252.                     if ( sd.vDate1.get(j).equals( _DATE1_NULL) ){
  253.                         sd.vDate1.set( j, null ) ;
  254.                     }
  255.                     if ( sd.vDate2.get(j).equals( _DATE2_NULL) ){
  256.                         sd.vDate2.set( j, null ) ;
  257.                     }
  258.                     psUpd.setInt( 3, id ) ;
  259.                     psUpd.setDate( 1, sd.vDate1.get(j) ) ;
  260.                     psUpd.setDate( 2, sd.vDate2.get(j) ) ;
  261.                     psUpd.executeUpdate() ;
  262.                     if (_DEBUG==1){
  263.                         print( "Update service with id=" + id + " for service="+sid + " previous date1=" +
  264.                         TimeUtils.format(date1, "yyyy-MM-dd") + " date2=" + TimeUtils.format(date2, "yyyy-MM-dd")) ;
  265.                         print( "psUpd=" + psUpd ) ;
  266.                     }
  267.                 }
  268.                 j++ ;
  269.             }//end while
  270.  
  271.             for( ; j < sd.vDate1.size(); j++)
  272.             {
  273.                 if ( sd.vDate1.get(j).equals( _DATE1_NULL) ){
  274.                     sd.vDate1.set( j, null ) ;
  275.                 }
  276.                 if ( sd.vDate2.get(j).equals( _DATE2_NULL) ){
  277.                     sd.vDate2.set( j, null ) ;
  278.                 }
  279.                 psIns.setInt(1, sid ) ;
  280.                 psIns.setDate( 2, sd.vDate1.get(j) ) ;
  281.                 psIns.setDate( 3, sd.vDate2.get(j) ) ;
  282.                 if (_DEBUG==1){
  283.                     print( "Insert new service="+sid + " date1=" +
  284.                     TimeUtils.format(date1, "yyyy-MM-dd") + " date2=" + TimeUtils.format(date2, "yyyy-MM-dd")) ;
  285.                     print( "psIns" + psIns ) ;
  286.                 }
  287.                 psIns.executeUpdate() ;
  288.             }
  289.  
  290.         }
  291.  
  292.     }
  293.  
  294.     private String getServiceList(Vector vSids)
  295.     {
  296.         String sids = "";
  297.         int i ;
  298.         for( i = 0; i<vSids.size()-1; i++)
  299.         {
  300.             sids += "" + vSids.get(i).sid + "," ;
  301.         }
  302.         if ( i < vSids.size()) {
  303.             sids += "" + vSids.get(i).sid ;
  304.         }
  305.         return sids ;
  306.     }
  307.  
  308.     private calcActualServicePeriods( Vector vSids )
  309.     {
  310.         prepareInternalData() ;
  311.         SidsData sd ;
  312.         Vector vDate1 = new Vector() ;
  313.         Vector vDate2 = new Vector() ;
  314.         Date date1 ;
  315.         Date date2 ;
  316.         GregorianCalendar date1cal = new GregorianCalendar() ; //Для хранения date1+1 день
  317.         k = 0 ;
  318.         for( int i = 0; i<vSids.size(); i++)
  319.         {
  320.             sd = vSids.get(i) ;
  321.             vDate1.clear() ;
  322.             vDate2.clear() ;
  323.             for ( j = 0 ; j < sd.vDate1.size() ;  )//Отсеиваем ненужные периоды
  324.             {
  325.                 date1 = sd.vDate1.get(j) ;
  326.                 date2 = sd.vDate2.get(j) ;
  327.                 if ( date1.compareTo( date2) > 0 )
  328.                 {
  329.                     print("Fatal error,  date1=" + TimeUtils.format(date1, "yyyy-MM-dd") + " > date2="
  330.                     + TimeUtils.format(date2, "yyyy-MM-dd") ) ;
  331.                     print("Services was not synchronized...") ;
  332.                     return ;
  333.                 }
  334.                 for( j++ ; j<sd.vDate1.size(); j++)
  335.                 {
  336.                     date1cal.setTime( sd.vDate1.get(j) ) ;
  337.                    print("DEBUG: date1cal.setTime = " + date1cal);
  338.                     print("");         
  339.                     date1cal.roll(Calendar.DAY_OF_YEAR,-1) ;
  340.                    print("DEBUG: date1cal.roll = " + date1cal);
  341.                     print("");
  342.                    print("DEBUG: date2 = " + date2);
  343.                     print("");
  344.                     if ( date2.compareTo(date1cal.getTime()) < 0 ) // Нашли нужный date2 для date1 ;
  345.                     {
  346.                         break ;
  347.                     }
  348.                     else
  349.                     {
  350.                         date2 = sd.vDate2.get(j) ;
  351.                     }
  352.                 }
  353.                 vDate1.add(date1) ;
  354.                 vDate2.add(date2) ;
  355.             }
  356.  
  357.             sd.vDate1.clear() ;
  358.             sd.vDate2.clear() ;
  359.             sd.vDate1 = vDate1.clone() ;
  360.             sd.vDate2 = vDate2.clone() ;
  361.  
  362.         }
  363.     }
  364.  
  365.     private prepareInternalData()//Подготовливает внутренние данные для основного алгоритма. Сортирует массивы date услуг
  366.     {
  367.         SidsData sd ;
  368.         for( int i = 0; i<vSidsData.size(); i++)
  369.         {
  370.             sd = vSidsData.get(i) ;
  371.             Collections.sort(sd.vDate1 ) ;
  372.             Collections.sort(sd.vDate2 ) ;
  373.         }
  374.         for( int i = 0; i<vNpaySidsData.size(); i++)
  375.         {
  376.             sd = vNpaySidsData.get(i) ;
  377.             Collections.sort(sd.vDate1 ) ;
  378.             Collections.sort(sd.vDate2 ) ;
  379.  
  380.         }
  381.  
  382.     }
  383.  
  384.     private void addSid( int sid, Date date1, Date date2, int npayService )
  385.     {
  386.         String[] noSids = noSynchroList.split(",") ;
  387.         for ( int  i = 0 ; i<noSids.length; i++ )
  388.         {
  389.             if ( Integer.parseInt( noSids[i].trim() ) == sid ) { return ;}
  390.         }
  391.         //Заменяем нулевые значения дат значениями _DATE1_NULL и DATE2_NULL соответсвенно
  392.         if ( date1 == null ) {
  393.             date1 = _DATE1_NULL.clone() ;
  394.         }
  395.         if ( date2 == null ) {
  396.             date2 = _DATE2_NULL.clone() ;
  397.         }
  398.  
  399.         Vector vSids = vSidsData;
  400.         if ( npayService != 0 )
  401.         {
  402.             vSids = vNpaySidsData ;
  403.         }
  404.         int f = 0 ;
  405.         SidsData sd ;
  406.         for ( int i=0; i < vSids.size(); i++ )
  407.         {
  408.             sd = vSids.get(i) ;
  409.             if (sd.sid == sid)
  410.             {
  411.                 sd.vDate1.add(date1) ;
  412.                 sd.vDate2.add(date2) ;
  413.                 f = 1 ; break ;
  414.             }
  415.         }
  416.         if ( f == 0 )
  417.         {
  418.             sd = new SidsData( sid ) ;
  419.             sd.vDate1.add(date1) ;
  420.             sd.vDate2.add(date2) ;
  421.             vSids.add( sd ) ;
  422.         }
  423.     }
  424.  
  425.     private void findServicesForTariff( int tree_id, int mid /*если не 0, то выборка из родительского тарифа*/,
  426.         Date date1, Date date2, Connection con)
  427.     {
  428.         String SQL = "SELECT id, mid, parent_tree FROM module_tariff_tree WHERE tree_id=" + tree_id ;
  429.         if ( mid != 0 )
  430.         {
  431.             SQL += " AND mid=" + mid ;
  432.         }
  433.         //print(SQL) ;
  434.         PreparedStatement ps = con.prepareStatement( SQL );
  435.         ResultSet rs = ps.executeQuery() ;
  436.  
  437.         while ( rs.next() )
  438.         {
  439.             int mtreeid = rs.getInt("id") ;
  440.             int mid = rs.getInt("mid") ;
  441.             int parent_tree = rs.getInt("parent_tree") ;
  442.             if (parent_tree != 0 )
  443.             {
  444.                 findServicesForTariff( parent_tree, mid, date1, date2, con ) ;
  445.                 continue ;
  446.             }
  447.             findServicesForTariff2( mtreeid, mid, date1, date2, con ) ;
  448.         }
  449.     }
  450.  
  451.     private void findServicesForTariff2( int mtreeid, int mid, Date date1, Date date2, Connection con )
  452.     {
  453.         SQL = "SELECT type, data " +
  454.             "FROM mtree_node " +
  455.             "WHERE mtree_id=" + mtreeid + " AND type IN ('service', 'multi_service', 'month_mode', 'day_mode')" ;
  456.         PreparedStatement ps = con.prepareStatement( SQL ) ;
  457.         ResultSet rs = ps.executeQuery() ;
  458.         int sid = 0;
  459.         while ( rs.next() )
  460.         {
  461.             String type = rs.getString("type") ;
  462.             String data = rs.getString("data") ;
  463.             //print ( "type=" + type + " data=" + data) ;
  464.             if (type.equals("service") )
  465.             {
  466.                 sid = Integer.parseInt( data ) ;
  467.                 addSid( sid, date1, date2, 0 ) ; //Добавляем найденную услугу в набор найденных услуг
  468.  
  469.                 //print ( "sid=" + sid ) ;
  470.             }
  471.             else if( type.equals("multi_service") )
  472.             {
  473.                 String[] ss = data.split("&") ;
  474.                 String[] sids = ss[1].split(",") ;
  475.                 //print ( "sids=" + ss[1] ) ;
  476.                 for ( int i=0; i < sids.length; i++ )
  477.                 {
  478.                     sid=Integer.parseInt(sids[i]) ;
  479.                     addSid( sid, date1, date2, 0 ) ; //Добавляем найденную услугу в набор найденных услуг
  480.                     //print( "sid = " + sid ) ;
  481.                 }
  482.             }
  483.             else if( type.equals("month_mode") )
  484.             {
  485.                 String[] ss = data.split("%") ;
  486.                 for ( int i = 0; i < ss.length ; i++ )
  487.                 {
  488.                     String[] sids=ss[i].split("&") ;
  489.                     if ( sids[0].equals("sid") )
  490.                     {
  491.                         sid = Integer.parseInt(sids[1]) ;
  492.                         addSid( sid, date1, date2, 1 ) ; //Добавляем найденную услугу в набор найденных услуг
  493.                         break ;
  494.                     }
  495.                 }
  496.                 //print( "month_mode sid = " + sid ) ;
  497.             }
  498.             else if( type.equals("day_mode") )
  499.             {
  500.                 String[] ss = data.split("%") ;
  501.                 for ( int i = 0; i < ss.length ; i++ )
  502.                 {
  503.                     String[] sids=ss[i].split("&") ;
  504.                     if ( sids[0].equals("sid") )
  505.                     {
  506.                         sid = Integer.parseInt(sids[1]) ;
  507.                         addSid( sid, date1, date2, 1 ) ; //Добавляем найденную услугу в набор найденных услуг
  508.                         break ;
  509.                     }
  510.                 }
  511.                 //print( "day_mode sid = " + sid ) ;
  512.             }
  513.  
  514.         }//end while
  515.     }
  516.  
  517.  
  518.     //внутренниц класс для хранения услуги и множества дат date1 и date2
  519.     private class SidsData{
  520.         public int sid ;
  521.         public Vector vDate1 ;
  522.         public Vector vDate2 ;
  523.  
  524.         public SidsData()
  525.         {
  526.             sid = 0 ;
  527.             vDate1 = new Vector() ;
  528.             vDate2 = new Vector() ;
  529.         }
  530.  
  531.         public SidsData( int s )
  532.         {
  533.             sid=s ;
  534.             vDate1 = new Vector() ;
  535.             vDate2 = new Vector() ;
  536.         }
  537.         public printData()
  538.         {
  539.             print ("sid=" + sid) ;
  540.             for( i=0; i<vDate1.size(); i++ )
  541.             {
  542.                 Date date1 = vDate1.get(i) ;
  543.                 Date date2 = vDate2.get(i) ;
  544.                 if ( date1.equals( _DATE1_NULL) ){
  545.                     date1 = null ;
  546.                 }
  547.                 if ( date2.equals( _DATE2_NULL) ){
  548.                     date2 = null ;
  549.                 }
  550.  
  551.                 print (" date1=" + TimeUtils.format(date1, "yyyy-MM-dd") + " date2="
  552.                     + TimeUtils.format(date2, "yyyy-MM-dd") ) ;            
  553.             }
  554.         }
  555.     }
  556.  
  557.     private int NPAY_MID=13 ;
  558.     private int _DEBUG=1 ;
  559.     private int deleteNonNeeded = 1 ;
  560.     static private Date _DATE1_NULL ;
  561.     static private Date _DATE2_NULL ;
  562.     private Vector vSidsData ;
  563.     private Vector vNpaySidsData ;
  564.     private String noSynchroList = "1" ;//не синхронизировать услуги.
  565. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement