Merge lp:~openerp-open-net/openobject-addons/ons_business into lp:openobject-addons

Proposed by hayat
Status: Rejected
Rejected by: Fabien (Open ERP)
Proposed branch: lp:~openerp-open-net/openobject-addons/ons_business
Merge into: lp:openobject-addons
Diff against target: 1700 lines (+1654/-0)
9 files modified
__init__.py (+21/-0)
__terp__.py (+35/-0)
business.py (+360/-0)
business_sequence.xml (+16/-0)
business_view.xml (+335/-0)
i18n/fr_FR.csv (+33/-0)
i18n/fr_FR.po (+388/-0)
inits.py (+45/-0)
report/invoices.rml (+421/-0)
To merge this branch: bzr merge lp:~openerp-open-net/openobject-addons/ons_business
Reviewer Review Type Date Requested Status
OpenERP Core Team Pending
Review via email: mp+64321@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Fabien (Open ERP) (fp-tinyerp) wrote :

Hello, I think it's better if you can keep this in a separate module in your branches. I would suggest to register your branch on launchpad to give visibility to your modules. Your branch should contain only your own modules, and not a branch of addons.

Unmerged revisions

1. By root <root@y-phil-studio>

1e version sans le module Lawyer

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file '__init__.py'
2--- __init__.py 1970-01-01 00:00:00 +0000
3+++ __init__.py 2011-06-12 01:27:27 +0000
4@@ -0,0 +1,21 @@
5+#!/usr/bin/env python
6+#coding: utf-8
7+
8+# (c) 2007 Sednacom <http://www.sednacom.fr>
9+# author : gael@sednacom.fr
10+
11+# This program is free software; you can redistribute it and/or modify
12+# it under the terms of the GNU General Public License as published by
13+# the Free Software Foundation; either version 2 of the License, or
14+# (at your option) any later version.
15+#
16+# This program is distributed in the hope that it will be useful,
17+# but WITHOUT ANY WARRANTY; without even the implied warranty of
18+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19+# GNU General Public License for more details.
20+#
21+# You should have received a copy of the GNU General Public License
22+# along with this program; if not, write to the Free Software
23+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
24+
25+import business, inits
26
27=== added file '__terp__.py'
28--- __terp__.py 1970-01-01 00:00:00 +0000
29+++ __terp__.py 2011-06-12 01:27:27 +0000
30@@ -0,0 +1,35 @@
31+#!/usr/bin/env python
32+# coding : utf-8
33+
34+# (c) 2010 Sednacom, Sisalp, Prolibre et Open Net
35+# author : cyp@open-net.ch
36+
37+# This program is free software; you can redistribute it and/or modify
38+# it under the terms of the GNU General Public License as published by
39+# the Free Software Foundation; either version 2 of the License, or
40+# (at your option) any later version.
41+#
42+# This program is distributed in the hope that it will be useful,
43+# but WITHOUT ANY WARRANTY; without even the implied warranty of
44+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
45+# GNU General Public License for more details.
46+#
47+# You should have received a copy of the GNU General Public License
48+# along with this program; if not, write to the Free Software
49+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
50+
51+{
52+ "name" : "Module business",
53+ "version" : "2.0.05",
54+ "author" : "Sednacom, Sisalp, Prolibre and Open Net",
55+ "category" : "Generic Modules/Others",
56+ "website": "http://open-net.ch/ERP-CRM-OpenERP/Nos-modules/business",
57+ "description": "This module lets you regroup everything invoices, purchases, timesheets and analytic accounts within one affair",
58+ "depends" : ["base","product","purchase","sale","account","project","hr_timesheet","hr_timesheet_sheet"],
59+ "init_xml" : [],
60+ "demo_xml" : [],
61+ "update_xml" : ["business_view.xml",
62+ "business_sequence.xml"],
63+ "active": False,
64+ "installable": True
65+}
66
67=== added file 'business.py'
68--- business.py 1970-01-01 00:00:00 +0000
69+++ business.py 2011-06-12 01:27:27 +0000
70@@ -0,0 +1,360 @@
71+#!/usr/bin/env python
72+# -*- coding: utf-8 -*-
73+#coding: utf-8
74+
75+# (c) 2009 Prolibre <http://www.prolibre.com>
76+# author : info@prolibre.com
77+
78+# This program is free software; you can redistribute it and/or modify
79+# it under the terms of the GNU General Public License as published by
80+# the Free Software Foundation; either version 2 of the License, or
81+# (at your option) any later version.
82+#
83+# This program is distributed in the hope that it will be useful,
84+# but WITHOUT ANY WARRANTY; without even the implied warranty of
85+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
86+# GNU General Public License for more details.
87+#
88+# You should have received a copy of the GNU General Public License
89+# along with this program; if not, write to the Free Software
90+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
91+
92+from osv import osv, fields
93+import tools
94+from mx import DateTime
95+import netsvc
96+
97+class business_business(osv.osv):
98+ _name = "business.business"
99+ _description = "business affair"
100+
101+ def make_list_partners(self, cr, uid, ids,business, arg, context):
102+ for busi in self.browse(cr, uid, ids):
103+ business_id = busi.name
104+ res1=[]
105+ if business_id:
106+ crit = [('business_id','=',business_id)]
107+ res2 = self.pool.get('sale.order').search(cr, uid, crit)
108+ for sale in self.pool.get('sale.order').browse(cr, uid, res2):
109+ res1.append(sale.partner_id.id)
110+ res3 = self.pool.get('purchase.order').search(cr, uid, crit)
111+ for purchase in self.pool.get('purchase.order').browse(cr, uid, res3):
112+ res1.append(purchase.partner_id.id)
113+ res = unique(res1)
114+ print res
115+ else:
116+ return False
117+ return res
118+
119+ _columns = {
120+ 'name' : fields.char('Business', size=64, required=True),
121+ 'code' : fields.char('Business Number', size=64, required=True),
122+ 'date_start': fields.date('Start Date'),
123+ 'date_end': fields.date('End Date'),
124+ 'analytic_account' : fields.many2one('account.analytic.account', 'Analytic Account',required=False),
125+ #'list_partners' : fields.one2many('partner.from.list', 'business_id', 'Sale', readonly=True),
126+ 'sales' : fields.one2many('sale.order', 'business_id', 'Sales'),
127+ 'purchases' : fields.one2many('purchase.order', 'business_id', 'Purchases'),
128+ 'invoices' :fields.one2many('account.invoice', 'business_id', 'Invoices'),
129+ 'projects' : fields.one2many('project.project', 'business_id', 'Projects'),
130+ 'timesheet' : fields.one2many('hr.analytic.timesheet', 'business_id', 'Time Sheets'),
131+ 'main_partner':fields.many2one('res.partner','Main Partner',required=True),
132+ 'users': fields.many2many( 'res.users', 'business_users_rel', 'biz_id', 'user_id', 'Involved Users' ),
133+ 'state': fields.selection([
134+ ('draft','Draft'),
135+ ('open','Open'),
136+ ('close','Close'),
137+ ], 'Business State', readonly=True,),
138+ }
139+
140+ _defaults={
141+ 'code': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'business.business'),
142+ 'state':lambda *a:'draft',
143+ }
144+
145+ def create(self, cr, user, vals, context=None):
146+ new_id = super(business_business,self).create(cr, user, vals, context)
147+ if (new_id):
148+ client_analytic_id = self.pool.get('ir.model.data')._get_id(cr,user,self.__module__.split('.')[0],'business_client_analytic_account')
149+ res_id = self.pool.get('ir.model.data').browse(cr,user,client_analytic_id).res_id
150+ main_partner_name = self.pool.get('res.partner').browse(cr,user,vals['main_partner']).name
151+ parent_analytic_id = self.pool.get('account.analytic.account').search(cr,user,[('name','=',main_partner_name),('parent_id','=',res_id)])
152+ if not (parent_analytic_id):
153+ parent_analytic_id=[self.pool.get('account.analytic.account').create(cr,user,{'name':main_partner_name,'parent_id':res_id})]
154+ anal_acc_id = self.pool.get('account.analytic.account').create(cr,user,{'name':vals['name'],'parent_id':parent_analytic_id[0]})
155+ if anal_acc_id > 0 and (('analytic_account' not in vals) or not vals['analytic_account']):
156+ super(business_business,self).write(cr, user, new_id, { 'analytic_account': anal_acc_id }, context=context)
157+
158+ return new_id
159+
160+ def business_open(self, cr, uid, ids, *args):
161+ self.write(cr,uid,ids,{'state':'open'})
162+ return True
163+
164+ def business_close(self, cr, uid, ids, *args):
165+ self.write(cr,uid,ids,{'state':'close'})
166+ return True
167+
168+ def business_draft(self, cr, uid, ids, *args):
169+ self.write(cr,uid,ids,{'state':'draft'})
170+ return True
171+
172+business_business()
173+
174+class sale_order(osv.osv):
175+ _name = "sale.order"
176+ _inherit = "sale.order"
177+ _description = "Sale order with business affair"
178+
179+ _columns = {
180+ 'business_id' : fields.many2one('business.business','Business', required=False , readonly=True, states={'draft':[('readonly',False)]}),
181+ }
182+
183+ def onchange_business_id(self, cr, uid, ids, business_id):
184+ if not business_id:
185+ return {}
186+ analytic = self.pool.get('business.business').browse(cr, uid, business_id).analytic_account.id
187+ return {'value':{'project_id': analytic}}
188+
189+ def action_invoice_create(self, cr, uid, ids, grouped=False, states=['confirmed','done']):
190+ res = super(sale_order, self).action_invoice_create(cr, uid, ids, grouped, states)
191+ for o in self.browse(cr, uid, ids):
192+ inv = self.pool.get('account.invoice').write(cr, uid, [res], {'business_id': o.business_id.id})
193+ return res
194+
195+sale_order()
196+
197+class purchase_order(osv.osv):
198+ _inherit = "purchase.order"
199+ _description = "Purchase order with business affair"
200+
201+ _columns = {
202+ 'business_id' : fields.many2one('business.business','Business', required=False, readonly=True, states={'draft':[('readonly',False)]}),
203+ }
204+
205+ def action_invoice_create(self, cr, uid, ids, *args):
206+ res = super(purchase_order, self).action_invoice_create(cr, uid, ids, *args)
207+ for o in self.browse(cr, uid, ids):
208+ inv = self.pool.get('account.invoice').write(cr, uid, [res], {'business_id': o.business_id.id})
209+ return res
210+
211+ def onchange_biz_partner_id(self, cr, uid, ids, part, biz_id):
212+ if not part:
213+ return {'value':{'partner_address_id': False, 'fiscal_position': False, 'business_id': biz_id}}
214+ addr = self.pool.get('res.partner').address_get(cr, uid, [part], ['default'])
215+ part = self.pool.get('res.partner').browse(cr, uid, part)
216+ pricelist = part.property_product_pricelist_purchase.id
217+ fiscal_position = part.property_account_position and part.property_account_position.id or False
218+ return {'value':{'partner_address_id': addr['default'], 'pricelist_id': pricelist, 'fiscal_position': fiscal_position, 'business_id': biz_id}}
219+
220+purchase_order()
221+
222+class purchase_order_line(osv.osv):
223+ _name = "purchase.order.line"
224+ _inherit = "purchase.order.line"
225+ _description = "purchase order line with business affair"
226+
227+ def _default_purchase_analytic( self, cr, uid, context):
228+ #print '_default_purchase_analytic',context
229+ business_id = context.get( 'business_id', False )
230+ if business_id:
231+ res = self.pool.get( 'business.business' ).browse( cr, uid, business_id, context ).analytic_account.id
232+ else:
233+ res = False
234+ #purchase_order_obj = obj.pool.get('purchase.order').browse( cr, uid, context )
235+
236+ #print purchase_order_obj
237+ return res
238+
239+ #_defaults = {
240+ # 'account_analytic_id' : _default_purchase_analytic,
241+ #}
242+
243+purchase_order_line()
244+
245+class account_invoice(osv.osv):
246+ _name = "account.invoice"
247+ _inherit = "account.invoice"
248+ _description = "invoice with business affair"
249+
250+ _columns = {
251+ 'business_id' : fields.many2one('business.business','Business', required=False, readonly=True, states={'draft':[('readonly',False)]}),
252+ }
253+
254+account_invoice()
255+
256+
257+
258+class project(osv.osv):
259+ _name = "project.project"
260+ _inherit="project.project"
261+ _description = "Project with business affair"
262+
263+ _columns = {
264+ 'business_id' : fields.many2one('business.business','Business', required=False),
265+ 'category_id': fields.many2one('account.analytic.account','Analytic Account'),
266+ }
267+
268+ def onchange_business_id(self, cr, uid, ids, business_id):
269+ if not business_id:
270+ return {}
271+ analytic = self.pool.get('business.business').browse(cr, uid, business_id).analytic_account.id
272+ return {'value':{'category_id': analytic}}
273+
274+project()
275+
276+class partner_from_sale(osv.osv):
277+ _name = "partner.from.sale"
278+ _description = "Partners from business sales"
279+ _order='partner_id'
280+ _auto = False
281+
282+ _columns = {
283+ 'name': fields.one2many('sale.order', 'business_id', 'Sale Order', readonly=True),
284+ 'business_id': fields.many2one('business.business','Business'),
285+ 'partner_id' : fields.many2one('res.partner','Partner'),
286+ }
287+
288+ def init(self, cr):
289+ cr.execute("""
290+ create or replace view partner_from_sale as (
291+ select
292+ id, partner_id,business_id,name
293+ from
294+ sale_order
295+ )""")
296+
297+partner_from_sale()
298+
299+class partner_from_purchase(osv.osv):
300+ _name = "partner.from.purchase"
301+ _description = "Partners from business purchases"
302+ _order='partner_id'
303+ _auto = False
304+
305+ _columns = {
306+ 'name': fields.one2many('purchase.order', 'business_id', 'Purchase Order', readonly=True),
307+ 'business_id': fields.many2one('business.business','Business'),
308+ 'partner_id' : fields.many2one('res.partner','Partner'),
309+ }
310+ def init(self, cr):
311+ cr.execute("""
312+ create or replace view partner_from_purchase as (
313+ select
314+ id, partner_id,business_id,name
315+ from
316+ purchase_order
317+ )""")
318+
319+partner_from_purchase()
320+
321+class partner_from_invoice(osv.osv):
322+ _name = "partner.from.invoice"
323+ _description = "Partners from business invoices"
324+ _order='partner_id'
325+ _auto = False
326+
327+ _columns = {
328+ 'name': fields.one2many('account_invoice', 'business_id', 'Purchase Order', readonly=True),
329+ 'business_id': fields.many2one('business.business','Business'),
330+ 'partner_id' : fields.many2one('res.partner','Partner'),
331+ }
332+
333+ def init(self, cr):
334+ cr.execute("""
335+ create or replace view partner_from_invoice as (
336+ select
337+ id, partner_id,business_id,name
338+ from
339+ account_invoice
340+ )""")
341+
342+partner_from_invoice()
343+
344+class partner_from_list(osv.osv):
345+ _name = "partner.from.list"
346+ _description = "Partners from business"
347+ _order='partner_id'
348+ _auto = False
349+
350+ _columns = {
351+ 'business_id': fields.many2one('business.business','Business'),
352+ 'partner_id' : fields.many2one('res.partner','Partner'),
353+ }
354+
355+ def init(self, cr):
356+ cr.execute("""
357+ create or replace view partner_from_list as (
358+ SELECT DISTINCT r.id,r.id as partner_id,b.id as business_id
359+ FROM res_partner r, business_business b,
360+ partner_from_invoice i, partner_from_sale s,
361+ partner_from_purchase p
362+ WHERE b.id=p.business_id and b.id=s.business_id and b.id=i.business_id
363+ )""")
364+
365+partner_from_list()
366+
367+class hr_analytic_timesheet(osv.osv):
368+ _inherit = "hr.analytic.timesheet"
369+
370+ _columns = {
371+ 'business_id': fields.many2one('business.business','Business'),
372+ }
373+
374+ def onchange_biz_user_id(self, cr, uid, ids, user_id, biz_id):
375+ if not user_id:
376+ return {}
377+ return {'value' : {
378+ 'product_id' : self._getEmployeeProduct(cr,user_id, context= {}),
379+ 'product_uom_id' : self._getEmployeeUnit(cr, user_id, context= {}),
380+ 'account_id' : biz_id,
381+ 'general_account_id' : self._getGeneralAccount(cr, user_id, context= {}),
382+ 'journal_id' : self._getAnalyticJournal(cr, user_id, context= {}),
383+ }}
384+
385+hr_analytic_timesheet()
386+
387+class project_work(osv.osv):
388+ _inherit = "project.task.work"
389+
390+ _columns = {
391+ 'business_id': fields.many2one('business.business','Business'),
392+ }
393+
394+ def create(self, cr, uid, vals, *args, **kwargs):
395+ business_id = False
396+ if ('business_id' not in vals or ('business_id' in vals and not vals['business_id'])) and ('task_id' in vals):
397+ task = self.pool.get('project.task').browse(cr, uid, vals['task_id'])
398+ if task and task.project_id and task.project_id.business_id:
399+ business_id = task.project_id.business_id.id
400+ vals['business_id'] = business_id
401+ ret = super(project_work,self).create(cr, uid, vals, *args, **kwargs)
402+
403+ if business_id:
404+ task = self.browse(cr, uid, ret)
405+ if task:
406+ line_id = task.hr_analytic_timesheet_id
407+ # in case,if a record is deleted from timesheet,but we change it from tasks!
408+ list_avail_ids = self.pool.get('hr.analytic.timesheet').search(cr, uid, [])
409+ if line_id in list_avail_ids:
410+ obj = self.pool.get('hr.analytic.timesheet')
411+ if obj:
412+ obj.write(cr, uid, [line_id], { 'business_id': vals['business_id'] }, {})
413+
414+ def write(self, cr, uid, ids, vals, context={}):
415+ ret = super(project_work,self).write(cr, uid, ids, vals, context)
416+
417+ if 'business_id' in vals:
418+ task = self.browse(cr, uid, ids)[0]
419+ if task:
420+ line_id = task.hr_analytic_timesheet_id
421+ # in case,if a record is deleted from timesheet,but we change it from tasks!
422+ list_avail_ids = self.pool.get('hr.analytic.timesheet').search(cr, uid, [])
423+ if line_id in list_avail_ids:
424+ obj = self.pool.get('hr.analytic.timesheet')
425+ if obj:
426+ obj.write(cr, uid, [line_id], { 'business_id': vals['business_id'] }, {})
427+
428+ return ret
429+
430+project_work()
431
432=== added file 'business_sequence.xml'
433--- business_sequence.xml 1970-01-01 00:00:00 +0000
434+++ business_sequence.xml 2011-06-12 01:27:27 +0000
435@@ -0,0 +1,16 @@
436+<?xml version="1.0" encoding="utf-8"?>
437+<openerp>
438+ <data noupdate="1">
439+ <!-- Sequences for Business No -->
440+ <record id="seq_type_business" model="ir.sequence.type">
441+ <field name="name">Business</field>
442+ <field name="code">business.business</field>
443+ </record>
444+ <record id="seq_business" model="ir.sequence">
445+ <field name="name">Business</field>
446+ <field name="code">business.business</field>
447+ <field name="prefix">Aff</field>
448+ <field name="padding">4</field>
449+ </record>
450+ </data>
451+</openerp>
452
453=== added file 'business_view.xml'
454--- business_view.xml 1970-01-01 00:00:00 +0000
455+++ business_view.xml 2011-06-12 01:27:27 +0000
456@@ -0,0 +1,335 @@
457+<?xml version="1.0" encoding="utf-8"?>
458+<openerp>
459+ <data>
460+ <!-- order view -->
461+ <record model="ir.ui.view" id="view_order_tree_business">
462+ <field name="name">sale.order.tree</field>
463+ <field name="model">sale.order</field>
464+ <field name="inherit_id" ref="sale.view_order_tree" />
465+ <field name="type">tree</field>
466+ <field name="arch" type="xml">
467+ <field name="partner_id" position="before" >
468+ <field name="business_id"/>
469+ </field>
470+ </field>
471+ </record>
472+
473+ <record model="ir.ui.view" id="view_order_form_business">
474+ <field name="name">sale.order.form</field>
475+ <field name="model">sale.order</field>
476+ <field name="inherit_id" ref="sale.view_order_form" />
477+ <field name="type">form</field>
478+ <field name="arch" type="xml">
479+ <field name="project_id" position="before" >
480+ <field name="business_id" select="1" on_change="onchange_business_id(business_id)"/>
481+ </field>
482+ </field>
483+ </record>
484+
485+ <!-- invoice view -->
486+ <record model="ir.ui.view" id="invoice_tree_business">
487+ <field name="name">business.account.invoice.tree</field>
488+ <field name="model">account.invoice</field>
489+ <field name="inherit_id" ref="account.invoice_tree"/>
490+ <field name="type">tree</field>
491+ <field name="arch" type="xml">
492+ <field name="number" position="after" >
493+ <field name="business_id" select="1"/>
494+ </field>
495+ </field>
496+ </record>
497+
498+ <record model="ir.ui.view" id="invoice_form_business_sales">
499+ <field name="name">business.sales.account.invoice.form</field>
500+ <field name="model">account.invoice</field>
501+ <field name="inherit_id" ref="account.invoice_form"/>
502+ <field name="type">form</field>
503+ <field name="arch" type="xml">
504+ <field name="currency_id" position="after" >
505+ <field name="business_id" select="1"/>
506+ </field>
507+ </field>
508+ </record>
509+
510+ <record model="ir.ui.view" id="invoice_form_business_sales_purchases">
511+ <field name="name">business.purchases.account.invoice.form</field>
512+ <field name="model">account.invoice</field>
513+ <field name="inherit_id" ref="account.invoice_supplier_form"/>
514+ <field name="type">form</field>
515+ <field name="arch" type="xml">
516+ <field name="account_id" position="after" >
517+ <field name="business_id" select="1"/>
518+ </field>
519+ </field>
520+ </record>
521+
522+ <!-- Project view -->
523+ <record model="ir.ui.view" id="edit_project_business">
524+ <field name="name">project.project.form</field>
525+ <field name="model">project.project</field>
526+ <field name="inherit_id" ref="project.edit_project"/>
527+ <field name="type">form</field>
528+ <field name="arch" type="xml">
529+ <field name="state" position="after" >
530+ <field name="business_id" select="1" on_change="onchange_business_id(business_id)"/>
531+ </field>
532+ </field>
533+ </record>
534+
535+ <record model="ir.ui.view" id="view_project_business">
536+ <field name="name">project.project.tree</field>
537+ <field name="model">project.project</field>
538+ <field name="inherit_id" ref="project.view_project"/>
539+ <field name="type">tree</field>
540+ <field name="field_parent">child_id</field>
541+ <field name="arch" type="xml">
542+ <field name="manager" position="after" >
543+ <field name="business_id" select="1"/>
544+ </field>
545+ </field>
546+ </record>
547+
548+ <!-- Account analytic account view -->
549+ <record model="ir.ui.view" id="biz_analytic_1-form">
550+ <field name="name">biz_analytic_1.form</field>
551+ <field name="model">account.analytic.account</field>
552+ <field name="inherit_id" ref="account.view_account_analytic_account_form"/>
553+ <field name="type">form</field>
554+ <field name="arch" type="xml">
555+ <field name="partner_id" position="replace" >
556+ <field name="partner_id" required="1"/>
557+ </field>
558+ </field>
559+ </record>
560+
561+ <record model="ir.ui.view" id="biz_analytic_2-form">
562+ <field name="name">biz_analytic_2.form</field>
563+ <field name="model">account.analytic.account</field>
564+ <field name="inherit_id" ref="hr_timesheet_invoice.account_analytic_account_form_form"/>
565+ <field name="type">tree</field>
566+ <field name="field_parent">child_id</field>
567+ <field name="arch" type="xml">
568+ <field name="pricelist_id" position="replace" >
569+ <field name="pricelist_id" required="1"/>
570+ </field>
571+ </field>
572+ </record>
573+
574+ <!-- Business affair view -->
575+ <record model="ir.ui.view" id="business_form">
576+ <field name="name">business.business.form</field>
577+ <field name="model">business.business</field>
578+ <field name="type">form</field>
579+ <field name="arch" type="xml">
580+ <form string="Business!">
581+ <notebook>
582+ <page string="Affair">
583+ <field name="name" select="1"/>
584+ <field name="code" select="1"/>
585+ <field name="date_start" select="1"/>
586+ <field name="date_end" select="1"/>
587+ <field name="analytic_account" select="2" required="1"/>
588+ <field name="main_partner" select="1" required="1"/>
589+ <group colspan="4" col="4">
590+ <separator string="Business State" colspan="4"/>
591+ <field colspan="1" nolabel="1" name="state" select="2"/>
592+ <button colspan="1" name="business_open" string="Open" states="draft" type="object"/>
593+ <button colspan="1" name="business_close" string="Close" states="open" type="object"/>
594+ <button colspan="1" name="business_draft" string="Draft" states="open,close" type="object"/>
595+ </group>
596+ </page>
597+ <page string="Projects">
598+ <field name="projects" select="2" nolabel="1"/>
599+ </page>
600+ <page string="TimeSheets">
601+ <field name="timesheet" select="2" nolabel="1" widget="one2many_list" mode="tree,form">
602+ <tree editable="bottom" string="Timesheet Line">
603+ <field name="user_id" on_change="onchange_biz_user_id(user_id, parent.analytic_account)" required="1"/>
604+ <field name="date" on_change="on_change_date(date)"/>
605+ <field domain="[('type','=','normal'),('state', '&lt;&gt;', 'close')]" name="account_id"/>
606+ <field name="name"/>
607+ <field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)" sum="Total time"/>
608+ <field name="product_id" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)" required="1" domain="[('type','=','service')]"/>
609+ <field name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)"/>
610+ <field name="amount" sum="Total cost"/>
611+ <field name="general_account_id"/>
612+ <field name="journal_id"/>
613+ <field name="to_invoice"/>
614+ </tree>
615+ <form string="Timesheet Lines">
616+ <field colspan="4" name="name" select="2"/>
617+ <field name="user_id" on_change="on_change_user_id(user_id)" required="1" select="1"/>
618+ <field name="date" select="1" on_change="on_change_date(date)"/>
619+ <field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)"/>
620+ <newline/>
621+ <field name="product_id" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)" required="1" domain="[('type','=','service')]"/>
622+ <field name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)"/>
623+
624+ <field domain="[('type','=','normal'),('state', '&lt;&gt;', 'close')]" name="account_id" select="1"/>
625+ <field name="amount" select="2"/>
626+ <field name="general_account_id" select="2"/>
627+ <field name="journal_id"/>
628+ <field name="to_invoice"/>
629+ </form>
630+ </field>
631+ </page>
632+ <page string="Involved Users">
633+ <field name="users" select="2" nolabel="1"/>
634+ </page>
635+ </notebook>
636+ </form>
637+ </field>
638+ </record>
639+
640+ <record model="ir.ui.view" id="business_tree">
641+ <field name="name">business.business.tree</field>
642+ <field name="model">business.business</field>
643+ <field name="type">tree</field>
644+ <field name="arch" type="xml">
645+ <tree string="Businesses">
646+ <field name="name" select="1"/>
647+ <field name="code" select="1"/>
648+ <field name="date_start" select="1"/>
649+ <field name="date_end" select="1"/>
650+ <field name="analytic_account" select="2"/>
651+ <field name="sales" select="2"/>
652+ <field name="purchases" select="2"/>
653+ <field name="invoices" select="2"/>
654+ <field name="projects" select="2"/>
655+ <field name="timesheet" select="2"/>
656+ </tree>
657+ </field>
658+ </record>
659+
660+ <record model="ir.actions.act_window" id="business_all_form_action">
661+ <field name="name">Business: all affairs</field>
662+ <field name="type">ir.actions.act_window</field>
663+ <field name="res_model">business.business</field>
664+ <field name="view_type">form</field>
665+ <field name="view_mode">tree,form</field>
666+ <field name="view_id" ref="business_tree"/>
667+ </record>
668+
669+ <record model="ir.actions.act_window" id="business_draft_form_action">
670+ <field name="name">Business: draft affairs</field>
671+ <field name="type">ir.actions.act_window</field>
672+ <field name="res_model">business.business</field>
673+ <field name="view_type">form</field>
674+ <field name="view_mode">tree,form</field>
675+ <field name="view_id" ref="business_tree"/>
676+ <field name="domain">[('state','=','draft')]</field>
677+ </record>
678+
679+ <record model="ir.actions.act_window" id="business_open_form_action">
680+ <field name="name">Business: opened affairs</field>
681+ <field name="type">ir.actions.act_window</field>
682+ <field name="res_model">business.business</field>
683+ <field name="view_type">form</field>
684+ <field name="view_mode">tree,form</field>
685+ <field name="view_id" ref="business_tree"/>
686+ <field name="domain">[('state','=','open')]</field>
687+ </record>
688+
689+ <record model="ir.actions.act_window" id="business_close_form_action">
690+ <field name="name">Business: closed affairs</field>
691+ <field name="type">ir.actions.act_window</field>
692+ <field name="res_model">business.business</field>
693+ <field name="view_type">form</field>
694+ <field name="view_mode">tree,form</field>
695+ <field name="view_id" ref="business_tree"/>
696+ <field name="domain">[('state','=','close')]</field>
697+ </record>
698+
699+ <record model="ir.actions.act_window" id="business_my_form_action">
700+ <field name="name">Business: my affairs</field>
701+ <field name="type">ir.actions.act_window</field>
702+ <field name="res_model">business.business</field>
703+ <field name="view_type">form</field>
704+ <field name="view_mode">tree,form</field>
705+ <field name="view_id" ref="business_tree"/>
706+ <field name="domain">[('users','in',[uid])]</field>
707+ </record>
708+ <act_window
709+ domain="[('users','in',[uid])]"
710+ id="act_employee_2_business"
711+ name="My Affairs"
712+ res_model="business.business"
713+ src_model="hr.employee"/>
714+
715+ <!-- stand-alone timesheet lines: add the link field to business -->
716+ <record id="view_biz_account_analytic_line_tree_inherit" model="ir.ui.view">
717+ <field name="name">biz.account.analytic.line.tree.to_invoice</field>
718+ <field name="model">account.analytic.line</field>
719+ <field name="type">tree</field>
720+ <field name="inherit_id" ref="hr_timesheet.hr_timesheet_line_tree"/>
721+ <field name="arch" type="xml">
722+ <field name="date" position="after">
723+ <field name="business_id"/>
724+ </field>
725+ </field>
726+ </record>
727+
728+ <record id="view_biz_account_analytic_line_form_inherit" model="ir.ui.view">
729+ <field name="name">biz.account.analytic.line.form.to_invoice</field>
730+ <field name="model">account.analytic.line</field>
731+ <field name="type">form</field>
732+ <field name="inherit_id" ref="hr_timesheet.hr_timesheet_line_form"/>
733+ <field name="arch" type="xml">
734+ <field name="date" position="after">
735+ <field name="business_id"/>
736+ </field>
737+ </field>
738+ </record>
739+
740+ <!-- menu view -->
741+ <menuitem name="Business" id="menu_business_root" sequence="1"/>
742+ <menuitem name="Business/All Affairs" id="menu_business_all_form_action" action="business_all_form_action"/>
743+ <menuitem name="Business/Draft Affairs" id="menu_business_draft_form_action" action="business_draft_form_action"/>
744+ <menuitem name="Business/Opened Affairs" id="menu_business_open_form_action" action="business_open_form_action"/>
745+ <menuitem name="Business/Closed Affairs" id="menu_business_close_form_action" action="business_close_form_action"/>
746+ <menuitem name="Business/My Affairs" id="menu_business_my_form_action" action="business_my_form_action"/>
747+
748+ <!-- list of views -->
749+ <act_window name="Purchase Invoices"
750+ domain="[('business_id', '=', active_id),('type','=','in_invoice')]"
751+ res_model="account.invoice"
752+ src_model="business.business"
753+ view_type="form"
754+ view_mode="tree,form"
755+ id="act_business_to_purchases"/>
756+
757+ <act_window name="Sale Invoices"
758+ domain="[('business_id', '=', active_id),('type','=','out_invoice')]"
759+ res_model="account.invoice"
760+ src_model="business.business"
761+ view_type="form"
762+ view_mode="tree,form"
763+ id="act_business_to_sales"/>
764+
765+ <act_window name="Analytic Account"
766+ domain="[('id', '=', analytic_account)]"
767+ res_model="account.analytic.account"
768+ src_model="business.business"
769+ view_type="form"
770+ view_mode="tree,form"
771+ id="act_business_to_analytic_account"/>
772+
773+ <record id="business_client_analytic_account" model="account.analytic.account">
774+ <field name="name">Client</field>
775+ </record>
776+
777+ <!-- Project's tasks -->
778+ <record model="ir.ui.view" id="business_edit_project_business">
779+ <field name="name">business.project.task.form</field>
780+ <field name="model">project.task</field>
781+ <field name="inherit_id" ref="project.view_task_form2"/>
782+ <field name="type">form</field>
783+ <field name="arch" type="xml">
784+ <xpath expr="/form/notebook/page/field[@name='work_ids']/tree/field[@name='name']" position="before">
785+ <field name="business_id" invisible="1"/>
786+ </xpath>
787+ </field>
788+ </record>
789+
790+ </data>
791+</openerp>
792
793=== added directory 'i18n'
794=== added file 'i18n/fr_FR.csv'
795--- i18n/fr_FR.csv 1970-01-01 00:00:00 +0000
796+++ i18n/fr_FR.csv 2011-06-12 01:27:27 +0000
797@@ -0,0 +1,33 @@
798+"field","account.invoice,business_id",0,"Business","Affaire"
799+"field","business.business,purchases",0,"Purchases","Achats"
800+"field","business.business,code",0,"Business Number","Numéro Affaire"
801+"field","business.business,name",0,"Business","Affaire"
802+"field","business.business,invoices",0,"Invoices","Factures"
803+"field","business.business,date_end",0,"End Date","Date fin"
804+"field","business.business,date_start",0,"Start Date","Date Début"
805+"field","business.business,sales",0,"Sales","Ventes"
806+"field","business.business,analytic_account",0,"Analytic Account","Compte Analytique"
807+"field","business.business,projects",0,"Projects","Projets"
808+"model","ir.model,name",191,"business affair","Affaire"
809+"model","ir.model,name",192,"business affair","Affaire"
810+"model","ir.model,name",193,"Make a supplier product list","Faire une liste de produit fournisseur"
811+"model","ir.model,name",194,"Partners from business sales","Partenaires des ventes d'une affaire"
812+"model","ir.model,name",195,"Partners from business sales","Partenaires des ventes d'une affaire"
813+"model","ir.model,name",196,"Partners from business purchases","Partenaire des achats d'une affaire"
814+"model","ir.model,name",197,"Partners from business invoices","Partenaires des factures d'une affaire"
815+"model","ir.model,name",198,"Partners from business","Partenaires d'une affaire"
816+"model","ir.ui.menu,name",438,"Business","Affaire"
817+"model","ir.ui.menu,name",439,"Business Affair","Affaire"
818+"field","partner.from.invoice,business_id",0,"Business","Affaire"
819+"field","partner.from.list,business_id",0,"Business","Affaire"
820+"field","partner.from.purchase,business_id",0,"Business","Affaire"
821+"field","partner.from.sale,business_id",0,"Business","Affaire"
822+"field","purchase.order,business_id",0,"Business","Affaire"
823+"field","sale.order,business_id",0,"Business","Affaire"
824+"view","business.business",0,"Business","Affaire"
825+"view","business.business",0,"Affair","Affaire"
826+"view","business.business",0,"Sales","Ventes"
827+"view","business.business",0,"Purchases","Achats"
828+"view","business.business",0,"Invoices","Factures"
829+"view","business.business",0,"Projects","Projets"
830+"view","business.business",0,"Business","Affaire"
831
832=== added file 'i18n/fr_FR.po'
833--- i18n/fr_FR.po 1970-01-01 00:00:00 +0000
834+++ i18n/fr_FR.po 2011-06-12 01:27:27 +0000
835@@ -0,0 +1,388 @@
836+# Translation of OpenERP Server.
837+# This file contains the translation of the following modules:
838+# * business
839+#
840+msgid ""
841+msgstr ""
842+"Project-Id-Version: OpenERP Server 5.0.5-bzr\n"
843+"Report-Msgid-Bugs-To: support@openerp.com\n"
844+"POT-Creation-Date: 2009-09-15 13:35:00+0000\n"
845+"PO-Revision-Date: 2009-09-15 13:35:00+0000\n"
846+"Last-Translator: <>\n"
847+"Language-Team: \n"
848+"MIME-Version: 1.0\n"
849+"Content-Type: text/plain; charset=UTF-8\n"
850+"Content-Transfer-Encoding: \n"
851+"Plural-Forms: \n"
852+
853+#. module: business
854+#: view:business.business:0
855+msgid "Sale invoice"
856+msgstr "Facture de vente"
857+
858+#. module: business
859+#: model:ir.model,name:business.model_partner_from_sale
860+msgid "Partners from business sales"
861+msgstr "Partenaires depuis les ventes de l'affaire"
862+
863+#. module: business
864+#: constraint:ir.model:0
865+msgid "The Object name must start with x_ and not contain any special character !"
866+msgstr "Le nom de l'objet doit commencer avec x_ et ne pas contenir de charactères spéciaux !"
867+
868+#. module: business
869+#: view:business.business:0
870+msgid "(keep empty to use the current period)"
871+msgstr "(laisser vide pour la période courante)"
872+
873+#. module: business
874+#: view:business.business:0
875+msgid "Other Info"
876+msgstr "Autres informations"
877+
878+#. module: business
879+#: view:business.business:0
880+msgid "Create"
881+msgstr "Créer"
882+
883+#. module: business
884+#: constraint:ir.actions.act_window:0
885+msgid "Invalid model name in the action definition."
886+msgstr "Nom du Modèle non valide dans la définition de l'action."
887+
888+#. module: business
889+#: view:business.business:0
890+msgid "PRO-FORMA"
891+msgstr ""
892+
893+#. module: business
894+#: view:business.business:0
895+msgid "Untaxed amount"
896+msgstr "Montant hors-taxe"
897+
898+#. module: business
899+#: field:hr.analytic.timesheet,business_id:0
900+#: model:ir.ui.menu,name:business.menu_business_root
901+msgid "Business"
902+msgstr "Affaires"
903+
904+#. module: business
905+#: field:account.invoice,business_id:0
906+msgid "Business"
907+msgstr "Affaire"
908+
909+#. module: business
910+#: view:business.business:0
911+msgid "Timesheet Lines"
912+msgstr "Lignes horaires"
913+
914+#. module: business
915+#: view:business.business:0
916+msgid "Set to Draft"
917+msgstr "Passer en brouillon"
918+
919+#. module: business
920+#: view:business.business:0
921+msgid "Re-Open"
922+msgstr "Réouvrir"
923+
924+#. module: business
925+#: view:business.business:0
926+msgid "Validate"
927+msgstr "Valider"
928+
929+#. module: business
930+#: view:business.business:0
931+msgid "Invoice lines"
932+msgstr "Lignes de facture"
933+
934+#. module: business
935+#: view:business.business:0
936+msgid "Projects"
937+msgstr "Projets"
938+
939+#. module: business
940+#: constraint:ir.ui.view:0
941+msgid "Invalid XML for View Architecture!"
942+msgstr "XML non valide pour l'architecture de la vue"
943+
944+#. module: business
945+#: view:business.business:0
946+msgid "Purchase invoices"
947+msgstr "Factures d'achat"
948+
949+#. module: business
950+#: view:business.business:0
951+msgid "Total time"
952+msgstr "Temps total"
953+
954+#. module: business
955+#: model:ir.ui.menu,name:business.menu_business_all_form_action
956+msgid "All Affairs"
957+msgstr "Toutes les affaires"
958+
959+#. module: business
960+#: model:ir.model,name:business.model_partner_from_list
961+msgid "Partners from business"
962+msgstr "Partenaires d'une affaire"
963+
964+#. module: business
965+#: view:business.business:0
966+msgid "Total amount"
967+msgstr "Montant total"
968+
969+#. module: business
970+#: view:business.business:0
971+msgid "Compute Taxes"
972+msgstr "Calculer les taxes"
973+
974+#. module: business
975+#: view:business.business:0
976+msgid "Taxes"
977+msgstr "Taxes"
978+
979+#. module: business
980+#: view:business.business:0
981+msgid "TimeSheets"
982+msgstr "Feuilles d'heures"
983+
984+#. module: business
985+#: view:business.business:0
986+msgid "Cancel"
987+msgstr "Annuler"
988+
989+#. module: business
990+#: model:ir.model,name:business.model_business_business
991+msgid "business affair"
992+msgstr "Affaire"
993+
994+#. module: business
995+#: view:business.business:0
996+msgid "Payments"
997+msgstr "Payements"
998+
999+#. module: business
1000+#: view:business.business:0
1001+msgid "Sale invoices"
1002+msgstr "Factures de vente"
1003+
1004+#. module: business
1005+#: view:business.business:0
1006+msgid "Total cost"
1007+msgstr "Coût total"
1008+
1009+#. module: business
1010+#: view:business.business:0
1011+msgid "Additionnal Information"
1012+msgstr "Information additionnelle"
1013+
1014+#. module: business
1015+#: view:business.business:0
1016+msgid "Affair"
1017+msgstr "Affaire"
1018+
1019+#. module: business
1020+#: model:ir.module.module,description:business.module_meta_information
1021+msgid "regroup partner, invoice, purchase, timesheet and analytic account within an affair"
1022+msgstr "Regroupe partenaire, facturation, achat, timesheet et comptabilité analytique dans une affaire"
1023+
1024+#. module: business
1025+#: model:ir.model,name:business.model_partner_from_invoice
1026+msgid "Partners from business invoices"
1027+msgstr "Partenaires depuis les factures de l'affaire"
1028+
1029+#. module: business
1030+#: model:ir.module.module,shortdesc:business.module_meta_information
1031+msgid "Module business"
1032+msgstr "Module Affaire"
1033+
1034+#. module: business
1035+#: model:ir.ui.menu,name:business.menu_business_open_form_action
1036+msgid "Opened Affairs"
1037+msgstr "Affaires en cours"
1038+
1039+#. module: business
1040+#: view:business.business:0
1041+msgid "Businesses"
1042+msgstr "Affaires"
1043+
1044+#. module: business
1045+#: view:business.business:0
1046+msgid "Invoice"
1047+msgstr "Facture"
1048+
1049+#. module: business
1050+#: model:ir.ui.menu,name:business.menu_business_close_form_action
1051+msgid "Closed Affairs"
1052+msgstr "Affaires closes"
1053+
1054+#. module: business
1055+#: constraint:account.analytic.account:0
1056+msgid "Error! You can not create recursive analytic accounts."
1057+msgstr "Erreur ! Vous ne pouvez pas créer de comptes analytiques récursivement."
1058+
1059+#. module: business
1060+#: model:ir.model,name:business.model_partner_from_purchase
1061+msgid "Partners from business purchases"
1062+msgstr "Partenaires depuis les devis"
1063+
1064+#. module: business
1065+#: view:business.business:0
1066+msgid "Timesheet Line"
1067+msgstr "Ligne horaire"
1068+
1069+#. module: business
1070+#: model:ir.ui.menu,name:business.menu_business_draft_form_action
1071+msgid "Draft Affairs"
1072+msgstr "Affaires démarrées"
1073+
1074+#. module: business
1075+#: model:ir.ui.menu,name:business.menu_business_draft_form_action
1076+msgid "My Affairs"
1077+msgstr "Mes affaires"
1078+
1079+#. module: business
1080+#: view:business.business:0
1081+msgid "Additional Information"
1082+msgstr "Information additionnelle"
1083+
1084+#. module: business
1085+#: view:business.business:0
1086+msgid "Business State"
1087+msgstr "Etat de l'affaire"
1088+
1089+#. module: batiplus_products
1090+#: selection:business.business,state:0
1091+msgid "Open"
1092+msgstr "Ouvert"
1093+
1094+#. module: batiplus_products
1095+#: selection:business.business,state:0
1096+msgid "Close"
1097+msgstr "Fermé"
1098+
1099+#. module: batiplus_products
1100+#: selection:business.business,state:0
1101+#: view:business.business:0
1102+msgid "Draft"
1103+msgstr "Proposition"
1104+
1105+#. module: business
1106+#: model:ir.actions.act_window,name:business.act_business_to_purchases
1107+msgid "Purchase Invoices"
1108+msgstr "Factures d'achat"
1109+
1110+#. module: business
1111+#: model:ir.actions.act_window,name:business.act_business_to_sales
1112+msgid "Sale Invoices"
1113+msgstr "Factures de vente"
1114+
1115+#. module: business
1116+#: model:ir.actions.act_window,name:business.act_business_to_analytic_account
1117+msgid "Analytic Account"
1118+msgstr "Compte analytique"
1119+
1120+#. module: business
1121+#: field:business.business,name:0
1122+msgid "Business"
1123+msgstr "Affaire"
1124+
1125+#. module: business
1126+#: field:business.business,code:0
1127+msgid "Business Number"
1128+msgstr "N° d'affaire"
1129+
1130+#. module: business
1131+#: field:business.business,date_start:0
1132+msgid "Start Date"
1133+msgstr "Date de démarrage"
1134+
1135+#. module: business
1136+#: field:business.business,date_end:0
1137+msgid "End Date"
1138+msgstr "Date de fin"
1139+
1140+#. module: business
1141+#: field:business.business,analytic_account:0
1142+msgid "Analytic Account"
1143+msgstr "Compte Analytique"
1144+
1145+#. module: business
1146+#: field:business.business,sales:0
1147+msgid "Sales"
1148+msgstr "Ventes"
1149+
1150+#. module: business
1151+#: field:business.business,purchases:0
1152+msgid "Purchases"
1153+msgstr "Achats"
1154+
1155+#. module: business
1156+#: field:business.business,invoices:0
1157+msgid "Invoices"
1158+msgstr "Factures"
1159+
1160+#. module: business
1161+#: field:business.business,projects:0
1162+msgid "Projects"
1163+msgstr "Projets"
1164+
1165+#. module: business
1166+#: field:business.business,timesheet:0
1167+msgid "Time Sheets"
1168+msgstr "Feuilles d'heures"
1169+
1170+#. module: business
1171+#: field:business.business,main_partner:0
1172+msgid "Main Partner"
1173+msgstr "Partenaire principal"
1174+
1175+#. module: business
1176+#: field:business.business,users:0
1177+msgid "Involved Users"
1178+msgstr "Utilisateurs concernés"
1179+
1180+#. module: business
1181+#: view:business.business:0
1182+msgid "Involved Users"
1183+msgstr "Utilisateurs concernés"
1184+
1185+#. module: business
1186+#: view:business.business:0
1187+msgid "Open"
1188+msgstr "Ouvrir"
1189+
1190+#. module: business
1191+#: view:business.business:0
1192+msgid "Close"
1193+msgstr "Clore"
1194+
1195+#. module: business
1196+#: view:business.business:0
1197+msgid "Draft"
1198+msgstr "Démarrer"
1199+
1200+#. module: business
1201+#: model:ir.actions.act_window,name:ons_business.business_all_form_action
1202+msgid "Business: all affairs"
1203+msgstr "Affaires: toutes"
1204+
1205+#. module: business
1206+#: model:ir.actions.act_window,name:ons_business.business_all_form_action
1207+msgid "Business: draft affairs"
1208+msgstr "Affaires: démarrées"
1209+
1210+#. module: business
1211+#: model:ir.actions.act_window,name:ons_business.business_all_form_action
1212+msgid "Business: opened affairs"
1213+msgstr "Affaires en cours"
1214+
1215+#. module: business
1216+#: model:ir.actions.act_window,name:ons_business.business_all_form_action
1217+msgid "Business: closed affairs"
1218+msgstr "Affaires closes"
1219+
1220+#. module: business
1221+#: model:ir.actions.act_window,name:ons_business.business_all_form_action
1222+msgid "Business: my affairs"
1223+msgstr "Mes affaires"
1224
1225=== added file 'inits.py'
1226--- inits.py 1970-01-01 00:00:00 +0000
1227+++ inits.py 2011-06-12 01:27:27 +0000
1228@@ -0,0 +1,45 @@
1229+# -*- encoding: utf-8 -*-
1230+#
1231+# File: inits.py
1232+# Module: business
1233+#
1234+# Created by cyp@open-net.ch
1235+#
1236+# Copyright (c) 2010 Open-Net Ltd. All rights reserved.
1237+##############################################################################
1238+#
1239+# WARNING: This program as such is intended to be used by professional
1240+# programmers who take the whole responsability of assessing all potential
1241+# consequences resulting from its eventual inadequacies and bugs
1242+# End users who are looking for a ready-to-use solution with commercial
1243+# garantees and support are strongly adviced to contract a Free Software
1244+# Service Company
1245+#
1246+# This program is Free Software; you can redistribute it and/or
1247+# modify it under the terms of the GNU General Public License
1248+# as published by the Free Software Foundation; either version 2
1249+# of the License, or (at your option) any later version.
1250+#
1251+# This program is distributed in the hope that it will be useful,
1252+# but WITHOUT ANY WARRANTY; without even the implied warranty of
1253+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1254+# GNU General Public License for more details.
1255+#
1256+# You should have received a copy of the GNU General Public License
1257+# along with this program; if not, write to the Free Software
1258+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
1259+#
1260+##############################################################################
1261+
1262+from account import invoice
1263+from osv import fields, osv
1264+
1265+class opennet_own_inits(osv.osv):
1266+ _inherit = 'account.invoice'
1267+ _auto = False
1268+
1269+ def __init__(self, pool, cr):
1270+ super(opennet_own_inits, self).__init__(pool, cr)
1271+ cr.execute("Update ir_act_report_xml set report_rml='ons_business/report/invoices.rml' Where model='account.invoice' and report_name='account.invoice'")
1272+
1273+opennet_own_inits()
1274
1275=== added directory 'report'
1276=== added file 'report/invoices.rml'
1277--- report/invoices.rml 1970-01-01 00:00:00 +0000
1278+++ report/invoices.rml 2011-06-12 01:27:27 +0000
1279@@ -0,0 +1,421 @@
1280+<?xml version="1.0"?>
1281+<document filename="test.pdf">
1282+<!--
1283+ <docinit>
1284+ <registerFont fontName="ocrb" fontFile="/home/openerp/addons/business/report/myfont.ttf"/>
1285+ </docinit>
1286+-->
1287+ <template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20">
1288+ <pageTemplate id="first">
1289+ <frame id="first" x1="34.0" y1="28.0" width="530" height="786"/>
1290+ </pageTemplate>
1291+ </template>
1292+ <stylesheet>
1293+ <blockTableStyle id="Standard_Outline">
1294+ <blockAlignment value="LEFT"/>
1295+ <blockValign value="TOP"/>
1296+ </blockTableStyle>
1297+ <blockTableStyle id="Table_Partner_Address">
1298+ <blockAlignment value="LEFT"/>
1299+ <blockValign value="TOP"/>
1300+ </blockTableStyle>
1301+ <blockTableStyle id="Table_Invoice_General_Header">
1302+ <blockAlignment value="LEFT"/>
1303+ <blockValign value="TOP"/>
1304+ <lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,0" stop="0,-1"/>
1305+ <lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,0" stop="0,0"/>
1306+ <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
1307+ <lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
1308+ <lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,0" stop="1,0"/>
1309+ <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
1310+ <lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="2,0" stop="2,-1"/>
1311+ <lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="2,0" stop="2,-1"/>
1312+ <lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="2,0" stop="2,0"/>
1313+ <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
1314+ </blockTableStyle>
1315+ <blockTableStyle id="Table_General_Detail_Content">
1316+ <blockAlignment value="LEFT"/>
1317+ <blockValign value="TOP"/>
1318+ <lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,0" stop="0,-1"/>
1319+ <lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,0" stop="0,0"/>
1320+ <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
1321+ <lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
1322+ <lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,0" stop="1,0"/>
1323+ <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
1324+ <lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="2,0" stop="2,-1"/>
1325+ <lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="2,0" stop="2,-1"/>
1326+ <lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="2,0" stop="2,0"/>
1327+ <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
1328+ </blockTableStyle>
1329+ <blockTableStyle id="Table_Header_Invoice_Line">
1330+ <blockAlignment value="LEFT"/>
1331+ <blockValign value="TOP"/>
1332+ <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
1333+ <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
1334+ <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
1335+ <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
1336+ <lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
1337+ <lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/>
1338+ </blockTableStyle>
1339+ <blockTableStyle id="Table_Invoice_Line_Content">
1340+ <blockAlignment value="LEFT"/>
1341+ <blockValign value="TOP"/>
1342+ <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
1343+ <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
1344+ <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
1345+ <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
1346+ <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
1347+ <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="5,-1" stop="5,-1"/>
1348+ <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="6,-1" stop="6,-1"/>
1349+ <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="7,-1" stop="7,-1"/>
1350+ </blockTableStyle>
1351+ <blockTableStyle id="Table_Format_2">
1352+ <blockAlignment value="LEFT"/>
1353+ <blockValign value="TOP"/>
1354+ <lineStyle kind="LINEBEFORE" colorName="#ffffff" start="0,0" stop="0,-1"/>
1355+ <lineStyle kind="LINEABOVE" colorName="#ffffff" start="0,0" stop="0,0"/>
1356+ <lineStyle kind="LINEBELOW" colorName="#ffffff" start="0,-1" stop="0,-1"/>
1357+ <lineStyle kind="LINEBEFORE" colorName="#ffffff" start="1,0" stop="1,-1"/>
1358+ <lineStyle kind="LINEABOVE" colorName="#ffffff" start="1,0" stop="1,0"/>
1359+ <lineStyle kind="LINEBELOW" colorName="#ffffff" start="1,-1" stop="1,-1"/>
1360+ <lineStyle kind="LINEAFTER" colorName="#ffffff" start="2,0" stop="2,-1"/>
1361+ <lineStyle kind="LINEABOVE" colorName="#ffffff" start="2,0" stop="2,0"/>
1362+ <lineStyle kind="LINEBELOW" colorName="#ffffff" start="2,-1" stop="2,-1"/>
1363+ <lineStyle kind="LINEBEFORE" colorName="#ffffff" start="3,0" stop="3,-1"/>
1364+ <lineStyle kind="LINEAFTER" colorName="#ffffff" start="3,0" stop="3,-1"/>
1365+ <lineStyle kind="LINEABOVE" colorName="#ffffff" start="3,0" stop="3,0"/>
1366+ <lineStyle kind="LINEBELOW" colorName="#ffffff" start="3,-1" stop="3,-1"/>
1367+ <lineStyle kind="LINEABOVE" colorName="#000000" start="4,0" stop="4,0"/>
1368+ <lineStyle kind="LINEABOVE" colorName="#000000" start="5,0" stop="5,0"/>
1369+ <lineStyle kind="LINEABOVE" colorName="#000000" start="6,0" stop="6,0"/>
1370+ <lineStyle kind="LINEABOVE" colorName="#000000" start="10,0" stop="10,0"/>
1371+ <lineStyle kind="LINEABOVE" colorName="#000000" start="11,0" stop="11,0"/>
1372+ <lineStyle kind="LINEABOVE" colorName="#000000" start="12,0" stop="12,0"/>
1373+ <lineStyle kind="LINEBEFORE" colorName="#ffffff" start="0,1" stop="0,-1"/>
1374+ <lineStyle kind="LINEABOVE" colorName="#ffffff" start="0,1" stop="0,1"/>
1375+ <lineStyle kind="LINEBELOW" colorName="#ffffff" start="0,-1" stop="0,-1"/>
1376+ <lineStyle kind="LINEAFTER" colorName="#ffffff" start="1,1" stop="1,-1"/>
1377+ <lineStyle kind="LINEABOVE" colorName="#ffffff" start="1,1" stop="1,1"/>
1378+ <lineStyle kind="LINEBELOW" colorName="#ffffff" start="1,-1" stop="1,-1"/>
1379+ <lineStyle kind="LINEABOVE" colorName="#000000" start="0,2" stop="0,2"/>
1380+ <lineStyle kind="LINEABOVE" colorName="#000000" start="1,2" stop="1,2"/>
1381+ <lineStyle kind="LINEABOVE" colorName="#000000" start="2,2" stop="2,2"/>
1382+ <lineStyle kind="LINEABOVE" colorName="#000000" start="0,4" stop="0,4"/>
1383+ <lineStyle kind="LINEABOVE" colorName="#000000" start="1,4" stop="1,4"/>
1384+ <lineStyle kind="LINEABOVE" colorName="#000000" start="2,4" stop="2,4"/>
1385+ </blockTableStyle>
1386+ <blockTableStyle id="Table_format_Table_Line_total">
1387+ <blockAlignment value="LEFT"/>
1388+ <blockValign value="TOP"/>
1389+ <lineStyle kind="LINEBEFORE" colorName="#ffffff" start="0,0" stop="0,-1"/>
1390+ <lineStyle kind="LINEABOVE" colorName="#ffffff" start="0,0" stop="0,0"/>
1391+ <lineStyle kind="LINEBELOW" colorName="#ffffff" start="0,-1" stop="0,-1"/>
1392+ <lineStyle kind="LINEAFTER" colorName="#ffffff" start="1,0" stop="1,-1"/>
1393+ <lineStyle kind="LINEABOVE" colorName="#ffffff" start="1,0" stop="1,0"/>
1394+ <lineStyle kind="LINEBELOW" colorName="#ffffff" start="1,-1" stop="1,-1"/>
1395+ </blockTableStyle>
1396+ <blockTableStyle id="Table_eclu_Taxes_Total">
1397+ <blockAlignment value="LEFT"/>
1398+ <blockValign value="TOP"/>
1399+ <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
1400+ <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
1401+ <lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
1402+ </blockTableStyle>
1403+ <blockTableStyle id="Table_Taxes_Total">
1404+ <blockAlignment value="LEFT"/>
1405+ <blockValign value="TOP"/>
1406+ </blockTableStyle>
1407+ <blockTableStyle id="Table_Total_Include_Taxes">
1408+ <blockAlignment value="LEFT"/>
1409+ <blockValign value="TOP"/>
1410+ <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
1411+ <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
1412+ <lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
1413+ </blockTableStyle>
1414+ <blockTableStyle id="Table_Main_Table">
1415+ <blockAlignment value="LEFT"/>
1416+ <blockValign value="TOP"/>
1417+ <lineStyle kind="LINEBEFORE" colorName="#ffffff" start="0,0" stop="0,-1"/>
1418+ <lineStyle kind="LINEAFTER" colorName="#ffffff" start="0,0" stop="0,-1"/>
1419+ <lineStyle kind="LINEABOVE" colorName="#ffffff" start="0,0" stop="0,0"/>
1420+ <lineStyle kind="LINEBELOW" colorName="#ffffff" start="0,-1" stop="0,-1"/>
1421+ <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
1422+ <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
1423+ <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
1424+ <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
1425+ <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
1426+ <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
1427+ <lineStyle kind="LINEBEFORE" colorName="#ffffff" start="0,2" stop="0,-1"/>
1428+ <lineStyle kind="LINEAFTER" colorName="#ffffff" start="0,2" stop="0,-1"/>
1429+ <lineStyle kind="LINEBELOW" colorName="#ffffff" start="0,-1" stop="0,-1"/>
1430+ <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
1431+ <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
1432+ <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
1433+ <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
1434+ <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
1435+ <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
1436+ <lineStyle kind="LINEBELOW" colorName="#ffffff" start="0,-1" stop="0,-1"/>
1437+ <lineStyle kind="LINEBELOW" colorName="#ffffff" start="1,-1" stop="1,-1"/>
1438+ <lineStyle kind="LINEBELOW" colorName="#ffffff" start="2,-1" stop="2,-1"/>
1439+ <lineStyle kind="LINEBELOW" colorName="#ffffff" start="3,-1" stop="3,-1"/>
1440+ <lineStyle kind="LINEBELOW" colorName="#ffffff" start="0,-1" stop="0,-1"/>
1441+ <lineStyle kind="LINEBELOW" colorName="#ffffff" start="1,-1" stop="1,-1"/>
1442+ <lineStyle kind="LINEBELOW" colorName="#ffffff" start="2,-1" stop="2,-1"/>
1443+ </blockTableStyle>
1444+ <blockTableStyle id="Table_Tax_Header">
1445+ <blockAlignment value="LEFT"/>
1446+ <blockValign value="TOP"/>
1447+ <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
1448+ <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
1449+ <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
1450+ </blockTableStyle>
1451+ <blockTableStyle id="Table_Tax_Content">
1452+ <blockAlignment value="LEFT"/>
1453+ <blockValign value="TOP"/>
1454+ <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
1455+ <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
1456+ <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
1457+ </blockTableStyle>
1458+ <blockTableStyle id="Table_Table_Border_White">
1459+ <blockAlignment value="LEFT"/>
1460+ <blockValign value="TOP"/>
1461+ <lineStyle kind="LINEBELOW" colorName="#ffffff" start="0,-1" stop="0,-1"/>
1462+ <lineStyle kind="LINEBELOW" colorName="#ffffff" start="1,-1" stop="1,-1"/>
1463+ <lineStyle kind="LINEBELOW" colorName="#ffffff" start="2,-1" stop="2,-1"/>
1464+ </blockTableStyle>
1465+ <blockTableStyle id="Table_Final_Border">
1466+ <blockAlignment value="LEFT"/>
1467+ <blockValign value="TOP"/>
1468+ <lineStyle kind="LINEABOVE" colorName="#ffffff" start="0,0" stop="0,0"/>
1469+ <lineStyle kind="LINEABOVE" colorName="#ffffff" start="1,0" stop="1,0"/>
1470+ </blockTableStyle>
1471+ <blockTableStyle id="Table_Coment_Payment_Term">
1472+ <blockAlignment value="LEFT"/>
1473+ <blockValign value="TOP"/>
1474+ </blockTableStyle>
1475+ <blockTableStyle id="Table_Payment_Terms">
1476+ <blockAlignment value="LEFT"/>
1477+ <blockValign value="TOP"/>
1478+ </blockTableStyle>
1479+ <initialize>
1480+ <paraStyle name="all" alignment="justify"/>
1481+ </initialize>
1482+ <paraStyle name="Standard" fontName="Times-Roman"/>
1483+ <paraStyle name="Text body" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
1484+ <paraStyle name="List" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
1485+ <paraStyle name="Table Contents" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
1486+ <paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
1487+ <paraStyle name="Caption" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="6.0" spaceAfter="6.0"/>
1488+ <paraStyle name="Index" fontName="Times-Roman"/>
1489+ <paraStyle name="Heading" fontName="Helvetica" fontSize="15.0" leading="19" spaceBefore="12.0" spaceAfter="6.0"/>
1490+ <paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
1491+ <paraStyle name="terp_default_8" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1492+ <paraStyle name="Footer" fontName="Times-Roman"/>
1493+ <paraStyle name="P8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="0.0"/>
1494+ <paraStyle name="Horizontal Line" fontName="Times-Roman" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
1495+ <paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
1496+ <paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
1497+ <paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
1498+ <paraStyle name="terp_default_Bold_8" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1499+ <paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
1500+ <paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
1501+ <paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
1502+ <paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
1503+ <paraStyle name="terp_default_Right_8" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
1504+ <paraStyle name="terp_default_Centre_8" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
1505+ <paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
1506+ <paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="CENTER" spaceBefore="12.0" spaceAfter="6.0"/>
1507+ <paraStyle name="terp_default_address" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1508+ <paraStyle name="terp_default_9" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1509+ <paraStyle name="terp_default_Bold_9" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1510+ <paraStyle name="terp_default_Centre_9" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
1511+ <paraStyle name="terp_default_Right_9" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
1512+ <paraStyle name="terp_default_Bold_Right_9" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
1513+ <paraStyle name="terp_default_2" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1514+ <paraStyle name="terp_default_White_2" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1515+ <paraStyle name="terp_default_Note" rightIndent="0.0" leftIndent="9.0" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1516+ </stylesheet>
1517+ <images/>
1518+ <story>
1519+ <para style="terp_default_8">[[ repeatIn(objects,'o') ]]</para>
1520+ <para style="terp_default_8">[[ setLang(o.partner_id.lang) ]] </para>
1521+ <blockTable colWidths="297.0,233.0" style="Table_Partner_Address">
1522+ <tr>
1523+ <td><para style="P8"><font color="white"> </font></para></td>
1524+ <td>
1525+ <para style="terp_default_8">[[ o.partner_id.title or '' ]] [[ o.partner_id.name ]]</para>
1526+ <para style="terp_default_8">[[ o.address_invoice_id.title or '' ]] [[ o.address_invoice_id.name ]]</para>
1527+ <para style="terp_default_8">[[ o.address_invoice_id.street ]]</para>
1528+ <para style="terp_default_8">[[ o.address_invoice_id.street2 or '' ]]</para>
1529+ <para style="terp_default_8">[[ o.address_invoice_id.zip or '' ]] [[ o.address_invoice_id.city or '' ]]</para>
1530+ <para style="terp_default_8">[[ o.address_invoice_id.state_id and o.address_invoice_id.state_id.name or '' ]]</para>
1531+ <para style="terp_default_8">[[ o.address_invoice_id.country_id and o.address_invoice_id.country_id.name or '' ]]</para>
1532+ <para style="P8"><font color="white"> </font></para>
1533+ <para style="terp_default_8">Tel. : [[ o.address_invoice_id.phone or removeParentNode('para') ]]</para>
1534+ <para style="terp_default_8">Fax : [[ o.address_invoice_id.fax or removeParentNode('para') ]]</para>
1535+ <para style="terp_default_8">VAT : [[ o.partner_id.vat or removeParentNode('para') ]]</para>
1536+ </td>
1537+ </tr>
1538+ </blockTable>
1539+ <para style="terp_header">Invoice [[ ((o.type == 'out_invoice' and (o.state == 'open' or o.state == 'paid')) or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
1540+ <para style="terp_header">PRO-FORMA [[ ((o.type == 'out_invoice' and o.state == 'proforma2') or removeParentNode('para')) and '' ]]</para>
1541+ <para style="terp_header">Draft Invoice [[ ((o.type == 'out_invoice' and o.state == 'draft') or removeParentNode('para')) and '' ]]</para>
1542+ <para style="terp_header">Canceled Invoice [[ ((o.type == 'out_invoice' and o.state == 'cancel') or removeParentNode('para')) and '' ]]</para>
1543+ <para style="terp_header">Refund [[ (o.type=='out_refund' or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
1544+ <para style="terp_header">Supplier Refund [[ (o.type=='in_refund' or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
1545+ <para style="terp_header">Supplier Invoice [[ (o.type=='in_invoice' or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
1546+ <para style="P8"><font color="white"> </font></para>
1547+ <blockTable colWidths="177.0,177.0,177.0" style="Table_Invoice_General_Header">
1548+ <tr>
1549+ <td><para style="terp_tblheader_General_Centre">Document</para></td>
1550+ <td><para style="terp_tblheader_General_Centre">Invoice Date</para></td>
1551+ <td><para style="terp_tblheader_General_Centre">Partner Ref.</para></td>
1552+ </tr>
1553+ </blockTable>
1554+ <blockTable colWidths="177.0,177.0,177.0" style="Table_General_Detail_Content">
1555+ <tr>
1556+ <td><para style="terp_default_Centre_9">[[ o.name ]]</para></td>
1557+ <td><para style="terp_default_Centre_9">[[ formatLang(o.date_invoice,date=True) ]]</para></td>
1558+ <td><para style="terp_default_Centre_9">[[ o.address_invoice_id.partner_id.ref or '' ]]</para></td>
1559+ </tr>
1560+ </blockTable>
1561+ <para style="P8"><font color="white"></font></para>
1562+ <para style="P8"><font color="white"> </font></para>
1563+ <blockTable colWidths="313.0,53.0,73.0,84.0" style="Table_Header_Invoice_Line">
1564+ <tr>
1565+ <td><para style="terp_tblheader_Details">Description</para></td>
1566+ <td><para style="terp_tblheader_Details">Quantity</para></td>
1567+ <td><para style="terp_tblheader_Details_Centre">Unit Price</para></td>
1568+ <td><para style="terp_tblheader_Details_Centre">Price</para></td>
1569+ </tr>
1570+ </blockTable>
1571+ <section>
1572+ <para style="terp_default_8">[[ repeatIn(o.invoice_line,'l') ]]</para>
1573+ <blockTable colWidths="313.0,36.0,27.0,63.0,59.0,26.0" style="Table_Invoice_Line_Content">
1574+ <tr>
1575+ <td><para style="terp_default_9">[[ l.name ]]</para></td>
1576+ <td><para style="terp_default_Right_9">[[ formatLang(l.quantity)]]</para></td>
1577+ <td><para style="terp_default_Right_9">[[ (l.uos_id and l.uos_id.name) or '' ]]</para></td>
1578+ <td><para style="terp_default_Right_9">[[ formatLang(l.price_unit) ]]</para></td>
1579+ <td><para style="terp_default_Right_9">[[ formatLang(l.price_subtotal) ]]</para></td>
1580+ <td><para style="terp_default_Right_9">[[ o.currency_id.code ]]</para></td>
1581+ </tr>
1582+ <tr>
1583+ <td><para style="terp_default_Note">[[ format(l.note) or removeParentNode('tr') ]]</para></td>
1584+ <td><para style="terp_default_Note"><font color="white"> </font></para></td>
1585+ <td><para style="terp_default_Note"><font color="white"> </font></para></td>
1586+ <td><para style="terp_default_Note"><font color="white"> </font></para></td>
1587+ <td><para style="terp_default_Note"><font color="white"> </font></para></td>
1588+ <td><para style="terp_default_Note"><font color="white"> </font></para></td>
1589+ </tr>
1590+ </blockTable>
1591+ </section>
1592+ <blockTable colWidths="371.0,153.0" style="Table_Format_2">
1593+ <tr>
1594+ <td>
1595+ <blockTable colWidths="176.0,258.0" style="Table_format_Table_Line_total">
1596+ <tr>
1597+ <td><para style="terp_default_2"><font color="white"> </font></para></td>
1598+ <td><para style="terp_default_2"><font color="white"> </font></para></td>
1599+ </tr>
1600+ </blockTable>
1601+ </td>
1602+ <td>
1603+ <blockTable colWidths="62.0,59.0,25.0" style="Table_eclu_Taxes_Total">
1604+ <tr>
1605+ <td><para style="terp_default_Bold_9">Net Total:</para></td>
1606+ <td><para style="terp_default_Right_9">[[ formatLang(o.amount_untaxed) ]]</para></td>
1607+ <td><para style="terp_default_Right_9">[[ o.currency_id.code ]]</para></td>
1608+ </tr>
1609+ </blockTable>
1610+ <blockTable colWidths="63.0,58.0,26.0" style="Table_Taxes_Total">
1611+ <tr>
1612+ <td><para style="terp_default_Bold_9">Taxes:</para></td>
1613+ <td><para style="terp_default_Right_9">[[ formatLang(o.amount_tax) ]]</para></td>
1614+ <td><para style="terp_default_Right_9">[[ o.currency_id.code ]]</para></td>
1615+ </tr>
1616+ </blockTable>
1617+ <blockTable colWidths="63.0,58.0,26.0" style="Table_Total_Include_Taxes">
1618+ <tr>
1619+ <td><para style="terp_default_Bold_9">Total:</para></td>
1620+ <td><para style="terp_default_Right_9">[[ formatLang(o.amount_total) ]]</para></td>
1621+ <td><para style="terp_default_Right_9">[[ o.currency_id.code ]]</para></td>
1622+ </tr>
1623+ </blockTable>
1624+ </td>
1625+ </tr>
1626+ </blockTable>
1627+ <blockTable colWidths="530.0" style="Table_Main_Table">
1628+ <tr>
1629+ <td>
1630+ <blockTable colWidths="54.0,80.0,67.0" style="Table_Tax_Header">
1631+ <tr>
1632+ <td><para style="terp_tblheader_Details_Centre">Tax</para></td>
1633+ <td><para style="terp_tblheader_Details_Right">Base</para></td>
1634+ <td><para style="terp_tblheader_Details_Right">Amount</para></td>
1635+ </tr>
1636+ </blockTable>
1637+ </td>
1638+ </tr>
1639+ <tr>
1640+ <td>
1641+ <para style="terp_default_8">[[ repeatIn(o.tax_line,'t') ]]</para>
1642+ <blockTable colWidths="53.0,80.0,65.0" style="Table_Tax_Content">
1643+ <tr>
1644+ <td><para style="terp_default_Centre_8">[[ t.name ]] </para></td>
1645+ <td><para style="terp_default_Right_8">[[ formatLang(t.base) ]]</para></td>
1646+ <td><para style="terp_default_Right_8">[[ (t.tax_code_id and t.tax_code_id.notprintable) and removeParentNode('blockTable') or '' ]][[ formatLang(t.amount) ]]</para></td>
1647+ </tr>
1648+ </blockTable>
1649+ </td>
1650+ </tr>
1651+ <tr>
1652+ <td>
1653+ <blockTable colWidths="53.0,60.0,65.0" style="Table_Table_Border_White">
1654+ <tr>
1655+ <td><para style="terp_default_2"><font color="white"> </font></para></td>
1656+ <td><para style="terp_default_2"><font color="white"> </font></para></td>
1657+ <td><para style="terp_default_2"><font color="white"> </font></para></td>
1658+ </tr>
1659+ </blockTable>
1660+ </td>
1661+ </tr>
1662+ </blockTable>
1663+ <blockTable colWidths="180.0,350.0" style="Table_Final_Border">
1664+ <tr>
1665+ <td><para style="terp_default_2"><font color="white"> </font></para></td>
1666+ <td><para style="terp_default_2"><font color="white"> </font></para></td>
1667+ </tr>
1668+ </blockTable>
1669+ <blockTable colWidths="530.0" style="Table_Coment_Payment_Term">
1670+ <tr>
1671+ <td><para style="terp_default_9">[[ format(o.comment or removeParentNode('blockTable')) ]]</para></td>
1672+ </tr>
1673+ </blockTable>
1674+ <para style="terp_default_2">
1675+ <font color="white"> </font>
1676+ </para>
1677+ <blockTable colWidths="530.0" style="Table_Payment_Terms">
1678+ <tr>
1679+ <td><para style="terp_default_9">[[ format((o.payment_term and o.payment_term.note) or removeParentNode('blockTable')) ]]</para></td>
1680+ </tr>
1681+ </blockTable>
1682+ <para style="terp_default_2">
1683+ <font color="white"> </font>
1684+ </para>
1685+ <blockTable colWidths="128.0,402.0" style="Standard_Outline">
1686+ <tr>
1687+ <td>
1688+ <para style="terp_default_Bold_9">Fiscal Position Remark :</para>
1689+ </td>
1690+ <td>
1691+ <para style="terp_default_9">[[ format(o.fiscal_position and o.fiscal_position.note or removeParentNode('blockTable')) ]]</para>
1692+ </td>
1693+ </tr>
1694+ </blockTable>
1695+ <para style="terp_default_2">
1696+ <font color="white"> </font>
1697+ </para>
1698+
1699+ </story>
1700+</document>

Subscribers

People subscribed via source and target branches

to all changes: