1    package com.instantbank.collections.collectionsActivities.web;
2    
3    import javax.servlet.http.HttpSession;
4    import java.io.ByteArrayInputStream;
5    import java.io.Serializable;
6    import oracle.xml.parser.v2.DOMParser;
7    import oracle.xml.parser.v2.XMLDocument;
8    import org.w3c.dom.NodeList;
9    import com.instantbank.collections.collectionsActivities.ejb.ActionResultServices;
10   import com.instantbank.collections.collectionsActivities.ejb.ActionResultServicesHome;
11   import com.instantbank.collections.commonQueuing.ejb.QueueServices;
12   import com.instantbank.collections.commonQueuing.ejb.QueueServicesHome;
13   import com.instantbank.collections.letters.ejb.LetterServices;
14   import com.instantbank.collections.letters.ejb.LetterServicesHome;
15   import com.instantbank.collections.util.InstantbankException;
16   import com.instantbank.collections.util.ServiceLocator;
17   import com.instantbank.collections.util.StringFormat;
18   import com.instantbank.collections.util.XMLUtils;
19   
20   public class ResultMaintenanceTransformer
21       implements Serializable {
22     private HttpSession gblSession;
23     private XMLDocument resultList;
24     private XMLDocument dataDoc;
25   
26   
27     public String getAttribute(String name) throws InstantbankException {
28       String strAtt = new String("");
29       try {
30         strAtt = dataDoc.valueOf("Result/" + name);
31       }
32       catch(Exception e) {}
33       return strAtt;
34     }
35   
36   
37     public void setSession(HttpSession session) {
38       gblSession = session;
39     }
40   
41   
42     public void setData(String data) throws InstantbankException {
43       ActionResultServicesHome home;
44       ActionResultServices services;
45       ByteArrayInputStream stream;
46       DOMParser docParser = new DOMParser();
47       String xml;
48       String strResultsList;
49       Long companyId;
50   
51       try {
52         xml = XMLUtils.xmlHeader() + data;
53         dataDoc = null;
54         stream = new ByteArrayInputStream(xml.getBytes());
55         docParser.setValidationMode(false);
56         docParser.parse(stream);
57         dataDoc = docParser.getDocument();
58   
59         home = (ActionResultServicesHome)ServiceLocator.instance().createEJB("ActionResultServicesHome", ActionResultServicesHome.class, false);
60         services = home.create();
61         companyId = (Long)gblSession.getAttribute("companyId");
62         strResultsList = services.getResultsList(companyId);
63         resultList = null;
64         stream = new ByteArrayInputStream(strResultsList.getBytes());
65         docParser.setValidationMode(false);
66         docParser.parse(stream);
67         resultList = docParser.getDocument();
68       }
69       catch(Exception e) {
70       }
71     }
72   
73   
74     public String getLettersOptions() throws InstantbankException {
75       LetterServicesHome home;
76       LetterServices services;
77       ByteArrayInputStream stream;
78       DOMParser docParser = new DOMParser();
79       String xml;
80       String s = new String("");
81       ;
82       Long companyId;
83       XMLDocument LetterDoc;
84       NodeList nlName;
85       NodeList nlId;
86   
87       try {
88         companyId = (Long)gblSession.getAttribute("companyId");
89         home = (LetterServicesHome)ServiceLocator.instance().createEJB("LetterServicesHome", LetterServicesHome.class, false);
90         services = home.create();
91         xml = services.getLetters(companyId);
92   
93         LetterDoc = null;
94         stream = new ByteArrayInputStream(xml.getBytes());
95         docParser.setValidationMode(false);
96         docParser.parse(stream);
97         LetterDoc = docParser.getDocument();
98   
99         s = "";
100        nlName = LetterDoc.selectNodes("/Letters/Letter/name/text()");
101        nlId = LetterDoc.selectNodes("/Letters/Letter/id/text()");
102        for(int i = 0; i < nlName.getLength(); i++) {
103          s += "<Option value=\"" + nlId.item(i).getNodeValue() + "\">" + StringFormat.toSafeHTMLString(nlName.item(i).getNodeValue()) + "</Option>";
104        }
105      }
106      catch(Exception e) {}
107      return s;
108    }
109  
110  
111    public String getQueuesOptions() throws InstantbankException {
112      QueueServicesHome home;
113      QueueServices services;
114      ByteArrayInputStream stream;
115      DOMParser docParser = new DOMParser();
116      String xml;
117      String s = new String("");
118      ;
119      Long companyId;
120      XMLDocument queueDoc;
121      NodeList nlName;
122      NodeList nlId;
123      NodeList nlCategory;
124  
125      try {
126        companyId = (Long)gblSession.getAttribute("companyId");
127        home = (QueueServicesHome)ServiceLocator.instance().createEJB("QueueServicesHome", QueueServicesHome.class, false);
128        services = home.create();
129        xml = services.getQueues(companyId);
130  
131        queueDoc = null;
132        stream = new ByteArrayInputStream(xml.getBytes());
133        docParser.setValidationMode(false);
134        docParser.parse(stream);
135        queueDoc = docParser.getDocument();
136  
137        s = "";
138        nlName = queueDoc.selectNodes("/Queues/Queue/name/text()");
139        nlId = queueDoc.selectNodes("/Queues/Queue/id/text()");
140        nlCategory = queueDoc.selectNodes("/Queues/Queue/category/text()");
141        s = "numberOfQueues = " + (nlName.getLength() + 1) + "; \n";
142        s += "queuesArray[0] = new Queue('', 'NO DEFAULT QUEUE', ''); \n";
143        for(int i = 0; i < nlName.getLength(); i++) {
144          s += "queuesArray[" + (i + 1) + "] = new Queue(" + nlId.item(i).getNodeValue() + ", '" +
145            nlName.item(i).getNodeValue() + "', '" + nlCategory.item(i).getNodeValue() + "');\n";
146        }
147      }
148      catch(Exception e) {}
149      return s;
150    }
151  
152  
153    public String getResultCodeOptions() throws InstantbankException {
154      NodeList nlCode;
155      NodeList nlId;
156      String Code = new String("");
157      String Id = new String("");
158      String s = new String("");
159      String ArrOpt[][];
160      try {
161        s = "";
162        nlCode = resultList.selectNodes("/Results/Result/code/text()");
163        nlId = resultList.selectNodes("/Results/Result/id/text()");
164        ArrOpt = new String[2][nlCode.getLength()];
165  
166        for(int i = 0; i < nlCode.getLength(); i++) {
167          ArrOpt[0][i] = nlId.item(i).getNodeValue();
168          ArrOpt[1][i] = nlCode.item(i).getNodeValue();
169        }
170  
171        for(int j = 0; j < nlCode.getLength(); j++) {
172          for(int i = j + 1; i < nlCode.getLength(); i++) {
173            if(ArrOpt[1][i].compareTo(ArrOpt[1][j]) < 0) {
174              String t = ArrOpt[1][j];
175              ArrOpt[1][j] = ArrOpt[1][i];
176              ArrOpt[1][i] = t;
177              String t1 = ArrOpt[0][j];
178              ArrOpt[0][j] = ArrOpt[0][i];
179              ArrOpt[0][i] = t1;
180            }
181          }
182        }
183  
184        for(int i = 0; i < nlCode.getLength(); i++) {
185          Id = ArrOpt[0][i];
186          Code = ArrOpt[1][i];
187          s += "<option value=\"" + Id + "\">" + StringFormat.toSafeHTMLString(Code) + "</option>";
188        }
189  
190      }
191      catch(Exception e) {}
192      return s;
193    }
194  
195  
196    public String getResultDescriptionOptions() throws InstantbankException {
197      NodeList nlDescription;
198      NodeList nlId;
199      String Description = new String("");
200      String Id = new String("");
201      String s = new String("");
202      String ArrOpt[][];
203      try {
204        s = "";
205        nlDescription = resultList.selectNodes("/Results/Result/description/text()");
206        nlId = resultList.selectNodes("/Results/Result/id/text()");
207        ArrOpt = new String[2][nlDescription.getLength()];
208  
209        for(int i = 0; i < nlDescription.getLength(); i++) {
210          ArrOpt[0][i] = nlId.item(i).getNodeValue();
211          ArrOpt[1][i] = nlDescription.item(i).getNodeValue();
212        }
213  
214        for(int j = 0; j < nlDescription.getLength(); j++) {
215          for(int i = j + 1; i < nlDescription.getLength(); i++) {
216            if(ArrOpt[1][i].compareTo(ArrOpt[1][j]) < 0) {
217              String t = ArrOpt[1][j];
218              ArrOpt[1][j] = ArrOpt[1][i];
219              ArrOpt[1][i] = t;
220              String t1 = ArrOpt[0][j];
221              ArrOpt[0][j] = ArrOpt[0][i];
222              ArrOpt[0][i] = t1;
223            }
224          }
225        }
226  
227        for(int i = 0; i < nlDescription.getLength(); i++) {
228          Id = ArrOpt[0][i];
229          Description = ArrOpt[1][i];
230          s += "<option value=\"" + Id + "\">" + StringFormat.toSafeHTMLString(Description) + "</option>";
231        }
232  
233      }
234      catch(Exception e) {}
235      return s;
236    }
237  }
238  
239