KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > campware > cream > modules > actions > ReportSQL


1 package org.campware.cream.modules.actions;
2
3 /* ====================================================================
4  * Copyright (C) 2003-2005 Media Development Loan Fund
5  *
6  * * contact: contact@campware.org - http://www.campware.org
7  * Campware encourages further development. Please let us know.
8  *
9  * This program is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU General Public License
11  * as published by the Free Software Foundation; either version 2
12  * of the License, or (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software
21  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22  *
23  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
24  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
25  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
26  * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
27  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
28  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
29  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
30  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
31  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
32  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
33  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34  * SUCH DAMAGE.
35  * ====================================================================
36  *
37  * This software consists of voluntary contributions made by many
38  * individuals on behalf of the Apache Software Foundation. For more
39  * information on the Apache Software Foundation, please see
40  * <http://www.apache.org/>.
41  */

42
43 import java.util.Date JavaDoc;
44 import java.text.ParsePosition JavaDoc;
45 import org.apache.turbine.modules.actions.VelocitySecureAction;
46 import org.apache.turbine.util.RunData;
47 import org.apache.turbine.util.security.AccessControlList;
48
49
50 import java.util.List JavaDoc;
51 import java.util.ArrayList JavaDoc;
52 import java.math.BigDecimal JavaDoc;
53
54 import java.text.SimpleDateFormat JavaDoc;
55 import java.text.DecimalFormat JavaDoc;
56 import java.text.DecimalFormatSymbols JavaDoc;
57
58 import org.apache.velocity.context.Context;
59
60 import org.apache.torque.util.Criteria;
61 import org.apache.torque.util.BasePeer;
62
63 import com.workingdogs.village.Record;
64
65 import org.campware.cream.om.PaymentPeer;
66 import org.campware.cream.om.CustomerPeer;
67 import org.campware.cream.om.ProductPeer;
68 import org.campware.cream.om.ProjectPeer;
69 import org.campware.cream.om.PaymentItemPeer;
70 import org.campware.cream.om.OnlineSubscriptionPeer;
71 import org.campware.cream.om.PrintSubscriptionPeer;
72 import org.campware.cream.om.ShipmentPeer;
73 import org.campware.cream.om.CurrencyPeer;
74
75 /**
76  * This class provides a simple set of methods to
77  * insert/update/delete records in a database.
78  */

79 public class ReportSQL extends VelocitySecureAction
80 {
81     /**
82      * Show report data based on
83      * filter parameters and report choosen
84      */

85     public void doReport(RunData data, Context context)
86         throws Exception JavaDoc
87     {
88
89         try
90         {
91 // String query = "SELECT SUM(" + PaymentItemPeer.ITEM_TOTAL + ") FROM PAYMENT_ITEM GROUP BY PRODUCT_ID;";
92
// Vector qresult = BasePeer.executeQuery(query);
93
// Record rec = (Record) qresult.firstElement();
94
// int recordCount = rec.getValue(1).asInt();
95

96             int reportid= data.getParameters().getInt("reportid", 0);
97             Criteria criteria = new Criteria();
98             
99             if (reportid==1){
100                 criteria.addJoin(PaymentPeer.PAYMENT_ID, PaymentItemPeer.PAYMENT_ID);
101                 criteria.addJoin(CustomerPeer.CUSTOMER_ID, PaymentItemPeer.CUSTOMER_ID);
102                 criteria.addJoin(ProductPeer.PRODUCT_ID, PaymentItemPeer.PRODUCT_ID);
103                 criteria.addJoin(ProjectPeer.PROJECT_ID, PaymentItemPeer.PROJECT_ID);
104     
105                 criteria.addSelectColumn(PaymentItemPeer.PRODUCT_ID);
106                 criteria.addSelectColumn("SUM(" + PaymentItemPeer.ITEM_TOTAL + ")");
107                 criteria.addSelectColumn(ProductPeer.PRODUCT_CODE);
108                 criteria.addSelectColumn(ProductPeer.PRODUCT_DISPLAY);
109     
110                 setPaymentCriteria(data, criteria);
111                 setCustomerCriteria(data, criteria);
112                 setProjectCriteria(data, criteria);
113                 setProductCriteria(data, criteria);
114                 
115                 criteria.addGroupByColumn(PaymentItemPeer.PRODUCT_ID);
116                 criteria.addGroupByColumn(ProductPeer.PRODUCT_CODE);
117                 criteria.addGroupByColumn(ProductPeer.PRODUCT_DISPLAY);
118     
119                 criteria.addAscendingOrderByColumn(ProductPeer.PRODUCT_CODE);
120                 // stuff something into the Velocity Context
121

122                 List records = BasePeer.doSelect(criteria);
123                 List results = new ArrayList JavaDoc();
124                 
125                 for (int i = 0; i < records.size(); i++) {
126                   results.add( ((Record) records.get(i)) );
127                 }
128                 context.put ("entries", results);
129     
130                 Criteria critall = new Criteria();
131     
132                 critall.addJoin(PaymentPeer.PAYMENT_ID, PaymentItemPeer.PAYMENT_ID);
133                 critall.addJoin(CustomerPeer.CUSTOMER_ID, PaymentItemPeer.CUSTOMER_ID);
134                 critall.addJoin(ProductPeer.PRODUCT_ID, PaymentItemPeer.PRODUCT_ID);
135                 critall.addJoin(ProjectPeer.PROJECT_ID, PaymentItemPeer.PROJECT_ID);
136     
137                 critall.addSelectColumn("SUM(" + PaymentItemPeer.ITEM_TOTAL + ")");
138     
139                 setPaymentCriteria(data, critall);
140                 setCustomerCriteria(data, critall);
141                 setProjectCriteria(data, critall);
142                 setProductCriteria(data, critall);
143                 
144                 // stuff something into the Velocity Context
145
List sumrecord = BasePeer.doSelect(critall);
146                 BigDecimal JavaDoc sumAll= ((Record) sumrecord.get(0)).getValue(1).asBigDecimal();
147                 context.put ("sumall", sumAll);
148
149             }else if (reportid==2){
150                 criteria.addJoin(PaymentPeer.PAYMENT_ID, PaymentItemPeer.PAYMENT_ID);
151                 criteria.addJoin(CurrencyPeer.CURRENCY_ID, PaymentItemPeer.CURRENCY_ID);
152                 criteria.addJoin(CustomerPeer.CUSTOMER_ID, PaymentItemPeer.CUSTOMER_ID);
153                 criteria.addJoin(ProductPeer.PRODUCT_ID, PaymentItemPeer.PRODUCT_ID);
154                 criteria.addJoin(ProjectPeer.PROJECT_ID, PaymentItemPeer.PROJECT_ID);
155     
156                 criteria.addSelectColumn(PaymentItemPeer.CURRENCY_ID);
157                 criteria.addSelectColumn("SUM(" + PaymentItemPeer.ITEM_CURR_TOTAL + ")");
158                 criteria.addSelectColumn(CurrencyPeer.CURRENCY_CODE);
159                 criteria.addSelectColumn(CurrencyPeer.CURRENCY_NAME);
160     
161                 setPaymentCriteria(data, criteria);
162                 setCustomerCriteria(data, criteria);
163                 setProjectCriteria(data, criteria);
164                 setProductCriteria(data, criteria);
165                 
166                 criteria.addGroupByColumn(PaymentItemPeer.CURRENCY_ID);
167                 criteria.addGroupByColumn(CurrencyPeer.CURRENCY_CODE);
168                 criteria.addGroupByColumn(CurrencyPeer.CURRENCY_NAME);
169     
170                 criteria.addAscendingOrderByColumn(CurrencyPeer.CURRENCY_CODE);
171                 // stuff something into the Velocity Context
172

173                 List records = BasePeer.doSelect(criteria);
174                 List results = new ArrayList JavaDoc();
175                 
176                 for (int i = 0; i < records.size(); i++) {
177                   results.add( ((Record) records.get(i)) );
178                 }
179                 context.put ("entries", results);
180     
181             }else if (reportid==3){
182                 criteria.addJoin(CustomerPeer.CUSTOMER_ID, OnlineSubscriptionPeer.CUSTOMER_ID);
183                 criteria.addJoin(ProductPeer.PRODUCT_ID, OnlineSubscriptionPeer.PRODUCT_ID);
184                 criteria.addJoin(ProjectPeer.PROJECT_ID, OnlineSubscriptionPeer.PROJECT_ID);
185     
186                 criteria.addSelectColumn(OnlineSubscriptionPeer.PRODUCT_ID);
187                 criteria.addSelectColumn("SUM(" + OnlineSubscriptionPeer.QUANTITY + ")");
188                 criteria.addSelectColumn(ProductPeer.PRODUCT_CODE);
189                 criteria.addSelectColumn(ProductPeer.PRODUCT_DISPLAY);
190     
191                 setOnlineSubscriptionCriteria(data, criteria);
192                 setCustomerCriteria(data, criteria);
193                 setProjectCriteria(data, criteria);
194                 setProductCriteria(data, criteria);
195                 
196                 criteria.addGroupByColumn(OnlineSubscriptionPeer.PRODUCT_ID);
197                 criteria.addGroupByColumn(ProductPeer.PRODUCT_CODE);
198                 criteria.addGroupByColumn(ProductPeer.PRODUCT_DISPLAY);
199     
200                 criteria.addAscendingOrderByColumn(ProductPeer.PRODUCT_CODE);
201                 // stuff something into the Velocity Context
202

203                 List records = BasePeer.doSelect(criteria);
204                 List results = new ArrayList JavaDoc();
205                 
206                 for (int i = 0; i < records.size(); i++) {
207                   results.add( ((Record) records.get(i)) );
208                 }
209                 context.put ("entries", results);
210     
211                 Criteria critall = new Criteria();
212     
213                 critall.addJoin(CustomerPeer.CUSTOMER_ID, OnlineSubscriptionPeer.CUSTOMER_ID);
214                 critall.addJoin(ProductPeer.PRODUCT_ID, OnlineSubscriptionPeer.PRODUCT_ID);
215                 critall.addJoin(ProjectPeer.PROJECT_ID, OnlineSubscriptionPeer.PROJECT_ID);
216     
217                 critall.addSelectColumn("SUM(" + OnlineSubscriptionPeer.QUANTITY + ")");
218     
219                 setOnlineSubscriptionCriteria(data, critall);
220                 setCustomerCriteria(data, critall);
221                 setProjectCriteria(data, critall);
222                 setProductCriteria(data, critall);
223                 
224                 // stuff something into the Velocity Context
225
List sumrecord = BasePeer.doSelect(critall);
226                 int sumAll= ((Record) sumrecord.get(0)).getValue(1).asInt();
227                 context.put ("sumall", new Integer JavaDoc(sumAll));
228                 
229             }else if (reportid==4){
230                 criteria.addJoin(CustomerPeer.CUSTOMER_ID, PrintSubscriptionPeer.CUSTOMER_ID);
231                 criteria.addJoin(ProductPeer.PRODUCT_ID, PrintSubscriptionPeer.PRODUCT_ID);
232                 criteria.addJoin(ProjectPeer.PROJECT_ID, PrintSubscriptionPeer.PROJECT_ID);
233     
234                 criteria.addSelectColumn(PrintSubscriptionPeer.PRODUCT_ID);
235                 criteria.addSelectColumn("SUM(" + PrintSubscriptionPeer.QUANTITY + ")");
236                 criteria.addSelectColumn(ProductPeer.PRODUCT_CODE);
237                 criteria.addSelectColumn(ProductPeer.PRODUCT_DISPLAY);
238     
239                 setPrintSubscriptionCriteria(data, criteria);
240                 setCustomerCriteria(data, criteria);
241                 setProjectCriteria(data, criteria);
242                 setProductCriteria(data, criteria);
243                 
244                 criteria.addGroupByColumn(PrintSubscriptionPeer.PRODUCT_ID);
245                 criteria.addGroupByColumn(ProductPeer.PRODUCT_CODE);
246                 criteria.addGroupByColumn(ProductPeer.PRODUCT_DISPLAY);
247     
248                 criteria.addAscendingOrderByColumn(ProductPeer.PRODUCT_CODE);
249                 // stuff something into the Velocity Context
250

251                 List records = BasePeer.doSelect(criteria);
252                 List results = new ArrayList JavaDoc();
253                 
254                 for (int i = 0; i < records.size(); i++) {
255                   results.add( ((Record) records.get(i)) );
256                 }
257                 context.put ("entries", results);
258     
259                 Criteria critall = new Criteria();
260     
261                 critall.addJoin(CustomerPeer.CUSTOMER_ID, PrintSubscriptionPeer.CUSTOMER_ID);
262                 critall.addJoin(ProductPeer.PRODUCT_ID, PrintSubscriptionPeer.PRODUCT_ID);
263                 critall.addJoin(ProjectPeer.PROJECT_ID, PrintSubscriptionPeer.PROJECT_ID);
264     
265                 critall.addSelectColumn("SUM(" + PrintSubscriptionPeer.QUANTITY + ")");
266     
267                 setPrintSubscriptionCriteria(data, critall);
268                 setCustomerCriteria(data, critall);
269                 setProjectCriteria(data, critall);
270                 setProductCriteria(data, critall);
271                 
272                 // stuff something into the Velocity Context
273
List sumrecord = BasePeer.doSelect(critall);
274                 int sumAll= ((Record) sumrecord.get(0)).getValue(1).asInt();
275                 context.put ("sumall", new Integer JavaDoc(sumAll));
276                 
277             }else if (reportid==5){
278                 criteria.addJoin(CustomerPeer.CUSTOMER_ID, PrintSubscriptionPeer.RECIPIENT_ID);
279                 criteria.addJoin(ProductPeer.PRODUCT_ID, PrintSubscriptionPeer.PRODUCT_ID);
280                 criteria.addJoin(ProjectPeer.PROJECT_ID, PrintSubscriptionPeer.PROJECT_ID);
281     
282                 setPrintSubscriptionCriteria(data, criteria);
283                 setCustomerCriteria(data, criteria);
284                 setProjectCriteria(data, criteria);
285                 setProductCriteria(data, criteria);
286                 
287                 criteria.addAscendingOrderByColumn(CustomerPeer.CUSTOMER_DISPLAY);
288                 // stuff something into the Velocity Context
289

290                 context.put ("entries", PrintSubscriptionPeer.doSelect(criteria));
291                 
292             }else if (reportid==6){
293                 criteria.addJoin(CustomerPeer.CUSTOMER_ID, ShipmentPeer.RECIPIENT_ID);
294                 criteria.addJoin(ProjectPeer.PROJECT_ID, ShipmentPeer.PROJECT_ID);
295     
296                 setShipmentCriteria(data, criteria);
297                 setCustomerCriteria(data, criteria);
298                 setProjectCriteria(data, criteria);
299                 
300                 criteria.addAscendingOrderByColumn(CustomerPeer.CUSTOMER_DISPLAY);
301                 // stuff something into the Velocity Context
302

303                 context.put ("entries", ShipmentPeer.doSelect(criteria));
304             }
305             
306             context.put ("reptitle", data.getParameters().getString("reptitle"));
307
308             // general formating stuff into the context
309
context.put("df", new SimpleDateFormat JavaDoc ("dd.MM.yyyy"));
310             DecimalFormatSymbols JavaDoc symb= new DecimalFormatSymbols JavaDoc();
311             symb.setDecimalSeparator('.');
312             context.put("af", new DecimalFormat JavaDoc ("0.00", symb));
313             context.put("rf", new DecimalFormat JavaDoc ("0.000000", symb));
314             context.put("today", new Date JavaDoc());
315
316         }
317         catch (Exception JavaDoc e)
318         {
319             throw(e);
320         }
321
322     }
323
324     private void setPaymentCriteria(RunData data, Criteria criteria)
325         throws Exception JavaDoc
326     {
327         Date JavaDoc fromDate= parseDate(data.getParameters().getString("fromdate"));
328         Date JavaDoc toDate= parseDate(data.getParameters().getString("todate"));
329         int status= data.getParameters().getInt("status", 30);
330         
331         if (status==50){
332             Criteria.Criterion b1 = criteria.getNewCriterion(PaymentPeer.CLOSED_DATE, fromDate, Criteria.GREATER_EQUAL);
333             Criteria.Criterion b2 = criteria.getNewCriterion(PaymentPeer.CLOSED_DATE, toDate, Criteria.LESS_THAN);
334             criteria.add( b1.and( b2));
335         }else{
336             Criteria.Criterion b1 = criteria.getNewCriterion(PaymentPeer.ISSUED_DATE, fromDate, Criteria.GREATER_EQUAL);
337             Criteria.Criterion b2 = criteria.getNewCriterion(PaymentPeer.ISSUED_DATE, toDate, Criteria.LESS_THAN);
338             criteria.add( b1.and( b2));
339         }
340
341         criteria.add(PaymentPeer.STATUS, new Integer JavaDoc(status), Criteria.EQUAL);
342     }
343
344     private void setOnlineSubscriptionCriteria(RunData data, Criteria criteria)
345         throws Exception JavaDoc
346     {
347         Date JavaDoc fromDate= parseDate(data.getParameters().getString("fromdate"));
348         Date JavaDoc toDate= parseDate(data.getParameters().getString("todate"));
349         int status= data.getParameters().getInt("status", 30);
350         
351         if (status==50){
352             Criteria.Criterion b1 = criteria.getNewCriterion(OnlineSubscriptionPeer.CLOSED_DATE, fromDate, Criteria.GREATER_EQUAL);
353             Criteria.Criterion b2 = criteria.getNewCriterion(OnlineSubscriptionPeer.CLOSED_DATE, toDate, Criteria.LESS_THAN);
354             criteria.add( b1.and( b2));
355         }else{
356             Criteria.Criterion b1 = criteria.getNewCriterion(OnlineSubscriptionPeer.ISSUED_DATE, fromDate, Criteria.GREATER_EQUAL);
357             Criteria.Criterion b2 = criteria.getNewCriterion(OnlineSubscriptionPeer.ISSUED_DATE, toDate, Criteria.LESS_THAN);
358             criteria.add( b1.and( b2));
359         }
360
361         criteria.add(OnlineSubscriptionPeer.STATUS, new Integer JavaDoc(status), Criteria.EQUAL);
362     }
363
364     private void setPrintSubscriptionCriteria(RunData data, Criteria criteria)
365         throws Exception JavaDoc
366     {
367         Date JavaDoc fromDate= parseDate(data.getParameters().getString("fromdate"));
368         Date JavaDoc toDate= parseDate(data.getParameters().getString("todate"));
369         int status= data.getParameters().getInt("status", 30);
370         
371         if (status==50){
372             Criteria.Criterion b1 = criteria.getNewCriterion(PrintSubscriptionPeer.CLOSED_DATE, fromDate, Criteria.GREATER_EQUAL);
373             Criteria.Criterion b2 = criteria.getNewCriterion(PrintSubscriptionPeer.CLOSED_DATE, toDate, Criteria.LESS_THAN);
374             criteria.add( b1.and( b2));
375         }else{
376             Criteria.Criterion b1 = criteria.getNewCriterion(PrintSubscriptionPeer.ISSUED_DATE, fromDate, Criteria.GREATER_EQUAL);
377             Criteria.Criterion b2 = criteria.getNewCriterion(PrintSubscriptionPeer.ISSUED_DATE, toDate, Criteria.LESS_THAN);
378             criteria.add( b1.and( b2));
379         }
380
381         criteria.add(PrintSubscriptionPeer.STATUS, new Integer JavaDoc(status), Criteria.EQUAL);
382     }
383
384     private void setShipmentCriteria(RunData data, Criteria criteria)
385         throws Exception JavaDoc
386     {
387         Date JavaDoc fromDate= parseDate(data.getParameters().getString("fromdate"));
388         Date JavaDoc toDate= parseDate(data.getParameters().getString("todate"));
389         int status= data.getParameters().getInt("status", 30);
390         
391         if (status==50){
392             Criteria.Criterion b1 = criteria.getNewCriterion(ShipmentPeer.CLOSED_DATE, fromDate, Criteria.GREATER_EQUAL);
393             Criteria.Criterion b2 = criteria.getNewCriterion(ShipmentPeer.CLOSED_DATE, toDate, Criteria.LESS_THAN);
394             criteria.add( b1.and( b2));
395         }else{
396             Criteria.Criterion b1 = criteria.getNewCriterion(ShipmentPeer.ISSUED_DATE, fromDate, Criteria.GREATER_EQUAL);
397             Criteria.Criterion b2 = criteria.getNewCriterion(ShipmentPeer.ISSUED_DATE, toDate, Criteria.LESS_THAN);
398             criteria.add( b1.and( b2));
399         }
400
401         criteria.add(ShipmentPeer.STATUS, new Integer JavaDoc(status), Criteria.EQUAL);
402     }
403
404     private void setCustomerCriteria(RunData data, Criteria criteria)
405         throws Exception JavaDoc
406     {
407         int customerId = data.getParameters().getInt("customerid", 999);
408         int customerCatId = data.getParameters().getInt("customercatid", 999);
409         int customerType = data.getParameters().getInt("customertype", 1);
410         int countryId = data.getParameters().getInt("countryid", 999);
411         int regionId = data.getParameters().getInt("regionid", 999);
412         int languageId = data.getParameters().getInt("languageid", 999);
413         int householdCatId = data.getParameters().getInt("householdcatid", 999);
414         int educationCatId = data.getParameters().getInt("educationcatid", 999);
415         
416         if (customerId>999){
417             criteria.add(CustomerPeer.CUSTOMER_ID, new Integer JavaDoc(customerId), Criteria.EQUAL);
418         }else{
419             
420             if (customerType>1){
421                 criteria.add(CustomerPeer.CUSTOMER_TYPE, new Integer JavaDoc(customerType), Criteria.EQUAL);
422             }
423             if (customerCatId>999){
424                 criteria.add(CustomerPeer.CUSTOMER_CAT_ID, new Integer JavaDoc(customerCatId), Criteria.EQUAL);
425             }
426             if (countryId>999){
427                 criteria.add(CustomerPeer.COUNTRY_ID, new Integer JavaDoc(countryId), Criteria.EQUAL);
428             }
429             if (regionId>999){
430                 criteria.add(CustomerPeer.REGION_ID, new Integer JavaDoc(regionId), Criteria.EQUAL);
431             }
432             if (languageId>999){
433                 criteria.add(CustomerPeer.LANGUAGE_ID, new Integer JavaDoc(languageId), Criteria.EQUAL);
434             }
435             if (householdCatId>999){
436                 criteria.add(CustomerPeer.HOUSEHOLD_CAT_ID, new Integer JavaDoc(householdCatId), Criteria.EQUAL);
437             }
438             if (educationCatId>999){
439                 criteria.add(CustomerPeer.EDUCATION_CAT_ID, new Integer JavaDoc(educationCatId), Criteria.EQUAL);
440             }
441         }
442         
443     }
444
445     private void setProjectCriteria(RunData data, Criteria criteria)
446         throws Exception JavaDoc
447     {
448         int projectId = data.getParameters().getInt("projectid", 999);
449         int projectCatId = data.getParameters().getInt("projectcatid", 999);
450         
451         if (projectId>999){
452             criteria.add(ProjectPeer.PROJECT_ID, new Integer JavaDoc(projectId), Criteria.EQUAL);
453         }else{
454             
455             if (projectCatId>999){
456                 criteria.add(ProjectPeer.PROJECT_CAT_ID, new Integer JavaDoc(projectCatId), Criteria.EQUAL);
457             }
458         }
459         
460     }
461
462     private void setProductCriteria(RunData data, Criteria criteria)
463         throws Exception JavaDoc
464     {
465         
466         int productId = data.getParameters().getInt("productid", 999);
467         int productCatId = data.getParameters().getInt("productcatid", 999);
468         int productType = data.getParameters().getInt("producttype", 1);
469         int vendorId = data.getParameters().getInt("vendorid", 999);
470         int uomId = data.getParameters().getInt("uomid", 999);
471         
472         if (productId>999){
473             criteria.add(ProductPeer.PRODUCT_ID, new Integer JavaDoc(productId), Criteria.EQUAL);
474         }else{
475             
476             if (productType>1){
477                 criteria.add(ProductPeer.PRODUCT_TYPE, new Integer JavaDoc(productType), Criteria.EQUAL);
478             }
479             if (productCatId>999){
480                 criteria.add(ProductPeer.PRODUCT_CAT_ID, new Integer JavaDoc(productCatId), Criteria.EQUAL);
481             }
482             if (vendorId>999){
483                 criteria.add(ProductPeer.VENDOR_ID, new Integer JavaDoc(vendorId), Criteria.EQUAL);
484             }
485             if (uomId>999 || (uomId<900 && uomId>100)){
486                 criteria.add(ProductPeer.UOM_ID, new Integer JavaDoc(uomId), Criteria.EQUAL);
487             }
488         }
489     }
490
491     
492     /**
493      * Implement this to add information to the context.
494      *
495      * @param data Turbine information.
496      * @param context Context for web pages.
497      * @exception Exception, a generic exception.
498      */

499     public void doPerform( RunData data,Context context )
500         throws Exception JavaDoc
501     {
502         data.setMessage("Can't find the button!");
503     }
504
505     /**
506      * This currently only checks to make sure that user is allowed to
507      * view the storage area. If you create an action that requires more
508      * security then override this method.
509      *
510      * @param data Turbine information.
511      * @return True if the user is authorized to access the screen.
512      * @exception Exception, a generic exception.
513      */

514     protected boolean isAuthorized( RunData data ) throws Exception JavaDoc
515     {
516         int reportid= data.getParameters().getInt("reportid", 0);
517         boolean isAuthorized = false;
518
519         AccessControlList acl = data.getACL();
520         
521         if (reportid==1 && data.getUser().hasLoggedIn() && (acl.hasPermission( "PAYMENT_VIEW") || acl.hasRole("turbine_root")))
522         {
523             isAuthorized = true;
524         }
525         else if (reportid==2 && data.getUser().hasLoggedIn() && (acl.hasPermission( "PAYMENT_VIEW") || acl.hasRole("turbine_root")))
526         {
527             isAuthorized = true;
528         }
529         else if (reportid==3 && data.getUser().hasLoggedIn() && (acl.hasPermission( "ONLINE_SUBSCRIPTION_VIEW") || acl.hasRole("turbine_root")))
530         {
531             isAuthorized = true;
532         }
533         else if (reportid==4 && data.getUser().hasLoggedIn() && (acl.hasPermission( "PRINT_SUBSCRIPTION_VIEW") || acl.hasRole("turbine_root")))
534         {
535             isAuthorized = true;
536         }
537         else if (reportid==5 && data.getUser().hasLoggedIn() && (acl.hasPermission( "PRINT_SUBSCRIPTION_VIEW") || acl.hasRole("turbine_root")))
538         {
539             isAuthorized = true;
540         }
541         else if (reportid==6 && data.getUser().hasLoggedIn() && (acl.hasPermission( "SHIPMENT_VIEW") || acl.hasRole("turbine_root")))
542         {
543             isAuthorized = true;
544         }
545         else
546         {
547             data.setMessage("Sorry, you don't have permission for this operation!");
548             this.setTemplate( data, "CreamError.vm");
549
550             isAuthorized = false;
551         }
552
553         return isAuthorized;
554     }
555
556     protected Date JavaDoc parseDateTime(String JavaDoc d)
557         throws Exception JavaDoc
558     {
559 // return DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM).parse(d);
560
SimpleDateFormat JavaDoc formatter = new SimpleDateFormat JavaDoc ("dd.MM.yyyy hh:mm:ss");
561         ParsePosition JavaDoc pos = new ParsePosition JavaDoc(0);
562         return formatter.parse(d, pos);
563     }
564
565     protected Date JavaDoc parseDate(String JavaDoc d)
566         throws Exception JavaDoc
567     {
568 // return DateFormat.getDateInstance(DateFormat.SHORT).parse(d);
569
SimpleDateFormat JavaDoc formatter = new SimpleDateFormat JavaDoc ("dd.MM.yyyy");
570         ParsePosition JavaDoc pos = new ParsePosition JavaDoc(0);
571         try{
572             Date JavaDoc myDate= formatter.parse(d, pos);
573             return myDate;
574         }
575         catch (Exception JavaDoc e)
576         {
577             return null;
578         }
579             
580     }
581
582 }
583
Popular Tags