Siirry sisältöön
Menu
Sinun on rekisteröidyttävä, jotta voit olla vuorovaikutuksessa yhteisön kanssa.
Tämä kysymys on merkitty
2 Vastaukset
7658 Näkymät

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
Hylkää
Tekijä Paras vastaus

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
Hylkää

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

Tekijä

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

Paras vastaus

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
Hylkää
Aiheeseen liittyviä artikkeleita Vastaukset Näkymät Toimenpide
1
heinäk. 16
2445
1
jouluk. 24
880
1
helmik. 19
6446
1
toukok. 25
908
1
marrask. 24
1535