This question has been flagged
6 Replies
11040 Views

hi i want to addition in date in odoo directives in odoov8

in reports i print invoice date using

<span t-field="o.date_invoice"/>;

now i want to add days in this date meansmy invoice date is 10/01/2015 and my pament term days is 15 so i want to add 15 days in date in report.xml file through qweb directives so output is 10/16/2015 (10/01/2015(mm/dd/yyyy) + 15days = 10/16/2015)

i get payment term days from this

<tr t-foreach="o.payment_term.line_ids" t-as="pl">

<td> <span t-field="pl.days"/> </td> 

</tr>

so how can i do addition in date in qweb directives

Avatar
Discard
Best Answer

I have solved it with this line of codes. Try it to print in invoice report

<div t-esc="( datetime.datetime.strptime(o.date_invoice, '%Y-%m-%d %H:%M:%S') + datetime.timedelta(days=15) ).strftime('%m/%d/%Y')">
 

Kind Regards,

Avatar
Discard

Thank you, Jaydeep.

+1 from me.

It works in Odoo 11 thank you

Best Answer

hi,

i have solved it with this line of codes. In my example i had adapted the report_saleorder.xml. 

<span t-set="d_delta" t-value="datetime.timedelta(days=17)"/>

<span t-set="d_dateorder" t-value="datetime.datetime.strptime(doc.date_order,'%Y-%m-%d %H:%M:%S')"/>

<span t-set="d_paydate" t-value="d_dateorder + d_delta"/>

<span t-esc="d_paydate.strftime('%d.%m.%Y')"/>

To use the datetime object you have to import the datetime object. --&gt; from datetime import datetime, timedelta this i have added to sale_report.py. 

best regards

Avatar
Discard
Author

i try with this code

but it gives following error ""'str' object has no attribute 'strptime'" while evaluating "o.date_invoice.strptime('%Y-%m-%d %H:%M:%S')"" while evaluating "translate_doc(doc_id, doc_model, 'partner_id.lang', 'account.report_without_prices_document')"
Author

my code is

Author

in my opinion you have to put your date_invoice into the braces of the strptime. Have look on the python website https://docs.python.org/2/library/time.html