diff --git a/addons/point_of_sale/report/pos_receipt.py b/addons/point_of_sale/report/pos_receipt.py
index 687519d2457..69f4bd706c2 100644
--- a/addons/point_of_sale/report/pos_receipt.py
+++ b/addons/point_of_sale/report/pos_receipt.py
@@ -22,6 +22,7 @@
import time
from report import report_sxw
+from mx.DateTime.ISO import ParseAny
import pooler
@@ -35,11 +36,17 @@ class order(report_sxw.rml_parse):
self.localcontext.update({
'time': time,
+ 'dformat': '%Y/%m/%d %H:%M:%S',
'disc': self.discount,
'net': self.netamount,
+ 'formatdate': self.formatdate,
'address': partner.address and partner.address[0] or False,
})
+ def formatdate(self, datestr):
+ dateobj = ParseAny(datestr)
+ return dateobj.strftime(self.localcontext['dformat'])
+
def netamount(self, order_line_id):
sql = 'select (qty*price_unit) as net_price from pos_order_line where id = %s'
self.cr.execute(sql, (order_line_id,))
diff --git a/addons/point_of_sale/report/pos_receipt.rml b/addons/point_of_sale/report/pos_receipt.rml
index 75b5ce3f01e..067d775db2f 100644
--- a/addons/point_of_sale/report/pos_receipt.rml
+++ b/addons/point_of_sale/report/pos_receipt.rml
@@ -83,8 +83,8 @@
Tel : [[ address and address.phone ]]
E-mail : [[ address and address.email ]]
Salesman : [[ o.salesman_id.name ]]
- Sale Date : [[ o.date_order ]]
- Receipt Printing Date : [[ time.strftime('%d/%m/%Y %H:%M') ]]
+ Sale Date : [[ formatdate(o.date_order) ]]
+ Receipt Printing Date : [[ time.strftime(dformat) ]]
diff --git a/addons/report_task/i18n/de_DE.po b/addons/report_task/i18n/de_DE.po
index 90a78633d48..80aa37c3abd 100644
--- a/addons/report_task/i18n/de_DE.po
+++ b/addons/report_task/i18n/de_DE.po
@@ -161,4 +161,12 @@ msgstr "Fehlerhafter xml Code für diese Ansicht!"
#. module: report_task
#: field:report.closed.task,delay_hours:0
-ms
\ No newline at end of file
+msgid "Delay Hours"
+msgstr ""
+
+#. module: report_task
+#: field:report.closed.task,project_id:0
+msgid "Project"
+msgstr ""
+
+#. module: repo
\ No newline at end of file
diff --git a/addons/report_task/i18n/fr_FR.po b/addons/report_task/i18n/fr_FR.po
index 1aeb2b71c5a..6caaac91dc9 100644
--- a/addons/report_task/i18n/fr_FR.po
+++ b/addons/report_task/i18n/fr_FR.po
@@ -160,4 +160,13 @@ msgid "Invalid XML for View Architecture!"
msgstr "XML non valide pour l'architecture de la vue"
#. module: report_task
-#: field:report.closed.task,delay_hours
\ No newline at end of file
+#: field:report.closed.task,delay_hours:0
+msgid "Delay Hours"
+msgstr ""
+
+#. module: report_task
+#: field:report.closed.task,project_id:0
+msgid "Project"
+msgstr ""
+
+#. module: repo
\ No newline at end of file
diff --git a/addons/scrum/scrum_view.xml b/addons/scrum/scrum_view.xml
index 116dd7bed13..9133f40d242 100644
--- a/addons/scrum/scrum_view.xml
+++ b/addons/scrum/scrum_view.xml
@@ -316,7 +316,7 @@
View sprint Tasks
form
tree,form
- [('product_backlog_id', '=', 'S('+str(active_id)+')')]
+ [('product_backlog_id', '=', active_id)]
diff --git a/addons/scrum/wizard/backlog_to_task.py b/addons/scrum/wizard/backlog_to_task.py
index 4f578494428..4701b95ce29 100644
--- a/addons/scrum/wizard/backlog_to_task.py
+++ b/addons/scrum/wizard/backlog_to_task.py
@@ -46,7 +46,8 @@ def _do_create(self, cr, uid, data, context):
'description': backlog.note,
'project_id': backlog.project_id.id,
'user_id': (backlog.user_id and backlog.user_id.id) or uid,
- 'priority': backlog.priority
+ 'priority': backlog.priority,
+ 'planned_hours': backlog.planned_hours
}))
value = {
diff --git a/addons/stock/stock.py b/addons/stock/stock.py
index e32bdcf3c07..3d6e9c46d68 100644
--- a/addons/stock/stock.py
+++ b/addons/stock/stock.py
@@ -1405,12 +1405,16 @@ class stock_picking_move_wizard(osv.osv_memory):
for act in self.read(cr,uid,ids):
move_lines=move_obj.browse(cr,uid,act['move_ids'])
for line in move_lines:
- picking_obj.write(cr,uid,[line.picking_id.id],{'move_lines':[(1,line.id,{'picking_id':act['picking_id']})]})
- picking_obj.write(cr,uid,[act['picking_id']],{'move_lines':[(1,line.id,{'picking_id':act['picking_id']})]})
- cr.commit()
- old_picking=picking_obj.read(cr,uid,[line.picking_id.id])[0]
- if not len(old_picking['move_lines']):
- picking_obj.write(cr,uid,[old_picking['id']],{'state':'done'})
+ if line.picking_id:
+ picking_obj.write(cr,uid,[line.picking_id.id],{'move_lines':[(1,line.id,{'picking_id':act['picking_id']})]})
+ picking_obj.write(cr,uid,[act['picking_id']],{'move_lines':[(1,line.id,{'picking_id':act['picking_id']})]})
+ cr.commit()
+ old_picking=picking_obj.read(cr,uid,[line.picking_id.id])[0]
+ if not len(old_picking['move_lines']):
+ picking_obj.write(cr,uid,[old_picking['id']],{'state':'done'})
+ else:
+ raise osv.except_osv(_('UserError'),
+ _('You can not create new moves.'))
return {'type':'ir.actions.act_window_close' }
stock_picking_move_wizard()