diff --git a/addons/account/report/overdue.rml b/addons/account/report/overdue.rml index f9f213f0d89..aa0d111b28f 100644 --- a/addons/account/report/overdue.rml +++ b/addons/account/report/overdue.rml @@ -14,195 +14,193 @@ + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - [[ repeatIn(objects,'o') ]] - [[ setLang(o.lang) ]] + [[ repeatIn(objects,'o') ]] + [[ setLang(o.lang) ]] - + - [[ o.name ]] - [[ adr_get(o, 'invoice')['name'] ]] - [[ adr_get(o, 'invoice')['street'] ]] - [[ adr_get(o, 'invoice')['zip'] ]] [[ adr_get(o, 'invoice')['city'] ]] - [[ adr_get(o, 'invoice')['country_id'] and adr_get(o, 'invoice')['country_id'][1] ]] - + [[ o.name ]] + [[ adr_get(o, 'invoice')['name'] ]] + [[ adr_get(o, 'invoice')['street'] ]] + [[ adr_get(o, 'invoice')['zip'] ]] [[ adr_get(o, 'invoice')['city'] ]] + [[ adr_get(o, 'invoice')['country_id'] and adr_get(o, 'invoice')['country_id'][1] ]] + - VAT: [[ o.vat or removeParentNode('para') ]] + VAT: [[ o.vat or removeParentNode('para') ]] + + + + + + + Document: Customer account statement - + Date: + [[ time.strftime('%d/%m/%Y') ]] - - - - Document: Customer account statement - - Date: - [[ time.strftime('%d/%m/%Y') ]] - - Customer Ref: [[ o.id ]] - - - - Dear Sir/Madam, - - - - Exception made of a mistake of our side, it seems that the following bills stay unpaid. Please, take appropriate measures in order to carry out this payment in the next 8 days. - - - - Would your payment have been carried out after this mail was sent, please consider the present one as void. Do not hesitate to contact our accounting departement at [[ tel_get(company.partner_id) ]]. - - - - Best regards. + Customer Ref: [[ o.id ]] - + Dear Sir/Madam, + + + + Exception made of a mistake of our side, it seems that the following bills stay unpaid. Please, take appropriate measures in order to carry out this payment in the next 8 days. + + + + Would your payment have been carried out after this mail was sent, please consider the present one as void. Do not hesitate to contact our accounting departement at +32 81 81 37 00. + + + + Best regards. + + + + - Date + Date - Description + Description - Ref + Ref - Maturity date + Maturity date - Due + Due - Paid + Paid - Maturity + Maturity - Li. + Li. - + - - [[repeatIn(getLines(o), 'line') ]] - [[ line['date'] ]] - + Sub-Total: + + + + + + [[ '%.2f' % (reduce(lambda x, y: x + (y['debit'] * (y['account_id']['type'] == 'payable' and -1 or 1)), getLines(o), 0)) ]] - [[ line['name'] ]] + [[ '%.2f' % (reduce(lambda x ,y: x + (y['credit'] * (y['account_id']['type'] == 'payable' and -1 or 1)), getLines(o), 0)) ]] - [[ line['ref'] ]] + [[ '%.2f' % (reduce(lambda x, y: x + ((y['debit'] - y['credit']) * (y['account_id']['type'] == 'payable' and -1 or 1)), filter(lambda x: x['date_maturity'] < time.strftime('%Y-%m-%d'), getLines(o)), 0)) ]] - [[ line['date_maturity'] ]] - - - [[ line['debit'] and '%.2f' % (line['debit'] * (line['account_id']['type'] == 'payable' and -1 or 1)) or '' ]] - - - [[ line['credit'] and '%.2f' % (line['credit'] * (line['account_id']['type'] == 'payable' and -1 or 1)) or '' ]] - - - [[ (line['date_maturity'] < time.strftime('%Y-%m-%d')) and '%.2f' % ((line['debit'] - line['credit']) * (line['account_id']['type'] == 'payable' and -1 or 1)) or '' ]] - - - [[ line['blocked'] and 'X' or '' ]] - - - - - - - Sub-Total: - - - [[ '%.2f' % (reduce(lambda x, y: x + (y['debit'] * (y['account_id']['type'] == 'payable' and -1 or 1)), getLines(o), 0)) ]] - - - - [[ '%.2f' % (reduce(lambda x ,y: x + (y['credit'] * (y['account_id']['type'] == 'payable' and -1 or 1)), getLines(o), 0)) ]] - - - - [[ '%.2f' % (reduce(lambda x, y: x + ((y['debit'] - y['credit']) * (y['account_id']['type'] == 'payable' and -1 or 1)), filter(lambda x: x['date_maturity'] < time.strftime('%Y-%m-%d'), getLines(o)), 0)) ]] - - - + - Balance: + Balance: + + + + + + [[ '%.2f' % (reduce(lambda x, y: x +((y['debit'] - y['credit']) * (y['account_id']['type'] == 'payable' and -1 or 1)), getLines(o), 0)) ]] - [[ '%.2f' % (reduce(lambda x, y: x +((y['debit'] - y['credit']) * (y['account_id']['type'] == 'payable' and -1 or 1)), getLines(o), 0)) ]] + + + @@ -210,27 +208,52 @@ - + + + + + + + [[repeatIn(getLines(o), 'line') ]] + [[ line['date'] ]] + + - - - + [[ line['name'] ]] + + + [[ line['ref'] ]] + + + [[ line['date_maturity'] ]] + + + [[ line['debit'] and '%.2f' % (line['debit'] * (line['account_id']['type'] == 'payable' and -1 or 1)) or '' ]] + + + [[ line['credit'] and '%.2f' % (line['credit'] * (line['account_id']['type'] == 'payable' and -1 or 1)) or '' ]] + + + [[ (line['date_maturity'] < time.strftime('%Y-%m-%d')) and '%.2f' % ((line['debit'] - line['credit']) * (line['account_id']['type'] == 'payable' and -1 or 1)) or '' ]] + + + [[ line['blocked'] and 'X' or '' ]] - + - - Total amount due: - [[ '%.2f' % (reduce(lambda x, y: x + ((y['debit'] - y['credit']) * (y['account_id']['type'] == 'payable' and -1 or 1)), getLines(o), 0)) ]] [[ company.currency_id.name ]]. + + Total amount due: + [[ '%.2f' % (reduce(lambda x, y: x + ((y['debit'] - y['credit']) * (y['account_id']['type'] == 'payable' and -1 or 1)), getLines(o), 0)) ]] [[ company.currency_id.name ]] + . - + - diff --git a/addons/account/report/partner_balance.py b/addons/account/report/partner_balance.py index d7e82431ce4..0e9b0777d14 100644 --- a/addons/account/report/partner_balance.py +++ b/addons/account/report/partner_balance.py @@ -85,6 +85,7 @@ class partner_balance(report_sxw.rml_parse): def transform_date_into_date_array(self,data): + return_array = self.date_range(data['form']['date1'],data['form']['date2']) self.date_lst = return_array self.date_lst.sort() @@ -109,9 +110,12 @@ class partner_balance(report_sxw.rml_parse): # Transformation des date # # - if data['form'].has_key('fiscalyear'): + + if data['form']['fiscalyear']: + print"data['form']['fiscalyear']=True" self.transform_period_into_date_array(data) else: + print"data['form']['fiscalyear']=False" self.transform_date_into_date_array(data) ## self.date_lst_string = '\'' + '\',\''.join(map(str,self.date_lst)) + '\'' @@ -202,7 +206,7 @@ class partner_balance(report_sxw.rml_parse): "GROUP BY p.id, p.ref, p.name,l.account_id,ac.name,ac.code " \ "ORDER BY l.account_id,p.name") res = self.cr.dictfetchall() - print"=====res=====",res + for r in res: full_account.append(r) @@ -241,7 +245,7 @@ class partner_balance(report_sxw.rml_parse): # r['type'] = 1 r['balance'] = float(r['sdebit']) - float(r['scredit']) - print"====i = 0 :completearray====",completearray,i + completearray.append(r) # tot_debit = r['debit'] @@ -303,7 +307,7 @@ class partner_balance(report_sxw.rml_parse): r['balance'] = float(r['sdebit']) - float(r['scredit']) # completearray.append(r) - print"====i!=0 completearray====",completearray,i + if cleanarray[i]['account_id'] == cleanarray[i-1]['account_id']: # we reset the counter @@ -332,6 +336,7 @@ class partner_balance(report_sxw.rml_parse): result_tmp = 0.0 # # + if data['form']['soldeinit'] : self.cr.execute( 'SELECT sum(debit) ' \ diff --git a/addons/account/wizard/wizard_partner_balance_report.py b/addons/account/wizard/wizard_partner_balance_report.py index 08af6074215..98c5d0a5984 100644 --- a/addons/account/wizard/wizard_partner_balance_report.py +++ b/addons/account/wizard/wizard_partner_balance_report.py @@ -29,78 +29,68 @@ import time import wizard import pooler -report_type = ''' -
-
''' - - -dates_form = ''' -
- +period_form = ''' + + + + + + + - - -''' - -dates_fields = { - 'company_id': {'string': 'Company', 'type': 'many2one', 'relation': 'res.company', 'required': True}, - 'result_selection':{'string':"Display partner ",'type':'selection','selection':[('customer','Debiteur'),('supplier','Creancier'),('all','Tous')]}, - 'soldeinit':{'string':"Inclure les soldes initiaux",'type':'boolean'}, - 'date1': {'string':'Start date', 'type':'date', 'required':True, 'default': lambda *a: time.strftime('%Y-01-01')}, - 'date2': {'string':'End date', 'type':'date', 'required':True, 'default': lambda *a: time.strftime('%Y-%m-%d')}, -} - -period_form = ''' -
- - - - - + + + + ''' period_fields = { 'company_id': {'string': 'Company', 'type': 'many2one', 'relation': 'res.company', 'required': True}, + 'state':{'string':"Report Type",'type':'selection','selection':[('bydate','By Date'),('byperiod','By Period')],'default': lambda *a:'byperiod' }, 'fiscalyear': {'string': 'Fiscal year', 'type': 'many2one', 'relation': 'account.fiscalyear', - 'help': 'Keep empty for all open fiscal year'}, - 'periods': {'string': 'Periods', 'type': 'many2many', 'relation': 'account.period', 'help': 'All periods if empty'}, - 'result_selection':{'string':"Display partner",'type':'selection','selection':[('customer','Debiteur'),('supplier','Creancier'),('all','Tous')]}, - 'soldeinit':{'string':"Inclure les soldes initiaux",'type':'boolean'}, + 'help': 'Keep empty for all open fiscal year','states':{'none':[('readonly',True)],'bydate':[('readonly',True)]}}, + 'periods': {'string': 'Periods', 'type': 'many2many', 'relation': 'account.period', 'help': 'All periods if empty','states':{'none':[('readonly',True)],'bydate':[('readonly',True)]}}, + 'result_selection':{'string':" Partner",'type':'selection','selection':[('customer','Debiteur'),('supplier','Creancier'),('all','Tous')]}, + 'soldeinit':{'string':" Inclure les soldes initiaux",'type':'boolean'}, + 'date1': {'string':' Start date', 'type':'date', 'required':True,'default': lambda *a: time.strftime('%Y-01-01')}, + 'date2': {'string':'End date', 'type':'date', 'required':True,'default': lambda *a: time.strftime('%Y-%m-%d')}, } - class wizard_report(wizard.interface): - def _get_defaults(self, cr, uid, data, context): + + def _get_defaults(self,cr,uid,data,context): + user = pooler.get_pool(cr.dbname).get('res.users').browse(cr, uid, uid, context=context) + if user.company_id: + company_id = user.company_id.id + else: + company_id = pooler.get_pool(cr.dbname).get('res.company').search(cr, uid, [('parent_id', '=', False)])[0] + fiscalyear_obj = pooler.get_pool(cr.dbname).get('account.fiscalyear') + periods_obj=pooler.get_pool(cr.dbname).get('account.period') data['form']['fiscalyear'] = fiscalyear_obj.find(cr, uid) - - user = pooler.get_pool(cr.dbname).get('res.users').browse(cr, uid, uid, context=context) - if user.company_id: - company_id = user.company_id.id - else: - company_id = pooler.get_pool(cr.dbname).get('res.company').search(cr, uid, [('parent_id', '=', False)])[0] + data['form']['periods'] =periods_obj.search(cr, uid, [('fiscalyear_id','=',data['form']['fiscalyear'])]) data['form']['company_id'] = company_id data['form']['soldeinit'] = True data['form']['result_selection'] = 'all' return data['form'] - def _get_defaults_fordate(self, cr, uid, data, context): - user = pooler.get_pool(cr.dbname).get('res.users').browse(cr, uid, uid, context=context) - if user.company_id: - company_id = user.company_id.id - else: - company_id = pooler.get_pool(cr.dbname).get('res.company').search(cr, uid, [('parent_id', '=', False)])[0] - data['form']['company_id'] = company_id - data['form']['soldeinit'] = True - data['form']['result_selection'] = 'all' + def _check_state(self, cr, uid, data, context): + + if data['form']['state'] == 'byperiod': + data['form']['fiscalyear'] = True + else : + self._check_date(cr, uid, data, context) + data['form']['fiscalyear'] = False + return data['form'] - + def _check_date(self, cr, uid, data, context): + sql = """ SELECT f.id, f.date_start, f.date_stop FROM account_fiscalyear f Where '%s' between f.date_start and f.date_stop """%(data['form']['date1']) cr.execute(sql) @@ -117,24 +107,12 @@ class wizard_report(wizard.interface): states = { 'init': { - 'actions': [], - 'result': {'type':'form', 'arch':report_type,'fields':{}, 'state':[('with_period','Use with Period'),('with_date','Use with Date')]} - }, - 'with_period': { 'actions': [_get_defaults], - 'result': {'type':'form', 'arch':period_form, 'fields':period_fields, 'state':[('end','Cancel'),('report','Print')]} - }, - 'with_date': { - 'actions': [_get_defaults_fordate], - 'result': {'type':'form', 'arch':dates_form, 'fields':dates_fields, 'state':[('end','Cancel'),('checkdate','Print')]} - }, - 'checkdate': { - 'actions': [], - 'result': {'type':'choice','next_state':_check_date} + 'result': {'type':'form', 'arch':period_form, 'fields':period_fields, 'state':[('end','Cancel'),('report','Print')]} }, 'report': { - 'actions': [], + 'actions': [_check_state], 'result': {'type':'print', 'report':'account.partner.balance', 'state':'end'} } } diff --git a/addons/account_report/report/print_indicator.py b/addons/account_report/report/print_indicator.py index 8496dd3e834..ec0e84fb314 100644 --- a/addons/account_report/report/print_indicator.py +++ b/addons/account_report/report/print_indicator.py @@ -40,6 +40,11 @@ import reportlab.lib.colors as colors #from reportlab.graphics.widgetbase import Widget, TypedPropertyCollection #from reportlab.graphics.charts.textlabels import BarChartLabel #from reportlab.graphics import renderPM +from report.render import render +from report.interface import report_int +from pychart import * +import StringIO +theme.use_color = 1 import tools @@ -157,7 +162,7 @@ class accounting_report_indicator(report_sxw.rml_parse): def test1(self,data,object,intercall=False): - path=tools.config['root_path']+"/Temp_report/Image" + path=tools.config['root_path']+"/Temp_images/Image" obj_history=self.pool.get('account.report.history') if data['select_base']=='year': @@ -179,41 +184,60 @@ class accounting_report_indicator(report_sxw.rml_parse): if intercall: return True self.count +=1 - drawing = Drawing(400, 300) - data = [ - tuple(data_val), - ] - value_min=0.0 - vmin=min(data_val) - vmax=max(data_val) - - val_min=((vmin < 0.00 and vmin-2.00) or 0.00) - # calculating maximum - val_max=(vmax/(pow(10,len(str(int(vmax)))-2))+1)*pow(10,len(str(int(vmax)))-2) - bc = VerticalBarChart() - bc.x = 50 - bc.y = 50 - bc.height = 245 - bc.width = 300 - bc.data = data - value_step=(abs(val_max)-abs(val_min))/5 - - bc.strokeColor = colors.black - bc.valueAxis.valueMin = val_min - bc.valueAxis.valueMax = val_max - bc.valueAxis.valueStep = value_step - - bc.categoryAxis.labels.boxAnchor = 'ne' - bc.categoryAxis.labels.dx = 8 - - bc.categoryAxis.labels.dy = -2 - bc.categoryAxis.labels.angle = 30 - bc.categoryAxis.categoryNames = data_period - drawing.add(bc) - drawing.save(formats=['png'],fnRoot=path+str(self.count),title="helo") +# drawing = Drawing(400, 300) +# data = [ +# tuple(data_val), +# ] +# value_min=0.0 +# vmin=min(data_val) +# vmax=max(data_val) +# +# val_min=((vmin < 0.00 and vmin-2.00) or 0.00) +# # calculating maximum +# val_max=(vmax/(pow(10,len(str(int(vmax)))-2))+1)*pow(10,len(str(int(vmax)))-2) +# bc = VerticalBarChart() +# bc.x = 50 +# bc.y = 50 +# bc.height = 245 +# bc.width = 300 +# bc.data = data +# value_step=(abs(val_max)-abs(val_min))/5 +# +# bc.strokeColor = colors.black +# bc.valueAxis.valueMin = val_min +# bc.valueAxis.valueMax = val_max +# bc.valueAxis.valueStep = value_step +# +# bc.categoryAxis.labels.boxAnchor = 'ne' +# bc.categoryAxis.labels.dx = 8 +# +# bc.categoryAxis.labels.dy = -2 +# bc.categoryAxis.labels.angle = 30 +# bc.categoryAxis.categoryNames = data_period +# drawing.add(bc) +# drawing.save(formats=['png'],fnRoot=path+str(self.count),title="helo") # renderPM.drawToFile(drawing1, 'example1.jpg','jpg') - return path+str(self.count)+'.png' + import os + dirname ='Temp_images' + if not os.path.isdir('./' + dirname + '/'): + os.mkdir('./' + dirname + '/') + pdf_string = StringIO.StringIO() + can = canvas.init('Image'+str(self.count)+".png") + chart_object.set_defaults(line_plot.T, line_style=None) + data=zip(self.header_name,self.header_val) + ar = area.T(size = (400,200),x_coord = category_coord.T(data, 0), y_range = (0, None), + x_axis = axis.X(label="Period//Year",format="/a-30{}%s"), + y_axis = axis.Y(label="Value")) + + + ar.add_plot(bar_plot.T(data = data, label = "Value",fill_style=fill_style.red)) + ar.draw() + + can.close() + os.system('cp '+'Image'+str(self.count)+'.png ' +path+str(self.count)+'.png') + os.system('rm '+'Image'+str(self.count)+'.png') + return path+str(self.count)+'.png' report_sxw.report_sxw('report.print.indicators', 'account.report.history', 'addons/account_report/report/print_indicator.rml', diff --git a/addons/account_report/report/print_indicator.rml b/addons/account_report/report/print_indicator.rml index 1834c8f128b..6727812fc6f 100644 --- a/addons/account_report/report/print_indicator.rml +++ b/addons/account_report/report/print_indicator.rml @@ -129,6 +129,9 @@ [[ o['disp_graph'] and setTag('para','image',{'file':test(data['form'],o)}) or removeParentNode('para') ]] + + +
[[ repeatIn(getarray(data['form'],o),'array',td=len(data['form']['base_selection'][0][2])) ]] diff --git a/addons/mrp/report/order.py b/addons/mrp/report/order.py index 98f4bf1c0fb..6e2cf896660 100644 --- a/addons/mrp/report/order.py +++ b/addons/mrp/report/order.py @@ -39,4 +39,7 @@ class order(report_sxw.rml_parse): }) -report_sxw.report_sxw('report.mrp.production.order','mrp.production','addons/mrp/report/order.rml',parser=order, header=2) + +report_sxw.report_sxw('report.mrp.production.order','mrp.production','addons/mrp/report/order.rml',parser=order,header=1) + + diff --git a/addons/mrp/report/order.rml b/addons/mrp/report/order.rml index b9d62c5138f..341793ee79d 100644 --- a/addons/mrp/report/order.rml +++ b/addons/mrp/report/order.rml @@ -91,16 +91,19 @@ + - - + + + + @@ -118,6 +121,7 @@ + @@ -142,8 +146,10 @@ + + Printing date @@ -157,6 +163,7 @@ Product Name + @@ -164,6 +171,7 @@ + [[ time.strftime('%d/%m/%Y') ]] @@ -177,10 +185,12 @@ [[ '['+ o.product_id.code +']' ]] [[ o.product_id.name ]] +
+ @@ -200,10 +210,10 @@ [[ repeatIn(o.move_lines,'line') ]] - [[ '['+line.product_id.code +']' ]][[ line.product_id.name ]] + [[ '['+line.product_id.code +']' ]] [[ line.product_id.name ]] - [[ line.product_qty ]] [[line.product_uom.name]] + [[ '%.2f' % line.product_qty ]] [[line.product_uom.name]] diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 517c8d8dad5..12f9a17491f 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -325,7 +325,7 @@ - + diff --git a/addons/purchase/report/order.rml b/addons/purchase/report/order.rml old mode 100644 new mode 100755 index 8b84e34d18d..d8959d3663d --- a/addons/purchase/report/order.rml +++ b/addons/purchase/report/order.rml @@ -101,9 +101,9 @@ - - - + + + @@ -140,7 +140,7 @@ [[ repeatIn(objects,'o') ]] - + @@ -149,52 +149,52 @@ - + - [[ repeatIn(o.dest_address_id and [o.dest_address_id] or [],'addr') ]] - Shipping address : - [[ o.partner_id.title or '' ]] [[ o.partner_id.name ]] - [[ addr.title or '' ]] [[ addr.name ]] - [[ addr.street ]] - [[ addr.street2 or '' ]] - [[ addr.zip or '' ]] [[ addr.city or '' ]] - [[ addr.state_id and addr.state_id.name or '' ]] - [[ addr.country_id and addr.country_id.name or '' ]] + [[ repeatIn(o.dest_address_id and [o.dest_address_id] or [],'addr') ]] + Shipping address : + [[ o.partner_id.title or '' ]] [[ o.partner_id.name ]] + [[ addr.title or '' ]] [[ addr.name ]] + [[ addr.street ]] + [[ addr.street2 or '' ]] + [[ addr.zip or '' ]] [[ addr.city or '' ]] + [[ addr.state_id and addr.state_id.name or '' ]] + [[ addr.country_id and addr.country_id.name or '' ]] - + - + - [[ o.partner_id.title or '' ]] [[ o.partner_id.name ]] - [[ o.partner_address_id.title or '' ]] [[ o.partner_address_id.name ]] - [[ o.partner_address_id.street ]] - [[ o.partner_address_id.street2 or '' ]] - [[ o.partner_address_id.zip or '' ]] [[ o.partner_address_id.city or '' ]] - [[ o.partner_address_id.state_id and o.partner_address_id.state_id.name or '' ]] - [[ o.partner_address_id.country_id and o.partner_address_id.country_id.name or '' ]] - + [[ o.partner_id.title or '' ]] [[ o.partner_id.name ]] + [[ o.partner_address_id.title or '' ]] [[ o.partner_address_id.name ]] + [[ o.partner_address_id.street ]] + [[ o.partner_address_id.street2 or '' ]] + [[ o.partner_address_id.zip or '' ]] [[ o.partner_address_id.city or '' ]] + [[ o.partner_address_id.state_id and o.partner_address_id.state_id.name or '' ]] + [[ o.partner_address_id.country_id and o.partner_address_id.country_id.name or '' ]] + - Tel. : [[ o.partner_address_id.phone or '' ]] - Fax : [[ o.partner_address_id.fax or '' ]] - TVA : [[ o.partner_id.vat or '' ]] + Tél. : [[ o.partner_address_id.phone or '' ]] + Fax : [[ o.partner_address_id.fax or '' ]] + TVA : [[ o.partner_id.vat or '' ]] - + @@ -203,10 +203,7 @@ - [[ (o.state=='draft' or removeParentNode('font')) and 'Request for Quotation' ]] [[ (o.state<>'draft' or removeParentNode('font')) and 'Purchase Order Confirmation' ]] N° [[ o.name ]] - - - + [[ (o.state=='draft' or removeParentNode('font')) and 'Request for Quotation' ]] [[ (o.state<>'draft' or removeParentNode('font')) and 'Purchase Order Confirmation' ]] N° [[ o.name ]] @@ -229,23 +226,23 @@ - [[ o.name or '' ]] + [[ o.name or '' ]] - [[ o.partner_ref or '' ]] + [[ o.partner_ref or '' ]] - [[ time.strftime('%d/%m/%Y', time.strptime(o.date_order, '%Y-%m-%d')) ]] - + [[ time.strftime('%d/%m/%Y', time.strptime(o.date_order, '%Y-%m-%d')) ]] + - [[ o.validator and o.validator.name or '' ]] + [[ o.validator and o.validator.name or '' ]] - + Description @@ -269,7 +266,7 @@
[[ repeatIn(o.order_line,'line') ]] - + [[ line.name ]] @@ -278,7 +275,7 @@ [[ ', '.join(map(lambda x: x.name, line.taxes_id)) ]] - [[ time.strftime('%d/%m/%Y', time.strptime( line.date_planned, '%Y-%m-%d %H:%M:%S')) ]] + [[ time.strftime('%d/%m/%Y', time.strptime( line.date_planned, '%Y-%m-%d %H:%M:%S')) ]] [[ line.product_qty ]] @@ -330,7 +327,7 @@
- + @@ -395,4 +392,3 @@
- diff --git a/addons/sale_journal/sale_journal_view.xml b/addons/sale_journal/sale_journal_view.xml index 17975fe9755..a0b397282e8 100644 --- a/addons/sale_journal/sale_journal_view.xml +++ b/addons/sale_journal/sale_journal_view.xml @@ -285,9 +285,9 @@ form - + - +