Overslaan naar inhoud
Menu
Je moet geregistreerd zijn om te kunnen communiceren met de community.
Deze vraag is gerapporteerd
2 Antwoorden
7655 Weergaven

Is there some kind of endpoint or get protocol to download a quotation_order printout report without having to use the Odoo GUI?

Thanks

Avatar
Annuleer
Auteur Beste antwoord

Here's my method for generating quotation_order pdf's with Java if anyone finds this in the future:


private void generateOrderReport(final Object internalOdooQuoteId) throws XmlRpcException, IOException {
logger.info("generating quote report pdf for order #: " + internalOdooQuoteId);
final Object internalOdooQuoteIds = asList((Object[]) models.execute("execute_kw", asList(
db, uid, password,
"sale.order", "search",
asList(asList(
asList("id", "=", internalOdooQuoteId)
)),
new HashMap() {{
put("limit", 1);
}}
)));
final XmlRpcClientConfigImpl report_config = new XmlRpcClientConfigImpl();
report_config.setServerURL(
new URL(String.format("%s/xmlrpc/2/report", url)));
final Map<String, Object> result = (Map<String, Object>)models.execute(
report_config, "render_report", asList(
db, uid, password,
"sale.report_saleorder",
internalOdooQuoteIds));
final byte[] report_data = DatatypeConverter.parseBase64Binary(
(String)result.get("result"));
File file = new File("records/quotation_order.pdf");
FileUtils.writeByteArrayToFile(file, report_data);
}
Avatar
Annuleer

If you are looking to get the report of a sale, suppose you have to print the Quotation/Order of the sales having the id is 5, then you can get the report from the url as follows :- 0.0.0.0:8014/report/pdf/sale.report_sale_order/5

Auteur

Do you know how I could do this with the Java example from the docs? sale.report_sale_order doesn't seem to be a model:

final Object[] reportIds = (Object[])models.execute(

"execute_kw", asList(

db, uid, password,

"sale.order", "search",

asList(asList(

))

));

System.out.println(reportIds);

final XmlRpcClientConfigImpl report_config = new XmlRpcClientConfigImpl();

report_config.setServerURL(

new URL(String.format("%s/xmlrpc/2/report", url)));

final Map<String, Object> result = (Map<String, Object>)models.execute(

report_config, "render_report", asList(

db, uid, password,

"sale.report_sale_order",

reportIds));

final byte[] report_data = DatatypeConverter.parseBase64Binary(

(String)result.get("result"));

File file = new File("proposal/odooOutput.pdf");

byte[] bytes = Base64.decodeBase64(report_data);

FileUtils.writeByteArrayToFile(file, report_data);

Try this : 0.0.0.0:8014/report/pdf/sale.report_saleorder/5

Beste antwoord

Hi,

To get the reports from the code without going to the user interface you can check this, after authenticating you can choose any of this methods explained in it :

https://www.odoo.com/forum/help-1/question/how-to-print-report-from-website-121485

Suppose if you have to print the Quotation/Order in the sale order having the id 5, then from url you can get the report like this : http://0.0.0.0:8014/report/pdf/sale.report_saleorder/5

Thanks

Avatar
Annuleer
Gerelateerde posts Antwoorden Weergaven Activiteit
1
jul. 16
2445
1
dec. 24
880
1
feb. 19
6446
1
mei 25
908
1
nov. 24
1535