1
2 package com.pnpconsult.zeiterfassung.actions.manager;
3
4 import java.io.OutputStream;
5
6 import javax.servlet.http.HttpServletRequest;
7 import javax.servlet.http.HttpServletResponse;
8 import javax.xml.transform.Source;
9
10 import org.apache.struts.action.Action;
11 import org.apache.struts.action.ActionForm;
12 import org.apache.struts.action.ActionForward;
13 import org.apache.struts.action.ActionMapping;
14
15 import com.pnpconsult.zeiterfassung.helper.BillManager;
16 import com.pnpconsult.zeiterfassung.helper.TableManager;
17 import com.pnpconsult.zeiterfassung.model.Bill;
18 import com.pnpconsult.zeiterfassung.pdf.PdfSerializer;
19 import com.pnpconsult.zeiterfassung.pdf.TableXmlProducer;
20 import com.pnpconsult.zeiterfassung.table.Table;
21
22 /***
23 * @author <a href="mailto:powerpete@users.sf.net">M. Petersen</a>
24 * @version $Id: PrintBillAction.java,v 1.6 2004/06/24 20:54:19 powerpete Exp $
25 *
26 * @struts.action
27 * path="/secure/manager/printBill"
28 * name="managerMenuForm"
29 * scope="request"
30 * validate="false"
31 */
32 public class PrintBillAction extends Action
33 {
34 private PdfSerializer pdfSerializer = new PdfSerializer();
35
36 public ActionForward execute(
37 ActionMapping mapping,
38 ActionForm form,
39 HttpServletRequest request,
40 HttpServletResponse response) throws Exception
41 {
42 TableManager manager = new TableManager();
43 Table table = manager.get(request);
44 Bill bill = table.getBill();
45 response.reset();
46 response.setContentType("application/pdf");
47 response.addHeader(
48 "Content-Disposition",
49 "attachment; filename=" + bill + ".pdf");
50 Source source = new TableXmlProducer(table).getSource();
51 OutputStream out = response.getOutputStream();
52 pdfSerializer.serialize(source, out);
53 if (!bill.isPrinted())
54 {
55 bill.setPrinted(true);
56 new BillManager().update(bill);
57 }
58 return null;
59 }
60 }