Search in sources :

Example 11 with MRfQ

use of org.compiere.model.MRfQ in project adempiere by adempiere.

the class RfQServlet method streamAttachment.

//  doGet
/**
	 * 	Stream Attachment
	 * 	@param request request
	 * 	@param response response
	 * 	@return "" or error message
	 */
private String streamAttachment(HttpServletRequest request, HttpServletResponse response) {
    //	Get Note ID
    int C_RfQ_ID = WebUtil.getParameterAsInt(request, "C_RfQ_ID");
    if (C_RfQ_ID == 0) {
        log.fine("streamAttachment - no ID)");
        return "No RfQ ID";
    }
    //	Get Note
    Properties ctx = JSPEnv.getCtx(request);
    MRfQ doc = new MRfQ(ctx, C_RfQ_ID, null);
    if (doc.getC_RfQ_ID() != C_RfQ_ID) {
        log.fine("streamAttachment - RfQ not found - ID=" + C_RfQ_ID);
        return "RfQ not found";
    }
    if (!doc.isPdfAttachment())
        return "No PDF Attachment found";
    byte[] data = doc.getPdfAttachment();
    if (data == null)
        return "No PDF Attachment";
    //	Send PDF
    try {
        //	2k Buffer
        int bufferSize = 2048;
        int fileLength = data.length;
        //
        response.setContentType("application/pdf");
        response.setBufferSize(bufferSize);
        response.setContentLength(fileLength);
        //
        log.fine("streamAttachment - length=" + fileLength);
        //	timer start
        long time = System.currentTimeMillis();
        //
        ServletOutputStream out = response.getOutputStream();
        out.write(data);
        out.flush();
        out.close();
        //
        time = System.currentTimeMillis() - time;
        double speed = (fileLength / 1024) / ((double) time / 1000);
        log.fine("streamInvoice - length=" + fileLength + " - " + time + " ms - " + speed + " kB/sec");
    } catch (IOException ex) {
        log.log(Level.SEVERE, "streamAttachment - " + ex);
        return "Streaming error";
    }
    return null;
}
Also used : MRfQ(org.compiere.model.MRfQ) ServletOutputStream(javax.servlet.ServletOutputStream) IOException(java.io.IOException) Properties(java.util.Properties)

Aggregations

MRfQ (org.compiere.model.MRfQ)11 MRfQResponse (org.compiere.model.MRfQResponse)5 BigDecimal (java.math.BigDecimal)3 MBPartner (org.compiere.model.MBPartner)3 MRfQLine (org.compiere.model.MRfQLine)3 MRfQLineQty (org.compiere.model.MRfQLineQty)3 PreparedStatement (java.sql.PreparedStatement)2 ResultSet (java.sql.ResultSet)2 MOrder (org.compiere.model.MOrder)2 MOrderLine (org.compiere.model.MOrderLine)2 IOException (java.io.IOException)1 ArrayList (java.util.ArrayList)1 Calendar (java.util.Calendar)1 Properties (java.util.Properties)1 ServletOutputStream (javax.servlet.ServletOutputStream)1 MResource (org.compiere.model.MResource)1 MRfQResponseLine (org.compiere.model.MRfQResponseLine)1 MRfQResponseLineQty (org.compiere.model.MRfQResponseLineQty)1 MRfQTopic (org.compiere.model.MRfQTopic)1 MRfQTopicSubscriber (org.compiere.model.MRfQTopicSubscriber)1