forum.bitel.ru http://forum.bitel.ru/ |
|
Прикрепить счет к письму http://forum.bitel.ru/viewtopic.php?f=19&t=10541 |
Страница 1 из 1 |
Автор: | skyb [ 22 май 2015, 08:22 ] |
Заголовок сообщения: | Прикрепить счет к письму |
Подскажите как это делать. |
Автор: | Artur [ 22 май 2015, 09:56 ] |
Заголовок сообщения: | Re: Прикрепить счет к письму |
1) Формируете счет 2) в MailMsg прикрепляете созданный счет 3) вызываете send() у MailMsg |
Автор: | dimOn [ 22 май 2015, 11:31 ] |
Заголовок сообщения: | Re: Прикрепить счет к письму |
без примеров такое нельзя приводить ![]() |
Автор: | Phricker [ 22 май 2015, 11:46 ] |
Заголовок сообщения: | Re: Прикрепить счет к письму |
dimOn писал(а): без примеров такое нельзя приводить ![]() Цитата: вот опять пишу, незя без примеров такое писать, незя !!! ))))
|
Автор: | Phricker [ 22 май 2015, 11:50 ] |
Заголовок сообщения: | Re: Прикрепить счет к письму |
http://stackoverflow.com/questions/1611 ... using-java |
Автор: | skyb [ 22 май 2015, 13:39 ] |
Заголовок сообщения: | Re: Прикрепить счет к письму |
пятничные троли блин )))) от куда берется pdf. если бы сохранено было куда то на диск я бы и не писал, а тут непонятно мне от куда этот пдф взять |
Автор: | skyb [ 22 май 2015, 18:33 ] |
Заголовок сообщения: | Re: Прикрепить счет к письму |
все протролили а поделу никто не сказал ![]() |
Автор: | skyb [ 26 май 2015, 06:55 ] |
Заголовок сообщения: | Re: Прикрепить счет к письму |
ап |
Автор: | vkulakov [ 26 май 2015, 15:07 ] |
Заголовок сообщения: | Re: Прикрепить счет к письму |
Сейчас код поищу, который pdf делает. |
Автор: | vkulakov [ 26 май 2015, 15:14 ] |
Заголовок сообщения: | Re: Прикрепить счет к письму |
Код: private String XSL = "contract_print_bill.xsl"; ... try { DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dFactory.newDocumentBuilder(); Document doc = dBuilder.newDocument(); Element billElement = doc.createElement("bill"); billElement.setAttribute("summ", summ.toPlainString()); billElement.setAttribute("contractTitle", contractTitle); billElement.setAttribute("contractClient", contractClient); billElement.setAttribute("contractAddress", contractAddress); Element dataElement = doc.createElement("data"); dataElement.appendChild(billElement); doc.appendChild(dataElement); getResponse().setContentType("application/pdf"); getResponse().setHeader("Content-Disposition", FileDownload.getContentDisposition(request, fileName.toString(), true)); XSLManager.getInstance().transform(new DOMSource(doc), XSL, FOUtils.renderSAXResult(getResponse().getOutputStream(), "application/pdf")); } catch (Exception e) { log.error("Cannot generate pdf", e); } Я здесь с нуля создаю xml и передаю её в XSLManager. Вы можете XML со счётом получить из базы напрямую, можете через API биллинга. Stream можете в файл направить, а можете, наверное, сразу в письмо. Вообще, со всех сторон трубят про F3 в Eclipse, могли бы и сами посмотреть. |
Автор: | skyb [ 26 май 2015, 17:30 ] |
Заголовок сообщения: | Re: Прикрепить счет к письму |
да, есть код Код: XSLManager.getInstance().transformAndSend(XSL, new DOMSource(xml), params, "application/pdf", fileName, zip, email, emailSubject); тока чета в API ненашел по нему инфы XSL - это путь до файла xsl ? Код: String XSL = "/usr/local/BGBillingServer/webroot/xsl/bill_pdf.xsl"; new DOMSource(xml) - сюда вставлять xml ? а как правильно ее получить? я попробовал sql запросом, строка ругается Код: int cid = 938; String query = " select xml, format_number, create_dt from bill_data_2 "+ " where cid = " + cid + " AND id = " + 2012; PreparedStatement ps = con.prepareStatement(query); ResultSet rs = ps.executeQuery(); while (rs.next()) { String xml = new String( rs.getBytes(1), "windows-1251" ); //format_number = rs.getString(2); //create_dt = rs.getString(3); print (xml); params - вообще не понял что это, с остальным вроде прпвильно? |
Автор: | vkulakov [ 26 май 2015, 20:19 ] |
Заголовок сообщения: | Re: Прикрепить счет к письму |
А F3 не работает? Последовательность примерно такая: Код: // Получение XML из базы. if (invoice) { data = new InvoiceManager(this.setup, con, mid, moduleSetup).getXMLData(cid.intValue(), id); } else { data = new BillManager(this.setup, con, mid, moduleSetup).getXMLData(cid.intValue(), id); } Код: ByteArrayInputStream bis = new ByteArrayInputStream(data); Document doc = XMLUtils.parseDocument(new InputSource(bis)); Element bill = (Element) doc.getDocumentElement().getElementsByTagName("bill").item(0); bill.setAttribute("with_stamp", "1"); XSLManager.getInstance().transform(new DOMSource(doc), patternName, FOUtils.renderSAXResult(getOutputStream(), "application/pdf")); где patternName - просто имя файла xsl, как оно указано в типе документа. В вашем примере params - не знаю, что это такое, смотрите по коду. У меня такого нет. Не забываем, что всё это для версии 6.0. |
Автор: | skyb [ 27 май 2015, 01:07 ] |
Заголовок сообщения: | Re: Прикрепить счет к письму |
F3 работает, но если честно не смог разобраться, спасибо, все получилось, с меня + мы же тут помогать собрались ![]() |
Автор: | vkulakov [ 27 май 2015, 12:26 ] |
Заголовок сообщения: | Re: Прикрепить счет к письму |
У меня просто версия другая, поэтому активно на F3 и настаиваю. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |