← Back to team overview

openerp-india team mailing list archive

[Merge] lp:~openerp-india/openerp-india/trunk-nco into lp:openerp-india

 

Atul Patel(OpenERP) has proposed merging lp:~openerp-india/openerp-india/trunk-nco into lp:openerp-india.

Requested reviews:
  Mantavya Gajjar (Open ERP) (mga)

For more details, see:
https://code.launchpad.net/~openerp-india/openerp-india/trunk-nco/+merge/169336

Hello,

- Add yaml test case for purchase and sale to check packing cost and calculate dealers discount.
- Optimize code. remove unused and commented code.
- Add doc string.
- Improve sxw and rml file.
all points are  mentioned in below link.

https://docs.google.com/document/d/1ofaYnmlPCDZcMB_IcOpfV5YJ0ZbtK48q42XckHG9Twg/edit

Thanks


-- 
The attached diff has been truncated due to its size.
https://code.launchpad.net/~openerp-india/openerp-india/trunk-nco/+merge/169336
Your team OpenERP Indian Team is subscribed to branch lp:~openerp-india/openerp-india/trunk-nco.
=== added directory 'account_tax_fix'
=== added file 'account_tax_fix/__init__.py'
--- account_tax_fix/__init__.py	1970-01-01 00:00:00 +0000
+++ account_tax_fix/__init__.py	2013-06-14 04:50:36 +0000
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+#    OpenERP, Open Source Management Solution
+#    Copyright (C) 2004-2013 Tiny SPRL (<http://tiny.be>).
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+import account_tax_fix
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file

=== added file 'account_tax_fix/__openerp__.py'
--- account_tax_fix/__openerp__.py	1970-01-01 00:00:00 +0000
+++ account_tax_fix/__openerp__.py	2013-06-14 04:50:36 +0000
@@ -0,0 +1,43 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+#    OpenERP, Open Source Management Solution
+#    Copyright (C) 2004-2013 Tiny SPRL (<http://tiny.be>).
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+{
+    'name': 'Account Tax Fix and Category',
+    'version': '1.1',
+    'category': 'Indian Localization',
+    'description': """
+This module adds category field on tax object and fixes the calculation when child taxes are applied.
+=====================================================================================================
+
+""",
+    'author': 'OpenERP SA',
+    'website': 'http://www.openerp.com',
+    'images': [],
+    'depends': ['account'],
+    'data': [
+        'account_tax_fix_view.xml'
+    ],
+    'demo': [],
+    'installable': True,
+    'auto_install': False,
+}
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file

=== added file 'account_tax_fix/account_tax_fix.py'
--- account_tax_fix/account_tax_fix.py	1970-01-01 00:00:00 +0000
+++ account_tax_fix/account_tax_fix.py	2013-06-14 04:50:36 +0000
@@ -0,0 +1,165 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+#    OpenERP, Open Source Management Solution
+#    Copyright (C) 2004-2013 Tiny SPRL (<http://tiny.be>).
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+from openerp.osv import fields, osv
+import time
+
+#class account_invoice(osv.osv):
+#    _inherit = 'account.invoice'
+    
+#    def button_compute(self, cr, uid, ids, context=None, set_total=False):
+#        self.button_reset_taxes(cr, uid, ids, context)
+#        for inv in self.browse(cr, uid, ids, context=context):
+#            if set_total:
+#                self.pool.get('account.invoice').write(cr, uid, [inv.id], {'check_total': inv.amount_total})
+#        return True
+    
+#    def button_reset_taxes(self, cr, uid, ids, context=None):
+#        if context is None:
+#            context = {}
+#        ctx = context.copy()
+#        ait_obj = self.pool.get('account.invoice.tax')
+#        for id in ids:
+#            cr.execute("DELETE FROM account_invoice_tax WHERE invoice_id=%s AND manual is False", (id,))
+#            partner = self.browse(cr, uid, id, context=ctx).partner_id
+#            if partner.lang:
+#                ctx.update({'lang': partner.lang})
+#            for taxe in ait_obj.compute(cr, uid, id, context=ctx).values():
+#                ait_obj.create(cr, uid, taxe)
+#        # Update the stored value (fields.function), so we write to trigger recompute
+#        self.pool.get('account.invoice').write(cr, uid, ids, {'invoice_line':[]}, context=ctx)
+#        return True
+
+class account_tax(osv.osv):
+    _inherit = 'account.tax'
+    
+    _columns = {
+            'tax_categ': fields.selection(
+            [('excise', 'Excise'),
+             ('cess', 'Cess'),
+             ('vat', 'VAT'),
+             ('cst', 'CST'),
+             ('other', 'Other'),
+            ], 'Tax Category')
+        }
+    
+    def _unit_compute(self, cr, uid, taxes, price_unit, product=None, partner=None, quantity=0):
+        taxes = self._applicable(cr, uid, taxes, price_unit , product, partner)
+        res = []
+        cur_price_unit = price_unit
+        for tax in taxes:
+            # we compute the amount for the current tax object and append it to the result
+            data = {'id':tax.id,
+                    'name':tax.description and tax.description + " - " + tax.name or tax.name,
+                    'account_collected_id':tax.account_collected_id.id,
+                    'account_paid_id':tax.account_paid_id.id,
+                    'account_analytic_collected_id': tax.account_analytic_collected_id.id,
+                    'account_analytic_paid_id': tax.account_analytic_paid_id.id,
+                    'base_code_id': tax.base_code_id.id,
+                    'ref_base_code_id': tax.ref_base_code_id.id,
+                    'sequence': tax.sequence,
+                    'base_sign': tax.base_sign,
+                    'tax_sign': tax.tax_sign,
+                    'ref_base_sign': tax.ref_base_sign,
+                    'ref_tax_sign': tax.ref_tax_sign,
+                    'price_unit': cur_price_unit,
+                    'tax_code_id': tax.tax_code_id.id,
+                    'ref_tax_code_id': tax.ref_tax_code_id.id,
+                    'include_base_amount': tax.include_base_amount,
+                    'parent_id':tax.parent_id
+            }
+            res.append(data)
+            if tax.type == 'percent':
+                amount = cur_price_unit * tax.amount
+                data['amount'] = amount
+
+            elif tax.type == 'fixed':
+                data['amount'] = tax.amount
+                data['tax_amount'] = quantity
+                # data['amount'] = quantity
+            elif tax.type == 'code':
+                localdict = {'price_unit':cur_price_unit, 'product':product, 'partner':partner}
+                exec tax.python_compute in localdict
+                amount = localdict['result']
+                data['amount'] = amount
+            elif tax.type == 'balance':
+                data['amount'] = cur_price_unit - reduce(lambda x, y: y.get('amount', 0.0) + x, res, 0.0)
+                data['balance'] = cur_price_unit
+
+            amount2 = data.get('amount', 0.0)
+            if tax.child_ids:
+                if tax.child_depend:
+                    latest = res.pop()
+                amount = amount2
+                child_tax = self._unit_compute(cr, uid, tax.child_ids, amount, product, partner, quantity)
+                # Add Parent reference in child dictionary of tax so that we can inlcude tha amount of child ...
+                for ctax in child_tax:
+                    ctax['parent_tax'] = tax.id
+                
+                res.extend(child_tax)
+                if tax.child_depend:
+                    for r in res:
+                        for name in ('base', 'ref_base'):
+                            if latest[name + '_code_id'] and latest[name + '_sign'] and not r[name + '_code_id']:
+                                r[name + '_code_id'] = latest[name + '_code_id']
+                                r[name + '_sign'] = latest[name + '_sign']
+                                r['price_unit'] = latest['price_unit']
+                                latest[name + '_code_id'] = False
+                        for name in ('tax', 'ref_tax'):
+                            if latest[name + '_code_id'] and latest[name + '_sign'] and not r[name + '_code_id']:
+                                r[name + '_code_id'] = latest[name + '_code_id']
+                                r[name + '_sign'] = latest[name + '_sign']
+                                r['amount'] = data['amount']
+                                latest[name + '_code_id'] = False
+            if tax.include_base_amount:
+                cur_price_unit += amount2
+                # Check for Child tax addition. If Tax has childrens and they have also set include in base amount we will add it for next tax calculation...
+                for r in res:
+                    if 'parent_tax' in r and r['parent_tax'] == tax.id:
+                        cur_price_unit += r['amount']
+        return res
+    
+class account_invoice_tax(osv.osv):
+    _inherit = 'account.invoice.tax'
+    
+    _columns = {
+            'tax_categ': fields.selection(
+            [('excise', 'Excise'),
+             ('cess', 'Cess'),
+             ('vat', 'VAT'),
+             ('cst', 'CST'),
+             ('other', 'Other'),
+            ], 'Tax Category')
+        }
+    
+    def compute(self, cr, uid, invoice_id, context=None):
+        res = super(account_invoice_tax, self).compute(cr, uid, invoice_id, context=None)
+        account_tax_obj = self.pool.get('account.tax')
+        for key in res:
+            tax_code_id = key[0]
+            base_code_id = key[1]
+            tax_id = account_tax_obj.search(cr, uid, [('tax_code_id', '=', tax_code_id), ('base_code_id', '=', base_code_id)], context=context)
+            for id in tax_id:
+                tax_categ = account_tax_obj.browse(cr, uid, id, context=context).tax_categ
+                res[key]['tax_categ'] = tax_categ
+        return res
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

=== added file 'account_tax_fix/account_tax_fix_view.xml'
--- account_tax_fix/account_tax_fix_view.xml	1970-01-01 00:00:00 +0000
+++ account_tax_fix/account_tax_fix_view.xml	2013-06-14 04:50:36 +0000
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data>
+    	
+    	<record id="view_account_tax_inherit_form_taxcateg" model="ir.ui.view">
+            <field name="name">account.tax.inherit.form.tax.categ</field>
+            <field name="model">account.tax</field>
+            <field name="inherit_id" ref="account.view_tax_form"/>
+            <field name="arch" type="xml">
+                <field name="description" position="after">
+                    <field name="tax_categ"/>
+                </field>
+            </field>
+        </record>
+        
+    </data>
+</openerp>

=== added directory 'crm_fix'
=== added file 'crm_fix/__init__.py'
--- crm_fix/__init__.py	1970-01-01 00:00:00 +0000
+++ crm_fix/__init__.py	2013-06-14 04:50:36 +0000
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+#    OpenERP, Open Source Management Solution
+#    Copyright (C) 2004-2013 Tiny SPRL (<http://tiny.be>).
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+import crm_fix
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

=== added file 'crm_fix/__openerp__.py'
--- crm_fix/__openerp__.py	1970-01-01 00:00:00 +0000
+++ crm_fix/__openerp__.py	2013-06-14 04:50:36 +0000
@@ -0,0 +1,45 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+#    OpenERP, Open Source Management Solution
+#    Copyright (C) 2004-2013 Tiny SPRL (<http://tiny.be>).
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+{
+    'name': 'CRM Fixes',
+    'version': '1.0',
+    'category': 'Indian Localization',
+    'sequence': 2,
+    'summary': 'CRM Fixes',
+    'description': """
+CRM Fixes
+=========
+""",
+    'author': 'OpenERP SA',
+    'website': 'http://www.openerp.com',
+    'depends': [
+        'sale_crm',
+    ],
+    'data': [
+        'crm_fix_view.xml',
+    ],
+    'installable': True,
+    'application': True,
+    'auto_install': False,
+    'images': [],
+}
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

=== added file 'crm_fix/crm_fix.py'
--- crm_fix/crm_fix.py	1970-01-01 00:00:00 +0000
+++ crm_fix/crm_fix.py	2013-06-14 04:50:36 +0000
@@ -0,0 +1,127 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+#    OpenERP, Open Source Management Solution
+#    Copyright (C) 2004-today OpenERP SA (<http://www.openerp.com>)
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+from openerp.osv import fields, osv
+from openerp.tools.translate import _
+
+class crm_lead(osv.osv):
+    
+    _inherit = 'crm.lead'
+    
+    _columns = {
+            'show_notes': fields.boolean('Show Internal Notes'),
+            'quote_created': fields.boolean('Quote Created'),
+        }
+    
+class crm_make_sale(osv.osv_memory):
+    
+    _inherit = "crm.make.sale"
+    
+    def makeOrder(self, cr, uid, ids, context=None):
+        """
+        This function  create Quotation on given case.
+        @param self: The object pointer
+        @param cr: the current row, from the database cursor,
+        @param uid: the current user’s ID for security checks,
+        @param ids: List of crm make sales' ids
+        @param context: A standard dictionary for contextual values
+        @return: Dictionary value of created sales order.
+        """
+        if context is None:
+            context = {}
+        # update context: if come from phonecall, default state values can make the quote crash lp:1017353
+        context.pop('default_state', False)        
+        
+        case_obj = self.pool.get('crm.lead')
+        sale_obj = self.pool.get('sale.order')
+        partner_obj = self.pool.get('res.partner')
+        data = context and context.get('active_ids', []) or []
+
+        for make in self.browse(cr, uid, ids, context=context):
+            partner = make.partner_id
+            partner_addr = partner_obj.address_get(cr, uid, [partner.id],
+                    ['default', 'invoice', 'delivery', 'contact'])
+            pricelist = partner.property_product_pricelist.id
+            fpos = partner.property_account_position and partner.property_account_position.id or False
+            new_ids = []
+            for case in case_obj.browse(cr, uid, data, context=context):
+                if not partner and case.partner_id:
+                    partner = case.partner_id
+                    fpos = partner.property_account_position and partner.property_account_position.id or False
+                    partner_addr = partner_obj.address_get(cr, uid, [partner.id],
+                            ['default', 'invoice', 'delivery', 'contact'])
+                    pricelist = partner.property_product_pricelist.id
+                if False in partner_addr.values():
+                    raise osv.except_osv(_('Insufficient Data!'), _('No addresse(s) defined for this customer.'))
+
+                vals = {
+                    'origin': _('Opportunity: %s') % str(case.id),
+                    'section_id': case.section_id and case.section_id.id or False,
+                    'categ_ids': [(6, 0, [categ_id.id for categ_id in case.categ_ids])],
+                    'shop_id': make.shop_id.id,
+                    'partner_id': partner.id,
+                    'pricelist_id': pricelist,
+                    'partner_invoice_id': partner_addr['invoice'],
+                    'partner_shipping_id': partner_addr['delivery'],
+                    'date_order': fields.date.context_today(self,cr,uid,context=context),
+                    'fiscal_position': fpos,
+                    'payment_term': partner.property_payment_term.id or ''
+                }
+                if partner.id:
+                    vals['user_id'] = partner.user_id and partner.user_id.id or uid
+                new_id = sale_obj.create(cr, uid, vals, context=context)
+                sale_order = sale_obj.browse(cr, uid, new_id, context=context)
+                case_obj.write(cr, uid, [case.id], {'ref': 'sale.order,%s' % new_id})
+                new_ids.append(new_id)
+                message = _("Opportunity has been <b>converted</b> to the quotation <em>%s</em>.") % (sale_order.name)
+                case.message_post(body=message)
+            if make.close:
+                case_obj.case_close(cr, uid, data)
+            if not new_ids:
+                return {'type': 'ir.actions.act_window_close'}
+            if len(new_ids)<=1:
+                value = {
+                    'domain': str([('id', 'in', new_ids)]),
+                    'view_type': 'form',
+                    'view_mode': 'form',
+                    'res_model': 'sale.order',
+                    'view_id': False,
+                    'type': 'ir.actions.act_window',
+                    'name' : _('Quotation'),
+                    'res_id': new_ids and new_ids[0]
+                }
+            else:
+                value = {
+                    'domain': str([('id', 'in', new_ids)]),
+                    'view_type': 'form',
+                    'view_mode': 'tree,form',
+                    'res_model': 'sale.order',
+                    'view_id': False,
+                    'type': 'ir.actions.act_window',
+                    'name' : _('Quotation'),
+                    'res_id': new_ids
+                }
+            for lead_id in data:
+                case_obj.write(cr, uid, lead_id, {'quote_created': True}, context=context)
+            return value
+    
+    
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file

=== added file 'crm_fix/crm_fix_view.xml'
--- crm_fix/crm_fix_view.xml	1970-01-01 00:00:00 +0000
+++ crm_fix/crm_fix_view.xml	2013-06-14 04:50:36 +0000
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data>
+		<record id="view_crm_fix_inherit_form" model="ir.ui.view">
+            <field name="name">crm.fix.inherit.form</field>
+            <field name="model">crm.lead</field>
+            <field name="inherit_id" ref="crm.crm_case_form_view_leads"/>
+            <field name="arch" type="xml">
+                <field name="type" position="after">
+                    <field name="show_notes"/>
+                </field>
+                <field name="description" position="replace">
+                    <field name="description" attrs="{'invisible':[('show_notes','=', False)]}"/>
+                </field>
+            </field>
+        </record>
+        
+        <record id="view_crm_opportunity_fix_inherit_form" model="ir.ui.view">
+            <field name="name">crm.fix.opportunity.inherit.form</field>
+            <field name="model">crm.lead</field>
+            <field name="inherit_id" ref="crm.crm_case_form_view_oppor"/>
+            <field name="arch" type="xml">
+            	<button name="%(crm.opportunity2phonecall_act)d" position="before">
+            		<button string="Convert to Quotation" name="%(sale_crm.action_crm_make_sale)d" type="action" attrs="{'invisible':[('quote_created','=', True)]}"/>
+                </button>
+                <button name="action_makeMeeting" position="after">
+                    <button type="action"
+                            name="%(crm.act_crm_opportunity_crm_phonecall_new)d"
+                            string="View Phone Calls"/>
+                </button>
+                <field name="categ_ids" position="after">
+                    <field name="show_notes"/>
+                    <field name="quote_created" invisible=""/>
+                </field>
+                <field name="description" position="replace">
+                    <field name="description" attrs="{'invisible':[('show_notes','=', False)]}"/>
+                </field>
+            </field>
+        </record>
+        
+        <record model="ir.ui.view" id="sale_crm_form_view_inherit">
+            <field name="name">CRM - Opportunities - Quote Inherit1</field>
+            <field name="model">crm.lead</field>
+            <field name="inherit_id" ref="sale_crm.crm_case_form_view_oppor"/>
+            <field name="arch" type="xml">
+                <data>
+                    <xpath expr="//button[@string='Convert to Quotation']" position="replace">
+                    </xpath>
+                </data>
+            </field>
+        </record>
+        
+    </data>
+</openerp>   
\ No newline at end of file

=== added directory 'fleet_mro'
=== added file 'fleet_mro/__init__.py'
--- fleet_mro/__init__.py	1970-01-01 00:00:00 +0000
+++ fleet_mro/__init__.py	2013-06-14 04:50:36 +0000
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+#    OpenERP, Open Source Management Solution
+#    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+import fleet
+import stock
+import report
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file

=== added file 'fleet_mro/__openerp__.py'
--- fleet_mro/__openerp__.py	1970-01-01 00:00:00 +0000
+++ fleet_mro/__openerp__.py	2013-06-14 04:50:36 +0000
@@ -0,0 +1,64 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+#    OpenERP, Open Source Management Solution
+#    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+{
+    'name' : 'WAO (Workshop Automation using OpenERP)',
+    'version' : '0.1',
+    'author' : 'OpenERP S.A.',
+    'sequence': 110,
+    'category': 'Managing vehicles and equipments',
+    'website' : 'http://www.openerp.com',
+    'summary' : 'Vehicles, Equipments, Jobcards, Faults',
+    'description' : """
+Vehicles, Equipments, Jobcards, Faults
+======================================
+With this module, OpenERP helps you managing all your vehicles and equipments the
+contracts associated to those vehicle as well as services, fuel log
+entries, costs and many other features necessary to the management 
+of your fleet of vehicle(s)
+
+Main Features
+-------------
+* Add vehicles and equipments
+* Manage contracts for vehicles
+* Add services, fuel log entry, odometer values for all vehicles
+* Fault Analysis
+""",
+    'depends' : ['purchase', 'fleet'],
+    'data' : [
+        'fleet_view.xml',
+        'stock_view.xml',
+        'job_workflow.xml',
+        'fleet_data.xml',
+        'stock_data.xml',
+        'job_sequence.xml',
+        'work_sequence.xml',
+        'report/fleet_fault_analysis_view.xml',
+        'report/fleet_product_analysis_view.xml',
+    ],
+    'update_xml' : ['security/ir.model.access.csv', 'security/fleet_mro_security.xml'],
+
+    'demo': ['fleet_demo.xml', 'stock_demo.xml'],
+
+    'installable' : True,
+    'application' : True,
+}
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

=== added file 'fleet_mro/fleet.py'
--- fleet_mro/fleet.py	1970-01-01 00:00:00 +0000
+++ fleet_mro/fleet.py	2013-06-14 04:50:36 +0000
@@ -0,0 +1,557 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+#    OpenERP, Open Source Management Solution
+#    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+import time
+from datetime import datetime
+from dateutil.relativedelta import relativedelta
+from openerp.osv import fields, osv
+from openerp import netsvc
+from openerp import tools
+from openerp.tools.translate import _
+import openerp.addons.decimal_precision as dp
+
+class res_users(osv.Model):
+    _inherit = "res.users"
+
+    _columns = {
+        'warehouse_id': fields.many2one('stock.warehouse', 'Warehouse'),
+    }
+#
+#    def unlink(self, cr, uid, ids, context=None):
+#        service_ids = self.pool.get('fleet.vehicle.log.services').search(cr, uid, ['|', ('in_inspector_id', 'in', ids), ('out_inspector_id', 'in', ids)], context=context)
+#        if service_ids:
+#            raise osv.except_osv(_('Invalid Action!'),
+#                                 _('You cannot delete a user associated with job cards. You can either delete all the job cards related to user and then delete the user.'))
+#        return super(res_users, self).unlink(cr, uid, ids, context=context)
+
+res_users()
+
+class fleet_vehicle_fault(osv.Model):
+    _name = 'fleet.vehicle.fault'
+    _description = 'Vehicle Fault'
+
+    _columns = {
+        'fault_id': fields.many2one('fleet.service.type', 'Fault', required=True, domain="[('category', 'in', ('contract', 'service', 'both'))]"),
+        'trade_id': fields.many2one('fleet.service.type', 'Trade Code', required=True, domain="[('category', '=', 't_code')]"),
+        'job_id': fields.many2one('fleet.vehicle.log.services', 'Job', required=True, ondelete='cascade'),
+        'repair_time': fields.float('Repair Time'),
+        'trademen': fields.integer('No of Trademen'),
+        'repair_date': fields.date('Repair Date'),
+        'work_done': fields.text('Work Done'),
+        'entry_clerk': fields.many2one('res.users', 'Entry Clerk', readonly=True),
+    }
+    _defaults = {
+        'repair_date': fields.date.context_today,
+        'entry_clerk': lambda self, cr, uid, context: uid,
+    }
+
+fleet_vehicle_fault()
+
+class fleet_equipment_status(osv.Model):
+    _name = 'fleet.equipment.status'
+    _description = 'Equipment Status'
+
+    _columns = {
+        'name': fields.char('Name', size=64, required=True, translate=True),
+        'code': fields.char('Code', size=32, required=True),
+    }
+
+fleet_equipment_status()
+
+class fleet_vehicle(osv.Model):
+    _name = 'fleet.vehicle'
+    _inherit='fleet.vehicle'
+
+    def open_equipment_job_cards(self, cr, uid, ids, context=None):
+        """ This opens the xml view specified in xml_id for the current vehicle """
+        if context is None:
+            context = {}
+        if context.get('xml_id'):
+            res = self.pool.get('ir.actions.act_window').for_xml_id(cr, uid ,'fleet_mro', context['xml_id'], context=context)
+            res['context'] = context
+            res['context'].update({'default_vehicle_id': ids[0]})
+            res['domain'] = [('vehicle_id','=', ids[0])]
+            return res
+        return False
+
+    def _vehicle_name_get_fnc(self, cr, uid, ids, prop, unknow_none, context=None):
+        res = {}
+        for record in self.browse(cr, uid, ids, context=context):
+            name = record.model_id.brand_id.name + '/' + record.model_id.modelname
+            if record.type == 'vehicle' and record.license_plate:
+                res[record.id] = name + ' / ' + record.license_plate
+            else:
+                if record.erid:
+                    res[record.id] = name + ' / ' + record.erid
+        return res
+
+    def _get_image(self, cr, uid, ids, name, args, context=None):
+        result = dict.fromkeys(ids, False)
+        for obj in self.browse(cr, uid, ids, context=context):
+            result[obj.id] = tools.image_get_resized_images(obj.image)
+        return result
+
+    def _set_image(self, cr, uid, id, name, value, args, context=None):
+        return self.write(cr, uid, [id], {'image': tools.image_resize_image_big(value)}, context=context)
+
+    _columns = {
+        'name': fields.function(_vehicle_name_get_fnc, type="char", string='Name', store=True),
+        'image': fields.binary("Image",
+            help="This field holds the image used for the vehicle, limited to 1024x1024px."),
+        'image_medium': fields.function(_get_image, fnct_inv=_set_image,
+            string="Medium-sized image", type="binary", multi="_get_image",
+            store = {
+                'fleet.vehicle': (lambda self, cr, uid, ids, c={}: ids, ['image'], 10),
+            },
+            help="Medium-sized image of the vehicle. It is automatically "\
+                 "resized as a 128x128px image, with aspect ratio preserved. "\
+                 "Use this field in form views or some kanban views."),
+        'image_small': fields.function(_get_image, fnct_inv=_set_image,
+            string="Small-sized image", type="binary", multi="_get_image",
+            store = {
+                'fleet.vehicle': (lambda self, cr, uid, ids, c={}: ids, ['image'], 10),
+            },
+            help="Small-sized image of the vehicle. It is automatically "\
+                 "resized as a 64x64px image, with aspect ratio preserved. "\
+                 "Use this field anywhere a small image is required."),
+        'license_plate': fields.char('License Plate', size=32, help='License plate number of the vehicle (ie: plate number for a car)'),
+        'erid': fields.char('Eqpt Registration ID', size=64),
+        'present_eqpt_status': fields.many2one('fleet.equipment.status', 'Present Eqpt Status'),
+        'type': fields.selection([('vehicle', 'Vehicle'), ('equipment','Equipment')], 'Type', required=True),
+        'unit_id': fields.many2one('stock.location', 'Unit', domain=[('usage','=','internal')], required=True),
+        'issue_date': fields.date('Date of Issue'),
+    }
+
+    def _default_eqpt_status(self, cr, uid, ids, context=None):
+        status_ids = self.pool.get('fleet.equipment.status').search(cr, uid, [('code', '=', 'ser')], context=context)
+        return status_ids and status_ids[0] or False 
+
+    def _default_unit_id(self, cr, uid, context=None):
+        stock_location = self.pool.get('ir.model.data').get_object(cr, uid, 'stock', 'stock_location_stock')
+        warehouse = self.pool.get('res.users').browse(cr, uid, uid, context=context).warehouse_id
+        if warehouse:
+            stock_location = warehouse.lot_stock_id
+        return stock_location.id
+
+    _defaults = {
+        'present_eqpt_status': _default_eqpt_status,
+        'type': 'vehicle',
+        'unit_id': _default_unit_id,
+        'company_id': lambda self, cr, uid, c: self.pool.get('res.company')._company_default_get(cr, uid, 'fleet.vehicle', context=c)
+    }
+
+fleet_vehicle()
+
+class fleet_vehicle_log_services(osv.Model):
+    _name = 'fleet.vehicle.log.services'
+    _inherit = ['fleet.vehicle.log.services', 'mail.thread'] 
+
+    def on_change_vehicle(self, cr, uid, ids, vehicle_id, context=None):
+        vals = {}
+        if not vehicle_id:
+            return vals
+        vehicle = self.pool.get('fleet.vehicle').browse(cr, uid, vehicle_id, context=context)
+        vals = dict(odometer_unit = vehicle.odometer_unit, purchaser_id = vehicle.driver_id.id, image = vehicle.image)
+        if vehicle.issue_date:
+            current_date = datetime.strptime(fields.date.context_today(self,cr,uid,context=context), '%Y-%m-%d')
+            vintage_date = datetime.strptime(vehicle.issue_date, '%Y-%m-%d')
+            vals = dict(vals, eqpt_vintage = 'Years: %d, Months: %d, Days: %d' %(current_date.year-vintage_date.year,current_date.month-vintage_date.month,current_date.day-vintage_date.day))
+        return {'value': vals}
+
+    def onchange_maint_type(self, cr, uid, ids, maint_type, work_date, context=None):
+        expected_date = (datetime.strptime(work_date, '%Y-%m-%d') + relativedelta(days=2)).strftime('%Y-%m-%d')
+        if maint_type == 'scheduled':
+            expected_date = work_date
+        return {'value': {'expected_date': expected_date}}
+
+    def _previous_jobs(self, cr, uid, ids, name, args, context=None):
+        ''' This function will automatically computes the previous job related to particular vehicle.'''
+        result = {}
+        vehicle = self.browse(cr, uid, ids[0], context=context).vehicle_id
+        for job in self.browse(cr, uid, ids, context=context):
+            job_ids = self.search(cr, uid, [('vehicle_id', '=', vehicle.id), ('time_in', '<', job.time_in)], context=context)
+            result[job.id] = job_ids
+        return result
+
+    def _get_total_insp_time(self, cr, uid, ids, name, args, context=None):
+        result = {}
+        for job in self.browse(cr, uid, ids, context=context):
+            result[job.id] = job.in_inspection_time + job.out_inspection_time
+        return result
+
+    def _get_total_time(self, cr, uid, ids, name, args, context=None):
+        result = {}
+        for job in self.browse(cr, uid, ids, context=context):
+            result[job.id] = job.total_inspection_time + job.repair_time
+        return result
+
+    def _get_repair_time(self, cr, uid, ids, name, args, context=None):
+        result = {}
+        for job in self.browse(cr, uid, ids, context=context):
+            total_time = 0.00
+            for defect in job.defect_ids:
+                total_time = total_time + defect.repair_time
+            result[job.id] = total_time
+        return result
+
+    def _cost_name_get_fnc(self, cr, uid, ids, name, unknow_none, context=None):
+        res = {}
+        for record in self.browse(cr, uid, ids, context=context):
+            name = record.vehicle_id.name
+            if record.job_no:
+                name += ' / '+ record.job_no
+            res[record.id] = name
+        return res
+
+    _columns = {
+        'name': fields.function(_cost_name_get_fnc, type="char", string='Name', store=True),
+        'job_no': fields.char('Job No', size=64, required=True),
+        'image': fields.binary('Image'),
+        'time_in': fields.datetime('Time In'),
+        'fuel_in_tank': fields.float('Fuel in Tank'),
+        'eqpt_vintage': fields.char('Eqpt Vintage', size=64, help="Contact MIS cell to update correct Vintage date of eqpt/veh."),
+        'type': fields.selection([('vehicle', 'Vehicle'), ('equipment','Equipment')], 'Type', required=True),
+        'exploitation_type': fields.selection([('routine','Routine'), ('excercise','Excercise'), ('operational','Operational')],'Exploitation Type', required=True),
+        'maint_type': fields.selection([('unscheduled','Unscheduled'), ('scheduled','Scheduled')],'Maint Type', required=True),
+        'work_no': fields.char('Work No', size=64, required=True),
+        'work_date': fields.date('Work Date'),
+        'dues': fields.boolean('Dues'),
+        'out_km': fields.float('Out KM'),
+#        'in_inspector_id': fields.many2one('res.users','In Inspector', required=True),
+#        'out_inspector_id': fields.many2one('res.users','Out Inspector', required=True),
+        'in_inspector_id': fields.char('In Inspector', size=64),
+        'out_inspector_id': fields.char('Out Inspector', size=64),
+        'in_inspection_time': fields.float('In Insp Time'),
+        'out_inspection_time': fields.float('Out Insp Time'),
+        'job_remarks': fields.text('Job Remarks'),
+        'present_eqpt_status': fields.related('vehicle_id', 'present_eqpt_status', type='many2one', relation='fleet.equipment.status', string="Present Eqpt Status"),
+        'expected_date': fields.date('Tentative Date of Repair'),
+        'pss_date': fields.date('PSS Date'),
+        'technician_id': fields.char('Contact Technician', size=64),
+        'repair_time': fields.function(_get_repair_time, type='float', string='Repair Time', store=True),
+        'total_inspection_time': fields.function(_get_total_insp_time, type='float', string='Time for Inspection'),
+        'total_time': fields.function(_get_total_time, type='float', string='Total Time'),
+        'work_value': fields.float('Work Value'),
+        'tech_delay': fields.integer('Tech Avl Delay Time'),
+        'tools_delay': fields.integer('Tools/SMT Delay Time'),
+        'defect_ids': fields.one2many('fleet.vehicle.fault', 'job_id', 'Defects'),
+        'previous_job_ids': fields.function(_previous_jobs, relation='fleet.vehicle.log.services', type='one2many', string='Previous Jobs'),
+        'product_lines': fields.one2many('job.product.lines', 'job_id', 'Products to Consume', readonly=True, states={'draft': [('readonly', False)], 'observation': [('readonly', False)]},),
+        'picking_id': fields.many2one('stock.picking','Picking'),
+        'unit_id': fields.related('vehicle_id', 'unit_id', type='many2one', relation='stock.location', string='Unit', readonly=True, store=True),
+        'location_id': fields.many2one('stock.location', 'Workshop', required=True),
+        'company_id': fields.related('vehicle_id', 'company_id', type='many2one', relation='res.company', string="Company"),
+        'state':fields.selection([('draft','Draft'), ('observation','Observation'), ('inprogress','Waiting for Material'), ('repair','Repair In Progress'), ('done','Repairing Done'), ('inspection','Inspection'), ('cancel','Cancel'), ('delivered','Delivered')],'State',readonly=True)
+    }
+
+    def _default_stock_location(self, cr, uid, context=None):
+        user_obj = self.pool.get('res.users')
+        stock_location = self.pool.get('ir.model.data').get_object(cr, uid, 'stock', 'stock_location_stock')
+        warehouse = user_obj.browse(cr, uid, uid, context=context).warehouse_id
+        if warehouse:
+            stock_location = warehouse.lot_stock_id
+        return stock_location.id
+
+    _defaults = {
+        'state': 'draft',
+        'time_in': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
+        'type': 'vehicle',
+        'exploitation_type': 'routine',
+        'maint_type': 'unscheduled',
+#        'in_inspector_id': lambda self, cr, uid, context: uid,
+        'in_inspection_time':00.50,
+#        'out_inspector_id': lambda self, cr, uid, context: uid,
+        'expected_date': fields.date.context_today,
+        'work_date': fields.date.context_today,
+        'job_no': lambda obj, cr, uid, context:obj.pool.get('ir.sequence').get(cr, uid, 'job.number'),
+        'work_no': lambda obj, cr, uid, context:obj.pool.get('ir.sequence').get(cr, uid, 'work.number'),
+        'location_id': _default_stock_location
+    }
+
+    def create(self, cr, uid, vals, context=None):
+        if vals.get('vehicle_id'):
+            job_ids = self.search(cr, uid, [('vehicle_id', '=', vals.get('vehicle_id'))], context=context)
+            for job in self.browse(cr, uid, job_ids, context=context):
+                if job.state != 'delivered':
+                    raise osv.except_osv(_('Error!'),_('You cannot create a job for a vehicle which is already in maintenance.'))
+        return super(fleet_vehicle_log_services, self).create(cr, uid, vals, context=context)
+
+    def action_picking_create(self, cr, uid, ids, context=None):
+        assert len(ids) == 1, 'This option should only be used for a single id at a time.'
+        picking_obj = self.pool.get('stock.picking')
+        picking_id = False
+        job = self.browse(cr, uid, ids[0], context=context)
+        if job.product_lines:
+            picking_id = self._create_pickings_and_procurements(cr, uid, job, job.product_lines, None, context=context)
+        self.write(cr, uid, ids, {'picking_id': picking_id, 'state' : 'inprogress'}, context=context)
+        return picking_id
+
+    def action_receive_products(self, cr, uid, ids, context=None):
+        '''
+        This function returns an action that display internal move of given job ids.
+        '''
+        assert len(ids) == 1, 'This option should only be used for a single id at a time'
+        picking_id = self.browse(cr, uid, ids[0], context=context).picking_id.id
+        res = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'stock', 'view_picking_form')
+        result = {
+            'name': _('Internal Moves'),
+            'view_type': 'form',
+            'view_mode': 'form',
+            'view_id': res and res[1] or False,
+            'res_model': 'stock.picking',
+            'type': 'ir.actions.act_window',
+            'nodestroy': True,
+            'target': 'current',
+            'res_id': picking_id,
+        }
+        return result
+
+    def _prepare_job_line_move(self, cr, uid, job, line, picking_id, date_planned, context=None):
+        warehouse_obj = self.pool.get('stock.warehouse')
+        warehouse_id = warehouse_obj.search(cr, uid, [('lot_stock_id', '=', job.location_id.id)], context=context)[0]
+        warehouse = warehouse_obj.browse(cr, uid, warehouse_id, context=context)
+        res = {
+            'name': line.name,
+            'picking_id': picking_id,
+            'product_id': line.product_id.id,
+            'date': date_planned,
+            'date_expected': date_planned,
+            'product_qty': line.product_uom_qty,
+            'product_uom': line.product_uom.id,
+            'product_uos_qty': (line.product_uos and line.product_uos_qty) or line.product_uom_qty,
+            'product_uos': (line.product_uos and line.product_uos.id)\
+                    or line.product_uom.id,
+            'location_id': job.location_id.id,
+            'location_dest_id': warehouse.lot_workshop_id.id,
+            'state': 'draft',
+            'price_unit': line.product_id.standard_price or 0.0
+        }
+        if job.company_id:
+            res = dict(res, company_id = job.company_id.id)
+        return res
+
+    def _prepare_job_picking(self, cr, uid, job, context=None):
+        user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
+        workshop = user.warehouse_id and user.warehouse_id.id or False
+        pick_name = self.pool.get('ir.sequence').get(cr, uid, 'stock.picking')
+        res = {
+            'name': pick_name,
+            'origin': job.job_no,
+            'date': job.work_date,
+            'type': 'internal',
+            'workshop_id': workshop,
+        }
+        if job.company_id:
+            res = dict(res, company_id = job.company_id.id)
+        return res
+
+#    def _get_date_planned(self, cr, uid, order, line, start_date, context=None):
+#        date_planned = datetime.strptime(start_date, DEFAULT_SERVER_DATE_FORMAT) + relativedelta(days=line.delay or 0.0)
+#        date_planned = (date_planned - timedelta(days=order.company_id.security_lead)).strftime(DEFAULT_SERVER_DATETIME_FORMAT)
+#        return date_planned
+
+    def _create_pickings_and_procurements(self, cr, uid, job, product_lines, picking_id=False, context=None):
+        move_obj = self.pool.get('stock.move')
+        picking_obj = self.pool.get('stock.picking')
+        procurement_obj = self.pool.get('procurement.order')
+        proc_ids = []
+
+        for line in product_lines:
+            date_planned = job.work_date
+#            date_planned = self._get_date_planned(cr, uid, order, line, order.date_order, context=context)
+
+            if line.product_id:
+                if line.product_id.type in ('product', 'consu'):
+                    if not picking_id:
+                        picking_id = picking_obj.create(cr, uid, self._prepare_job_picking(cr, uid, job, context=context))
+                    move_id = move_obj.create(cr, uid, self._prepare_job_line_move(cr, uid, job, line, picking_id, date_planned, context=context), context=context)
+                else:
+                    # a service has no stock move
+                    move_id = False
+                proc_id = procurement_obj.create(cr, uid, self._prepare_job_line_procurement(cr, uid, job, line, move_id, date_planned, context=context))
+                proc_ids.append(proc_id)
+
+        wf_service = netsvc.LocalService("workflow")
+        if picking_id:
+            wf_service.trg_validate(uid, 'stock.picking', picking_id, 'button_confirm', cr)
+        for proc_id in proc_ids:
+            wf_service.trg_validate(uid, 'procurement.order', proc_id, 'button_confirm', cr)
+
+        return picking_id
+
+    def _prepare_job_line_procurement(self, cr, uid, job, line, move_id, date_planned, context=None):
+        res = {
+            'name': line.name,
+            'origin': job.job_no,
+            'date_planned': date_planned,
+            'product_id': line.product_id.id,
+            'product_qty': line.product_uom_qty,
+            'product_uom': line.product_uom.id,
+            'product_uos_qty': (line.product_uos and line.product_uos_qty)\
+                    or line.product_uom_qty,
+            'product_uos': (line.product_uos and line.product_uos.id)\
+                    or line.product_uom.id,
+            'location_id': job.location_id.id,
+            'procure_method': line.type,
+            'move_id': move_id,
+            'note': line.name,
+        }
+        if job.company_id:
+            res = dict(res, company_id = job.company_id.id)
+        return res
+
+fleet_vehicle_log_services()
+
+class fleet_service_type(osv.Model):
+    _name = 'fleet.service.type'
+    _inherit = 'fleet.service.type'
+    _description = 'Type of services available on a vehicle'
+    _columns = {
+        'category': fields.selection([('contract', 'Contract'), ('service', 'Service'), ('both', 'Both'), ('t_code', 'T-Code')], 'Category', required=True, help='Choose wheter the service refer to contracts, vehicle services or both'),
+    }
+
+fleet_service_type()
+
+class fleet_vehicle_tag(osv.Model):
+
+    def name_get(self, cr, uid, ids, context=None):
+        res = []
+        if not ids:
+            return res
+        # name_get may receive int id instead of an id list
+        if isinstance(ids, (int, long)):
+            ids = [ids]
+
+        for tag in self.browse(cr, uid, ids, context=context):
+            name = tag.name
+            if tag.parent_id:
+                name = tag.parent_id.name + ' / ' + name
+            res += [(tag.id, name)]
+        return res
+
+    _inherit = 'fleet.vehicle.tag'
+    _columns = {
+        'parent_id':fields.many2one('fleet.vehicle.tag', 'Parent Category'),
+    }
+
+fleet_vehicle_tag()
+
+class job_product_lines(osv.Model):
+
+    _name = 'job.product.lines'
+    _description = 'Job Product Lines'
+    _columns = {
+        'job_id': fields.many2one('fleet.vehicle.log.services', 'Job', required=True, ondelete='cascade'),
+        'name': fields.text('Description', required=True),
+        'product_id': fields.many2one('product.product', 'Product', required=True),
+        'type': fields.selection([('make_to_stock', 'from stock'), ('make_to_order', 'on order')], 'Procurement Method', required=True,
+         help="From stock: When needed, the product is taken from the stock or we wait for replenishment.\nOn order: When needed, the product is purchased or produced."),
+        'product_uom_qty': fields.float('Quantity', digits_compute= dp.get_precision('Product UoS'), required=True),
+        'product_uom': fields.many2one('product.uom', 'Unit of Measure', required=True),
+        'product_uos_qty': fields.float('Quantity (UoS)' ,digits_compute= dp.get_precision('Product UoS')),
+        'product_uos': fields.many2one('product.uom', 'Product UoS'),
+    }
+
+    def _get_uom_id(self, cr, uid, *args):
+        result = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'product', 'product_uom_unit')
+        return result and result[1] or False
+
+    _defaults = {
+        'product_uom' : _get_uom_id,
+        'product_uom_qty': 1,
+        'product_uos_qty': 1,
+        'type': 'make_to_stock',
+    }
+
+    def product_id_change(self, cr, uid, ids, product, qty=0, uom=False, qty_uos=0, uos=False, name='', date_order=False):
+        warning = {}
+        product_uom_obj = self.pool.get('product.uom')
+        product_obj = self.pool.get('product.product')
+
+        if not product:
+            return {'value': {'product_uos_qty': qty}, 'domain': {'product_uom': [], 'product_uos': []}}
+        if not date_order:
+            date_order = time.strftime(DEFAULT_SERVER_DATE_FORMAT)
+
+        result = {}
+        warning_msgs = {}
+        product_obj = product_obj.browse(cr, uid, product)
+
+        uom2 = False
+        if uom:
+            uom2 = product_uom_obj.browse(cr, uid, uom)
+            if product_obj.uom_id.category_id.id != uom2.category_id.id:
+                uom = False
+        if uos:
+            if product_obj.uos_id:
+                uos2 = product_uom_obj.browse(cr, uid, uos)
+                if product_obj.uos_id.category_id.id != uos2.category_id.id:
+                    uos = False
+            else:
+                uos = False
+
+        result['name'] = self.pool.get('product.product').name_get(cr, uid, [product_obj.id])[0][1]
+        domain = {}
+        if (not uom) and (not uos):
+            result['product_uom'] = product_obj.uom_id.id
+            if product_obj.uos_id:
+                result['product_uos'] = product_obj.uos_id.id
+                result['product_uos_qty'] = qty * product_obj.uos_coeff
+                uos_category_id = product_obj.uos_id.category_id.id
+            else:
+                result['product_uos'] = False
+                result['product_uos_qty'] = qty
+                uos_category_id = False
+            domain = {'product_uom':
+                        [('category_id', '=', product_obj.uom_id.category_id.id)],
+                        'product_uos':
+                        [('category_id', '=', uos_category_id)]}
+        elif uos and not uom: # only happens if uom is False
+            result['product_uom'] = product_obj.uom_id and product_obj.uom_id.id
+            result['product_uom_qty'] = qty_uos / product_obj.uos_coeff
+        elif uom: # whether uos is set or not
+            default_uom = product_obj.uom_id and product_obj.uom_id.id
+            q = product_uom_obj._compute_qty(cr, uid, uom, qty, default_uom)
+            if product_obj.uos_id:
+                result['product_uos'] = product_obj.uos_id.id
+                result['product_uos_qty'] = qty * product_obj.uos_coeff
+            else:
+                result['product_uos'] = False
+                result['product_uos_qty'] = qty
+
+        if not uom2:
+            uom2 = product_obj.uom_id
+
+        result['type'] = product_obj.procure_method
+        if warning_msgs:
+            warning = {
+                       'title': _('Configuration Error!'), 'message' : warning_msgs
+                    }
+        return {'value': result, 'domain': domain, 'warning': warning}
+
+    def product_uom_change(self, cr, uid, ids, product, qty=0, uom=False, qty_uos=0, uos=False, name='', date_order=False):
+        if not uom:
+            return {'value': {'product_uom' : uom or False}}
+        return self.product_id_change(cr, uid, ids, product, qty=qty, uom=uom, qty_uos=qty_uos, uos=uos, name=name, date_order=date_order)
+
+job_product_lines()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

=== added file 'fleet_mro/fleet_data.xml'
--- fleet_mro/fleet_data.xml	1970-01-01 00:00:00 +0000
+++ fleet_mro/fleet_data.xml	2013-06-14 04:50:36 +0000
@@ -0,0 +1,641 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data noupdate="1">
+
+        <!-- Fleet Equipment Status Data -->
+        <record id="fleet_equipment_status_1" model="fleet.equipment.status">
+            <field name="name">Ser</field>
+            <field name="code">ser</field>
+        </record>
+
+        <record id="fleet_equipment_status_2" model="fleet.equipment.status">
+            <field name="name">Under Repair Wksp</field>
+            <field name="code">under_repair_wksp</field>
+        </record>
+
+        <record id="fleet_equipment_status_3" model="fleet.equipment.status">
+            <field name="name">PSS Date</field>
+            <field name="code">pss_date</field>
+        </record>
+
+        <record id="fleet_equipment_status_4" model="fleet.equipment.status">
+            <field name="name">Base Repair</field>
+            <field name="code">base_repair</field>
+        </record>
+
+        <record id="fleet_equipment_status_5" model="fleet.equipment.status">
+            <field name="name">Under OH</field>
+            <field name="code">under_oh</field>
+        </record>
+
+        <record id="fleet_equipment_status_6" model="fleet.equipment.status">
+            <field name="name">Factory Repair</field>
+            <field name="code">factory_repair</field>
+        </record>
+
+        <record id="fleet_equipment_status_7" model="fleet.equipment.status">
+            <field name="name">BER</field>
+            <field name="code">ber</field>
+        </record>
+
+        <record id="fleet_equipment_status_8" model="fleet.equipment.status">
+            <field name="name">RegRem/CentRem</field>
+            <field name="code">reg_cent</field>
+        </record>
+
+        <record id="fleet_equipment_status_9" model="fleet.equipment.status">
+            <field name="name">EOA/VOR (Unit Level)</field>
+            <field name="code">eoa_unit</field>
+        </record>
+
+        <record id="fleet_equipment_status_10" model="fleet.equipment.status">
+            <field name="name">EOA/VOR for Spares</field>
+            <field name="code">eoa_spares</field>
+        </record>
+
+        <!--Fleet Service Type(Trade)-->
+
+        <record id="type_service_trade_1" model="fleet.service.type">
+            <field name="name">Examination and Inspection</field>
+            <field name="category">t_code</field>
+        </record>
+
+        <record id="type_service_trade_2" model="fleet.service.type">
+            <field name="name">Telecom Mech(Radar)</field>
+            <field name="category">t_code</field>
+        </record>
+
+        <record id="type_service_trade_3" model="fleet.service.type">
+            <field name="name">Veh Mech</field>
+            <field name="category">t_code</field>
+        </record>
+
+        <record id="type_service_trade_4" model="fleet.service.type">
+            <field name="name">Electrician(MV)</field>
+            <field name="category">t_code</field>
+        </record>
+
+        <record id="type_service_trade_5" model="fleet.service.type">
+            <field name="name">Welder</field>
+            <field name="category">t_code</field>
+        </record>
+
+        <record id="type_service_trade_6" model="fleet.service.type">
+            <field name="name">Direction and Supervision</field>
+            <field name="category">t_code</field>
+        </record>
+
+        <!--Fleet Service Type-->
+
+        <record id="type_service_fault_1" model="fleet.service.type">
+            <field name="name">Ancy work</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_2" model="fleet.service.type">
+            <field name="name">ATI Lanucher does not funtion</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_3" model="fleet.service.type">
+            <field name="name">BRAKE – Air Compressor N/W</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_4" model="fleet.service.type">
+            <field name="name">BRAKE – Air Compressor leaking</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_5" model="fleet.service.type">
+            <field name="name">BRAKE – Brake efficiency poor</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_6" model="fleet.service.type">
+            <field name="name">BRAKE – Parking/Hand brake N/W</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_7" model="fleet.service.type">
+            <field name="name">Brake – Wheel wobbling</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_8" model="fleet.service.type">
+            <field name="name">CHS &amp; SUS – Body reqd welding</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_9" model="fleet.service.type">
+            <field name="name">CHS &amp; SUS – Bonnet catch bkn</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_10" model="fleet.service.type">
+            <field name="name">CHS &amp; SUS – Bumper bend</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_11" model="fleet.service.type">
+            <field name="name">CHS &amp; SUS – Cabin lifting mechanism N/W</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_12" model="fleet.service.type">
+            <field name="name">CHS &amp; SUS – Chain sproket worn out</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_13" model="fleet.service.type">
+            <field name="name">CHS &amp; SUS – Chasis rusty</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_14" model="fleet.service.type">
+            <field name="name">CHS &amp; SUS – Door glass bkn</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_15" model="fleet.service.type">
+            <field name="name">CHS &amp; SUS – Door glass mechanism N/W</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_16" model="fleet.service.type">
+            <field name="name">CHS &amp; SUS – Door lock N/W</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_17" model="fleet.service.type">
+            <field name="name">CHS &amp; SUS – Road spring bkn</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_18" model="fleet.service.type">
+            <field name="name">CHS &amp; SUS – Suspension noisy</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_19" model="fleet.service.type">
+            <field name="name">CHS &amp; SUS – Winch gear defective</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_20" model="fleet.service.type">
+            <field name="name">COOL – Radiator hose perished</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_21" model="fleet.service.type">
+            <field name="name">COOL – Radiator leaking</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_22" model="fleet.service.type">
+            <field name="name">COOL – Water pump defective</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_23" model="fleet.service.type">
+            <field name="name">Documentation</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_24" model="fleet.service.type">
+            <field name="name">ELECT – All lights reqd to check</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_25" model="fleet.service.type">
+            <field name="name">ELECT – Alternator N/W</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_26" model="fleet.service.type">
+            <field name="name">ELECT – Horn/Siren N/W</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_27" model="fleet.service.type">
+            <field name="name">ELECT – Loom short</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_28" model="fleet.service.type">
+            <field name="name">ELECT – Main Switch N/W</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_29" model="fleet.service.type">
+            <field name="name">ELECT – Rotary Switch N/W</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_30" model="fleet.service.type">
+            <field name="name">ELECT – Self Starter N/W</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_31" model="fleet.service.type">
+            <field name="name">ELECT – Wiper N/W</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_32" model="fleet.service.type">
+            <field name="name">ENG – Accelerator cable bkn</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_33" model="fleet.service.type">
+            <field name="name">ENG – Airlocked</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_34" model="fleet.service.type">
+            <field name="name">ENG – Eng suspected noisy</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_35" model="fleet.service.type">
+            <field name="name">ENG – Engine overheating</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_36" model="fleet.service.type">
+            <field name="name">ENG – Mounting pad bkn</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_37" model="fleet.service.type">
+            <field name="name">ENG – Starting trouble</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_38" model="fleet.service.type">
+            <field name="name">F/R Axle noisy</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_39" model="fleet.service.type">
+            <field name="name">FUEL – Eng pulling power weak</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_40" model="fleet.service.type">
+            <field name="name">FUEL – Fuel gauge N/W</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_41" model="fleet.service.type">
+            <field name="name">FUEL – Fuel sys clogged</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_42" model="fleet.service.type">
+            <field name="name">LUB – Eng oil change due</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_43" model="fleet.service.type">
+            <field name="name">LUB – Eng oil pressure low</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_44" model="fleet.service.type">
+            <field name="name">MISC – Handle grip perished</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_45" model="fleet.service.type">
+            <field name="name">MISC – Hub greasing due</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_46" model="fleet.service.type">
+            <field name="name">MISC – KPL test</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_47" model="fleet.service.type">
+            <field name="name">MISC – Long route test</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_48" model="fleet.service.type">
+            <field name="name">MISC – Modification</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_49" model="fleet.service.type">
+            <field name="name">MISC – Side view mirror bkn</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_50" model="fleet.service.type">
+            <field name="name">MISC – Water tank leaking</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_51" model="fleet.service.type">
+            <field name="name">MISC – wind screen glass broken/cracked</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_52" model="fleet.service.type">
+            <field name="name">Misc Repair</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_53" model="fleet.service.type">
+            <field name="name">Other Defect</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_54" model="fleet.service.type">
+            <field name="name">Pneumatic Sys faulty</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_55" model="fleet.service.type">
+            <field name="name">STEERING – Excessive wearness of type</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_56" model="fleet.service.type">
+            <field name="name">STEERING – Steering grear box noisy </field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_57" model="fleet.service.type">
+            <field name="name">STEERING – Steering wobbling</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_58" model="fleet.service.type">
+            <field name="name">Supervision</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_59" model="fleet.service.type">
+            <field name="name">TRANSM – Clutch defective</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_60" model="fleet.service.type">
+            <field name="name">TRANSM – Km head N/W</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_61" model="fleet.service.type">
+            <field name="name">TRANSM – Main grear box noisy</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_62" model="fleet.service.type">
+            <field name="name">TRANSM – Rear axle noisy</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_63" model="fleet.service.type">
+            <field name="name">TRANSM – Spider brg worn out</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_64" model="fleet.service.type">
+            <field name="name">TRANSM – Transfer case noisy</field>
+            <field name="category">service</field>
+        </record>
+
+        <record id="type_service_fault_65" model="fleet.service.type">
+            <field name="name">TRANSM – Transmission oil change due</field>
+            <field name="category">service</field>
+        </record>
+
+        <!--Vehicle tag-->
+        <record id="vehicle_tag_A" model="fleet.vehicle.tag" >
+            <field name="name">A Vehicle</field>
+        </record>
+
+        <record id="vehicle_tag_B" model="fleet.vehicle.tag" >
+            <field name="name">B Vehicle</field>
+        </record>
+
+        <record id="vehicle_tag_C" model="fleet.vehicle.tag" >
+            <field name="name">C Vehicle</field>
+        </record>
+
+        <record id="vehicle_tag_it" model="fleet.vehicle.tag" >
+            <field name="name">IT Assets</field>
+        </record>
+
+        <record id="vehicle_tag_misc" model="fleet.vehicle.tag" >
+            <field name="name">Misc Tasks</field>
+        </record>
+
+        <record id="vehicle_tag_transit" model="fleet.vehicle.tag" >
+            <field name="name">Transit Eqpt</field>
+        </record>
+
+        <record id="vehicle_tag_ICV" model="fleet.vehicle.tag" >
+            <field name="name">ICV BMP-l,ll &amp; llk</field>
+            <field name="parent_id" ref="vehicle_tag_A"/>
+        </record>
+
+        <record id="vehicle_tag_t_72" model="fleet.vehicle.tag" >
+            <field name="name">T-72 (All Models)</field>
+            <field name="parent_id" ref="vehicle_tag_A"/>
+        </record>
+
+        <record id="vehicle_tag_arv_vt_72b" model="fleet.vehicle.tag" >
+            <field name="name">ARV VT-72B</field>
+            <field name="parent_id" ref="vehicle_tag_A"/>
+        </record>
+
+        <record id="vehicle_tag_arv_wzt3" model="fleet.vehicle.tag" >
+            <field name="name">ARV WZT-3</field>
+            <field name="parent_id" ref="vehicle_tag_A"/>
+        </record>
+
+        <record id="vehicle_tag_tank" model="fleet.vehicle.tag" >
+            <field name="name">Tank T-90S/SK</field>
+            <field name="parent_id" ref="vehicle_tag_A"/>
+        </record>
+
+        <record id="vehicle_tag_cd_100" model="fleet.vehicle.tag" >
+            <field name="name">MC 100 CC Hero Honda CD-100</field>
+            <field name="parent_id" ref="vehicle_tag_B"/>
+        </record>
+
+        <record id="vehicle_tag_mc_350" model="fleet.vehicle.tag" >
+            <field name="name">M/C 350 CC R/E</field>
+            <field name="parent_id" ref="vehicle_tag_B"/>
+        </record>
+
+        <record id="vehicle_tag_car_ambassador" model="fleet.vehicle.tag" >
+            <field name="name">Car Ambassador 1800 ISZU (With MPFI &amp; w/o MPFI)</field>
+            <field name="parent_id" ref="vehicle_tag_B"/>
+        </record>
+
+        <record id="vehicle_tag_maruti_gypsy" model="fleet.vehicle.tag" >
+            <field name="name">Maruti Gypsy (All Models)</field>
+            <field name="parent_id" ref="vehicle_tag_B"/>
+        </record>
+
+        <record id="vehicle_tag_jeep_550" model="fleet.vehicle.tag" >
+            <field name="name">Jeep M&amp;M 550XD</field>
+            <field name="parent_id" ref="vehicle_tag_B"/>
+        </record>
+
+        <record id="vehicle_tag_lcv_tata" model="fleet.vehicle.tag" >
+            <field name="name">LCV Tata 2.5 Ton LPTA 713/32 &amp; TC 713/32</field>
+            <field name="parent_id" ref="vehicle_tag_B"/>
+        </record>
+
+        <record id="vehicle_tag_swaraj_mazda" model="fleet.vehicle.tag" >
+            <field name="name">Swaraj Mazda</field>
+            <field name="parent_id" ref="vehicle_tag_B"/>
+        </record>
+
+        <record id="vehicle_tag_als_ton" model="fleet.vehicle.tag" >
+            <field name="name">ALS 5/7.5 Ton 4x4 Mk-ll &amp; Mk-lll</field>
+            <field name="parent_id" ref="vehicle_tag_B"/>
+        </record>
+
+        <record id="vehicle_tag_lcv_Eicher_Canter" model="fleet.vehicle.tag" >
+            <field name="name">LCV Eicher Canter</field>
+            <field name="parent_id" ref="vehicle_tag_B"/>
+        </record>
+
+        <record id="vehicle_tag_Tata_FAT" model="fleet.vehicle.tag" >
+            <field name="name">Tata FAT 1210 SD/36</field>
+            <field name="parent_id" ref="vehicle_tag_B"/>
+        </record>
+
+        <record id="vehicle_tag_ashok_leyland_ton" model="fleet.vehicle.tag" >
+            <field name="name">Ashok Leyland 5/7.5 Ton Stallion LRV Wrecker Car</field>
+            <field name="parent_id" ref="vehicle_tag_B"/>
+        </record>
+
+        <record id="vehicle_tag_waer_bowser" model="fleet.vehicle.tag" >
+            <field name="name">ALS 5KL Waer Bowser</field>
+            <field name="parent_id" ref="vehicle_tag_B"/>
+        </record>
+
+        <record id="vehicle_tag_water_bowser" model="fleet.vehicle.tag" >
+            <field name="name">2KL Water Bowser</field>
+            <field name="parent_id" ref="vehicle_tag_B"/>
+        </record>
+
+        <record id="vehicle_tag_Swaraj_Mazda_Amb" model="fleet.vehicle.tag" >
+            <field name="name">Swaraj Mazda Amb</field>
+            <field name="parent_id" ref="vehicle_tag_B"/>
+        </record>
+
+        <record id="vehicle_tag_Car_Indigo_TATA" model="fleet.vehicle.tag" >
+            <field name="name">Car Indigo TATA</field>
+            <field name="parent_id" ref="vehicle_tag_B"/>
+        </record>
+
+        <record id="vehicle_tag_fire_fighting" model="fleet.vehicle.tag" >
+            <field name="name">ALS Truck Fire Fighting 10Ton MK lV</field>
+            <field name="parent_id" ref="vehicle_tag_B"/>
+        </record>
+
+        <record id="vehicle_tag_Ashok_Leyland_Shelters" model="fleet.vehicle.tag" >
+            <field name="name">Ashok Leyland Stallion 4x4 ILM Shelters</field>
+            <field name="parent_id" ref="vehicle_tag_B"/>
+        </record>
+
+        <record id="vehicle_tag_fabricated_bus" model="fleet.vehicle.tag" >
+            <field name="name">LPO 1512TC/55 Pre-fabricated Bus</field>
+            <field name="parent_id" ref="vehicle_tag_B"/>
+        </record>
+
+        <record id="vehicle_tag_sx4" model="fleet.vehicle.tag" >
+            <field name="name">Car Maruti Suzuki SX4</field>
+            <field name="parent_id" ref="vehicle_tag_B"/>
+        </record>
+
+        <record id="vehicle_tag_eicher_ton" model="fleet.vehicle.tag" >
+            <field name="name">Eicher 3 Ton</field>
+            <field name="parent_id" ref="vehicle_tag_B"/>
+        </record>
+
+        <record id="vehicle_tag_crane_veh" model="fleet.vehicle.tag" >
+            <field name="name">Tatra T-815 6x6 For PMS Bridge AD 160 Mk-ll Crane Veh</field>
+            <field name="parent_id" ref="vehicle_tag_B"/>
+        </record>
+
+        <record id="vehicle_tag_tractor_tatra" model="fleet.vehicle.tag" >
+            <field name="name">Tractor Tatra 815 VT 8x8 IR Tk Transportor</field>
+            <field name="parent_id" ref="vehicle_tag_B"/>
+        </record>
+
+        <record id="vehicle_tag_trailers" model="fleet.vehicle.tag" >
+            <field name="name">Trailers (All Type)</field>
+            <field name="parent_id" ref="vehicle_tag_B"/>
+        </record>
+
+        <record id="vehicle_tag_TATA_407" model="fleet.vehicle.tag" >
+            <field name="name">TATA 407</field>
+            <field name="parent_id" ref="vehicle_tag_B"/>
+        </record>
+
+        <record id="vehicle_tag_pontoon_bridge" model="fleet.vehicle.tag" >
+            <field name="name">Pontoon Bridge Set PMS (Crane Type)</field>
+            <field name="parent_id" ref="vehicle_tag_C"/>
+        </record>
+
+        <record id="vehicle_tag_Deskop_PC" model="fleet.vehicle.tag" >
+            <field name="name">Deskop PC</field>
+            <field name="parent_id" ref="vehicle_tag_it"/>
+        </record>
+
+        <record id="vehicle_tag_UPS" model="fleet.vehicle.tag" >
+            <field name="name">UPS all types</field>
+            <field name="parent_id" ref="vehicle_tag_it"/>
+        </record>
+
+        <record id="vehicle_tag_repair_assi" model="fleet.vehicle.tag" >
+            <field name="name">Repair Assistance/Tech Guidance</field>
+            <field name="parent_id" ref="vehicle_tag_misc"/>
+        </record>
+
+        <record id="vehicle_tag_lecture" model="fleet.vehicle.tag" >
+            <field name="name">Lecture / Classes</field>
+            <field name="parent_id" ref="vehicle_tag_misc"/>
+        </record>
+
+        <record id="vehicle_tag_electrical_lighting" model="fleet.vehicle.tag" >
+            <field name="name">Electrical Lighting</field>
+            <field name="parent_id" ref="vehicle_tag_misc"/>
+        </record>
+
+        <record id="vehicle_tag_mobile_repair" model="fleet.vehicle.tag" >
+            <field name="name">Mobile Repair Team Detailment</field>
+            <field name="parent_id" ref="vehicle_tag_misc"/>
+        </record>
+
+        <record id="vehicle_tag_Conditioning" model="fleet.vehicle.tag" >
+            <field name="name">Conditioning</field>
+            <field name="parent_id" ref="vehicle_tag_misc"/>
+        </record>
+
+        <record id="vehicle_tag_inspections_cme" model="fleet.vehicle.tag" >
+            <field name="name">Inspections/CME/Wpn Inspection</field>
+            <field name="parent_id" ref="vehicle_tag_misc"/>
+        </record>
+
+        <record id="vehicle_tag_TATA_407" model="fleet.vehicle.tag" >
+            <field name="name">Transit Eqpt</field>
+            <field name="parent_id" ref="vehicle_tag_transit"/>
+        </record>
+
+        <!-- Stock Location -->
+        <record id="stock.stock_location_stock" model="stock.location">
+            <field name="workshop">True</field>
+        </record>
+
+    </data>
+</openerp>

=== added file 'fleet_mro/fleet_demo.xml'
--- fleet_mro/fleet_demo.xml	1970-01-01 00:00:00 +0000
+++ fleet_mro/fleet_demo.xml	2013-06-14 04:50:36 +0000
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data noupdate="1">
+
+        <!-- Fleet Vehicle Log Services -->
+        <record id="fleet.log_service_1" model="fleet.vehicle.log.services">
+            <field name="in_inspector_id" ref="base.user_root"/>
+            <field name="technician_id" ref="base.user_root"/>
+        </record>
+
+        <record id="fleet.log_service_2" model="fleet.vehicle.log.services">
+            <field name="in_inspector_id" ref="base.user_root"/>
+            <field name="technician_id" ref="base.user_root"/>
+        </record>
+
+        <record id="fleet.log_service_3" model="fleet.vehicle.log.services">
+            <field name="in_inspector_id" ref="base.user_demo"/>
+            <field name="technician_id" ref="base.user_demo"/>
+        </record>
+
+        <record id="fleet.log_service_4" model="fleet.vehicle.log.services">
+            <field name="in_inspector_id" ref="base.user_root"/>
+            <field name="technician_id" ref="base.user_root"/>
+        </record>
+
+        <record id="fleet.log_service_5" model="fleet.vehicle.log.services">
+            <field name="in_inspector_id" ref="base.user_demo"/>
+            <field name="technician_id" ref="base.user_demo"/>
+        </record>
+
+        <record id="fleet.log_service_6" model="fleet.vehicle.log.services">
+            <field name="in_inspector_id" ref="base.user_root"/>
+            <field name="technician_id" ref="base.user_root"/>
+        </record>
+
+    </data>
+</openerp>

=== added file 'fleet_mro/fleet_view.xml'
--- fleet_mro/fleet_view.xml	1970-01-01 00:00:00 +0000
+++ fleet_mro/fleet_view.xml	2013-06-14 04:50:36 +0000
@@ -0,0 +1,1314 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<openerp>
+    <data>
+
+        <!-- MRO Menu -->
+        <menuitem name="WAO" id="fleet.menu_root" sequence="110"/>
+        <delete model="ir.ui.menu" search="[('name', '=', 'Vehicles Contracts')]"/>
+        <delete model="ir.ui.menu" search="[('name','=','Vehicles Odometer')]"/>
+        <delete model="ir.ui.menu" search="[('name','=','Vehicles Fuel Logs')]"/>
+        <delete model="ir.ui.menu" search="[('name','=','Vehicle Costs')]"/>
+
+        <menuitem name="Brands" action="fleet.fleet_vehicle_model_brand_act" parent="fleet.fleet_configuration" id="fleet.fleet_vehicle_model_brand_menu" sequence="1"/>
+        <menuitem name="Models" action="fleet.fleet_vehicle_model_act" parent="fleet.fleet_configuration" id="fleet.fleet_vehicle_model_menu" sequence="2"/>
+        <delete model="ir.ui.menu" search="[('name','=','Vehicle Status')]"/>
+        <menuitem name="Defects" action="fleet.fleet_vehicle_service_types_act" parent="fleet.fleet_configuration" id="fleet.fleet_vehicle_service_types_menu" groups="base.group_no_one" sequence="5"/>
+
+        <!-- Vehicle Job Cards Form View -->
+        <record id='fleet.fleet_vehicle_log_services_form' model='ir.ui.view'>
+            <field name="name">fleet.vehicle.log.services.form</field>
+            <field name="model">fleet.vehicle.log.services</field>
+            <field name="arch" type="xml">
+                <form string="Job Cards" version="7.0">
+                    <header>
+                        <button name="job_observation" string="Start Observation" states="draft" class="oe_highlight"/>
+                        <button name="job_inprogress" string="Reqest for Material" class="oe_highlight"
+                        attrs="{'invisible': ['|', ('product_lines', '=', []), ('state', '!=', 'observation')]}"/>
+                        <button name="repair" string="Start Repair" class="oe_highlight"
+                        attrs="{'invisible': ['|', ('product_lines', '!=', []), ('state', '!=', 'observation')]}"/>
+                        <button name="job_cancel" string="Cancel" states="observation"/>
+                        <button name="action_receive_products" string="Receive Product(s)" type="object" class="oe_highlight"
+                            attrs="{'invisible': ['|', ('picking_id', '=', False), ('state', '!=', 'inprogress')]}"/>
+                        <button name="job_done" string="Finish Repair" states="repair" class="oe_highlight"/>
+                        <button name="job_inspection" string="Start Inspection" states="done" class="oe_highlight"/>
+                        <button name="job_delivered" string="Deliver" states="inspection" class="oe_highlight"/>
+                        <button name="job_delivered" string="Deliver" states="cancel" class="oe_highlight"/>
+                        <field name="state" widget="statusbar" statusbar_visible="draft,observation,repair,done,inspection,delivered" statusbar_colors='{"cancel":"red", "repair":"blue"}'/>
+                    </header>
+                    <sheet>
+                        <field name="image" widget='image' class="oe_left oe_avatar"/>
+                        <div class="oe_title">
+                            <label for="vehicle_id" string="Vehicle" class="oe_edit_only"/> 
+                            <h1>
+                                <field name="vehicle_id" on_change="on_change_vehicle(vehicle_id)" domain="[('type', '=', 'vehicle')]" context="{'default_type': 'vehicle'}"/>
+                            </h1>
+                            <field name="present_eqpt_status"/>
+                            <field name="type" invisible="1"/>
+                        </div>
+                        <group>
+                            <group>
+                                <field name="job_no"/>
+                                <field name="time_in"/>
+                                <field name="eqpt_vintage"/>
+                                <field name="exploitation_type"/>
+                                <field name="maint_type" on_change="onchange_maint_type(maint_type, work_date)"/>
+                                <field name="in_inspector_id"/>
+                                <field name="out_inspector_id" attrs="{'invisible': [('state', 'not in', ('inspection', 'delivered'))]}"/>
+                                <field name="unit_id"/>
+                                <field name="company_id" invisible="1"/>
+                            </group>
+                            <group>
+                                <field name="fuel_in_tank"/>
+                                <field name="odometer" string="In KM"/>
+                                <field name="out_km" attrs="{'invisible': [('state', 'not in', ('inspection', 'delivered'))]}"/>
+                                <field name="work_no"/>
+                                <field name="work_date"/>
+                                <field name="dues"/>
+                                <field name="in_inspection_time" widget="float_time"/>
+                                <field name="out_inspection_time" widget="float_time" attrs="{'invisible': [('state', 'not in', ('inspection', 'delivered'))]}"/>
+                                <field name="location_id" context="{'default_workshop': True}" domain="[('workshop', '=', True)]"/>
+                            </group>
+                        </group>
+                        <group>
+                            <field name="job_remarks"/>
+                        </group>
+                        <!--<notebook>
+                            <page string="Job Summary">
+                                <group>
+                                    <group string="Repair Progress">
+                                        <field name="expected_date"/>
+                                        <field name="technician_id"/>
+                                        <field name="pss_date"/>
+                                    </group>
+                                    <group string="Job Summary">
+                                        <field name="repair_time" widget="float_time"/>
+                                        <field name="total_inspection_time" widget="float_time" string="Time for Inspection"/>
+                                        <field name="total_time" widget="float_time"/>
+                                        <field name="work_value" widget="float_time"/>
+                                    </group>
+                                    <group string="Delay Time">
+                                    <label for="tech_delay" string="Technician"/>
+                                    <div>
+                                        <field name="tech_delay" class="oe_inline"/>(In Days)
+                                    </div>
+                                    <label for="tools_delay" string="Tools / SMT"/>
+                                    <div>
+                                        <field name="tools_delay" class="oe_inline"/>(In Days)
+                                    </div>
+                                    </group>
+                                </group>
+                            </page>
+                            <page string="Defects">
+                                <group>
+                                    <group>
+                                        <field name="defect_ids" nolabel="1">
+                                            <form string="Defects" version="7.0">
+                                                <group>
+                                                    <group>
+                                                        <field name="fault_id" string="Fault Type" widget="selection" domain="[('category', 'in', ('contract', 'service', 'both'))]"/>
+                                                        <field name="repair_date"/>
+                                                    </group>
+                                                    <group>
+                                                        <field name="trade_id" string="T-Code" widget="selection" domain="[('category', '=', 't_code')]"/>
+                                                        <field name="repair_time"/>
+                                                        <field name="trademen"/>
+                                                    </group>
+                                                </group>
+                                                <label for="work_done"/>
+                                                <field name="work_done"/>
+                                            </form>
+                                            <tree string="Defects">
+                                                <field name="trade_id" string="Trade Name" domain="[('category', '=', 't_code')]"/>
+                                                <field name="fault_id" domain="[('category', 'in', ('contract', 'service', 'both'))]"/>
+                                                <field name="work_done"/>
+                                                <field name="repair_date"/>
+                                                <field name="repair_time" string="Time(MM)"/>
+                                                <field name="trademen" string="Trademen"/>
+                                                <field name="entry_clerk"/>
+                                            </tree>
+                                        </field>
+                                    </group>
+                                </group>
+                            </page>
+                            <page string="Previous Jobs">
+                                <group>
+                                    <group>
+                                        <field name="previous_job_ids" nolabel="1">
+                                            <tree string="Previous Jobs">
+                                                <field name="job_no"/>
+                                                <field name="time_in"/>
+                                                <field name="job_remarks"/>
+                                                <field name="exploitation_type"/>
+                                                <field name="maint_type"/>
+                                                <field name="in_inspector_id"/>
+                                                <field name="in_inspection_time"/>
+                                                <field name="out_inspector_id"/>
+                                                <field name="out_inspection_time"/>
+                                                <field name="technician_id"/>
+                                                <field name="present_eqpt_status"/>
+                                                <field name="state"/>
+                                            </tree>
+                                        </field>
+                                    </group>
+                                </group>
+                            </page>
+                            <page string="Products to Consume">
+                                <field name="picking_id" invisible="1"/>
+                                <field name="product_lines">
+                                    <form string="Products to Consume" version="7.0">
+                                        <group>
+                                            <group>
+                                                <field name="product_id"
+                                                    groups="base.group_user"
+                                                    on_change="product_id_change(product_id, product_uom_qty, product_uom, product_uos_qty, product_uos, name, parent.work_date)"/>
+                                                <label for="product_uom_qty"/>
+                                                <div>
+                                                    <field
+                                                        name="product_uom_qty" class="oe_inline"
+                                                        on_change="product_id_change(product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name, parent.work_date)"/>
+                                                    <field name="product_uom" groups="product.group_uom" class="oe_inline oe_no_button"
+                                                        on_change="product_uom_change(product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name, parent.work_date)"/>
+                                                </div>
+                                                <label for="product_uos_qty" groups="product.group_uos"/>
+                                                <div groups="product.group_uos">
+                                                    <field name="product_uos_qty" class="oe_inline"/>
+                                                    <field name="product_uos" options='{"no_open": True}' class="oe_inline"/>
+                                                </div>
+                                            </group>
+                                            <group>
+                                                <field name="type"/>
+                                            </group>
+                                        </group>
+                                        <label for="name"/>
+                                        <field name="name"/>
+                                    </form>
+                                    <tree string="Products to Consume">
+                                        <field name="product_id"
+                                            groups="base.group_user" 
+                                            on_change="product_id_change(product_id, product_uom_qty, product_uom, product_uos_qty, product_uos, name, parent.work_date)"/>
+                                        <field name="name"/>
+                                        <field name="product_uom_qty"
+                                            on_change="product_id_change(product_id, product_uom_qty, product_uom, product_uos_qty, product_uos, name, parent.work_date)"/>
+                                        <field name="product_uom"
+                                            on_change="product_uom_change(product_id, product_uom_qty, product_uom, product_uos_qty, product_uos, name, parent.work_date)"
+                                            groups="product.group_uom" options='{"no_open": True}'/>
+                                        <field name="product_uos_qty" groups="product.group_uos" invisible="1"/>
+                                        <field name="product_uos" string="UoS" groups="product.group_uos" invisible="1"/>
+                                    </tree>
+                                </field>
+                            </page>
+                        </notebook>-->
+                        
+                        <!--Temp view for reporting perpose -->
+                                <group name="defects" string="Defects">
+                                    <group>
+                                        <field name="defect_ids" nolabel="1">
+                                            <form string="Defects" version="7.0">
+                                                <group>
+                                                    <group>
+                                                        <field name="fault_id" string="Fault Type" widget="selection" domain="[('category', 'in', ('contract', 'service', 'both'))]"/>
+                                                        <field name="repair_date"/>
+                                                    </group>
+                                                    <group>
+                                                        <field name="trade_id" string="T-Code" widget="selection" domain="[('category', '=', 't_code')]"/>
+                                                        <field name="repair_time"/>
+                                                        <field name="trademen"/>
+                                                    </group>
+                                                </group>
+                                                <label for="work_done"/>
+                                                <field name="work_done"/>
+                                            </form>
+                                            <tree string="Defects">
+                                                <field name="trade_id" string="Trade Name" domain="[('category', '=', 't_code')]"/>
+                                                <field name="fault_id" domain="[('category', 'in', ('contract', 'service', 'both'))]"/>
+                                                <field name="work_done"/>
+                                                <field name="repair_date"/>
+                                                <field name="repair_time" string="Time(MM)"/>
+                                                <field name="trademen" string="Trademen"/>
+                                                <field name="entry_clerk"/>
+                                            </tree>
+                                        </field>
+                                    </group>
+                                </group>
+                                <group string="Products to Consume">
+                                <field name="picking_id" invisible="1"/>
+                                <field name="product_lines" nolabel="1">
+                                    <form string="Products to Consume" version="7.0">
+                                        <group>
+                                            <group>
+                                                <field name="product_id"
+                                                    groups="base.group_user"
+                                                    on_change="product_id_change(product_id, product_uom_qty, product_uom, product_uos_qty, product_uos, name, parent.work_date)"/>
+                                                <label for="product_uom_qty"/>
+                                                <div>
+                                                    <field
+                                                        name="product_uom_qty" class="oe_inline"
+                                                        on_change="product_id_change(product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name, parent.work_date)"/>
+                                                    <field name="product_uom" groups="product.group_uom" class="oe_inline oe_no_button"
+                                                        on_change="product_uom_change(product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name, parent.work_date)"/>
+                                                </div>
+                                                <label for="product_uos_qty" groups="product.group_uos"/>
+                                                <div groups="product.group_uos">
+                                                    <field name="product_uos_qty" class="oe_inline"/>
+                                                    <field name="product_uos" options='{"no_open": True}' class="oe_inline"/>
+                                                </div>
+                                            </group>
+                                            <group>
+                                                <field name="type"/>
+                                            </group>
+                                        </group>
+                                        <label for="name"/>
+                                        <field name="name"/>
+                                    </form>
+                                    <tree string="Products to Consume">
+                                        <field name="product_id"
+                                            groups="base.group_user" 
+                                            on_change="product_id_change(product_id, product_uom_qty, product_uom, product_uos_qty, product_uos, name, parent.work_date)"/>
+                                        <field name="name"/>
+                                        <field name="product_uom_qty"
+                                            on_change="product_id_change(product_id, product_uom_qty, product_uom, product_uos_qty, product_uos, name, parent.work_date)"/>
+                                        <field name="product_uom"
+                                            on_change="product_uom_change(product_id, product_uom_qty, product_uom, product_uos_qty, product_uos, name, parent.work_date)"
+                                            groups="product.group_uom" options='{"no_open": True}'/>
+                                        <field name="product_uos_qty" groups="product.group_uos" invisible="1"/>
+                                        <field name="product_uos" string="UoS" groups="product.group_uos" invisible="1"/>
+                                    </tree>
+                                </field>
+                                </group>
+                                <group string="Previous Jobs">
+                                    <group>
+                                        <field name="previous_job_ids" nolabel="1">
+                                            <tree string="Previous Jobs">
+                                                <field name="job_no"/>
+                                                <field name="time_in"/>
+                                                <field name="job_remarks"/>
+                                                <field name="exploitation_type"/>
+                                                <field name="maint_type"/>
+                                                <field name="in_inspector_id"/>
+                                                <field name="in_inspection_time"/>
+                                                <field name="out_inspector_id"/>
+                                                <field name="out_inspection_time"/>
+                                                <field name="technician_id"/>
+                                                <field name="present_eqpt_status"/>
+                                                <field name="state"/>
+                                            </tree>
+                                        </field>
+                                    </group>
+                                </group>
+                                <group>
+                                    <group string="Repair Progress">
+                                        <field name="expected_date"/>
+                                        <field name="technician_id"/>
+                                        <field name="pss_date"/>
+                                    </group>
+                                    <group string="Job Summary">
+                                        <field name="repair_time" widget="float_time"/>
+                                        <field name="total_inspection_time" widget="float_time" string="Time for Inspection"/>
+                                        <field name="total_time" widget="float_time"/>
+                                        <field name="work_value" widget="float_time"/>
+                                    </group>
+                                    <group string="Delay Time">
+                                    <label for="tech_delay" string="Technician"/>
+                                    <div>
+                                        <field name="tech_delay" class="oe_inline"/>(In Days)
+                                    </div>
+                                    <label for="tools_delay" string="Tools / SMT"/>
+                                    <div>
+                                        <field name="tools_delay" class="oe_inline"/>(In Days)
+                                    </div>
+                                    </group>
+                                </group>
+                                <!--Above block should remove in future-->
+                            </sheet>
+                    <div class="oe_chatter">
+                        <field name="message_ids" widget="mail_thread" options='{"thread_level": 1}'/>
+                        <field name="message_follower_ids" widget="mail_followers"/>
+                    </div>
+                </form>
+            </field>
+        </record>
+
+        <!-- Vehicle Job Cards Tree View -->
+        <record id='view_fleet_vehicle_log_services_tree' model='ir.ui.view'>
+            <field name="name">fleet.vehicle.log.services.tree</field>
+            <field name="model">fleet.vehicle.log.services</field>
+            <field name="arch" type="xml">
+                <tree string="Job Cards" colors="blue: state=='draft'; red: state=='inprogress'; black: state=='repair'; grey: state in ('delivered','cancel');">
+                    <field name="job_no"/>
+                    <field name="vehicle_id" invisible="context.get('vehicle_id_view')"/>
+                    <field name="exploitation_type" invisible="context.get('exploitation_type_view')"/>
+                    <field name="maint_type" invisible="context.get('maint_type_view')"/>
+                    <field name="in_inspector_id"/>
+                    <field name="out_inspector_id" attrs="{'invisible': [('state', 'not in', ('inspection', 'delivered'))]}"/>
+                    <field name="technician_id"/>
+                    <field name="unit_id" invisible="context.get('unit_id_view')"/>
+                    <field name="location_id" invisible="context.get('location_id_view')"/>
+                    <field name="present_eqpt_status"/>
+                    <field name="state" invisible="context.get('state_view')"/>
+                </tree>
+            </field>
+        </record>
+
+        <!-- Vehicle Job Cards Search View -->
+        <record id="view_fleet_vehicle_log_services_search" model="ir.ui.view">
+            <field name="name">fleet.vehicle.log.services.search</field>
+            <field name="model">fleet.vehicle.log.services</field>
+            <field name="arch" type="xml">
+                <search string="Search Job Cards">
+                    <field name="name" filter_domain="['|', '|', '|', '|', ('name','ilike',self), ('job_no','ilike',self), ('technician_id','ilike',self), ('in_inspector_id','ilike',self), ('out_inspector_id','ilike',self)]" string="Job Name"/>
+                    <field name="time_in"/>
+                    <field name="work_date"/>
+                    <filter string="New" name="state_new" domain="[('state','=','new')]"/>
+                    <filter string="Observation" name="state_observation" domain="[('state','=','observation')]"/>
+                    <filter string="Waiting Component" name="state_waiting" domain="[('state','=','waiting')]"/>
+                    <filter string="Inprogress" name="state_inprogress" domain="[('state','=','inprogress')]"/>
+                    <filter string="Done" name="state_done" domain="[('state','=','done')]"/>
+                    <filter string="Inspection" name="state_inspection" domain="[('state','=','inspection')]"/>
+                    <filter string="Delivered" name="state_delivered" domain="[('state','=','delivered')]"/>
+                    <field name="vehicle_id"/>
+                    <field name="present_eqpt_status"/>
+                    <field name="unit_id"/>
+                    <field name="location_id"/>
+                    <group expand="0" string="Group By...">
+                        <filter string="Vehicle" context="{'group_by': 'vehicle_id', 'vehicle_id_view': True}"/>
+                        <filter string="Exploitation Type" context="{'group_by': 'exploitation_type', 'exploitation_type_view': True}"/>
+                        <filter string="Maint Type" context="{'group_by': 'maint_type', 'maint_type_view': True}"/>
+                        <filter string="Unit" context="{'group_by': 'unit_id', 'unit_id_view': True}"/>
+                        <filter string="Workshop" context="{'group_by': 'location_id', 'location_id_view': True}"/>
+                        <!--
+                        <filter string="Equipment Status" context="{'group_by': 'present_eqpt_status'}"/>
+                        -->
+                        <filter string="Status" context="{'group_by': 'state', 'state_view': True}"/>
+                    </group>
+                </search>
+            </field>
+        </record>
+
+        <!-- Vehicle Job Cards Action -->
+        <record id='fleet.fleet_vehicle_log_services_act' model='ir.actions.act_window'>
+            <field name="name">Vehicle Job Cards</field>
+            <field name="res_model">fleet.vehicle.log.services</field>
+            <field name="view_type">form</field>
+            <field name="view_mode">tree,form,graph</field>
+            <field name="domain">[('type', '=', 'vehicle')]</field>
+            <field name="context">{'default_type': 'vehicle', 'unit_view': 1}</field>
+            <field name="help" type="html">
+                <p class="oe_view_nocontent_create">
+                    Click to create a new service entry. 
+                </p><p>
+                    OpenERP helps you keeping track of all the services done
+                    on your vehicle. Services can be of many type: occasional
+                    repair, fixed maintenance, etc.
+                </p>
+            </field>
+        </record>
+
+        <record id="action_fleet_vehicle_log_services_tree" model="ir.actions.act_window.view">
+            <field name="view_mode">tree</field>
+            <field name="view_id" ref="view_fleet_vehicle_log_services_tree"/>
+            <field name="act_window_id" ref="fleet.fleet_vehicle_log_services_act"/>
+        </record>
+
+        <!-- Vehicle Job Cards Menu -->
+        <menuitem name="Job Cards" action="fleet.fleet_vehicle_log_services_act" parent="fleet.fleet_vehicles" id="fleet.fleet_vehicle_log_services_menu"/>
+
+        <!-- Equipment Job Cards Form View -->
+        <record id='fleet_equipment_log_services_form' model='ir.ui.view'>
+            <field name="name">fleet.equipment.log.services.form</field>
+            <field name="model">fleet.vehicle.log.services</field>
+            <field name="arch" type="xml">
+                <form string="Job Cards" version="7.0">
+                    <header>
+                        <button name="job_observation" string="Start Observation" states="draft" class="oe_highlight"/>
+                        <button name="job_inprogress" string="Reqest for Material" class="oe_highlight"
+                        attrs="{'invisible': ['|', ('product_lines', '=', []), ('state', '!=', 'observation')]}"/>
+                        <button name="repair" string="Start Repair" class="oe_highlight"
+                        attrs="{'invisible': ['|', ('product_lines', '!=', []), ('state', '!=', 'observation')]}"/>
+                        <button name="job_cancel" string="Cancel" states="observation"/>
+                        <button name="action_receive_products" string="Receive Product(s)" type="object" class="oe_highlight"
+                            attrs="{'invisible': ['|', ('picking_id', '=', False), ('state', '!=', 'inprogress')]}"/>
+                        <button name="job_done" string="Finish Repair" states="repair" class="oe_highlight"/>
+                        <button name="job_inspection" string="Start Inspection" states="done" class="oe_highlight"/>
+                        <button name="job_delivered" string="Deliver" states="inspection" class="oe_highlight"/>
+                        <button name="job_delivered" string="Deliver" states="cancel" class="oe_highlight"/>
+                        <field name="state" widget="statusbar" statusbar_visible="draft,observation,repair,done,inspection,delivered" statusbar_colors='{"cancel":"red", "repair":"blue"}'/>
+                    </header>
+                    <sheet>
+                        <field name="image" widget='image' class="oe_left oe_avatar"/>
+                        <div class="oe_title">
+                            <label for="vehicle_id" string="Equipment" class="oe_edit_only"/> 
+                            <h1>
+                                <field name="vehicle_id" on_change="on_change_vehicle(vehicle_id)" domain="[('type', '=', 'equipment')]" context="{'default_type': 'equipment'}"/>
+                            </h1>
+                            <field name="present_eqpt_status"/>
+                            <field name="type" invisible="1"/>
+                        </div>
+                        <group>
+                            <group>
+                                <field name="job_no"/>
+                                <field name="time_in"/>
+                                <field name="eqpt_vintage"/>
+                                <field name="exploitation_type"/>
+                                <field name="maint_type" on_change="onchange_maint_type(maint_type, work_date)"/>
+                                <field name="in_inspector_id"/>
+                                <field name="out_inspector_id" attrs="{'invisible': [('state', 'not in', ('inspection', 'delivered'))]}"/>
+                                <field name="company_id" invisible="1"/>
+                            </group>
+                            <group>
+                                <field name="work_no"/>
+                                <field name="work_date"/>
+                                <field name="dues"/>
+                                <field name="in_inspection_time" widget="float_time"/>
+                                <field name="out_inspection_time" widget="float_time" attrs="{'invisible': [('state', 'not in', ('inspection', 'delivered'))]}"/>
+                                <field name="unit_id"/>
+                                <field name="location_id" context="{'default_workshop': True}" domain="[('workshop', '=', True)]"/>
+                            </group>
+                        </group>
+                        <group>
+                            <field name="job_remarks"/>
+                        </group>
+                        <!--<notebook>
+                            <page string="Job Summary">
+                                <group>
+                                    <group string="Repair Progress">
+                                        <field name="expected_date"/>
+                                        <field name="technician_id"/>
+                                        <field name="pss_date"/>
+                                    </group>
+                                    <group string="Job Summary">
+                                        <field name="repair_time" widget="float_time"/>
+                                        <field name="total_inspection_time" widget="float_time" string="Time for Inspection"/>
+                                        <field name="total_time" widget="float_time"/>
+                                        <field name="work_value" widget="float_time"/>
+                                    </group>
+                                    <group string="Delay Time">
+                                    <label for="tech_delay" string="Technician"/>
+                                    <div>
+                                        <field name="tech_delay" class="oe_inline"/>(In Days)
+                                    </div>
+                                    <label for="tools_delay" string="Tools / SMT"/>
+                                    <div>
+                                        <field name="tools_delay" class="oe_inline"/>(In Days)
+                                    </div>
+                                    </group>
+                                </group>
+                            </page>
+                            <page string="Defects">
+                                <group>
+                                    <group>
+                                        <field name="defect_ids" nolabel="1">
+                                            <form string="Defects" version="7.0">
+                                                <group>
+                                                    <group>
+                                                        <field name="fault_id" string="Fault Type" widget="selection" domain="[('category', 'in', ('contract', 'service', 'both'))]"/>
+                                                        <field name="repair_date"/>
+                                                    </group>
+                                                    <group>
+                                                        <field name="trade_id" string="T-Code" widget="selection" domain="[('category', '=', 't_code')]"/>
+                                                        <field name="repair_time"/>
+                                                        <field name="trademen"/>
+                                                    </group>
+                                                </group>
+                                                <label for="work_done"/>
+                                                <field name="work_done"/>
+                                            </form>
+                                            <tree string="Defects">
+                                                <field name="trade_id" string="Trade Name" domain="[('category', '=', 't_code')]"/>
+                                                <field name="fault_id" domain="[('category', 'in', ('contract', 'service', 'both'))]"/>
+                                                <field name="work_done"/>
+                                                <field name="repair_date"/>
+                                                <field name="repair_time" string="Time(MM)"/>
+                                                <field name="trademen" string="Trademen"/>
+                                                <field name="entry_clerk"/>
+                                            </tree>
+                                        </field>
+                                    </group>
+                                </group>
+                            </page>
+                            <page string="Previous Jobs">
+                                <group>
+                                    <group>
+                                        <field name="previous_job_ids" nolabel="1">
+                                            <tree string="Previous Jobs">
+                                                <field name="job_no"/>
+                                                <field name="time_in"/>
+                                                <field name="job_remarks"/>
+                                                <field name="exploitation_type"/>
+                                                <field name="maint_type"/>
+                                                <field name="in_inspector_id"/>
+                                                <field name="in_inspection_time"/>
+                                                <field name="out_inspector_id"/>
+                                                <field name="out_inspection_time"/>
+                                                <field name="technician_id"/>
+                                                <field name="present_eqpt_status"/>
+                                                <field name="state"/>
+                                            </tree>
+                                        </field>
+                                    </group>
+                                </group>
+                            </page>
+                            <page string="Products to Consume">
+                                <field name="picking_id" invisible="1"/>
+                                <field name="product_lines">
+                                    <form string="Products to Consume" version="7.0">
+                                        <group>
+                                            <group>
+                                                <field name="product_id"
+                                                    groups="base.group_user"
+                                                    on_change="product_id_change(product_id, product_uom_qty, product_uom, product_uos_qty, product_uos, name, parent.work_date)"/>
+                                                <label for="product_uom_qty"/>
+                                                <div>
+                                                    <field
+                                                        name="product_uom_qty" class="oe_inline"
+                                                        on_change="product_id_change(product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name, parent.work_date)"/>
+                                                    <field name="product_uom" groups="product.group_uom" class="oe_inline oe_no_button"
+                                                        on_change="product_uom_change(product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name, parent.work_date)"/>
+                                                </div>
+                                                <label for="product_uos_qty" groups="product.group_uos"/>
+                                                <div groups="product.group_uos">
+                                                    <field name="product_uos_qty" class="oe_inline"/>
+                                                    <field name="product_uos" options='{"no_open": True}' class="oe_inline"/>
+                                                </div>
+                                            </group>
+                                            <group>
+                                                <field name="type"/>
+                                            </group>
+                                        </group>
+                                        <label for="name"/>
+                                        <field name="name"/>
+                                    </form>
+                                    <tree string="Products to Consume">
+                                        <field name="product_id"
+                                            groups="base.group_user" 
+                                            on_change="product_id_change(product_id, product_uom_qty, product_uom, product_uos_qty, product_uos, name, parent.work_date)"/>
+                                        <field name="name"/>
+                                        <field name="product_uom_qty"
+                                            on_change="product_id_change(product_id, product_uom_qty, product_uom, product_uos_qty, product_uos, name, parent.work_date)"/>
+                                        <field name="product_uom"
+                                            on_change="product_uom_change(product_id, product_uom_qty, product_uom, product_uos_qty, product_uos, name, parent.work_date)"
+                                            groups="product.group_uom" options='{"no_open": True}'/>
+                                        <field name="product_uos_qty" groups="product.group_uos" invisible="1"/>
+                                        <field name="product_uos" string="UoS" groups="product.group_uos" invisible="1"/>
+                                    </tree>
+                                </field>
+                            </page>
+                        </notebook>-->
+                        <!--Temp view for reporting perpose -->
+                                <group string="Defects">
+                                    <group>
+                                        <field name="defect_ids" nolabel="1">
+                                            <form string="Defects" version="7.0">
+                                                <group>
+                                                    <group>
+                                                        <field name="fault_id" string="Fault Type" widget="selection" domain="[('category', 'in', ('contract', 'service', 'both'))]"/>
+                                                        <field name="repair_date"/>
+                                                    </group>
+                                                    <group>
+                                                        <field name="trade_id" string="T-Code" widget="selection" domain="[('category', '=', 't_code')]"/>
+                                                        <field name="repair_time"/>
+                                                        <field name="trademen"/>
+                                                    </group>
+                                                </group>
+                                                <label for="work_done"/>
+                                                <field name="work_done"/>
+                                            </form>
+                                            <tree string="Defects">
+                                                <field name="trade_id" string="Trade Name" domain="[('category', '=', 't_code')]"/>
+                                                <field name="fault_id" domain="[('category', 'in', ('contract', 'service', 'both'))]"/>
+                                                <field name="work_done"/>
+                                                <field name="repair_date"/>
+                                                <field name="repair_time" string="Time(MM)"/>
+                                                <field name="trademen" string="Trademen"/>
+                                                <field name="entry_clerk"/>
+                                            </tree>
+                                        </field>
+                                    </group>
+                                </group>
+
+                            <group string="Products to Consume">
+                                <field name="picking_id" invisible="1"/>
+                                <field name="product_lines" nolabel="1">
+                                    <form string="Products to Consume" version="7.0">
+                                        <group>
+                                            <group>
+                                                <field name="product_id"
+                                                    groups="base.group_user"
+                                                    on_change="product_id_change(product_id, product_uom_qty, product_uom, product_uos_qty, product_uos, name, parent.work_date)"/>
+                                                <label for="product_uom_qty"/>
+                                                <div>
+                                                    <field
+                                                        name="product_uom_qty" class="oe_inline"
+                                                        on_change="product_id_change(product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name, parent.work_date)"/>
+                                                    <field name="product_uom" groups="product.group_uom" class="oe_inline oe_no_button"
+                                                        on_change="product_uom_change(product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name, parent.work_date)"/>
+                                                </div>
+                                                <label for="product_uos_qty" groups="product.group_uos"/>
+                                                <div groups="product.group_uos">
+                                                    <field name="product_uos_qty" class="oe_inline"/>
+                                                    <field name="product_uos" options='{"no_open": True}' class="oe_inline"/>
+                                                </div>
+                                            </group>
+                                            <group>
+                                                <field name="type"/>
+                                            </group>
+                                        </group>
+                                        <label for="name"/>
+                                        <field name="name"/>
+                                    </form>
+                                    <tree string="Products to Consume">
+                                        <field name="product_id"
+                                            groups="base.group_user" 
+                                            on_change="product_id_change(product_id, product_uom_qty, product_uom, product_uos_qty, product_uos, name, parent.work_date)"/>
+                                        <field name="name"/>
+                                        <field name="product_uom_qty"
+                                            on_change="product_id_change(product_id, product_uom_qty, product_uom, product_uos_qty, product_uos, name, parent.work_date)"/>
+                                        <field name="product_uom"
+                                            on_change="product_uom_change(product_id, product_uom_qty, product_uom, product_uos_qty, product_uos, name, parent.work_date)"
+                                            groups="product.group_uom" options='{"no_open": True}'/>
+                                        <field name="product_uos_qty" groups="product.group_uos" invisible="1"/>
+                                        <field name="product_uos" string="UoS" groups="product.group_uos" invisible="1"/>
+                                    </tree>
+                                </field>
+                            </group>
+
+                            <group string="Previous Jobs">
+                                <field name="previous_job_ids" nolabel="1">
+                                    <tree string="Previous Jobs">
+                                        <field name="job_no"/>
+                                        <field name="time_in"/>
+                                        <field name="job_remarks"/>
+                                        <field name="exploitation_type"/>
+                                        <field name="maint_type"/>
+                                        <field name="in_inspector_id"/>
+                                        <field name="in_inspection_time"/>
+                                        <field name="out_inspector_id"/>
+                                        <field name="out_inspection_time"/>
+                                        <field name="technician_id"/>
+                                        <field name="present_eqpt_status"/>
+                                        <field name="state"/>
+                                    </tree>
+                                </field>
+                            </group>
+
+                            <group>
+                                <group string="Repair Progress">
+                                    <field name="expected_date"/>
+                                    <field name="technician_id"/>
+                                    <field name="pss_date"/>
+                                </group>
+                                <group string="Job Summary">
+                                    <field name="repair_time" widget="float_time"/>
+                                    <field name="total_inspection_time" widget="float_time" string="Time for Inspection"/>
+                                    <field name="total_time" widget="float_time"/>
+                                    <field name="work_value" widget="float_time"/>
+                                </group>
+                                <group string="Delay Time">
+                                <label for="tech_delay" string="Technician"/>
+                                <div>
+                                    <field name="tech_delay" class="oe_inline"/>(In Days)
+                                </div>
+                                <label for="tools_delay" string="Tools / SMT"/>
+                                <div>
+                                    <field name="tools_delay" class="oe_inline"/>(In Days)
+                                </div>
+                                </group>
+                            </group>
+                        <!--Above block will remove in future-->
+                    </sheet>
+                    <div class="oe_chatter">
+                        <field name="message_ids" widget="mail_thread" options='{"thread_level": 1}'/>
+                        <field name="message_follower_ids" widget="mail_followers"/>
+                    </div>
+                </form>
+            </field>
+        </record>
+
+        <!-- Equipment Job Cards Tree View -->
+        <record id='view_fleet_equipment_log_services_tree' model='ir.ui.view'>
+            <field name="name">fleet.equipment.log.services.tree</field>
+            <field name="model">fleet.vehicle.log.services</field>
+            <field name="arch" type="xml">
+                <tree string="Job Cards" colors="blue: state=='draft'; red: state=='inprogress'; black: state=='repair'; grey: state in ('delivered','cancel');">
+                    <field name="job_no"/>
+                    <field name="vehicle_id" string="Equipment" invisible="context.get('vehicle_id_view')"/>
+                    <field name="exploitation_type" invisible="context.get('exploitation_type_view')"/>
+                    <field name="maint_type" invisible="context.get('maint_type_view')"/>
+                    <field name="in_inspector_id"/>
+                    <field name="out_inspector_id" attrs="{'invisible': [('state', 'not in', ('inspection', 'delivered'))]}"/>
+                    <field name="technician_id"/>
+                    <field name="unit_id" invisible="context.get('unit_id_view')"/>
+                    <field name="location_id" invisible="context.get('location_id_view')"/>
+                    <field name="present_eqpt_status"/>
+                    <field name="state" invisible="context.get('state_view')"/>
+                </tree>
+            </field>
+        </record>
+
+        <!-- Equipment Job Cards Search View -->
+        <record id="view_fleet_equipment_log_services_search" model="ir.ui.view">
+            <field name="name">fleet.equipment.log.services.search</field>
+            <field name="model">fleet.vehicle.log.services</field>
+            <field name="arch" type="xml">
+                <search string="Search Job Cards">
+                    <field name="name" filter_domain="['|', '|', '|', '|', ('name','ilike',self), ('job_no','ilike',self), ('technician_id','ilike',self), ('in_inspector_id','ilike',self), ('out_inspector_id','ilike',self)]" string="Job Name"/>
+                    <field name="time_in"/>
+                    <field name="work_date"/>
+                    <filter string="New" name="state_new" domain="[('state','=','new')]"/>
+                    <filter string="Observation" name="state_observation" domain="[('state','=','observation')]"/>
+                    <filter string="Waiting Component" name="state_waiting" domain="[('state','=','waiting')]"/>
+                    <filter string="Inprogress" name="state_inprogress" domain="[('state','=','inprogress')]"/>
+                    <filter string="Done" name="state_done" domain="[('state','=','done')]"/>
+                    <filter string="Inspection" name="state_inspection" domain="[('state','=','inspection')]"/>
+                    <filter string="Delivered" name="state_delivered" domain="[('state','=','delivered')]"/>
+                    <field name="vehicle_id" string="Equipment"/>
+                    <field name="present_eqpt_status"/>
+                    <field name="unit_id"/>
+                    <field name="location_id"/>
+                    <group expand="0" string="Group By...">
+                        <filter string="Equipment" context="{'group_by': 'vehicle_id', 'vehicle_id_view': True}"/>
+                        <filter string="Exploitation Type" context="{'group_by': 'exploitation_type', 'exploitation_type_view': True}"/>
+                        <filter string="Maint Type" context="{'group_by': 'maint_type', 'maint_type_view': True}"/>
+                        <filter string="Unit" context="{'group_by': 'unit_id', 'unit_id_view': True}"/>
+                        <filter string="Workshop" context="{'group_by': 'location_id', 'location_id_view': True}"/>
+                        <!--
+                        <filter string="Equipment Status" context="{'group_by': 'present_eqpt_status'}"/>
+                        -->
+                        <filter string="Status" context="{'group_by': 'state', 'state_view': True}"/>
+                    </group>
+                </search>
+            </field>
+        </record>
+
+        <!-- Equipment Job Cards Action -->
+        <record id='action_fleet_equipment_log_services' model='ir.actions.act_window'>
+            <field name="name">Equipment Job Cards</field>
+            <field name="res_model">fleet.vehicle.log.services</field>
+            <field name="view_type">form</field>
+            <field name="view_mode">tree,form,graph</field>
+            <field name="search_view_id" ref="view_fleet_equipment_log_services_search"/>
+            <field name="domain">[('type','=','equipment')]</field>
+            <field name="context">{'default_type': 'equipment', 'unit_view': 1}</field>
+            <field name="help" type="html">
+                <p class="oe_view_nocontent_create">
+                    Click to create a new service entry. 
+                </p><p>
+                    OpenERP helps you keeping track of all the services done
+                    on your equipment. Services can be of many type: occasional
+                    repair, fixed maintenance, etc.
+                </p>
+            </field>
+        </record>
+
+        <record id="action_fleet_equipment_log_services_tree" model="ir.actions.act_window.view">
+            <field name="sequence" eval="1"/>
+            <field name="view_mode">tree</field>
+            <field name="view_id" ref="view_fleet_equipment_log_services_tree"/>
+            <field name="act_window_id" ref="action_fleet_equipment_log_services"/>
+        </record>
+
+        <record id="action_fleet_equipment_log_services_form" model="ir.actions.act_window.view">
+            <field name="sequence" eval="2"/>
+            <field name="view_mode">form</field>
+            <field name="view_id" ref="fleet_equipment_log_services_form"/>
+            <field name="act_window_id" ref="action_fleet_equipment_log_services"/>
+        </record>
+
+        <!-- Equipment Job Cards Menu -->
+        <menuitem name="Equipments" parent="fleet.menu_root" id="menu_fleet_equipment_main" sequence="2"/>
+        <menuitem name="Job Cards" action="action_fleet_equipment_log_services" parent="menu_fleet_equipment_main" id="menu_fleet_equipment_log_services" sequence="2"/>
+
+        <!-- Fleet Vehicle Fault Form View -->
+        <record id="view_fleet_vehicle_fault_form" model="ir.ui.view">
+            <field name="name">fleet.vehicle.fault.form</field>
+            <field name="model">fleet.vehicle.fault</field>
+            <field name="arch" type="xml">
+                <form string="Fleet Vehicle Fault" version="7.0">
+                    <sheet>
+                        <group>
+                            <group>
+                                <field name="fault_id"/>
+                                <field name="trade_id"/>
+                            </group>
+                            <group>
+                                <field name="repair_time" widget="float_time"/>
+                                <field name="trademen"/>
+                                <field name="repair_date"/>
+                            </group>
+                        </group>
+                        <label for="work_done"/>
+                        <field name="work_done"/>
+                    </sheet>
+                </form>
+            </field>
+        </record>
+
+        <!-- Fleet Vehicle Fault Tree View -->
+        <record id='view_fleet_vehicle_fault_tree' model='ir.ui.view'>
+            <field name="name">fleet.vehicle.fault.tree</field>
+            <field name="model">fleet.vehicle.fault</field>
+            <field name="arch" type="xml">
+                <tree string="Fleet Vehicle Fault" create="false" delete="false">
+                    <field name="fault_id"/>
+                    <field name="trade_id"/>
+                    <field name="job_id" invisible="1"/>
+                    <field name="repair_time"/>
+                    <field name="trademen"/>
+                    <field name="repair_date"/>
+                    <field name="work_done"/>
+                    <field name="entry_clerk"/>
+                </tree>
+            </field>
+        </record>
+
+        <!-- Fleet Vehicle Fault Search View -->
+        <record id="view_fleet_vehicle_fault_search" model="ir.ui.view">
+            <field name="name">fleet.vehicle.fault.search</field>
+            <field name="model">fleet.vehicle.fault</field>
+            <field name="arch" type="xml">
+                <search string="Search Vehicle Faults">
+                    <field name="repair_date"/>
+                    <field name="fault_id"/>
+                    <field name="trade_id"/>
+                    <field name="job_id"/>
+                    <field name="entry_clerk"/>
+                    <group expand="0" string="Group By...">
+                        <filter string="Fault" context="{'group_by': 'fault_id'}"/>
+                        <filter string="Trade Code" context="{'group_by': 'trade_id'}"/>
+                        <filter string="Job" context="{'group_by': 'job_id'}"/>
+                        <filter string="Entry Clerk" context="{'group_by': 'entry_clerk'}"/>
+                    </group>
+                </search>
+            </field>
+        </record>
+
+        <!-- Fleet Vehicle Fault Action -->
+        <record id='action_fleet_vehicle_fault' model='ir.actions.act_window'>
+            <field name="name">Vehicle Fault</field>
+            <field name="res_model">fleet.vehicle.fault</field>
+            <field name="view_type">form</field>
+            <field name="view_mode">tree</field>
+            <field name="help" type="html">
+                <p class="oe_view_nocontent_create">
+                    Click to create a new vehicle fault.
+                </p>
+            </field>
+        </record>
+
+        <!-- Fleet Vehicle Fault Menu -->
+        <menuitem name="Reports" parent="fleet.menu_root" id="menu_reports" sequence="3"/>
+        <!--menuitem name="Fault Analysis" action="action_fleet_vehicle_fault" parent="menu_reports" id="menu_fleet_vehicle_fault"/-->
+        <menuitem name="Configuration" parent="fleet.menu_root" id="fleet.fleet_configuration" sequence="4"/>
+
+        <!-- Fleet Equipment Status Tree View -->
+        <record id='view_fleet_equipment_status_tree' model='ir.ui.view'>
+            <field name="name">fleet.equipment.status.tree</field>
+            <field name="model">fleet.equipment.status</field>
+            <field name="arch" type="xml">
+                <tree string="Equipment Status" editable="bottom">
+                    <field name="name"/>
+                    <field name="code"/>
+                </tree>
+            </field>
+        </record>
+
+        <!-- Fleet Equipment Status Action -->
+        <record id='action_fleet_equipment_status' model='ir.actions.act_window'>
+            <field name="name">Equipment Status</field>
+            <field name="res_model">fleet.equipment.status</field>
+            <field name="view_type">form</field>
+            <field name="view_mode">tree,form</field>
+            <field name="help" type="html">
+                <p class="oe_view_nocontent_create">
+                    Click to create a new equipment status.
+                </p>
+            </field>
+        </record>
+
+        <!-- Fleet Equipment Status Menu -->
+        <menuitem name="Status" action="action_fleet_equipment_status" parent="fleet.fleet_configuration" id="menu_fleet_equipment_status" groups="base.group_no_one" sequence="3"/>
+
+        <!-- Fleet Vehicle Kanban View -->
+        <record id='fleet.fleet_vehicle_kanban' model='ir.ui.view'>
+            <field name="name">fleet.vehicle.kanban</field>
+            <field name="model">fleet.vehicle</field>
+            <field name="arch" type="xml">
+                <kanban>
+                    <field name="license_plate"/>
+                    <field name="erid"/>
+                    <field name="model_id"/>
+                    <field name="driver_id"/>
+                    <field name="unit_id"/>
+                    <field name="location"/>
+                    <field name="state_id"/>
+                    <field name="image"/>
+                    <templates>
+                        <t t-name="kanban-box">
+                            <div class="oe_kanban_vignette oe_semantic_html_override">
+                                <a type="open" href="#" class="oe_kanban_action oe_kanban_action_a">
+                                    <img t-att-src="kanban_image('fleet.vehicle', 'image_small', record.id.value)"/>
+                                </a>
+                                <div class="oe_kanban_details">
+                                    <h4 class="oe_partner_heading">
+                                        <a type="open">
+                                            <t t-if="record.license_plate.raw_value"><field name="license_plate"/></t>
+                                            <t t-if="record.erid.raw_value"><field name="erid"/></t>
+                                            <br/>
+                                            <field name="model_id"/>
+                                        </a>
+                                    </h4>
+                                    <ul>
+                                        <li>
+                                            <t t-if="record.driver_id.raw_value"><field name="driver_id"/></t>
+                                        </li>
+                                        <li>
+                                            <t t-if="record.location.raw_value"><field name="location"/></t>
+                                        </li>
+                                    </ul>
+                                    <field name="unit_id"/>
+                                </div>
+                            </div>
+                        </t>
+                    </templates>
+                </kanban>
+            </field>
+        </record>
+
+        <!-- Fleet Vehicle Form View -->
+        <record id='fleet.fleet_vehicle_form' model='ir.ui.view'>
+            <field name="name">fleet.vehicle.form</field>
+            <field name="model">fleet.vehicle</field>
+            <field name="arch" type="xml">
+                <form string="Vehicle" version="7.0">
+                    <header>
+                        <field name="state_id"  widget="statusbar" clickable="True" />
+                    </header>
+                    <sheet> 
+                        <field name="image_medium" widget='image' class="oe_left oe_avatar"/> 
+                        <div class="oe_title">
+                            <label for="model_id" class="oe_edit_only"/>
+                            <h1>
+                                <field name="model_id" class="oe_inline" on_change="on_change_model(model_id)"/>
+                            </h1>
+                            <label for="license_plate" class="oe_edit_only" string="BA Number"/>
+                            <h2>
+                                <field name="license_plate" class="oe_inline" required="1"/>
+                            </h2>
+                            <label for="tag_ids" class="oe_edit_only"/>
+                            <field name="tag_ids" widget="many2many_tags" domain="[('parent_id', '!=', False)]"/>
+                            <field name="type" invisible="1"/>
+                        </div>
+                        <div class="oe_right oe_button_box">
+                            <button name="return_action_to_open" type="object" context="{'xml_id':'fleet_vehicle_log_services_act'}" string="Job Cards" help="show the job cards for this vehicle"/>
+                            <button name="return_action_to_open" type="object" context="{'xml_id':'fleet_vehicle_odometer_act'}" string="Odometer Logs" help="show the odometer logs for this vehicle"/>
+                        </div> 
+                        <group col="2" string="General Properties">
+                            <group >
+                                <field name="driver_id"/>
+                                <field name="company_id" groups="base.group_multi_company" invisible="1"/>
+                                <field name="present_eqpt_status"/>
+                                <field name="location"/>
+                            </group>
+                            <group >
+                                <label for="odometer" />
+                                <div>
+                                    <field name="odometer" class="oe_inline"/>
+                                    <field name="odometer_unit" class="oe_inline"/>
+                                </div>
+                                <field name="unit_id"/>
+                                <field name="issue_date"/>
+                            </group>
+                        </group>
+                        <group col="2">
+                            <group string="Additional Properties">
+                                <field name="seats" />
+                                <field name="doors" />
+                                <field name="color" />
+                            </group>
+                            <group string="Engine Options">
+                                <field name="transmission" />
+                                <field name="fuel_type" />
+                                <field name="co2" />
+                                <field name="horsepower" />
+                                <field name="horsepower_tax" />
+                                <field name="power" />
+                            </group>  
+                        </group>
+                    </sheet>
+                    <div class="oe_chatter">
+                        <field name="message_ids" widget="mail_thread" options='{"thread_level": 1}'/>
+                        <field name="message_follower_ids" widget="mail_followers"/>
+                    </div>
+                </form>
+            </field>
+        </record>
+
+        <!-- Fleet Vehicle Tree View -->
+        <record id='fleet.fleet_vehicle_tree' model='ir.ui.view'>
+            <field name="name">fleet.vehicle.tree</field>
+            <field name="model">fleet.vehicle</field>
+            <field name="arch" type="xml">
+                <tree string="Vehicle" version="7.0">
+                    <field name="license_plate" string="BA Number"/>
+                    <field name="model_id" invisible="context.get('model_id_view')"/>
+                    <field name="driver_id"/>
+                    <field name="vin_sn"/>
+                    <field name="odometer"/>
+                    <field name="odometer_unit"/>
+                    <field name="unit_id" invisible="context.get('unit_id_view')"/>
+                    <field name="transmission" invisible="context.get('transmission_view')"/>
+                    <field name="fuel_type" invisible="context.get('fuel_type_view')"/>
+                    <field name="present_eqpt_status" string="Vehicle Status" invisible="context.get('present_eqpt_status_view')"/>
+                </tree>
+            </field>
+        </record>
+
+        <!-- Fleet Vehicle Search View -->
+        <record id="fleet.fleet_vehicle_search" model="ir.ui.view">
+            <field name="name">fleet.vehicle.search</field>
+            <field name="model">fleet.vehicle</field>
+            <field name="arch" type="xml">
+                <search string="All vehicles">
+                    <field name="name" filter_domain="['|', ('name','ilike',self), ('license_plate','ilike',self)]" string="Vehicle"/>
+                    <field name="issue_date"/>
+                    <field name="driver_id"/>
+                    <field name="tag_ids"/>
+                    <field name="location"/>
+                    <field name="unit_id"/>
+                    <field name="state_id"/>
+                    <group expand="0" string="Group By...">
+                        <filter string="Unit" name="unit" context="{'group_by': 'unit_id', 'unit_id_view': True}"/>
+                        <filter string="Model" context="{'group_by': 'model_id', 'model_id_view':True}"/>
+                        <filter string="Transmition" context="{'group_by': 'transmission', 'transmission_view': True}"/>
+                        <filter string="Fuel Type" context="{'group_by': 'fuel_type', 'fuel_type_view': True}"/>
+                        <filter string="Status" context="{'group_by': 'present_eqpt_status', 'present_eqpt_status_view': True}"/>
+                    </group>
+               </search>
+            </field>
+        </record>
+
+        <!-- Fleet Vehicle Action -->
+        <record id='fleet.fleet_vehicle_act' model='ir.actions.act_window'>
+            <field name="name">Vehicles</field>
+            <field name="res_model">fleet.vehicle</field>
+            <field name="view_type">form</field>
+            <field name="view_mode">kanban,tree,form</field>
+            <field name="search_view_id" ref="fleet.fleet_vehicle_search"/>
+            <field name="domain">[('type', '=', 'vehicle')]</field>
+            <field name="context">{'default_type': 'vehicle', 'search_default_unit': 1, 'unit_view': 1}</field>
+            <field name="help" type="html">
+                <p class="oe_view_nocontent_create">
+                    Click to create a new vehicle. 
+                </p>
+            </field>
+        </record>
+
+        <record id="action_fleet_vehicle_kanban" model="ir.actions.act_window.view">
+            <field name="sequence" eval="1"/>
+            <field name="view_mode">kanban</field>
+            <field name="view_id" ref="fleet.fleet_vehicle_kanban"/>
+            <field name="act_window_id" ref="fleet.fleet_vehicle_act"/>
+        </record>
+
+        <record id="action_fleet_vehicle_tree" model="ir.actions.act_window.view">
+            <field name="sequence" eval="2"/>
+            <field name="view_mode">tree</field>
+            <field name="view_id" ref="fleet.fleet_vehicle_tree"/>
+            <field name="act_window_id" ref="fleet.fleet_vehicle_act"/>
+        </record>
+
+        <record id="action_fleet_vehicle_form" model="ir.actions.act_window.view">
+            <field name="sequence" eval="3"/>
+            <field name="view_mode">form</field>
+            <field name="view_id" ref="fleet.fleet_vehicle_form"/>
+            <field name="act_window_id" ref="fleet.fleet_vehicle_act"/>
+        </record>
+
+        <!-- Fleet Equipment Form View -->
+        <record id='fleet_equipment_form' model='ir.ui.view'>
+            <field name="name">fleet.equipment.form</field>
+            <field name="model">fleet.vehicle</field>
+            <field name="arch" type="xml">
+                <form string="Equipment" version="7.0">
+                    <header>
+                        <field name="state_id"  widget="statusbar" clickable="True" />
+                    </header>
+                    <sheet> 
+                        <field name="image_medium" widget='image' class="oe_left oe_avatar"/> 
+                        <div class="oe_title">
+                            <label for="model_id" class="oe_edit_only"/>
+                            <h1>
+                                <field name="model_id" class="oe_inline" on_change="on_change_model(model_id)"/>
+                            </h1>
+                            <label for="license_plate" class="oe_edit_only" string="BA Number" invisible="1"/>
+                            <h2>
+                                <field name="license_plate" class="oe_inline" invisible="1"/>
+                            </h2>
+                            <label for="tag_ids" class="oe_edit_only"/>
+                            <field name="tag_ids" widget="many2many_tags" domain="[('parent_id', '!=', False)]"/>
+                            <field name="type" invisible="1"/>
+                        </div>
+                        <div class="oe_right oe_button_box">
+                            <button name="open_equipment_job_cards" type="object" context="{'xml_id':'action_fleet_equipment_log_services'}" string="Job Cards" help="show the job cards for this vehicle"/>
+                        </div> 
+                        <group col="2" string="General Properties">
+                            <group >
+                                <field name="erid" required="1"/>
+                                <field name="company_id" groups="base.group_multi_company" invisible="1"/>
+                                <field name="present_eqpt_status"/>
+                                <field name="location" help='Location of the equipment (garage, ...)'/>
+                            </group>
+                            <group >
+                                <field name="unit_id"/>
+                                <field name="issue_date"/>
+                            </group>
+                        </group>
+                    </sheet>
+                    <div class="oe_chatter">
+                        <field name="message_ids" widget="mail_thread" options='{"thread_level": 1}'/>
+                        <field name="message_follower_ids" widget="mail_followers"/>
+                    </div>
+                </form>
+            </field>
+        </record>
+
+        <!-- Fleet Equipment Tree View -->
+        <record id='view_fleet_equipment_tree' model='ir.ui.view'>
+            <field name="name">fleet.equipment.tree</field>
+            <field name="model">fleet.vehicle</field>
+            <field name="arch" type="xml">
+                <tree string="Equipment" version="7.0">
+                    <field name="erid"/>
+                    <field name="model_id" invisible="context.get('model_id_view')"/>
+                    <field name="unit_id"/>
+                    <field name="issue_date"/>
+                    <field name="location"/>
+                    <field name="present_eqpt_status" string="Equipment Status" invisible="context.get('present_eqpt_status_view')"/>
+                </tree>
+            </field>
+        </record>
+
+        <!-- Fleet Equipment Search View -->
+        <record id="view_fleet_equipment_search" model="ir.ui.view">
+            <field name="name">fleet.equipment.search</field>
+            <field name="model">fleet.vehicle</field>
+            <field name="arch" type="xml">
+                <search string="All equipments">
+                    <field name="name" filter_domain="['|', ('name','ilike',self), ('erid','ilike',self)]" string="Equipment"/>
+                    <field name="issue_date"/>
+                    <field name="tag_ids"/>
+                    <field name="location"/>
+                    <field name="unit_id"/>
+                    <field name="state_id"/>
+                    <group expand="0" string="Group By...">
+                        <filter string="Unit" name="unit" context="{'group_by': 'unit_id', 'unit_id_view':True}"/>
+                        <filter string="Model" context="{'group_by': 'model_id', 'model_id_view':True}"/>
+                        <filter string="Status" context="{'group_by': 'present_eqpt_status', 'present_eqpt_status_view': True}"/>
+                    </group>
+               </search>
+            </field>
+        </record>
+
+        <!-- Fleet Equipment Action -->
+        <record id='action_fleet_equipment' model='ir.actions.act_window'>
+            <field name="name">Equipments</field>
+            <field name="res_model">fleet.vehicle</field>
+            <field name="view_type">form</field>
+            <field name="view_mode">kanban,tree,form</field>
+            <field name="search_view_id" ref="view_fleet_equipment_search"/>
+            <field name="domain">[('type', '=', 'equipment')]</field>
+            <field name="context">{'default_type': 'equipment', 'search_default_unit': 1, 'unit_view': 1}</field>
+            <field name="help" type="html">
+                <p class="oe_view_nocontent_create">
+                    Click to create a new equipment. 
+                </p>
+            </field>
+        </record>
+
+        <record id="action_fleet_equipment_kanban" model="ir.actions.act_window.view">
+            <field name="sequence" eval="1"/>
+            <field name="view_mode">kanban</field>
+            <field name="view_id" ref="fleet.fleet_vehicle_kanban"/>
+            <field name="act_window_id" ref="action_fleet_equipment"/>
+        </record>
+
+        <record id="action_fleet_equipment_tree" model="ir.actions.act_window.view">
+            <field name="sequence" eval="2"/>
+            <field name="view_mode">tree</field>
+            <field name="view_id" ref="view_fleet_equipment_tree"/>
+            <field name="act_window_id" ref="action_fleet_equipment"/>
+        </record>
+
+        <record id="action_fleet_equipment_form" model="ir.actions.act_window.view">
+            <field name="sequence" eval="3"/>
+            <field name="view_mode">form</field>
+            <field name="view_id" ref="fleet_equipment_form"/>
+            <field name="act_window_id" ref="action_fleet_equipment"/>
+        </record>
+
+        <!-- Fleet Equipment Menu -->
+        <menuitem action="action_fleet_equipment" parent="menu_fleet_equipment_main" id="menu_fleet_equipment" sequence="1"/>
+
+        <!-- Fleet Vehicle Tag(Category) Form View -->
+        <record id="view_fleet_vehicle_tag_form" model="ir.ui.view">
+            <field name="name">fleet.vehicle.tag.form</field>
+            <field name="model">fleet.vehicle.tag</field>
+            <field name="arch" type="xml">
+                <form string="Fleet Vehicle Tag" version="7.0">
+                    <sheet>
+                        <group>
+                            <field name="name"/>
+                            <field name="parent_id"/>
+                        </group>
+                    </sheet>
+                </form>
+            </field>
+        </record>
+
+        <!-- Fleet Vehicle Tag Tree View -->
+        <record id='view_fleet_vehicle_tag_tree' model='ir.ui.view'>
+            <field name="name">fleet.vehicle.tag.tree</field>
+            <field name="model">fleet.vehicle.tag</field>
+            <field name="arch" type="xml">
+                <tree string="Vehicle Tag">
+                    <field name="name"/>
+                    <field name="parent_id"/>
+                </tree>
+            </field>
+        </record>
+
+        <!-- Fleet Vehicle Tag Action -->
+        <record id='action_fleet_vehicle_tag' model='ir.actions.act_window'>
+            <field name="name">Vehicle Tag</field>
+            <field name="res_model">fleet.vehicle.tag</field>
+            <field name="view_type">form</field>
+            <field name="view_mode">tree,form</field>
+            <field name="help" type="html">
+                <p class="oe_view_nocontent_create">
+                    Click to create a new vehicle tag.
+                </p>
+            </field>
+        </record>
+
+        <record id="action_fleet_vehicle_tag_tree" model="ir.actions.act_window.view">
+            <field name="view_mode">tree</field>
+            <field name="view_id" ref="view_fleet_vehicle_tag_tree"/>
+            <field name="act_window_id" ref="action_fleet_vehicle_tag"/>
+        </record>
+
+        <!-- Fleet Vehicle Tag Menu -->
+        <menuitem name="Categories / Classes" action="action_fleet_vehicle_tag" parent="fleet.fleet_configuration" id="menu_fleet_fleet_vehicle_tag" groups="base.group_no_one" sequence="4"/>
+
+        <!-- User Form View -->
+        <record id="view_res_users_inherited_form" model="ir.ui.view">
+            <field name="name">res.users.form.inherit</field>
+            <field name="model">res.users</field>
+            <field name="inherit_id" ref="base.view_users_form"/>
+            <field name="arch" type="xml">
+                <field name="company_id" position="after">
+                    <field name="warehouse_id"/>
+                </field>
+            </field>
+        </record>
+
+    </data>
+</openerp>

=== added file 'fleet_mro/job_sequence.xml'
--- fleet_mro/job_sequence.xml	1970-01-01 00:00:00 +0000
+++ fleet_mro/job_sequence.xml	2013-06-14 04:50:36 +0000
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data noupdate="1">
+
+        <!-- Sequences for Job Number -->
+        <record id="seq_job_no_type" model="ir.sequence.type">
+            <field name="name">Job Number</field>
+            <field name="code">job.number</field>
+        </record>
+
+        <record id="seq_job_no" model="ir.sequence">
+            <field name="name">Job Number</field>
+            <field name="code">job.number</field>
+            <field name="prefix">B</field>
+            <field name="padding">6</field>
+        </record>
+
+    </data>
+</openerp>
\ No newline at end of file

=== added file 'fleet_mro/job_workflow.xml'
--- fleet_mro/job_workflow.xml	1970-01-01 00:00:00 +0000
+++ fleet_mro/job_workflow.xml	2013-06-14 04:50:36 +0000
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data>
+
+        <!-- General structure of a workflow XML file -->
+        <record model="workflow" id="wkf_job">
+            <field name="name">workflow.job</field>
+            <field name="osv">fleet.vehicle.log.services</field>
+            <field name="on_create">True</field>
+        </record>
+
+        <!-- Job Workflow Activities -->
+        <record model="workflow.activity" id="act_draft">
+            <field name="wkf_id" ref="wkf_job" />
+            <field name="name">activity.draft</field>
+            <field name="flow_start">True</field>
+        </record>
+
+        <record model="workflow.activity" id="act_observation">
+            <field name="wkf_id" ref="wkf_job" />
+            <field name="name">activity.observation</field>
+            <field name="kind">function</field>
+            <field name="action">write({'state': 'observation'})</field>
+        </record>
+
+        <record model="workflow.activity" id="act_inprogress">
+            <field name="wkf_id" ref="wkf_job" />
+            <field name="name">activity.inprogress</field>
+            <field name="kind">subflow</field>
+            <field name="subflow_id" search="[('name','=','stock.picking.basic')]"/>
+            <field name="action">action_picking_create()</field>
+        </record>
+
+        <record model="workflow.activity" id="act_repair">
+            <field name="wkf_id" ref="wkf_job" />
+            <field name="name">activity.repair</field>
+            <field name="kind">function</field>
+            <field name="action">write({'state': 'repair'})</field>
+        </record>
+
+        <record model="workflow.activity" id="act_done">
+            <field name="wkf_id" ref="wkf_job" />
+            <field name="name">activity.done</field>
+            <field name="kind">function</field>
+            <field name="action">write({'state': 'done'})</field>
+        </record>
+
+        <record model="workflow.activity" id="act_cancel">
+            <field name="wkf_id" ref="wkf_job" />
+            <field name="name">activity.cancel</field>
+            <field name="kind">function</field>
+            <field name="action">write({'state': 'cancel'})</field>
+        </record>
+
+        <record model="workflow.activity" id="act_inspection">
+            <field name="wkf_id" ref="wkf_job" />
+            <field name="name">activity.inspection</field>
+            <field name="kind">function</field>
+            <field name="action">write({'state': 'inspection'})</field>
+        </record>
+
+        <record model="workflow.activity" id="act_delivered">
+            <field name="wkf_id" ref="wkf_job"/>
+            <field name="name">activity.delivered</field>
+            <field name="flow_stop">True</field>
+            <field name="kind">function</field>
+            <field name="action">write({'state': 'delivered'})</field>
+        </record>
+
+        <!-- Job Workflow Transitions -->
+        <record model="workflow.transition" id="trans_draft_observation">
+            <field name="act_from" ref="act_draft"/>
+            <field name="act_to" ref="act_observation"/>
+            <field name="signal">job_observation</field>
+        </record>
+
+        <record model="workflow.transition" id="trans_observation_inprogress">
+            <field name="act_from" ref="act_observation"/>
+            <field name="act_to" ref="act_inprogress"/>
+            <field name="signal">job_inprogress</field>
+        </record>
+
+        <record model="workflow.transition" id="trans_observation_repair">
+            <field name="act_from" ref="act_observation"/>
+            <field name="act_to" ref="act_repair"/>
+            <field name="signal">repair</field>
+        </record>
+
+        <record model="workflow.transition" id="trans_observation_cancel">
+            <field name="act_from" ref="act_observation"/>
+            <field name="act_to" ref="act_cancel"/>
+            <field name="signal">job_cancel</field>
+        </record>
+
+        <record model="workflow.transition" id="trans_inprogress_repair">
+            <field name="act_from" ref="act_inprogress"/>
+            <field name="act_to" ref="act_repair"/>
+            <field name="signal">subflow.done</field>
+        </record>
+
+        <record model="workflow.transition" id="trans_repair_done">
+            <field name="act_from" ref="act_repair"/>
+            <field name="act_to" ref="act_done"/>
+            <field name="signal">job_done</field>
+        </record>
+
+        <record model="workflow.transition" id="trans_done_inspection">
+            <field name="act_from" ref="act_done"/>
+            <field name="act_to" ref="act_inspection"/>
+            <field name="signal">job_inspection</field>
+        </record>
+
+        <record model="workflow.transition" id="trans_inspection_delivered">
+            <field name="act_from" ref="act_inspection"/>
+            <field name="act_to" ref="act_delivered"/>
+            <field name="signal">job_delivered</field>
+        </record>
+
+        <record model="workflow.transition" id="trans_cancel_delivered">
+            <field name="act_from" ref="act_cancel"/>
+            <field name="act_to" ref="act_delivered"/>
+            <field name="signal">job_delivered</field>
+        </record>
+
+    </data>
+</openerp>

=== added directory 'fleet_mro/report'
=== added file 'fleet_mro/report/__init__.py'
--- fleet_mro/report/__init__.py	1970-01-01 00:00:00 +0000
+++ fleet_mro/report/__init__.py	2013-06-14 04:50:36 +0000
@@ -0,0 +1,25 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+#    OpenERP, Open Source Management Solution
+#    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+import fleet_fault_analysis
+import fleet_product_analysis
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file

=== added file 'fleet_mro/report/fleet_fault_analysis.py'
--- fleet_mro/report/fleet_fault_analysis.py	1970-01-01 00:00:00 +0000
+++ fleet_mro/report/fleet_fault_analysis.py	2013-06-14 04:50:36 +0000
@@ -0,0 +1,88 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+#    OpenERP, Open Source Management Solution
+#    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+from openerp import tools
+from openerp.osv import fields,osv
+
+class fault_analysis_report(osv.osv):
+    _name = "fault.analysis.report"
+    _description = "Fault Analysis Statistics"
+    _auto = False
+    
+
+    _columns = {
+        'fault_id': fields.many2one('fleet.service.type', 'Fault', required=True),
+        'trade_id': fields.many2one('fleet.service.type', 'Trade Code', required=True),
+        'job_id': fields.many2one('fleet.vehicle.log.services', 'Job', required=True),
+        'job_no': fields.char('Job No'),
+        'vehicle_id': fields.many2one('fleet.vehicle.log.services', 'Vehicle', required=True),
+        'defect_repair_time': fields.float('Defect Repair Time'),
+        'job_repair_time': fields.float('Job Repair Time'),
+        'trademen': fields.integer('No of Trademen'),
+        'repair_date': fields.date('Repair Date'),
+        'work_done': fields.text('Work Done'),
+        'entry_clerk': fields.many2one('res.users', 'Entry Clerk', readonly=True),
+        'vehicle_id': fields.many2one('fleet.vehicle', 'Vehicle', required=True),
+        'unit_id': fields.many2one('stock.location', 'Workshop', required=True),
+        'in_inspector': fields.char('In Inspector', size=64, readonly=True),
+        'out_inspector': fields.char('Out Inspector', size=64, readonly=True),
+        'technician': fields.char('Contact Technician', size=64, readonly=True),
+        'workshop_id': fields.many2one('stock.location', 'Workshop', required=True),
+        'state':fields.selection([('draft','Draft'), ('observation','Observation'), ('inprogress','Need Equipment'), 
+            ('repair','Repair In Progress'), ('done','Done'), ('inspection','Inspection'), ('cancel','Cancel'), 
+            ('delivered','Delivered')],'State',readonly=True)
+    }
+
+    def init(self, cr):
+        tools.drop_view_if_exists(cr, 'fault_analysis_report')
+        cr.execute("""
+            create or replace view fault_analysis_report as (
+                 select
+                     f.id as id,
+                     f.fault_id as fault_id,
+                     f.trade_id as trade_id,
+                     f.job_id as job_id,
+                     l.job_no as job_no,
+                     f.repair_time as defect_repair_time,
+                     l.repair_time as job_repair_time,
+                     f.trademen as trademen,
+                     f.repair_date as repair_date,
+                     f.work_done as work_done,
+                     f.entry_clerk as entry_clerk,
+                     l.in_inspector_id as in_inspector,
+                     l.out_inspector_id as out_inspector,
+                     l.technician_id as technician,
+                     l.location_id as workshop_id,
+                     l.state as state
+                 from
+                     fleet_vehicle_fault f, fleet_vehicle_log_services l
+                     where l.id = f.job_id
+                group by
+                     f.id, f.fault_id, f.trade_id, f.job_id, f.repair_time,
+                     l.repair_time,
+                     f.entry_clerk, l.in_inspector_id, l.out_inspector_id,
+                     l.technician_id, l.location_id, l.state, 
+                     f.trademen, f.repair_date, f.work_done, l.job_no
+            )
+        """)
+fault_analysis_report()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

=== added file 'fleet_mro/report/fleet_fault_analysis_view.xml'
--- fleet_mro/report/fleet_fault_analysis_view.xml	1970-01-01 00:00:00 +0000
+++ fleet_mro/report/fleet_fault_analysis_view.xml	2013-06-14 04:50:36 +0000
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+<data>
+    <record id="view_fault_analysis_report_tree" model="ir.ui.view">
+        <field name="name">fault.analysis.report.tree</field>
+        <field name="model">fault.analysis.report</field>
+        <field name="arch" type="xml">
+            <tree create="false" string="Defect Analysis">
+                <field name="id" invisible="1"/>
+                <field name="fault_id" invisible="context.get('fault_id_view')"/>
+                <field name="trade_id" invisible="context.get('trade_id_view')"/>
+                <field name="job_no" invisible="context.get('job_no_view', True)"/>
+                <field name="job_id" invisible="context.get('job_id_view')"/>
+                <field name="repair_date" invisible="context.get('repair_date_view')"/>
+                <field name="defect_repair_time" invisible="context.get('defect_repair_time_view')"/>
+                <field name="job_repair_time" invisible="context.get('job_repair_time_view', True)"/>
+                <field name="trademen" invisible="context.get('trademen_view')"/>
+                <field name="work_done" invisible="context.get('work_done_view')"/>
+                <field name="entry_clerk" invisible="context.get('entry_clerk_view', True)"/>
+                <field name="in_inspector" invisible="context.get('in_inspector_view', True)"/>
+                <field name="out_inspector" invisible="context.get('out_inspector_view', True)"/>
+                <field name="technician" invisible="context.get('technician_view')"/>
+                <!--field name="unit_id"/-->
+                <field name="workshop_id" invisible="context.get('workshop_id_view')"/>
+                <field name="state" invisible="context.get('state_view')"/>
+           </tree>
+        </field>
+    </record>
+    <!--record id="view_fault_analysis_report_graph" model="ir.ui.view">
+         <field name="name">fault.analysis.report.graph</field>
+         <field name="model">fault.analysis.reportt</field>
+         <field name="arch" type="xml">
+             <graph string="Entries Analysis" type="bar">
+                <field name="partner_id"/>
+                <field name="debit" operator="+"/>
+                <field name="credit" operator="+"/>
+                <field name="balance" operator="+"/>
+             </graph>
+         </field>
+    </record>
+    <record id="view_company_analysis_tree" model="ir.ui.view">
+         <field name="name">account.company.analysis.tree</field>
+         <field name="model">account.entries.report</field>
+         <field name="arch" type="xml">
+             <tree string="Company Analysis" >
+                <field name="user_type"/>
+                <field name="debit" />
+                <field name="credit" />
+                <field name="balance" />
+             </tree>
+         </field>
+    </record-->
+
+    <record id="view_fault_analysis_report_search" model="ir.ui.view">
+        <field name="name">fault.analysis.report.search</field>
+        <field name="model">fault.analysis.report</field>
+        <field name="arch" type="xml">
+            <search string="Defects Analysis">
+                <filter string="Draft" domain="[('state','=','draft')]"/>
+                <filter string="Observation" domain="[('state','=','observation')]"/>
+                <filter string="Need Equipment" domain="[('state','=','inprogress')]"/>
+                <filter string="Repair In Progress" domain="[('state','=','repair')]"/>
+                <filter string="Done" domain="[('state','=','done')]"/>
+                <filter string="Inspection" domain="[('state','=','inspection')]"/>
+                <filter string="Cancel" domain="[('state','=','cancel')]"/>
+                <filter string="Delivered" domain="[('state','=','delivered')]"/>
+                <group string="Display">
+                    <filter name="group_job_no" string="Job No" context="{'job_no_view': False}"/>
+                    <filter name="group_job_repair_time" string="Job Repair time" context="{'job_repair_time_view': False}"/>
+                    <filter name="group_in_inspector" string="In Inspector"  context="{'in_inspector_view':False}"/>
+                    <filter name="group_out_inspector" string="Out Inspector"  context="{'out_inspector_view':False}"/>
+                    <filter name="group_entry_clerk" string="Entry Clerk"  context="{'entry_clerk_view':False}"/>
+                </group>
+                <group expand="1" string="Group By...">
+                    <filter string="Fault" context="{'group_by':'fault_id','fault_id_view':True}"/>
+                    <filter string="Trade"  context="{'group_by':'trade_id','trade_id_view':True}"/>
+                    <filter string="Job"   context="{'group_by':'job_id','job_id_view':True}"/>
+                    <filter name="group_in_inspector" string="In Inspector"  context="{'group_by':'in_inspector', 'in_inspector_view':True}"/>
+                    <filter name="group_out_inspector" string="Out Inspector"  context="{'group_by':'out_inspector', 'out_inspector_view':True}"/>
+                    <filter name="group_entry_clerk" string="Entry Clerk"  context="{'group_by':'entry_clerk', 'entry_clerk_view':True}"/>
+                    <filter string="Technician"  context="{'group_by':'technician','technician_view':True}" />
+                    <!--filter string="Unit"  context="{'group_by':'unit_id'}"/-->
+                    <filter string="Workshop" context="{'group_by':'workshop_id','workshop_id_view':True}"/>
+                    <filter string="State" context="{'group_by':'state','state_view':True}"/>
+                 </group>
+            </search>
+        </field>
+    </record>
+    <record id="action_fault_analysis_report_all" model="ir.actions.act_window">
+        <field name="name">Defect Analysis</field>
+        <field name="res_model">fault.analysis.report</field>
+        <field name="view_type">form</field>
+        <field name="view_mode">tree</field>
+        <field name="search_view_id" ref="view_fault_analysis_report_search"/>
+        <field name="view_id" ref="view_fault_analysis_report_tree"/>
+        <field name="context">{}</field>
+        <field name="help">From this view, have an analysis of your equipment or vehicle defects.</field>
+    </record>
+    <menuitem action="action_fault_analysis_report_all" id="menu_action_fault_analysis_report_all"
+        parent="menu_reports"
+        sequence="2"/>
+</data>
+</openerp>

=== added file 'fleet_mro/report/fleet_product_analysis.py'
--- fleet_mro/report/fleet_product_analysis.py	1970-01-01 00:00:00 +0000
+++ fleet_mro/report/fleet_product_analysis.py	2013-06-14 04:50:36 +0000
@@ -0,0 +1,94 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+#    OpenERP, Open Source Management Solution
+#    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+from openerp import tools
+from openerp.osv import fields,osv
+
+class fleet_material_defect_report(osv.osv):
+    _name = "fleet.material.defect.report"
+    _description = "Material Analysis"
+    _auto = False
+    
+
+    _columns = {
+        'name': fields.text('Description', required=True),
+        'product_id': fields.many2one('product.product', 'Product', required=True),
+        'type': fields.selection([('make_to_stock', 'From Stock'), ('make_to_order', 'On Order')], 'Procurement Method', required=True,
+         help="From stock: When needed, the product is taken from the stock or we wait for replenishment.\nOn order: When needed, the product is purchased or produced."),
+        'product_uom_qty': fields.float('Quantity', required=True),
+        'product_uom': fields.many2one('product.uom', 'Unit of Measure', required=True),
+
+        'job_id': fields.many2one('fleet.vehicle.log.services', 'Job', required=True),
+        'job_no': fields.char('Job No'),
+        'vehicle_id': fields.many2one('fleet.vehicle.log.services', 'Vehicle', required=True),
+        'defect_repair_time': fields.float('Defect Repair Time'),
+        'job_repair_time': fields.float('Job Repair Time'),
+        'work_date': fields.date('work Date'),
+        'work_done': fields.text('Work Done'),
+        'entry_clerk': fields.many2one('res.users', 'Entry Clerk', readonly=True),
+        'vehicle_id': fields.many2one('fleet.vehicle', 'Vehicle', required=True),
+        'unit_id': fields.many2one('stock.location', 'Workshop', required=True),
+        'in_inspector': fields.char('In Inspector', size=64, readonly=True),
+        'out_inspector': fields.char('Out Inspector', size=64, readonly=True),
+        'technician': fields.char('Contact Technician', size=64, readonly=True),
+        'workshop_id': fields.many2one('stock.location', 'Workshop', required=True),
+        'state':fields.selection([('draft','Draft'), ('observation','Observation'), ('inprogress','Need Equipment'), 
+            ('repair','Repair In Progress'), ('done','Done'), ('inspection','Inspection'), ('cancel','Cancel'), 
+            ('delivered','Delivered')],'State',readonly=True)
+    }
+
+    def init(self, cr):
+        tools.drop_view_if_exists(cr, 'fleet_material_defect_report')
+        cr.execute("""
+            create or replace view fleet_material_defect_report as (
+                 select
+                     p.id as id,
+                     p.name as name,
+                     p.product_id as product_id,
+                     p.type as type,
+                     p.job_id as job_id,
+                     l.job_no as job_no,
+                     p.product_uom_qty as product_uom_qty,
+                     l.repair_time as job_repair_time,
+                     l.work_date as work_date,
+                     p.product_uom as product_uom,
+                     l.in_inspector_id as in_inspector,
+                     l.out_inspector_id as out_inspector,
+                     l.technician_id as technician,
+                     l.location_id as workshop_id,
+                     l.state as state
+                 from
+                     job_product_lines p, fleet_vehicle_log_services l
+                     where l.id = p.job_id
+                group by
+                     p.id, p.name, p. product_id, p.type, p.job_id,
+                     p.product_uom_qty,
+                     l.repair_time,
+                     p.product_uom,
+                     l.in_inspector_id, l.out_inspector_id,
+                     l.technician_id, l.location_id, l.state, 
+                     l.job_no,
+                     l.work_date
+            )
+        """)
+fleet_material_defect_report()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

=== added file 'fleet_mro/report/fleet_product_analysis_view.xml'
--- fleet_mro/report/fleet_product_analysis_view.xml	1970-01-01 00:00:00 +0000
+++ fleet_mro/report/fleet_product_analysis_view.xml	2013-06-14 04:50:36 +0000
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+<data>
+    <record id="view_fleet_material_defect_report_tree" model="ir.ui.view">
+        <field name="name">fleet.material.defect.report.tree</field>
+        <field name="model">fleet.material.defect.report</field>
+        <field name="arch" type="xml">
+            <tree create="false" string="Defect Analysis">
+                <field name="id" invisible="1"/>
+                <field name="product_id" invisible="context.get('product_id_view')"/>
+                <field name="job_no" invisible="context.get('job_no_view', True)"/>
+                <field name="job_id" invisible="context.get('job_id_view')"/>
+                <field name="type" invisible="context.get('type_view', True)"/>
+                <!--field name="defect_repair_time" invisible="context.get('defect_repair_time_view')"/-->
+				<field name="work_date" string="Repair Date" invisible="context.get('repair_date_view', True)"/>
+                <field name="job_repair_time" invisible="context.get('job_repair_time_view', True)"/>
+                <field name="product_uom_qty" invisible="context.get('product_uom_qty_view')"/>
+                <field name="product_uom" invisible="context.get('product_uom_view')"/>
+
+                <!--field name="entry_clerk" invisible="context.get('entry_clerk_view', True)"/-->
+                <field name="in_inspector" invisible="context.get('in_inspector_view', True)"/>
+                <field name="out_inspector" invisible="context.get('out_inspector_view', True)"/>
+                <field name="technician" invisible="context.get('technician_view')"/>
+                <!--field name="unit_id"/-->
+                <field name="workshop_id" invisible="context.get('workshop_id_view')"/>
+                <field name="state" invisible="context.get('state_view')"/>
+           </tree>
+        </field>
+    </record>
+
+    <record id="view_fleet_material_defect_reportt_search" model="ir.ui.view">
+        <field name="name">fleet.material.defect.report.search</field>
+        <field name="model">fleet.material.defect.report</field>
+        <field name="arch" type="xml">
+            <search string="Defects Analysis">
+                <filter string="Draft" domain="[('state','=','draft')]"/>
+                <filter string="Observation" domain="[('state','=','observation')]"/>
+                <filter string="Need Equipment" domain="[('state','=','inprogress')]"/>
+                <filter string="Repair In Progress" domain="[('state','=','repair')]"/>
+                <filter string="Done" domain="[('state','=','done')]"/>
+                <filter string="Inspection" domain="[('state','=','inspection')]"/>
+                <filter string="Cancel" domain="[('state','=','cancel')]"/>
+                <filter string="Delivered" domain="[('state','=','delivered')]"/>
+                <group string="Display">
+                    <filter name="group_job_no" string="Job No" context="{'job_no_view': False}"/>
+                    <filter name="group_job_repair_time" string="Job Repair time" context="{'job_repair_time_view': False}"/>
+                    <filter name="group_in_inspector" string="In Inspector"  context="{'in_inspector_view':False}"/>
+                    <filter name="group_out_inspector" string="Out Inspector"  context="{'out_inspector_view':False}"/>
+                    <filter string="Type" context="{'type_view':False}"/>
+                    <filter string="Repair Date" context="{'repair_date_view':False}"/>
+					<!--filter name="group_entry_clerk" string="Entry Clerk"  context="{'entry_clerk_view':False}"/-->
+                </group>
+                <group expand="1" string="Group By...">
+                    <filter string="Product"  context="{'group_by':'product_id','product_id_view':True}"/>
+                    <filter string="Job"   context="{'group_by':'job_id','job_id_view':True}"/>
+                    <filter name="group_in_inspector" string="In Inspector"  context="{'group_by':'in_inspector', 'in_inspector_view':True}"/>
+                    <filter name="group_out_inspector" string="Out Inspector"  context="{'group_by':'out_inspector', 'out_inspector_view':True}"/>
+                    <!--filter name="group_entry_clerk" string="Entry Clerk"  context="{'group_by':'entry_clerk', 'entry_clerk_view':True}"/-->
+                    <filter string="Technician"  context="{'group_by':'technician','technician_view':True}" />
+                    <!--filter string="Unit"  context="{'group_by':'unit_id'}"/-->
+                    <filter string="Workshop" context="{'group_by':'workshop_id','workshop_id_view':True}"/>
+                    <filter string="Procurment Method" context="{'group_by':'type','type_view':True}"/>
+                    <filter string="State" context="{'group_by':'state','state_view':True}"/>
+					<filter string="Repair Date" context="{'group_by':'work_date','repair_date_view':True}"/>
+                 </group>
+            </search>
+        </field>
+    </record>
+    <record id="action_fleet_material_defect_report_all" model="ir.actions.act_window">
+        <field name="name">Material Analysis</field>
+        <field name="res_model">fleet.material.defect.report</field>
+        <field name="view_type">form</field>
+        <field name="view_mode">tree</field>
+        <field name="search_view_id" ref="view_fleet_material_defect_reportt_search"/>
+        <field name="view_id" ref="view_fleet_material_defect_report_tree"/>
+        <field name="context">{}</field>
+        <field name="help">From this view, have an analysis of your material required to fix equipment or vehicle defects.</field>
+    </record>
+    <menuitem action="action_fleet_material_defect_report_all" id="menu_action_fleet_material_defect_report_all"
+        parent="menu_reports"
+        sequence="5"/>
+</data>
+</openerp>

=== added directory 'fleet_mro/security'
=== added file 'fleet_mro/security/fleet_mro_security.xml'
--- fleet_mro/security/fleet_mro_security.xml	1970-01-01 00:00:00 +0000
+++ fleet_mro/security/fleet_mro_security.xml	2013-06-14 04:50:36 +0000
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data noupdate="0">
+
+        <record id="stock_warehouse_rule" model="ir.rule">
+            <field name="name">Warehouse Rule</field>
+            <field name="model_id" ref="stock.model_stock_warehouse"/>
+            <field name="domain_force">[('id', '=', user.warehouse_id.id)]</field>
+            <field name="global" eval="True"/>
+        </record>
+
+        <record id="stock_picking_rule" model="ir.rule">
+            <field name="name">Stock Picking Rule</field>
+            <field name="model_id" ref="stock.model_stock_picking"/>
+            <field name="domain_force">[('workshop_id', '=', user.warehouse_id.id)]</field>
+            <field name="global" eval="True"/>
+        </record>
+
+        <record id="stock_picking_in_rule" model="ir.rule">
+            <field name="name">Stock Picking In Rule</field>
+            <field name="model_id" ref="stock.model_stock_picking_in"/>
+            <field name="domain_force">[('workshop_id', '=', user.warehouse_id.id)]</field>
+            <field name="global" eval="True"/>
+        </record>
+
+        <record id="stock_picking_out_rule" model="ir.rule">
+            <field name="name">Stock Picking Out Rule</field>
+            <field name="model_id" ref="stock.model_stock_picking_out"/>
+            <field name="domain_force">[('workshop_id', '=', user.warehouse_id.id)]</field>
+            <field name="global" eval="True"/>
+        </record>
+
+        <record id="stock_location_rule" model="ir.rule">
+            <field name="name">Stock Location Rule</field>
+            <field name="model_id" ref="stock.model_stock_location"/>
+            <field name="domain_force">[('id', 'child_of', [user.warehouse_id.lot_input_id.id])]</field>
+            <field name="global" eval="True"/>
+            <field name="perm_read" eval="0"/>
+        </record>
+
+        <record id="fleet_vehicle_rule" model="ir.rule">
+            <field name="name">Fleet Vehicle Rule</field>
+            <field name="model_id" ref="model_fleet_vehicle"/>
+            <field name="domain_force">[('unit_id', 'child_of', [user.warehouse_id.lot_input_id.id])]</field>
+            <field name="global" eval="True"/>
+            <field name="perm_create" eval="0"/>
+            <field name="perm_write" eval="0"/>
+            <field name="perm_unlink" eval="0"/>
+        </record>
+
+        <record id="fleet_vehicle_log_services_rule" model="ir.rule">
+            <field name="name">Fleet Vehicle Log Services Rule</field>
+            <field name="model_id" ref="fleet.model_fleet_vehicle_log_services"/>
+            <field name="domain_force">[('location_id', 'child_of', [user.warehouse_id.lot_input_id.id])]</field>
+            <field name="global" eval="True"/>
+            <field name="perm_create" eval="0"/>
+            <field name="perm_write" eval="0"/>
+            <field name="perm_unlink" eval="0"/>
+        </record>
+
+    </data>
+</openerp>

=== added file 'fleet_mro/security/ir.model.access.csv'
--- fleet_mro/security/ir.model.access.csv	1970-01-01 00:00:00 +0000
+++ fleet_mro/security/ir.model.access.csv	2013-06-14 04:50:36 +0000
@@ -0,0 +1,9 @@
+"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
+
+"access_fleet_equipment_status","fleet.equipment.status","model_fleet_equipment_status","fleet.group_fleet_user",1,0,0,0
+"access_fleet_vehicle_fault","fleet.vehicle.fault","model_fleet_vehicle_fault","fleet.group_fleet_user",1,0,0,0
+"access_job_product_lines","job.product.lines","model_job_product_lines","fleet.group_fleet_user",1,0,0,0
+
+"access_fleet_equipment_status","fleet.equipment.status","model_fleet_equipment_status","fleet.group_fleet_manager",1,1,1,1
+"access_fleet_vehicle_fault","fleet.vehicle.fault","model_fleet_vehicle_fault","fleet.group_fleet_manager",1,1,1,1
+"access_job_product_lines","job.product.lines","model_job_product_lines","fleet.group_fleet_manager",1,1,1,1

=== added file 'fleet_mro/stock.py'
--- fleet_mro/stock.py	1970-01-01 00:00:00 +0000
+++ fleet_mro/stock.py	2013-06-14 04:50:36 +0000
@@ -0,0 +1,102 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+#    OpenERP, Open Source Management Solution
+#    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+from openerp.osv import fields, osv
+
+class stock_location(osv.Model):
+    _inherit = 'stock.location'
+
+    _columns = {
+        'workshop': fields.boolean('Workshop'),
+    }
+
+    def name_get(self, cr, uid, ids, context=None):
+        if not ids:
+            return []
+        if context is None: context = {}
+        if context.get('unit_view', False):
+            return [(line.id, line.name) for line in self.browse(cr, uid, ids, context=context)]
+        return super(stock_location, self).name_get(cr, uid, ids, context=context)
+
+stock_location()
+
+class stock_warehouse(osv.Model):
+    _inherit = "stock.warehouse"
+    _columns = {
+        'lot_workshop_id': fields.many2one('stock.location', 'Location Workshop', required=True),
+    }
+
+stock_warehouse()
+
+class stock_picking(osv.Model):
+    _inherit = "stock.picking"
+
+    _columns = {
+        'workshop_id': fields.many2one('stock.warehouse', 'Workshop'),
+    }
+
+    def _default_workshop_id(self, cr, uid, context=None):
+        user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
+        return user.warehouse_id and user.warehouse_id.id or False
+
+    _defaults = {
+        'workshop_id': _default_workshop_id,
+    }
+
+stock_picking()
+
+class stock_picking_in(osv.Model):
+    _name = "stock.picking.in"
+    _inherit = "stock.picking.in"
+
+    _columns = {
+        'workshop_id': fields.many2one('stock.warehouse', 'Workshop'),
+    }
+
+    def _default_workshop_id(self, cr, uid, context=None):
+        user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
+        return user.warehouse_id and user.warehouse_id.id or False
+
+    _defaults = {
+        'workshop_id': _default_workshop_id,
+    }
+
+stock_picking_in()
+
+class stock_picking_out(osv.Model):
+    _name = "stock.picking.out"
+    _inherit = "stock.picking.out"
+
+    _columns = {
+        'workshop_id': fields.many2one('stock.warehouse', 'Workshop'),
+    }
+
+    def _default_workshop_id(self, cr, uid, context=None):
+        user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
+        return user.warehouse_id and user.warehouse_id.id or False
+
+    _defaults = {
+        'workshop_id': _default_workshop_id,
+    }
+
+stock_picking_out()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

=== added file 'fleet_mro/stock_data.xml'
--- fleet_mro/stock_data.xml	1970-01-01 00:00:00 +0000
+++ fleet_mro/stock_data.xml	2013-06-14 04:50:36 +0000
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data noupdate="1">
+
+        <!-- Stock Warehouse -->
+        <record id="stock.warehouse0" model="stock.warehouse">
+            <field name="lot_workshop_id" ref="stock.location_inventory"/>
+        </record>
+
+    </data>
+</openerp>

=== added file 'fleet_mro/stock_demo.xml'
--- fleet_mro/stock_demo.xml	1970-01-01 00:00:00 +0000
+++ fleet_mro/stock_demo.xml	2013-06-14 04:50:36 +0000
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data noupdate="1">
+
+        <!-- Stock Warehouse -->
+        <record id="stock.stock_warehouse_shop0" model="stock.warehouse">
+            <field name="lot_workshop_id" ref="stock.location_inventory"/>
+        </record>
+
+        <record id="stock.stock_warehouse_shop1" model="stock.warehouse">
+            <field name="lot_workshop_id" ref="stock.location_inventory"/>
+        </record>
+
+    </data>
+</openerp>
+

=== added file 'fleet_mro/stock_view.xml'
--- fleet_mro/stock_view.xml	1970-01-01 00:00:00 +0000
+++ fleet_mro/stock_view.xml	2013-06-14 04:50:36 +0000
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<openerp>
+    <data>
+
+        <!-- Stock Location Form View -->
+        <record id="view_stock_location_form" model="ir.ui.view">
+            <field name="name">stock.location.inherited.form</field>
+            <field name="model">stock.location</field>
+            <field name="inherit_id" ref="stock.view_location_form"/>
+            <field name="arch" type="xml">
+                <field name="active" position="after">
+                    <field name="workshop"/>
+                </field>
+            </field>
+        </record>
+
+        <!-- Stock Warehouse Form View -->
+        <record id="view_stock_warehouse_form" model="ir.ui.view">
+            <field name="name">stock.warehouse.inherited.form</field>
+            <field name="model">stock.warehouse</field>
+            <field name="inherit_id" ref="stock.view_warehouse"/>
+            <field name="arch" type="xml">
+                <field name="lot_output_id" position="after">
+                    <field name="lot_workshop_id"/>
+                </field>
+            </field>
+        </record>
+
+        <!-- Stock Picking Internal Form View -->
+        <record id="view_stock_picking_inherited_form" model="ir.ui.view">
+            <field name="name">stock.picking.inherited.form</field>
+            <field name="model">stock.picking</field>
+            <field name="inherit_id" ref="stock.view_picking_form"/>
+            <field name="arch" type="xml">
+                <field name="auto_picking" position="after">
+                    <field name="workshop_id"/>
+                </field>
+            </field>
+        </record>
+
+        <!-- Stock Picking In Form View -->
+        <record id="view_stock_picking_in_inherited_form" model="ir.ui.view">
+            <field name="name">stock.picking.in.inherited.form</field>
+            <field name="model">stock.picking.in</field>
+            <field name="inherit_id" ref="stock.view_picking_in_form"/>
+            <field name="arch" type="xml">
+                <field name="auto_picking" position="after">
+                    <field name="workshop_id"/>
+                </field>
+            </field>
+        </record>
+
+        <!-- Stock Picking Out Form View -->
+        <record id="view_stock_picking_out_inherited_form" model="ir.ui.view">
+            <field name="name">stock.picking.out.inherited.form</field>
+            <field name="model">stock.picking.out</field>
+            <field name="inherit_id" ref="stock.view_picking_out_form"/>
+            <field name="arch" type="xml">
+                <field name="auto_picking" position="after">
+                    <field name="workshop_id"/>
+                </field>
+            </field>
+        </record>
+
+    </data>
+</openerp>

=== added file 'fleet_mro/work_sequence.xml'
--- fleet_mro/work_sequence.xml	1970-01-01 00:00:00 +0000
+++ fleet_mro/work_sequence.xml	2013-06-14 04:50:36 +0000
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data noupdate="1">
+
+        <!-- Sequences for Work Order Number -->
+        <record id="seq_work_no_type" model="ir.sequence.type">
+            <field name="name">Work Order Number</field>
+            <field name="code">work.number</field>
+        </record>
+
+        <record id="seq_work_no" model="ir.sequence">
+            <field name="name">Work Order Number</field>
+            <field name="code">work.number</field>
+            <field name="prefix">W</field>
+            <field name="padding">6</field>
+        </record>
+
+    </data>
+</openerp>
\ No newline at end of file

=== modified file 'gate_pass/__openerp__.py'
--- gate_pass/__openerp__.py	2013-03-25 13:00:17 +0000
+++ gate_pass/__openerp__.py	2013-06-14 04:50:36 +0000
@@ -37,8 +37,9 @@
         'gate_pass_workflow.xml',
         'gate_pass_sequence.xml',
         'gate_pass_report.xml',
+        'report/inward_analysis_view.xml'
     ],
-    'update_xml' : [],
+    'update_xml' : ['security/ir.model.access.csv'],
 
     'demo': [],
 

=== modified file 'gate_pass/gate_pass.py'
--- gate_pass/gate_pass.py	2013-04-09 05:15:45 +0000
+++ gate_pass/gate_pass.py	2013-06-14 04:50:36 +0000
@@ -50,6 +50,7 @@
         'series':fields.selection(SERIES, 'Series'),
         'gate_pass_type':fields.selection(GATE_PASS_TYPE, 'Type'),
         'gate_pass_id': fields.many2one('gate.pass', 'Gate Pass'),
+        'indent': fields.many2one('indent.indent', 'Indent'),
     }
 
     def create_gate_pass(self, cr, uid, ids, context=None):
@@ -60,7 +61,7 @@
                 gate_pass_id = gate_pass_obj.create(cr, uid, {'partner_id': picking.partner_id.id, 'picking_id': picking.id}, context=context)
                 self.write(cr, uid, [picking.id], {'gate_pass_id': gate_pass_id}, context=context)
                 for move in picking.move_lines:
-                    vals = dict(product_id = move.product_id.id, product_uom_qty = move.product_qty, pen_qty = move.product_id.qty_available, gps_qty=move.product_qty, app_rate = move.product_id.standard_price, product_uom = move.product_uom.id, name = move.product_id.name, gate_pass_id = gate_pass_id)
+                    vals = dict(product_id = move.product_id.id, product_uom_qty = move.product_qty, pen_qty = move.product_id.qty_available, gps_qty=move.product_qty, app_rate = move.product_id.standard_price, product_uom = move.product_uom.id, name = move.product_id.name, gate_pass_id = gate_pass_id, number = move.prodlot_id.name)
                     gate_pass_line_obj.create(cr, uid, vals, context=context)
         return True
 
@@ -68,12 +69,18 @@
         """ Confirms picking.
         @return: True
         """
+        picking_authority_obj = self.pool.get('picking.authority')
         self.create_gate_pass(cr, uid, ids, context=context)
         picking = False
         pickings = self.browse(cr, uid, ids, context=context)
         self.write(cr, uid, ids, {'state': 'confirmed'})
         todo = []
         for picking in pickings:
+            if picking.type == 'internal':
+                if picking.indent_id and picking.indent_id.employee_id and picking.indent_id.employee_id.coach_id and picking.indent_id.employee_id.coach_id.user_id and picking.indent_id.employee_id.coach_id.user_id.id:
+                    picking_authority_obj.create(cr, uid, {'name': picking.indent_id.employee_id.coach_id.user_id.id, 'document': 'picking', 'picking_id': picking.id, 'priority': 1}, context=context)
+                if picking.indent_id and picking.indent_id.employee_id and picking.indent_id.employee_id.user_id and picking.indent_id.employee_id.user_id.id:
+                    picking_authority_obj.create(cr, uid, {'name': picking.indent_id.employee_id.user_id.id, 'document': 'picking', 'picking_id': picking.id, 'priority': 2}, context=context)
             for r in picking.move_lines:
                 if r.state == 'draft':
                     todo.append(r.id)
@@ -96,6 +103,7 @@
     _columns = {
         'series':fields.selection(SERIES, 'Series'),
         'gate_pass_type':fields.selection(GATE_PASS_TYPE, 'Type'),
+        'gate_pass_id': fields.many2one('gate.pass', 'Gate Pass'),
     }
 
 stock_picking_in()
@@ -108,7 +116,8 @@
         'series':fields.selection(SERIES, 'Series'),
         'gate_pass_type':fields.selection(GATE_PASS_TYPE, 'Type'),
         'gate_pass_id': fields.many2one('gate.pass', 'Gate Pass'),
-        'indent_id': fields.many2one('indent.indent', 'Indent'),
+        'indent': fields.many2one('indent.indent', 'Indent'),
+        'maize_out': fields.char('Maize', size=256, readonly=True),
     }
 
     def open_gate_pass(self, cr, uid, ids, context=None):
@@ -131,6 +140,27 @@
         }
         return result
 
+    def onchange_indent(self, cr, uid, ids, indent=False, *args, **kw):
+        result = {'move_lines': []}
+        move_obj = self.pool.get('stock.move')
+        stock_moves = []
+
+        if ids:
+            for order in self.browse(cr, uid, ids):
+                move_ids = [move.id for move in order.move_lines]
+                move_obj.unlink(cr, uid, move_ids)
+        if not indent:
+            return {'value': result}
+        products = self.pool.get('indent.indent').browse(cr, uid, indent).product_lines
+        location_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'stock', 'stock_location_stock')
+        location = location_id and location_id[1] or False
+        company_id = self.pool.get('res.company')._company_default_get(cr, uid, 'stock.move')
+        for product in products:
+            vals = dict(product_id = product.original_product_id.id or product.product_id.id or False, product_qty = product.product_uom_qty, product_uom = product.product_uom.id, name = product.product_id.name, location_id = location, location_dest_id = location, type = 'out', company_id = company_id, date_expected = time.strftime('%Y-%m-%d %H:%M:%S'), date = time.strftime('%Y-%m-%d %H:%M:%S'), state = 'draft')
+            stock_moves.append(vals)
+        result['move_lines'] = stock_moves
+        return {'value': result}
+
 stock_picking_out()
 
 class gate_pass(osv.Model):
@@ -209,6 +239,8 @@
     def action_picking_create(self, cr, uid, ids, context=None):
         assert len(ids) == 1, 'This option should only be used for a single id at a time.'
         picking = self.browse(cr, uid, ids[0], context=context).in_picking_id.id
+        if not picking:
+            raise osv.except_osv(_("Error !"),_('An inward related to the gate pass is not created.'))
         self.pool.get('stock.picking.in').write(cr, uid, [picking], {'gate_pass_id': ids[0]}, context=context)
         self.write(cr, uid, ids, {'state': 'pending'}, context=context)
         return picking
@@ -228,6 +260,7 @@
     _columns = {
          'gate_pass_id': fields.many2one('gate.pass', 'Gate Pass', required=True, ondelete='cascade'),
          'name': fields.text('Name', required=True),
+         'number': fields.char('Number', size=256),
          'product_id': fields.many2one('product.product', 'Product', required=True),
          'product_uom_qty': fields.float('Quantity', digits_compute= dp.get_precision('Product UoS'), required=True),
          'product_uom': fields.many2one('product.uom', 'Unit of Measure', required=True),

=== modified file 'gate_pass/gate_pass_report.xml'
--- gate_pass/gate_pass_report.xml	2013-03-22 07:33:31 +0000
+++ gate_pass/gate_pass_report.xml	2013-06-14 04:50:36 +0000
@@ -3,6 +3,9 @@
     <data>
         <report auto="False" id="report_gate_pass_new" model="gate.pass"
                 name="gate_pass.new" rml="gate_pass/report/gate_pass.rml"
-                usage="default" string="Gate Pass Report"/>
+                usage="default" string="Chargeable Gate Pass"/>
+        <report auto="False" id="report_cylinder_gate_pass_new" model="gate.pass"
+                name="cylinder_gate_pass.new" rml="gate_pass/report/cylinder_gate_pass.rml"
+                usage="default" string="Cylinder Gate Pass"/>
     </data>
 </openerp>

=== modified file 'gate_pass/gate_pass_view.xml'
--- gate_pass/gate_pass_view.xml	2013-04-09 05:15:45 +0000
+++ gate_pass/gate_pass_view.xml	2013-06-14 04:50:36 +0000
@@ -46,6 +46,7 @@
                                                     <field name="product_uom_qty" class="oe_inline"/>
                                                     <field name="product_uom" groups="product.group_uom" class="oe_inline oe_no_button" invisible="1"/>
                                                 </div>
+                                                <field name="number"/>
                                             </group>
                                             <group>
                                                 <field name="pen_qty"/>
@@ -61,6 +62,7 @@
                                         <field name="product_id" on_change="onchange_product_id(product_id)"/>
                                         <field name="product_uom_qty"/>
                                         <field name="product_uom" string="Unit" groups="product.group_uom" options='{"no_open": True}' invisible="1"/>
+                                        <field name="number"/>
                                         <field name="pen_qty"/>
                                         <field name="gps_qty"/>
                                         <field name="app_rate"/>
@@ -145,6 +147,18 @@
         <menuitem name="Gate Passes" parent="stock.menu_stock_root" id="menu_gate_pass_main" sequence="1"/>
         <menuitem action="action_gate_pass" name="Gate Passes" parent="menu_gate_pass_main" id="menu_gate_pass" sequence="1"/>
 
+        <!-- Stock Picking In Gate Pass Form View -->
+        <record id="view_stock_picking_in_gate_pass_form" model="ir.ui.view">
+            <field name="name">stock.picking.in.gate.pass.form</field>
+            <field name="model">stock.picking.in</field>
+            <field name="inherit_id" ref="maize_purchase.maize_view_stock_picking_in_inherit_form"/>
+            <field name="arch" type="xml">
+                <field name="gp_no" position="replace">
+                    <field name="gate_pass_id" readonly="1"/>
+                </field>
+            </field>
+        </record>
+
         <!-- Stock Picking Out Gate Pass Form View -->
         <record id="view_stock_picking_out_gate_pass_form" model="ir.ui.view">
             <field name="name">stock.picking.out.gate.pass.form</field>
@@ -161,10 +175,12 @@
                         <group>
                             <field name="series"/>
                             <field name="gate_pass_id" invisible="1"/>
+                            <field name="maize_out" groups="indent.group_maize_data"/>
                         </group>
                         <group>
                             <field name="gate_pass_type"/>
-                            <field name="indent_id" attrs="{'invisible': [('gate_pass_type', '!=', 'chargeable')]}" domain="[('contract', '=', False)]"/>
+                            <field name="indent" attrs="{'invisible': [('gate_pass_type', '!=', 'chargeable')], 'required': [('gate_pass_type', '=', 'chargeable')]}" domain="[('contract', '=', False), ('type', '=', 'existing'), ('state', '=', 'inprogress')]"
+                                on_change="onchange_indent(indent)"/>
                         </group>
                     </group>
                 </xpath>

=== modified file 'gate_pass/report/__init__.py'
--- gate_pass/report/__init__.py	2013-03-22 07:33:31 +0000
+++ gate_pass/report/__init__.py	2013-06-14 04:50:36 +0000
@@ -1,1 +1,3 @@
-import gate_pass
\ No newline at end of file
+import gate_pass
+import inward_analysis
+import cylinder_gate_pass
\ No newline at end of file

=== added file 'gate_pass/report/cylinder_gate_pass.py'
--- gate_pass/report/cylinder_gate_pass.py	1970-01-01 00:00:00 +0000
+++ gate_pass/report/cylinder_gate_pass.py	2013-06-14 04:50:36 +0000
@@ -0,0 +1,98 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#    
+#    OpenERP, Open Source Management Solution
+#    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.     
+#
+##############################################################################
+
+import time
+from datetime import datetime
+from openerp.report import report_sxw
+
+class cylinder_gate_pass(report_sxw.rml_parse):
+    def __init__(self, cr, uid, name, context):
+        self.sr_no = 0
+        self.cr = cr
+        self.uid = uid
+        self.get_value ={}
+        super(cylinder_gate_pass, self).__init__(cr, uid, name, context=context)
+        self.localcontext.update({
+              'time': time, 
+              'total_amount': self._get_total, 
+              'project_name': self._project_code_name, 
+              'sequence': self._serial_no,
+              'get_value': self._get_value,
+              'type': self._type,
+              'sign': self._get_sign,
+              'authority_sign': self._authority_sign,
+              })
+        self.context = context
+
+    def _serial_no(self, line):
+        self.sr_no += 1
+        return self.sr_no
+    
+    def _get_sign(self, line,cylinder_gate_pass):
+        authority_obj = self.pool.get('document.authority.instance')
+        authority_id = authority_obj.search(self.cr, self.uid, [('name', '=', line.name),('indent_id', '=', cylinder_gate_pass.id),('state', '=', 'approve')])
+        if authority_id:
+            return line.sign or "/9j/4AAQSkZJRgABAQEASABIAAD/7QyKUGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAccAgAAAgAAADhCSU0EJQAAAAAAEOjxXPMvwRihontnrcVk1bo4QklNA+0AAAAAABAASAAAAAEAAQBIAAAAAQABOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNBA0AAAAAAAQAAAB4OEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNBAoAAAAAAAEAADhCSU0nEAAAAAAACgABAAAAAAAAAAI4QklNA/UAAAAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEAL2ZmAAEAoZmaAAYAAAAAAAEAMgAAAAEAWgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklNA/gAAAAAAHAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAOEJJTQQAAAAAAAACAAI4QklNBAIAAAAAAAYAAAAAAAA4QklNBDAAAAAAAAMBAQEAOEJJTQQtAAAAAAAGAAEAAAAGOEJJTQQIAAAAAAAQAAAAAQAAAkAAAAJAAAAAADhCSU0EHgAAAAAABAAAAAA4QklNBBoAAAAAA2cAAAAGAAAAAAAAAAAAAAGKAAACJgAAABkAVwBoAGkAdABlACAAQgBhAGMAawBnAHIAbwB1AG4AZAAgAFQAZQBtAHAAbABhAHQAZQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAACJgAAAYoAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAG51bGwAAAACAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAAYoAAAAAUmdodGxvbmcAAAImAAAABnNsaWNlc1ZsTHMAAAABT2JqYwAAAAEAAAAAAAVzbGljZQAAABIAAAAHc2xpY2VJRGxvbmcAAAAAAAAAB2dyb3VwSURsb25nAAAAAAAAAAZvcmlnaW5lbnVtAAAADEVTbGljZU9yaWdpbgAAAA1hdXRvR2VuZXJhdGVkAAAAAFR5cGVlbnVtAAAACkVTbGljZVR5cGUAAAAASW1nIAAAAAZib3VuZHNPYmpjAAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9uZwAAAAAAAAAAQnRvbWxvbmcAAAGKAAAAAFJnaHRsb25nAAACJgAAAAN1cmxURVhUAAAAAQAAAAAAAG51bGxURVhUAAAAAQAAAAAAAE1zZ2VURVhUAAAAAQAAAAAABmFsdFRhZ1RFWFQAAAABAAAAAAAOY2VsbFRleHRJc0hUTUxib29sAQAAAAhjZWxsVGV4dFRFWFQAAAABAAAAAAAJaG9yekFsaWduZW51bQAAAA9FU2xpY2VIb3J6QWxpZ24AAAAHZGVmYXVsdAAAAAl2ZXJ0QWxpZ25lbnVtAAAAD0VTbGljZVZlcnRBbGlnbgAAAAdkZWZhdWx0AAAAC2JnQ29sb3JUeXBlZW51bQAAABFFU2xpY2VCR0NvbG9yVHlwZQAAAABOb25lAAAACXRvcE91dHNldGxvbmcAAAAAAAAACmxlZnRPdXRzZXRsb25nAAAAAAAAAAxib3R0b21PdXRzZXRsb25nAAAAAAAAAAtyaWdodE91dHNldGxvbmcAAAAAADhCSU0EKAAAAAAADAAAAAE/8AAAAAAAADhCSU0EFAAAAAAABAAAAAY4QklNBAwAAAAABl0AAAABAAAAoAAAAHMAAAHgAADXoAAABkEAGAAB/9j/4AAQSkZJRgABAgAASABIAAD/7QAMQWRvYmVfQ00AAf/uAA5BZG9iZQBkgAAAAAH/2wCEAAwICAgJCAwJCQwRCwoLERUPDAwPFRgTExUTExgRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBDQsLDQ4NEA4OEBQODg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIAHMAoAMBIgACEQEDEQH/3QAEAAr/xAE/AAABBQEBAQEBAQAAAAAAAAADAAECBAUGBwgJCgsBAAEFAQEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAQQBAwIEAgUHBggFAwwzAQACEQMEIRIxBUFRYRMicYEyBhSRobFCIyQVUsFiMzRygtFDByWSU/Dh8WNzNRaisoMmRJNUZEXCo3Q2F9JV4mXys4TD03Xj80YnlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3EQACAgECBAQDBAUGBwcGBTUBAAIRAyExEgRBUWFxIhMFMoGRFKGxQiPBUtHwMyRi4XKCkkNTFWNzNPElBhaisoMHJjXC0kSTVKMXZEVVNnRl4vKzhMPTdePzRpSkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2JzdHV2d3h5ent8f/2gAMAwEAAhEDEQA/APTaqGPrD3yS7UQSAB2+jCn9mp8D/nO/8knx/wCYZ/VCIkpF9mp8D/nO/wDJJfZqfA/5zv8AySKkkpF9mp8D/nO/8kl9mp8D/nO/8kipJKRfZqfA/wCc7/ySX2anwP8AnO/8kipJKRfZqfA/5zv/ACSX2anwP+c7/wAkipJKRfZqfA/5zv8AySX2anwP+c7/AMkipJKRfZqfA/5zv/JJfZqfA/5zv/JIqSSkX2anwP8AnO/8kl9mp8D/AJzv/JIqSSkX2anwP+c7/wAkl9mp8D/nO/8AJIqSSkX2anwP+c7/AMkq2Y6vFOOAD+ntFOpJ+kHuB90/uK8s3rP0un/+HK/+psSU/wD/0PUcf+YZ/VCIh4/8wz+qERJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpZvWfpdP/8ADlf/AFNi0lm9Z+l0/wD8OV/9TYkp/9H1HH/mGf1QiIeP/MM/qhESUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKWb1n6XT//AA5X/wBTYtJZvWfpdP8A/Dlf/U2JKf/S9Rx/5hn9UIiHj/zDP6oRElKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSlm9Z+l0//wAOV/8AU2LSWb1n6XT/APw5X/1NiSn/0/Ucf+YZ/VCIh4/8wz+qERJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpZvWfpdP/8ADlf/AFNi0lm9Z+l0/wD8OV/9TYkp/9T1HH/mGf1QiIeP/MM/qhESUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKWb1n6XT//AA5X/wBTYtJZvWfpdP8A/Dlf/U2JKf/V9Rx/5hn9UIiDjPY6oNa4FzPa8A6g+DkZJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpZvWfpdP/APDlf/U2LSWV1q6oZPS8bcPWtyw9lc+4sqZbZdZt/wBHW36b/wCXX++kp//W3/rR6P7Qb6v7Hj0xH271ftP/ALK/4H9zesf9S/8Aof8A/ZteRpIqfXP1L/6H/wD2bS/Uv/of/wDZteRpIKfXP1L/AOh//wBm0v1L/wCh/wD9m15Gkkp9c/Uv/of/APZtL9S/+h//ANm15Gkkp9c/Uv8A6H//AGbS/Uv/AKH/AP2bXkaSSn1z9S/+h/8A9m0v1L/6H/8A2bXkaSSn1z9S/wDof/8AZtL9S/8Aof8A/ZteRpJKfXP1L/6H/wD2bS/Uv/of/wDZteRpJKfXP1L/AOh//wBm0v1L/wCh/wD9m15Gkkp9c/Uv/of/APZtbX1S9P7dk+l+x9vpCf2b6n2n6Q/pP2n9J9l/9GLwlJFT/9kAOEJJTQQhAAAAAABVAAAAAQEAAAAPAEEAZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwAAAAEwBBAGQAbwBiAGUAIABQAGgAbwB0AG8AcwBoAG8AcAAgAEMAUwAzAAAAAQA4QklNBAYAAAAAAAcACAAAAAEBAP/hB3dFeGlmAABNTQAqAAAACAAHARIAAwAAAAEAAQAAARoABQAAAAEAAABiARsABQAAAAEAAABqASgAAwAAAAEAAgAAATEAAgAAABwAAAByATIAAgAAABQAAACOh2kABAAAAAEAAACkAAAA0AAAAEgAAAABAAAASAAAAAFBZG9iZSBQaG90b3Nob3AgQ1MzIFdpbmRvd3MAMjAwOTowMzowMyAwOTo1OToyMgAAAAADoAEAAwAAAAEAAQAAoAIABAAAAAEAAAImoAMABAAAAAEAAAGKAAAAAAAAAAYBAwADAAAAAQAGAAABGgAFAAAAAQAAAR4BGwAFAAAAAQAAASYBKAADAAAAAQACAAACAQAEAAAAAQAAAS4CAgAEAAAAAQAABkEAAAAAAAAASAAAAAEAAABIAAAAAf/Y/+AAEEpGSUYAAQIAAEgASAAA/+0ADEFkb2JlX0NNAAH/7gAOQWRvYmUAZIAAAAAB/9sAhAAMCAgICQgMCQkMEQsKCxEVDwwMDxUYExMVExMYEQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQ0LCw0ODRAODhAUDg4OFBQODg4OFBEMDAwMDBERDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCABzAKADASIAAhEBAxEB/90ABAAK/8QBPwAAAQUBAQEBAQEAAAAAAAAAAwABAgQFBgcICQoLAQABBQEBAQEBAQAAAAAAAAABAAIDBAUGBwgJCgsQAAEEAQMCBAIFBwYIBQMMMwEAAhEDBCESMQVBUWETInGBMgYUkaGxQiMkFVLBYjM0coLRQwclklPw4fFjczUWorKDJkSTVGRFwqN0NhfSVeJl8rOEw9N14/NGJ5SkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2N0dXZ3eHl6e3x9fn9xEAAgIBAgQEAwQFBgcHBgU1AQACEQMhMRIEQVFhcSITBTKBkRShsUIjwVLR8DMkYuFygpJDUxVjczTxJQYWorKDByY1wtJEk1SjF2RFVTZ0ZeLys4TD03Xj80aUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9ic3R1dnd4eXp7fH/9oADAMBAAIRAxEAPwD02qhj6w98ku1EEgAdvowp/ZqfA/5zv/JJ8f8AmGf1QiJKRfZqfA/5zv8AySX2anwP+c7/AMkipJKRfZqfA/5zv/JJfZqfA/5zv/JIqSSkX2anwP8AnO/8kl9mp8D/AJzv/JIqSSkX2anwP+c7/wAkl9mp8D/nO/8AJIqSSkX2anwP+c7/AMkl9mp8D/nO/wDJIqSSkX2anwP+c7/ySX2anwP+c7/ySKkkpF9mp8D/AJzv/JJfZqfA/wCc7/ySKkkpF9mp8D/nO/8AJJfZqfA/5zv/ACSKkkpF9mp8D/nO/wDJKtmOrxTjgA/p7RTqSfpB7gfdP7ivLN6z9Lp//hyv/qbElP8A/9D1HH/mGf1QiIeP/MM/qhESUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKWb1n6XT//AA5X/wBTYtJZvWfpdP8A/Dlf/U2JKf/R9Rx/5hn9UIiHj/zDP6oRElKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSlm9Z+l0//wAOV/8AU2LSWb1n6XT/APw5X/1NiSn/0vUcf+YZ/VCIh4/8wz+qERJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpZvWfpdP/8ADlf/AFNi0lm9Z+l0/wD8OV/9TYkp/9P1HH/mGf1QiIeP/MM/qhESUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKWb1n6XT//AA5X/wBTYtJZvWfpdP8A/Dlf/U2JKf/U9Rx/5hn9UIiHj/zDP6oRElKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSlm9Z+l0//wAOV/8AU2LSWb1n6XT/APw5X/1NiSn/1fUcf+YZ/VCIg4z2OqDWuBcz2vAOoPg5GSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKWb1n6XT/wDw5X/1Ni0lldauqGT0vG3D1rcsPZXPuLKmW2XWbf8AR1t+m/8Al1/vpKf/1t/60ej+0G+r+x49MR9u9X7T/wCyv+B/c3rH/Uv/AKH/AP2bXkaSKn1z9S/+h/8A9m0v1L/6H/8A2bXkaSCn1z9S/wDof/8AZtL9S/8Aof8A/ZteRpJKfXP1L/6H/wD2bS/Uv/of/wDZteRpJKfXP1L/AOh//wBm0v1L/wCh/wD9m15Gkkp9c/Uv/of/APZtL9S/+h//ANm15Gkkp9c/Uv8A6H//AGbS/Uv/AKH/AP2bXkaSSn1z9S/+h/8A9m0v1L/6H/8A2bXkaSSn1z9S/wDof/8AZtL9S/8Aof8A/ZteRpJKfXP1L/6H/wD2bW19UvT+3ZPpfsfb6Qn9m+p9p+kP6T9p/SfZf/Ri8JSRU//Z/+IMWElDQ19QUk9GSUxFAAEBAAAMSExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQAAAAASUVDIHNSR0IAAAAAAAAAAAAAAAEAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAUYmtwdAAAAgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQAAABwZG1kZAAAAsQAAACIdnVlZAAAA0wAAACGdmlldwAAA9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAABAwAAAAkdGVjaAAABDAAAAAMclRSQwAABDwAAAgMZ1RSQwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5cmlnaHQgKGMpIDE5OTggSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAADzUQABAAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAAAABMCVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAAQ1JUIGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAARQBKAE8AVABZAF4AYwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcBDQETARkBHwElASsBMgE4AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHpAfIB+gIDAgwCFAIdAiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC4ALrAvUDAAMLAxYDIQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQtBDsESARVBGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWGBZYFpgW1BcUF1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysHPQdPB2EHdAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJEAklCToJTwlkCXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1ELaQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3eDfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJFEmQShBKjEsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYmFkkWbBaPFrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkgGUUZaxmRGbcZ3RoEGioaURp3Gp4axRrsGxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3DHeweFh5AHmoelB6+HukfEx8+H2kflB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwojOCNmI5QjwiPwJB8kTSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkGKTgpaymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYuTC6CLrcu7i8kL1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4M/E0KzRlNJ402DUTNU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76DwnPGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPARANER0SKRM5FEkVVRZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkviTCpMcky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1OqU/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0VblVvlXDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSUZOllPWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFqSGqfavdrT2una/9sV2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2+HdWd7N4EXhueMx5KnmJeed6RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZif6KZIrKizCLlov8jGOMyo0xjZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSKlPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg2KFHobaiJqKWowajdqPmpFakx6U4pammGqaLpv2nbqfgqFKoxKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6hrxavi7AAsHWw6rFgsdayS7LCszizrrQltJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796v/XAcMDswWfB48JfwtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf///+EPzmh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNC4xLWMwMzYgNDYuMjc2NzIwLCBNb24gRmViIDE5IDIwMDcgMjI6NDA6MDggICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6eGFwPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4YXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIiB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiBkYzpmb3JtYXQ9ImltYWdlL2pwZWciIHhhcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTMyBXaW5kb3dzIiB4YXA6Q3JlYXRlRGF0ZT0iMjAwOS0wMy0wM1QwOTo1OToyMi0wODowMCIgeGFwOk1vZGlmeURhdGU9IjIwMDktMDMtMDNUMDk6NTk6MjItMDg6MDAiIHhhcDpNZXRhZGF0YURhdGU9IjIwMDktMDMtMDNUMDk6NTk6MjItMDg6MDAiIHhhcE1NOkRvY3VtZW50SUQ9InV1aWQ6MENDMjlFMDYxRDA4REUxMTgwQzdGOTkxOUI0RDc5MUQiIHhhcE1NOkluc3RhbmNlSUQ9InV1aWQ6MERDMjlFMDYxRDA4REUxMTgwQzdGOTkxOUI0RDc5MUQiIHRpZmY6T3JpZW50YXRpb249IjEiIHRpZmY6WFJlc29sdXRpb249IjcyMDAwMC8xMDAwMCIgdGlmZjpZUmVzb2x1dGlvbj0iNzIwMDAwLzEwMDAwIiB0aWZmOlJlc29sdXRpb25Vbml0PSIyIiB0aWZmOk5hdGl2ZURpZ2VzdD0iMjU2LDI1NywyNTgsMjU5LDI2MiwyNzQsMjc3LDI4NCw1MzAsNTMxLDI4MiwyODMsMjk2LDMwMSwzMTgsMzE5LDUyOSw1MzIsMzA2LDI3MCwyNzEsMjcyLDMwNSwzMTUsMzM0MzI7NjBGMkU0MERGNDc5RDY0MUIzMUJGMjI0MUZFRDg1QUUiIGV4aWY6UGl4ZWxYRGltZW5zaW9uPSI1NTAiIGV4aWY6UGl4ZWxZRGltZW5zaW9uPSIzOTQiIGV4aWY6Q29sb3JTcGFjZT0iMSIgZXhpZjpOYXRpdmVEaWdlc3Q9IjM2ODY0LDQwOTYwLDQwOTYxLDM3MTIxLDM3MTIyLDQwOTYyLDQwOTYzLDM3NTEwLDQwOTY0LDM2ODY3LDM2ODY4LDMzNDM0LDMzNDM3LDM0ODUwLDM0ODUyLDM0ODU1LDM0ODU2LDM3Mzc3LDM3Mzc4LDM3Mzc5LDM3MzgwLDM3MzgxLDM3MzgyLDM3MzgzLDM3Mzg0LDM3Mzg1LDM3Mzg2LDM3Mzk2LDQxNDgzLDQxNDg0LDQxNDg2LDQxNDg3LDQxNDg4LDQxNDkyLDQxNDkzLDQxNDk1LDQxNzI4LDQxNzI5LDQxNzMwLDQxOTg1LDQxOTg2LDQxOTg3LDQxOTg4LDQxOTg5LDQxOTkwLDQxOTkxLDQxOTkyLDQxOTkzLDQxOTk0LDQxOTk1LDQxOTk2LDQyMDE2LDAsMiw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwyMCwyMiwyMywyNCwyNSwyNiwyNywyOCwzMDtEMUVBODhCRDlBMUNFNTJBQkZGRjg4OTYzQjgxQjU1MyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiBwaG90b3Nob3A6SGlzdG9yeT0iIj4gPHhhcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InV1aWQ6MDhBMERFMjgxNjA1REUxMTg0ODJGMEZFMUIxRDlEQUMiIHN0UmVmOmRvY3VtZW50SUQ9InV1aWQ6MDRBMERFMjgxNjA1REUxMTg0ODJGMEZFMUIxRDlEQUMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/Pv/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/AABEIACQAXwMBEQACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APsugAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9k="
+        return "/9j/4AAQSkZJRgABAQEASABIAAD/7QyKUGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAccAgAAAgAAADhCSU0EJQAAAAAAEOjxXPMvwRihontnrcVk1bo4QklNA+0AAAAAABAASAAAAAEAAQBIAAAAAQABOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNBA0AAAAAAAQAAAB4OEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNBAoAAAAAAAEAADhCSU0nEAAAAAAACgABAAAAAAAAAAI4QklNA/UAAAAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEAL2ZmAAEAoZmaAAYAAAAAAAEAMgAAAAEAWgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklNA/gAAAAAAHAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAOEJJTQQAAAAAAAACAAI4QklNBAIAAAAAAAYAAAAAAAA4QklNBDAAAAAAAAMBAQEAOEJJTQQtAAAAAAAGAAEAAAAGOEJJTQQIAAAAAAAQAAAAAQAAAkAAAAJAAAAAADhCSU0EHgAAAAAABAAAAAA4QklNBBoAAAAAA2cAAAAGAAAAAAAAAAAAAAGKAAACJgAAABkAVwBoAGkAdABlACAAQgBhAGMAawBnAHIAbwB1AG4AZAAgAFQAZQBtAHAAbABhAHQAZQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAACJgAAAYoAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAG51bGwAAAACAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAAYoAAAAAUmdodGxvbmcAAAImAAAABnNsaWNlc1ZsTHMAAAABT2JqYwAAAAEAAAAAAAVzbGljZQAAABIAAAAHc2xpY2VJRGxvbmcAAAAAAAAAB2dyb3VwSURsb25n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Osm5yjjKt8s2y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf///+EPzmh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNC4xLWMwMzYgNDYuMjc2NzIwLCBNb24gRmViIDE5IDIwMDcgMjI6NDA6MDggICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6eGFwPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4YXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIiB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiBkYzpmb3JtYXQ9ImltYWdlL2pwZWciIHhhcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTMyBXaW5kb3dzIiB4YXA6Q3JlYXRlRGF0ZT0iMjAwOS0wMy0wM1QwOTo1OToyMi0wODowMCIgeGFwOk1vZGlmeURhdGU9IjIwMDktMDMtMDNUMDk6NTk6MjItMDg6MDAiIHhhcDpNZXRhZGF0YURhdGU9IjIwMDktMDMtMDNUMDk6NTk6MjItMDg6MDAiIHhhcE1NOkRvY3VtZW50SUQ9InV1aWQ6MENDMjlFMDYxRDA4REUxMTgwQzdGOTkxOUI0RDc5MUQiIHhhcE1NOkluc3RhbmNlSUQ9InV1aWQ6MERDMjlFMDYxRDA4REUxMTgwQzdGOTkxOUI0RDc5MUQiIHRpZmY6T3JpZW50YXRpb249IjEiIHRpZmY6WFJlc29sdXRpb249IjcyMDAwMC8xMDAwMCIgdGlmZjpZUmVzb2x1dGlvbj0iNzIwMDAwLzEwMDAwIiB0aWZmOlJlc29sdXRpb25Vbml0PSIyIiB0aWZmOk5hdGl2ZURpZ2VzdD0iMjU2LDI1NywyNTgsMjU5LDI2MiwyNzQsMjc3LDI4NCw1MzAsNTMxLDI4MiwyODMsMjk2LDMwMSwzMTgsMzE5LDUyOSw1MzIsMzA2LDI3MCwyNzEsMjcyLDMwNSwzMTUsMzM0MzI7NjBGMkU0MERGNDc5RDY0MUIzMUJGMjI0MUZFRDg1QUUiIGV4aWY6UGl4ZWxYRGltZW5zaW9uPSI1NTAiIGV4aWY6UGl4ZWxZRGltZW5zaW9uPSIzOTQiIGV4aWY6Q29sb3JTcGFjZT0iMSIgZXhpZjpOYXRpdmVEaWdlc3Q9IjM2ODY0LDQwOTYwLDQwOTYxLDM3MTIxLDM3MTIyLDQwOTYyLDQwOTYzLDM3NTEwLDQwOTY0LDM2ODY3LDM2ODY4LDMzNDM0LDMzNDM3LDM0ODUwLDM0ODUyLDM0ODU1LDM0ODU2LDM3Mzc3LDM3Mzc4LDM3Mzc5LDM3MzgwLDM3MzgxLDM3MzgyLDM3MzgzLDM3Mzg0LDM3Mzg1LDM3Mzg2LDM3Mzk2LDQxNDgzLDQxNDg0LDQxNDg2LDQxNDg3LDQxNDg4LDQxNDkyLDQxNDkzLDQxNDk1LDQxNzI4LDQxNzI5LDQxNzMwLDQxOTg1LDQxOTg2LDQxOTg3LDQxOTg4LDQxOTg5LDQxOTkwLDQxOTkxLDQxOTkyLDQxOTkzLDQxOTk0LDQxOTk1LDQxOTk2LDQyMDE2LDAsMiw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwyMCwyMiwyMywyNCwyNSwyNiwyNywyOCwzMDtEMUVBODhCRDlBMUNFNTJBQkZGRjg4OTYzQjgxQjU1MyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiBwaG90b3Nob3A6SGlzdG9yeT0iIj4gPHhhcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InV1aWQ6MDhBMERFMjgxNjA1REUxMTg0ODJGMEZFMUIxRDlEQUMiIHN0UmVmOmRvY3VtZW50SUQ9InV1aWQ6MDRBMERFMjgxNjA1REUxMTg0ODJGMEZFMUIxRDlEQUMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/Pv/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/AABEIACQAXwMBEQACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APsugAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9k="
+    
+    def _authority_sign(self, line, indent):
+        image = "/9j/4AAQSkZJRgABAQEASABIAAD/7QyKUGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAccAgAAAgAAADhCSU0EJQAAAAAAEOjxXPMvwRihontnrcVk1bo4QklNA+0AAAAAABAASAAAAAEAAQBIAAAAAQABOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNBA0AAAAAAAQAAAB4OEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNBAoAAAAAAAEAADhCSU0nEAAAAAAACgABAAAAAAAAAAI4QklNA/UAAAAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEAL2ZmAAEAoZmaAAYAAAAAAAEAMgAAAAEAWgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklNA/gAAAAAAHAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAOEJJTQQAAAAAAAACAAI4QklNBAIAAAAAAAYAAAAAAAA4QklNBDAAAAAAAAMBAQEAOEJJTQQtAAAAAAAGAAEAAAAGOEJJTQQIAAAAAAAQAAAAAQAAAkAAAAJAAAAAADhCSU0EHgAAAAAABAAAAAA4QklNBBoAAAAAA2cAAAAGAAAAAAAAAAAAAAGKAAACJgAAABkAVwBoAGkAdABlACAAQgBhAGMAawBnAHIAbwB1AG4AZAAgAFQAZQBtAHAAbABhAHQAZQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAACJgAAAYoAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAG51bGwAAAACAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAAYoAAAAAUmdodGxvbmcAAAImAAAABnNsaWNlc1ZsTHMAAAABT2JqYwAAAAEAAAAAAAVzbGljZQAAABIAAAAHc2xpY2VJRGxvbmcAAAAAAAAAB2dyb3VwSURsb25n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Osm5yjjKt8s2y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf///+EPzmh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNC4xLWMwMzYgNDYuMjc2NzIwLCBNb24gRmViIDE5IDIwMDcgMjI6NDA6MDggICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6eGFwPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4YXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIiB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiBkYzpmb3JtYXQ9ImltYWdlL2pwZWciIHhhcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTMyBXaW5kb3dzIiB4YXA6Q3JlYXRlRGF0ZT0iMjAwOS0wMy0wM1QwOTo1OToyMi0wODowMCIgeGFwOk1vZGlmeURhdGU9IjIwMDktMDMtMDNUMDk6NTk6MjItMDg6MDAiIHhhcDpNZXRhZGF0YURhdGU9IjIwMDktMDMtMDNUMDk6NTk6MjItMDg6MDAiIHhhcE1NOkRvY3VtZW50SUQ9InV1aWQ6MENDMjlFMDYxRDA4REUxMTgwQzdGOTkxOUI0RDc5MUQiIHhhcE1NOkluc3RhbmNlSUQ9InV1aWQ6MERDMjlFMDYxRDA4REUxMTgwQzdGOTkxOUI0RDc5MUQiIHRpZmY6T3JpZW50YXRpb249IjEiIHRpZmY6WFJlc29sdXRpb249IjcyMDAwMC8xMDAwMCIgdGlmZjpZUmVzb2x1dGlvbj0iNzIwMDAwLzEwMDAwIiB0aWZmOlJlc29sdXRpb25Vbml0PSIyIiB0aWZmOk5hdGl2ZURpZ2VzdD0iMjU2LDI1NywyNTgsMjU5LDI2MiwyNzQsMjc3LDI4NCw1MzAsNTMxLDI4MiwyODMsMjk2LDMwMSwzMTgsMzE5LDUyOSw1MzIsMzA2LDI3MCwyNzEsMjcyLDMwNSwzMTUsMzM0MzI7NjBGMkU0MERGNDc5RDY0MUIzMUJGMjI0MUZFRDg1QUUiIGV4aWY6UGl4ZWxYRGltZW5zaW9uPSI1NTAiIGV4aWY6UGl4ZWxZRGltZW5zaW9uPSIzOTQiIGV4aWY6Q29sb3JTcGFjZT0iMSIgZXhpZjpOYXRpdmVEaWdlc3Q9IjM2ODY0LDQwOTYwLDQwOTYxLDM3MTIxLDM3MTIyLDQwOTYyLDQwOTYzLDM3NTEwLDQwOTY0LDM2ODY3LDM2ODY4LDMzNDM0LDMzNDM3LDM0ODUwLDM0ODUyLDM0ODU1LDM0ODU2LDM3Mzc3LDM3Mzc4LDM3Mzc5LDM3MzgwLDM3MzgxLDM3MzgyLDM3MzgzLDM3Mzg0LDM3Mzg1LDM3Mzg2LDM3Mzk2LDQxNDgzLDQxNDg0LDQxNDg2LDQxNDg3LDQxNDg4LDQxNDkyLDQxNDkzLDQxNDk1LDQxNzI4LDQxNzI5LDQxNzMwLDQxOTg1LDQxOTg2LDQxOTg3LDQxOTg4LDQxOTg5LDQxOTkwLDQxOTkxLDQxOTkyLDQxOTkzLDQxOTk0LDQxOTk1LDQxOTk2LDQyMDE2LDAsMiw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwyMCwyMiwyMywyNCwyNSwyNiwyNywyOCwzMDtEMUVBODhCRDlBMUNFNTJBQkZGRjg4OTYzQjgxQjU1MyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiBwaG90b3Nob3A6SGlzdG9yeT0iIj4gPHhhcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InV1aWQ6MDhBMERFMjgxNjA1REUxMTg0ODJGMEZFMUIxRDlEQUMiIHN0UmVmOmRvY3VtZW50SUQ9InV1aWQ6MDRBMERFMjgxNjA1REUxMTg0ODJGMEZFMUIxRDlEQUMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/Pv/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/AABEIACQAXwMBEQACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APsugAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9k="
+        if len(line) != 0 :
+            number = 0
+            authority_obj = self.pool.get('document.authority.instance')
+            for authority in line:
+                authority_id = authority_obj.search(self.cr, self.uid, [('name', '=', authority.name.name),('indent_id', '=', indent.id),('state', '=', 'approve')])
+                if authority_id:
+                    self.get_value.update({number: authority.name.sign or image})
+                    number+=1
+                else:
+                    self.get_value.update({number: image})
+                    number+=1
+        return ''
+    
+    def _type(self, order, retenstion_type):
+        text = 'cylinder_gate_passOR\'S RETENTION NOT TO BE LEIVED'
+        if str(retenstion_type) == 'leived':
+            text = 'cylinder_gate_passOR\'S RETENTION TO BE LEIVED'
+        return text
+    
+    def _get_value(self):
+        return self.get_value
+
+    def _get_total(self, id):
+        total =  0.0
+        for line in id.gate_pass_lines:
+            if line.product_id:
+                total += line.product_uom_qty
+            else:
+                total += 0.0
+        return total
+
+    def _project_code_name(self, project_id):
+        code = ''
+        if project_id:
+            code = (project_id.code or '') +'  '+ project_id.name or ''
+        return code
+
+report_sxw.report_sxw('report.cylinder_gate_pass.new','gate.pass','addons/gate_pass/report/cylinder_gate_pass.rml',parser=cylinder_gate_pass, header=False)
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+

=== added file 'gate_pass/report/cylinder_gate_pass.rml'
--- gate_pass/report/cylinder_gate_pass.rml	1970-01-01 00:00:00 +0000
+++ gate_pass/report/cylinder_gate_pass.rml	2013-06-14 04:50:36 +0000
@@ -0,0 +1,267 @@
+<?xml version="1.0"?>
+<document filename="contract.pdf">
+  <template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20">
+    <pageTemplate id="first">
+      <frame id="first" x1="23.0" y1="43.0" width="530" height="799"/>
+    </pageTemplate>
+  </template>
+  <stylesheet>
+    <blockTableStyle id="Standard_Outline">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table1">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table2">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Tableau1">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <blockTableStyle id="Tableau2">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table_Product_Header_Title">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="5,-1" stop="5,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="5,-1" stop="5,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table10">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table9">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table_Product_Line">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <initialize>
+      <paraStyle name="all" alignment="justify"/>
+    </initialize>
+    <paraStyle name="P1" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="Standard" fontName="Helvetica" fontSize="9.0" spaceBefore="0.0" spaceAfter="0.0" alignment="LEFT"/>
+    <paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="2.0" alignment="CENTER"/>
+    <paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="Table Contents" fontName="Helvetica"/>
+    <paraStyle name="Table Heading" fontName="Helvetica" fontSize="9.0" alignment="CENTER"/>
+    <paraStyle name="Caption" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
+    <paraStyle name="Index" fontName="Helvetica-Bold" fontSize="9.0" leading="10" spaceBefore="0.0" spaceAfter="0.0" alignment="CENTER"/>
+    <paraStyle name="Footer" fontName="Helvetica"/>
+    <paraStyle name="Horizontal Line" fontName="Helvetica" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="1.0"/>
+    <paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="9.0" leading="15" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="9.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="CENTER" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_default_address" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Bold_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="9.0" leading="3" alignment="RIGHT" spaceBefore="4.0" spaceAfter="4.0"/>
+    <paraStyle name="terp_default_Right_new" fontName="Helvetica" fontSize="9.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_default_2" fontName="Helvetica" fontSize="9.0" leading="3" alignment="LEFT" spaceBefore="4.0" spaceAfter="4.0"/>
+    <paraStyle name="terp_default_8_italic" rightIndent="0.0" leftIndent="20.0" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Centre" fontName="Helvetica" fontSize="9.0" leading="3" alignment="CENTER" spaceBefore="4.0" spaceAfter="4.0"/>
+    <paraStyle name="Space bet user and signature" fontName="Helvetica" fontSize="4.0" leading="5" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <images/>
+  </stylesheet>
+  <story>
+    <para style="terp_default_9">[[repeatIn(objects,'order')]]</para>
+    <para style="Index"> [[ order.company_id.name or removeParentNode('para')]] </para>
+    <para style="Index"> [[ order.company_id.street or removeParentNode('para')]] </para>
+    <para style="Index"> [[ order.company_id.street2 or '']] </para>
+    <para style="Index"> [[ order.company_id.city or '']] <font color="black"> - </font>[[ order.company_id.zip or '']]  </para>
+    <para style="P1"> <font color="white"> </font> </para>
+    <blockTable colWidths="80.0,220.0,110.0,120.0" style="Table1">
+    <tr>
+        <td>
+            <para style="terp_default_2">GATE PASS NO</para>
+            <para style="terp_default_2">
+              <font color="white"> </font>
+            </para>
+            <para style="terp_default_2"> [[ order.partner_id and order.partner_id.supp_code or '']] </para>
+        </td>
+        <td>
+            <para style="terp_default_2"> : [[ order.gate_pass_no or '']]</para>
+            <para style="terp_default_2">
+              <font color="white"> </font>
+            </para>
+            <para style="terp_default_2">[[ order.partner_id and order.partner_id.name]] </para>
+            <para style="terp_default_2"> [[ order.partner_id and display_address(order .partner_id) ]] </para>
+        </td>
+        <td>
+            <para style="terp_default_2">DATE</para>
+            <para style="Standard">
+              <font color="white"> </font>
+            </para>
+            <para style="terp_default_2">DRIVER NAME</para>
+            <para style="terp_default_2">TRUCK NO.</para>
+        </td>
+        <td>
+            <para style="terp_default_2"> : [[ order.date or ' ']]</para>
+        </td>
+    </tr>
+    </blockTable>
+    <para style="P1">TO,</para>
+    <para style="P1">GATE KEEPER</para>
+    <para style="terp_default_2">
+      <font color="white"> </font>
+    </para>
+    <para style="terp_default_Right_new"> PLEASE ALLOW THE BEARER TO TAKE OUT OF THE FOLLOWING GOODS</para>
+    <blockTable colWidths="30.0,180.0,150.0,170.0" repeatRows="1" style="Table_Product_Header_Title">
+      <tr>
+        <td>
+          <para style="terp_tblheader_General_Centre">Sr.No.</para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details_Centre">Item Code &amp; Description of Materital</para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details_Centre">Cylinder No</para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details_Centre">Quantity</para>
+        </td>
+      </tr>
+    </blockTable>
+    <section>
+      <para style="terp_default_9">[[ repeatIn(order.gate_pass_lines,'pass_line') ]]</para>
+      <blockTable colWidths="30.0,180.0,150.0,170.0" repeatRows="1" style="Table_Product_Line">
+      <tr>
+        <td>
+          <para style="terp_default_Centre_8">[[ sequence(pass_line) ]]</para>
+        </td>
+        <td>
+          <para style="terp_default_Centre_8">[[ pass_line.product_id and pass_line.product_id.default_code]] [[ pass_line.product_id and pass_line.product_id.name]]</para>
+        </td>
+        <td>
+          <para style="terp_default_Centre_8">[[ pass_line.number or '']]</para>
+        </td>
+        <td>
+          <para style="terp_default_Centre_8">[[ pass_line.product_uom_qty]] [[ (pass_line.product_id.uom_id and pass_line.product_id.uom_id.name) or '' ]]</para>
+        </td>
+      </tr>
+    </blockTable>
+    <blockTable colWidths="30.0,180.0,150.0,170.0" repeatRows="1" style="Table10">
+        <tr>
+            <td>
+            </td>
+            <td>
+                <para style="terp_default_Right_new">TOTAL</para>
+            </td>
+            <td>
+            </td>
+            <td>
+                <para style="terp_default_Centre_8">[[ total_amount(order)]] [[ (pass_line.product_id.uom_id and pass_line.product_id.uom_id.name) or '' ]]</para>
+            </td>
+        </tr>
+    </blockTable>
+    <blockTable colWidths="30.0,180.0,150.0,170.0" repeatRows="1" style="Table10">
+        <tr>
+            <td>
+            </td>
+            <td>
+                <para style="terp_default_Right_new">GRAND TOTAL</para>
+            </td>
+            <td>
+            </td>
+            <td>
+                <para style="terp_default_Centre_8">[[ total_amount(order)]] [[ (pass_line.product_id.uom_id and pass_line.product_id.uom_id.name) or '' ]]</para>
+            </td>
+        </tr>
+    </blockTable>
+    </section>
+    <para style="terp_default_Centre_8"> <font color="white"> </font> </para>
+    <para style="terp_default_Centre_8"> <font color="white"> </font> </para>
+    <para style="terp_default_Centre_8"> <font color="white"> </font> </para>
+    <blockTable colWidths="155.0,125.0,125.0,125.0" style="Table9">
+        <tr>
+            <td>
+                <para style="terp_default_9"> RECEIVER'S SIGNATURE </para>
+            </td>
+            <td>
+                <para style="terp_default_9"> PREPARED BY</para>
+            </td>
+            <td>
+                <para style="terp_default_9"> STORE KEEPER </para>
+            </td>
+            <td>
+                <para style="terp_default_9"> MANAGER </para>
+            </td>
+        </tr>
+    </blockTable>
+    <para style="terp_default_2"> <font color="white"> </font> </para>
+    <para style="P1">Dear Sir,</para>
+    <para style="terp_default_2">
+      <font color="white"> </font>
+    </para>
+    <para style="terp_default_Right_new"> Please confirm thate goods received are in order and in good condition</para>
+    <blockTable colWidths="80.0,220.0,110.0,120.0" style="Table1">
+        <tr>
+            <td>
+                <para style="P1">[[ (order .partner_id and order.partner_id.title and order.partner_id.title.name) or '' ]] </para>
+            </td>
+            <td>
+                <para style="P1">[[ (order .partner_id and order.partner_id.name) or '' ]] </para>
+                <para style="P1">[[ order.partner_id and display_address(order .partner_id) ]] </para>
+            </td>
+            <td>
+            </td>
+            <td>
+                <para style="terp_default_2">
+                  <font color="white"> </font>
+                </para>
+                <para style="terp_default_2"> -------------------
+                </para>
+                <para style="P1">Signature </para>
+            </td>
+        </tr>
+    </blockTable>
+  </story>
+</document>
\ No newline at end of file

=== added file 'gate_pass/report/inward_analysis.py'
--- gate_pass/report/inward_analysis.py	1970-01-01 00:00:00 +0000
+++ gate_pass/report/inward_analysis.py	2013-06-14 04:50:36 +0000
@@ -0,0 +1,263 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+#    OpenERP, Open Source Management Solution
+#    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+from openerp import tools
+from openerp.osv import fields,osv
+from openerp.addons.decimal_precision import decimal_precision as dp
+
+
+class report_stock_move(osv.osv):
+    _name = "report.stock.move"
+    _description = "Moves Statistics"
+    _auto = False
+    _columns = {
+        'date': fields.date('Date', readonly=True),
+        'year': fields.char('Year', size=4, readonly=True),
+        'day': fields.char('Day', size=128, readonly=True),
+        'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'),
+            ('05','May'), ('06','June'), ('07','July'), ('08','August'), ('09','September'),
+            ('10','October'), ('11','November'), ('12','December')], 'Month',readonly=True),
+        'partner_id':fields.many2one('res.partner', 'Partner', readonly=True),
+        'product_id':fields.many2one('product.product', 'Product', readonly=True),
+        'company_id':fields.many2one('res.company', 'Company', readonly=True),
+        'picking_id':fields.many2one('stock.picking', 'No', readonly=True),
+        'type': fields.selection([('out', 'Sending Goods'), ('in', 'Getting Goods'), ('receipt', 'Receipt'), ('internal', 'Internal'), ('other', 'Others')], 'Shipping Type', required=True, select=True, help="Shipping type specify, goods coming in or going out."),
+        'location_id': fields.many2one('stock.location', 'Source Location', readonly=True, select=True, help="Sets a location if you produce at a fixed location. This can be a partner location if you subcontract the manufacturing operations."),
+        'location_dest_id': fields.many2one('stock.location', 'Dest. Location', readonly=True, select=True, help="Location where the system will stock the finished products."),
+        'state': fields.selection([('draft', 'Draft'), ('waiting', 'Waiting'), ('confirmed', 'Confirmed'), ('assigned', 'Available'), ('done', 'Done'), ('cancel', 'Cancelled')], 'Status', readonly=True, select=True),
+        'product_qty':fields.integer('Quantity',readonly=True),
+        'categ_id': fields.many2one('product.category', 'Product Category', ),
+        'product_qty_in':fields.integer('In Qty',readonly=True),
+        'product_qty_out':fields.integer('Out Qty',readonly=True),
+        'value' : fields.float('Total Value', required=True),
+        'day_diff2':fields.float('Lag (Days)',readonly=True,  digits_compute=dp.get_precision('Shipping Delay'), group_operator="avg"),
+        'day_diff1':fields.float('Planned Lead Time (Days)',readonly=True, digits_compute=dp.get_precision('Shipping Delay'), group_operator="avg"),
+        'day_diff':fields.float('Execution Lead Time (Days)',readonly=True,  digits_compute=dp.get_precision('Shipping Delay'), group_operator="avg"),
+        'stock_journal': fields.many2one('stock.journal','Stock Journal', select=True),
+        'gate_pass_id': fields.many2one('gate.pass', 'Gate No'),
+        'gp_date': fields.date('Gate Date', help="Creation time, usually the time of the order."),
+        'case_code': fields.boolean("Cash Code"),
+        'challan_no': fields.char("Challan No",size=256),
+        'product_uom': fields.many2one('product.uom', 'UOM'),
+        'purchase_id': fields.many2one('purchase.order', 'Purchase Order No'),
+        'po_series_id': fields.char('Purchase Series'),
+        'indent_id': fields.many2one('indent.indent', 'Indent'),
+        'inward_year': fields.char('Inward Year', size=10, readonly=True),
+        'puchase_year': fields.char('Purchase Year', size=10, readonly=True),
+        'indent_year': fields.char('Indent Year', size=10, readonly=True),
+        'indentor_id': fields.many2one('res.users', 'Indentor Name'),
+        'tr_code': fields.integer('TR Code'),
+        'diff': fields.float('Diff.', digits_compute= dp.get_precision('Account'), help="Amount to be add or less"),
+        'lr_no': fields.char("LR No",size=64),
+        'lr_date': fields.date("LR Date"),
+        'excies': fields.float('Excies.', digits_compute= dp.get_precision('Account')),
+        'rate': fields.float('Rate', digits_compute= dp.get_precision('Account'), help="Rate for the product which is related to Purchase order"),
+        'department_id': fields.many2one('stock.location', 'Dept. Code'),
+        'bill_no': fields.integer('Bill No'),
+        'bill_date': fields.date('Bill Date'),
+        'cess': fields.float('Cess.', digits_compute= dp.get_precision('Account')),
+        'high_cess': fields.float('High cess.', digits_compute= dp.get_precision('Account')),
+        'import_duty': fields.float('Import Duty.', digits_compute= dp.get_precision('Account')),
+        'cenvat': fields.float('CenVAT.', digits_compute= dp.get_precision('Account')),
+        'half_cess': fields.float('50% Cess.', digits_compute= dp.get_precision('Account')),
+        'half_high_cess': fields.float('50% High cess.', digits_compute= dp.get_precision('Account')),
+        'half_import_duty': fields.float('50% Import Duty.', digits_compute= dp.get_precision('Account')),
+        'half_cenvat': fields.float('50% CenVAT.', digits_compute= dp.get_precision('Account')),
+        'payment_id': fields.char('Payment Terms',size=64),
+        'despatch_mode': fields.selection([('person','By Person'),
+                                           ('scooter','By Scooter'),
+                                           ('tanker','By Tanker'),
+                                           ('truck','By Truck'),
+                                           ('auto_rickshaw','By Auto Rickshaw'),
+                                           ('loading_rickshaw','By Loading Rickshaw'),
+                                           ('tempo','By Tempo'),
+                                           ('metador','By Metador'),
+                                           ('rickshaw_tempo','By Rickshaw Tempo'),
+                                           ('cart','By Cart'),
+                                           ('cycle','By Cycle'),
+                                           ('pedal_rickshaw','By Pedal Rickshaw'),
+                                           ('car','By Car'),
+                                           ('post_parcel','By Post Parcel'),
+                                           ('courier','By Courier'),
+                                           ('tractor','By Tractor'),
+                                           ('hand_cart','By Hand Cart'),
+                                           ('camel_cart','By Camel Cart'),
+                                           ('others','Others'),],"Despatch Mode"),
+        'ac_code_id': fields.many2one('ac.code', 'AC Code', help="AC Code"),
+        'tr_code_id': fields.many2one('tr.code', 'TR Code', help="TR Code"),
+        'cylinder': fields.char('Cylinder Number', size=50),
+    }
+
+    def init(self, cr):
+        tools.drop_view_if_exists(cr, 'report_stock_move')
+        cr.execute("""
+            CREATE OR REPLACE view report_stock_move AS (
+                SELECT
+                        min(sm_id) as id,
+                        date_trunc('day',al.dp) as date,
+                        al.curr_year as year,
+                        al.curr_month as month,
+                        al.curr_day as day,
+                        al.curr_day_diff as day_diff,
+                        al.curr_day_diff1 as day_diff1,
+                        al.curr_day_diff2 as day_diff2,
+                        al.location_id as location_id,
+                        al.picking_id as picking_id,
+                        al.company_id as company_id,
+                        al.location_dest_id as location_dest_id,
+                        al.product_qty,
+                        al.out_qty as product_qty_out,
+                        al.in_qty as product_qty_in,
+                        al.partner_id as partner_id,
+                        al.product_id as product_id,
+                        al.state as state ,
+                        al.product_uom as product_uom,
+                        al.categ_id as categ_id,
+                        coalesce(al.type, 'other') as type,
+                        al.stock_journal as stock_journal,
+                        al.gate_pass_id as gate_pass_id,
+                        al.gp_date as gp_date,
+                        al.challan_no as challan_no,
+                        al.case_code as case_code,
+                        al.purchase_id as purchase_id,
+                        al.po_series_id as po_series_id,
+                        al.indent_id as indent_id,
+                        al.inward_year as inward_year,
+                        al.puchase_year as puchase_year,
+                        al.indent_year as indent_year,
+                        al.indentor_id as indentor_id,
+                        al.tr_code as tr_code,
+                        al.diff as diff,
+                        al.lr_no as lr_no,
+                        al.lr_date as lr_date,
+                        al.excies as excies,
+                        al.rate as rate,
+                        al.department_id as department_id,
+                        al.bill_no as bill_no,
+                        al.bill_date as bill_date,
+                        al.cess as cess,
+                        al.high_cess as high_cess,
+                        al.import_duty as import_duty,
+                        al.cenvat as cenvat,
+                        al.half_cess as half_cess,
+                        al.half_high_cess as half_high_cess,
+                        al.half_import_duty as half_import_duty,
+                        al.half_cenvat as half_cenvat,
+                        al.payment_id as payment_id,
+                        al.despatch_mode as despatch_mode,
+                        al.tr_code_id as tr_code_id,
+                        al.ac_code_id as ac_code_id,
+                        al.cylinder as cylinder,
+                        sum(al.in_value - al.out_value) as value
+                    FROM (SELECT
+                        CASE WHEN sp.type in ('out') THEN
+                            sum(sm.product_qty * pu.factor / pu2.factor)
+                            ELSE 0.0
+                            END AS out_qty,
+                        CASE WHEN sp.type in ('in') THEN
+                            sum(sm.product_qty * pu.factor / pu2.factor)
+                            ELSE 0.0
+                            END AS in_qty,
+                        CASE WHEN sp.type in ('out') THEN
+                            sum(sm.product_qty * pu.factor / pu2.factor) * pt.standard_price
+                            ELSE 0.0
+                            END AS out_value,
+                        CASE WHEN sp.type in ('in') THEN
+                            sum(sm.product_qty * pu.factor / pu2.factor) * pt.standard_price
+                            ELSE 0.0
+                            END AS in_value,
+                        min(sm.id) as sm_id,
+                        sm.date as dp,
+                        to_char(date_trunc('day',sm.date), 'YYYY') as curr_year,
+                        to_char(date_trunc('day',sm.date), 'MM') as curr_month,
+                        to_char(date_trunc('day',sm.date), 'YYYY-MM-DD') as curr_day,
+                        avg(date(sm.date)-date(sm.create_date)) as curr_day_diff,
+                        avg(date(sm.date_expected)-date(sm.create_date)) as curr_day_diff1,
+                        avg(date(sm.date)-date(sm.date_expected)) as curr_day_diff2,
+                        sm.location_id as location_id,
+                        sm.location_dest_id as location_dest_id,
+                        sum(sm.product_qty) as product_qty,
+                        pt.categ_id as categ_id ,
+                        sm.supplier_id as partner_id,
+                        sm.product_id as product_id,
+                        sm.picking_id as picking_id,
+                        ps.name as po_series_id,
+                        sm.indent_id as indent_id,
+                        sm.inward_year as inward_year,
+                        sm.puchase_year as puchase_year,
+                        sm.indent_year as indent_year,
+                        sm.indentor_id as indentor_id,
+                        sm.diff as diff,
+                        sm.excies as excies,
+                        sm.rate as rate,
+                        sm.bill_no as bill_no,
+                        sm.bill_date as bill_date,
+                        sm.cess as cess,
+                        sm.high_cess as high_cess,
+                        sm.import_duty as import_duty,
+                        sm.cenvat as cenvat,
+                        (sm.cess / 2 ) as half_cess,
+                        (sm.high_cess / 2 ) as half_high_cess,
+                        (sm.import_duty / 2 ) as half_import_duty,
+                        (sm.cenvat / 2 ) as half_cenvat,
+                        sm.payment_id as payment_id,
+                            sm.company_id as company_id,
+                            sm.state as state,
+                            sm.product_uom as product_uom,
+                            sp.type as type,
+                            sp.stock_journal_id AS stock_journal,
+                            sp.gate_pass_id as gate_pass_id,
+                            sp.gp_date as gp_date,
+                            sp.challan_no as challan_no,
+                            sp.case_code as case_code,
+                            sp.purchase_id as purchase_id,
+                            sp.tr_code as tr_code,
+                            sp.lr_no as lr_no,
+                            sp.lr_date as lr_date,
+                            sp.department_id as department_id,
+                            sp.despatch_mode as despatch_mode,
+                            sp.tr_code_id as tr_code_id,
+                            sp.ac_code_id as ac_code_id,
+                            sp.cylinder as cylinder,
+                            to_char(date_trunc('day',sm.date), 'YYYY-MM-DD') as date
+                    FROM
+                        stock_move sm
+                        LEFT JOIN stock_picking sp ON (sm.picking_id=sp.id)
+                        LEFT JOIN product_product pp ON (sm.product_id=pp.id)
+                        LEFT JOIN product_uom pu ON (sm.product_uom=pu.id)
+                        LEFT JOIN product_uom pu2 ON (sm.product_uom=pu2.id)
+                        LEFT JOIN product_template pt ON (pp.product_tmpl_id=pt.id)
+                        LEFT JOIN purchase_order po on (sp.purchase_id=po.id)
+                        LEFT JOIN product_order_series ps on (po.po_series_id = ps.id)
+                    GROUP BY
+                        sm.id,sp.type, sm.date,sm.supplier_id,
+                        sm.product_id,sm.state,sm.product_uom,sm.date_expected,
+                        sm.product_id,pt.standard_price, sm.picking_id, sm.product_qty,
+                        sm.company_id,sm.product_qty, sm.location_id,sm.location_dest_id,pu.factor,pt.categ_id, sp.stock_journal_id,sp.gate_pass_id,sp.gp_date,sp.challan_no, sp.case_code,sp.purchase_id,sp.tr_code,sp.lr_no,sp.lr_date,sp.department_id,ps.name,sm.indent_id,sm.inward_year,sm.puchase_year,sm.indent_year,sm.indentor_id,sm.diff,sm.excies,sm.rate,sm.bill_no,sm.bill_date,sm.cess,sm.high_cess,sm.import_duty,sm.cenvat,sm.payment_id,sp.despatch_mode,sp.tr_code_id,sp.ac_code_id,sp.cylinder)
+                    AS al
+                    GROUP BY
+                        al.out_qty,al.in_qty,al.curr_year,al.curr_month,
+                        al.curr_day,al.curr_day_diff,al.curr_day_diff1,al.curr_day_diff2,al.dp,al.location_id,al.location_dest_id,
+                        al.partner_id,al.product_id,al.state,al.product_uom,
+                        al.picking_id,al.company_id,al.type,al.product_qty, al.categ_id, al.stock_journal,al.gate_pass_id,al.gp_date,al.challan_no,al.case_code,al.purchase_id,al.po_series_id,al.indent_id,al.inward_year,al.puchase_year,al.indent_year,al.indentor_id,al.tr_code,al.diff,al.lr_no,al.lr_date,al.excies,al.rate,al.department_id,al.bill_no,al.bill_date,al.cess,al.high_cess,al.import_duty,al.cenvat,al.half_cess,al.half_high_cess,al.half_import_duty,al.half_cenvat,al.payment_id,al.despatch_mode,al.tr_code_id,al.ac_code_id,al.cylinder)
+        """)
+
+report_stock_move()

=== added file 'gate_pass/report/inward_analysis_view.xml'
--- gate_pass/report/inward_analysis_view.xml	1970-01-01 00:00:00 +0000
+++ gate_pass/report/inward_analysis_view.xml	2013-06-14 04:50:36 +0000
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+<data>
+
+    <record id="stock.view_stock_tree" model="ir.ui.view">
+        <field name="name">report.stock.move.tree</field>
+        <field name="model">report.stock.move</field>
+        <field name="arch" type="xml">
+            <tree string="Moves Analysis" create="false">
+                <field name="date" invisible="1"/>
+                <field name="year" invisible="1" />
+                <field name="month" invisible="1"/>
+                <field name="day" invisible="1"/>
+                <field name="type" invisible="1"/>
+                <field name="company_id" invisible="1"/>
+                <field name="picking_id" invisible="context.get('issue_new',False)"/>
+                <field name="date"/>
+                <field name="partner_id" invisible="context.get('issue_new',False)"/>
+                <field name="location_id" invisible="1"/>
+                <field name="location_dest_id" invisible="1"/>
+                <field name="product_id" invisible="context.get('product_id_view',False)"/>
+                <field name="lr_no" invisible="context.get('lr_no',True)"/>
+                <field name="lr_date" invisible="context.get('lr_no',True)"/>
+                <field name="categ_id" invisible="context.get('categ_id',True)"/>
+                <field name="stock_journal" invisible="1"/>
+                <field name="state" invisible="1"/>
+                <field name="id" string="No" invisible="1"/>
+                <field name="inward_year" invisible="1"/>
+                <field name="gate_pass_id" invisible="context.get('gate_pass_id',True)"/>
+                <field name="gp_date" invisible="context.get('gate_pass_id',True)"/>
+                <field name="challan_no" invisible="context.get('challan_no',True)"/>
+                <field name="case_code" invisible="context.get('case_code',True)"/>
+                <field name="product_qty" string="Challan" sum="Total Challan " invisible="1"/>
+                <field name="product_qty" string="Received" sum="Total Received" invisible="context.get('receipt_view',True)"/>
+                <field name="bill_no" invisible="context.get('bill_no',True)"/>
+                <field name="bill_date" invisible="context.get('bill_no',True)"/>
+                <field name="diff" invisible="context.get('diff_view',True)"/>
+                <field name="indent_year" invisible="context.get('indent',True)"/>
+                <field name="puchase_year" invisible="context.get('tax',True)"/>
+                <field name="product_qty_in" sum="Total incoming quantity" invisible="context.get('inward_view',True)"/>
+                <field name="product_qty_out" sum="Total outgoing quantity" invisible="1"/>
+                <field name="product_uom" invisible="context.get('product_uom_view',False)"/>
+                <field name="rate"/>
+                <field name="value" sum="Total value"/>
+                <field name="excies" invisible="context.get('receipt_view',True)"/>
+                <field name="tr_code" invisible="1"/>
+                <field name="department_id" invisible="context.get('issue_view',True)"/>
+                <field name="cess" invisible="context.get('receipt_view',True)"/>
+                <field name="high_cess" invisible="context.get('receipt_view',True)"/>
+                <field name="import_duty" invisible="context.get('tax',True)"/>
+                <field name="cenvat" invisible="context.get('tax',True)"/>
+                <field name="half_cess" invisible="context.get('tax',True)"/>
+                <field name="half_high_cess" invisible="context.get('tax',True)"/>
+                <field name="half_import_duty" invisible="context.get('tax',True)"/>
+                <field name="half_cenvat" invisible="context.get('tax',True)"/>
+                <field name="despatch_mode" invisible="1"/>
+                <field name="cylinder" invisible="context.get('cylinder_view',True)"/>
+                <field name="tr_code_id" invisible="context.get('tr_code_view',True)"/>
+                <field name="ac_code_id" invisible="context.get('ac_code_view',True)"/>
+                <field name="payment_id" invisible="context.get('po',True)"/>
+                <field name="indentor_id" invisible="1"/>
+                <field name="indent_id" invisible="context.get('indent_id_view',False)"/>
+                <field name="purchase_id" invisible="context.get('issue_new',False)"/>
+                <field name="po_series_id" invisible="context.get('issue_new',False)"/>
+                <field name="day_diff1" invisible="context.get('indent',True)"/>
+                <field name="day_diff" invisible="context.get('indent',True)"/>
+                <field name="day_diff2" string="Delay(Days)" invisible="context.get('indent',True)"/>
+           </tree>
+        </field>
+    </record>
+    <record id="stock.view_stock_graph" model="ir.ui.view">
+         <field name="name">report.stock.move.graph</field>
+         <field name="model">report.stock.move</field>
+         <field name="arch" type="xml">
+             <graph string="Moves Analysis" type="bar">
+                 <field name="product_id"/>
+                 <field name="product_qty" operator="+"/>
+             </graph>
+         </field>
+    </record>
+
+    <record id="stock.view_stock_search" model="ir.ui.view">
+        <field name="name">report.stock.move.search</field>
+        <field name="model">report.stock.move</field>
+        <field name="arch" type="xml">
+            <search string="Moves Analysis">
+                <filter string="Done" name="done" icon="terp-dialog-close" domain="[('state','=','done')]" help = "Completed Stock-Moves"/>
+                <filter string="Todo" icon="terp-gtk-go-back-rtl" domain="[('state','in',('assigned','waiting','confirmed'))]" help = "Future Stock-Moves"/>
+                <separator/>
+                <filter icon="terp-go-home" name="in" string="Inward" domain="[('type','=','in')]" context="{'inward_view': False}"/>
+                <filter icon="terp-go-home" name="internal" string="Issue" domain="[('type','=','internal')]" context="{'issue_view':False,'issue_new':True}"/>
+                <filter icon="terp-go-home" name="out" string="Outgoing" domain="[('type','=','out')]"/>
+                <filter icon="terp-go-home" name="receipt" string="Receipt" domain="[('type','=','receipt')]" context="{'receipt_view': False}"/>
+                <filter icon="terp-go-home" name="Cash Code" string="Cash Only" domain="[('case_code','=', True)]"/>
+                <field name="product_id" default_focus="1"/>
+                <field name="partner_id" context="{'contact_display':'partner'}"/>
+                <group expand="0" string="Extended Filters...">
+                    <field name="location_id" />
+                    <field name="location_dest_id" />
+                    <field name="categ_id"/>
+                    <field name="stock_journal"/>
+                    <field name="company_id" groups="base.group_multi_company"/>
+                    <field name="date"/>
+                </group>
+                <group string="Display">
+                    <filter name="group_categ_id" string="Product Category" icon="terp-stock_symbol-selection" context="{'categ_id': False}"/>
+                    <filter name="group_lr_no" string="LR " icon="terp-stock_symbol-selection" context="{'lr_no': False}"/>
+                    <filter name="group_gate_pass_id" string="Gate Pass" icon="terp-stock_symbol-selection" context="{'gate_pass_id': False}"/>
+                    <filter name="group_bill_no" string="Bill" icon="terp-stock_symbol-selection" context="{'bill_no': False}"/>
+                    <filter name="group_tax" string="Tax(Excies,Cess etc.)" icon="terp-stock_symbol-selection" context="{'tax': False}"/>
+                    <filter name="group_purchase" string="Purchase" icon="terp-stock_symbol-selection" context="{'po': False}"/>
+                    <filter name="group_indent" string="Indent" icon="terp-stock_symbol-selection" context="{'indent': False}"/>
+                    <filter name="group_lead_time" string="Lead Time" icon="terp-stock_symbol-selection" context="{'lead': False}"/>
+                    <filter name="group_case_code" string="Cash Only" icon="terp-stock_symbol-selection" context="{'case_code': False}"/>
+                    <filter name="group_challan_no" string="Challan No" icon="terp-stock_symbol-selection" context="{'challan_no': False}"/>
+                    <filter name="group_tr_code" string="TR Code" icon="terp-stock_symbol-selection" context="{'tr_code_view': False}"/>
+                    <filter name="group_ac_code" string="Ac Code" icon="terp-stock_symbol-selection" context="{'ac_code_view': False}"/>
+                    <filter name="group_cylinder" string="Cylinder" icon="terp-stock_symbol-selection" context="{'cylinder_view': False}"/>
+                    <filter name="group_diff" string="Diff" icon="terp-stock_symbol-selection" context="{'diff_view': False}"/>
+                </group>
+                <group expand="1" string="Group By...">
+                    <filter name="group_partner" string="Supplier" icon="terp-partner" context="{'group_by':'partner_id','partner_id_view':True}"/>
+                    <filter name="group_categ_id" string="Product Category" icon="terp-stock_symbol-selection" context="{'group_by':'categ_id'}"/>
+                    <filter name="group_product" string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id','product_id_view': True}"/>
+                    <filter name="group_picking" string="No" icon="terp-accessories-archiver" context="{'group_by':'picking_id','issue_new':True}"/>
+                    <filter string="Source Location" name="src_location" icon="terp-gtk-jump-to-rtl" context="{'group_by':'location_id','location_id_view':True}"/>
+                    <filter string="Dest. Location" name="dest_location" icon="terp-gtk-jump-to-ltr"  context="{'group_by':'location_dest_id','location_dest_id_view':True}"/>
+                    <filter string="Type" name="group_type" icon="terp-stock_symbol-selection" context="{'group_by':'type'}" help="Shipping type specify, goods coming in or going out"/>
+                    <filter string="Status" name="group_state" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
+                    <filter string="Stock journal" name="group_stock_journal" icon="terp-folder-orange" context="{'group_by':'stock_journal','stock_journal_view':True}"/>
+                    <filter string="Gate Pass" name="group_gate_pass" icon="terp-folder-orange" context="{'group_by':'gate_pass_id'}"/>
+                    <filter string="Product UOM" name="group_uom" icon="terp-folder-orange" context="{'group_by':'product_uom','product_uom_view': True}"/>
+                    <filter string="Purchase Order" name="group_oreder" icon="terp-folder-orange" context="{'group_by':'purchase_id','purchase_id_view':True}"/>
+                    <filter string="Purchase Series" name="group_series" icon="terp-folder-orange" context="{'group_by':'po_series_id','po_series_id_view':True}"/>
+                    <filter string="Department" name="group_department" icon="terp-folder-orange" context="{'group_by':'department_id','department_id_view':True}"/>
+                    <filter string="Payment Term" name="group_payment" icon="terp-folder-orange" context="{'group_by':'payment_id'}"/>
+                    <filter string="Despatch Mode" name="group_despatch_mode" icon="terp-folder-orange" context="{'group_by':'despatch_mode'}"/>
+                    <filter string="TR Code" name="group_tr_code" icon="terp-folder-orange" context="{'group_by':'tr_code_id','tr_code_id_view':True}"/>
+                    <filter string="AC Code" name="group_ac_code" icon="terp-folder-orange" context="{'group_by':'ac_code_id','ac_code_id_view':True}"/>
+                    <filter string="Indent" name="group_indent" icon="terp-folder-orange" context="{'group_by':'indent_id','indent_id_view':True}"/>
+                    <filter string="Indentor" name="group_indentor" icon="terp-folder-orange" context="{'group_by':'indentor_id','indentor_id_view':True}"/>
+                    <filter string="Company" name="group_state" icon="terp-go-home" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
+                    <filter string="Day" icon="terp-go-today" context="{'group_by':'day'}" help="Day Planned"/>
+                    <filter string="Month" icon="terp-go-month" context="{'group_by':'date'}" help="Month Planned"/>
+                    <filter string="Year" icon="terp-go-year" context="{'group_by':'year'}"  help="Year Planned"/>
+                </group>
+            </search>
+        </field>
+    </record>
+
+    <record id="stock.action_stock_move_report" model="ir.actions.act_window">
+        <field name="name">Moves Analysis</field>
+        <field name="res_model">report.stock.move</field>
+        <field name="view_type">form</field>
+        <field name="view_mode">tree,graph</field>
+        <field name="search_view_id"  ref="stock.view_stock_search"/>
+        <field name="context">{'contact_display': 'partner','search_default_done':1,'search_default_year':1, 'search_default_month':1, 'search_default_group_type':1, 'group_by': [], 'group_by_no_leaf':0,}</field>
+        <field name="help">Moves Analysis allows you to easily check and analyse your company stock moves. Use this report when you want to analyse the different routes taken by your products and inventory management performance.</field>
+    </record>
+    <menuitem action="stock.action_stock_move_report" id="stock.menu_action_stock_move_report" parent="stock.next_id_61" sequence="3"/>
+    
+</data>
+</openerp>

=== added directory 'gate_pass/security'
=== added file 'gate_pass/security/ir.model.access.csv'
--- gate_pass/security/ir.model.access.csv	1970-01-01 00:00:00 +0000
+++ gate_pass/security/ir.model.access.csv	2013-06-14 04:50:36 +0000
@@ -0,0 +1,4 @@
+"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
+
+"access_gate_pass","gate.pass","model_gate_pass","stock.group_stock_user",1,1,1,1
+"access_gate_pass_lines","gate.pass.lines","model_gate_pass_lines","stock.group_stock_user",1,1,1,1

=== modified file 'indent/__init__.py'
--- indent/__init__.py	2013-02-11 07:04:08 +0000
+++ indent/__init__.py	2013-06-14 04:50:36 +0000
@@ -21,5 +21,6 @@
 
 import indent
 import report
+import wizard
 
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

=== modified file 'indent/__openerp__.py'
--- indent/__openerp__.py	2013-04-09 10:58:58 +0000
+++ indent/__openerp__.py	2013-06-14 04:50:36 +0000
@@ -28,8 +28,9 @@
     'website' : 'http://www.openerp.com',
     'summary' : 'Managing Indent',
     'description' : """
-The user will raise an indent form to the stores, The store keeper checks for the availability, if available issue the material else raise purchase requisition.
-================================================================================================================================================================ 
+Managing internal material request
+================================================================================================================================================================
+The user will raise an indent form to the stores, The store keeper checks for the availability, if available issue the material else raise purchase requisition. 
 """,
     'depends' : ['purchase_requisition', 'hr'],
     'data' : [
@@ -37,8 +38,8 @@
         'indent_data.xml',
         'indent_workflow.xml',
         'stock_workflow.xml',
-        'indent_sequence.xml',
         'purchase_report.xml',
+        'wizard/import_indent_data.xml',
     ],
     'update_xml' : ['security/ir.model.access.csv', 'security/indent_security.xml'],
 

=== modified file 'indent/indent.py'
--- indent/indent.py	2013-04-11 06:58:51 +0000
+++ indent/indent.py	2013-06-14 04:50:36 +0000
@@ -21,6 +21,8 @@
 
 import time
 import datetime
+from datetime import timedelta
+from dateutil.relativedelta import relativedelta
 from openerp.osv import fields, osv
 import openerp.addons.decimal_precision as dp
 from openerp.tools.translate import _
@@ -29,11 +31,28 @@
 from openerp import netsvc
 from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT
 
+SERIES = [
+    ('repair', 'Repair'),
+    ('purchase', 'Purchase'),
+    ('store', 'Store')
+]
+
+class ir_attachment(osv.Model):
+    _inherit = 'ir.attachment'
+
+    def create(self, cr, uid, values, context=None):
+        res_id = super(ir_attachment, self).create(cr, uid, values, context)
+        if values.get('res_model') == 'indent.indent' and values.get('res_id'):
+            self.pool.get('indent.indent').write(cr, uid, values['res_id'], {'attachment_id': res_id},context)
+        return res_id
+
+ir_attachment()
+
 class indent_indent(osv.Model):
     _name = 'indent.indent'
     _description = 'Indent'
     _inherit = ['mail.thread', 'ir.needaction_mixin']
-    _order = "name desc"
+    _order = "id desc"
     _track = {
         'state': {
             'indent.mt_indent_waiting_approval': lambda self, cr, uid, obj, ctx=None: obj['state'] == 'waiting_approval',
@@ -43,35 +62,6 @@
         },
     }
 
-    def _check_po_done(self, cr, uid, ids, field_name, arg=False, context=None):
-        res = {}
-        requisition_obj = self.pool.get('purchase.requisition')
-        for record in ids:
-            res[record] = False
-            req_ids = requisition_obj.search(cr, uid, [('indent_id', '=', record)])
-            if req_ids:
-                for req_id in requisition_obj.browse(cr, uid, req_ids):
-                    po_done = False
-                    if req_id.state == 'done':
-                        po_done = True
-                res[record] = po_done
-            else:
-                res[record] = False
-        return res
-    
-    def _check_shipment_done(self, cr, uid, ids, field_name, arg=False, context=None):
-        res = {}
-        purchase_obj = self.pool.get('purchase.order')
-        shipped =False
-        for record in ids:
-            po_ids = purchase_obj.search(cr, uid, [('indent_id', '=', record), ('state', '=', 'approved')])
-            for po_data in purchase_obj.read(cr, uid,po_ids,['shipped']):
-                shipped = False
-                if po_data['shipped']:
-                    shipped = True
-            res[record] = shipped
-        return res
-
     def _total_amount(self, cr, uid, ids, name, args, context=None):
         result = {}
         for indent in self.browse(cr, uid, ids, context=context):
@@ -82,28 +72,28 @@
         return result
 
     _columns = {
-        'name': fields.char('Indent #', size=256, readonly=True, track_visibility='always',),
+        'name': fields.char('Indent #', size=256, readonly=True, track_visibility='always'),
         'indent_date': fields.datetime('Date', required=True, readonly=True, states={'draft': [('readonly', False)]}),
         'required_date': fields.datetime('Required Date', required=True, readonly=True, states={'draft': [('readonly', False)]}),
+        'attachment_id': fields.many2one('ir.attachment', 'Attachment'),
+        'print_report': fields.related('attachment_id', 'datas', type='binary', string='Indent Report'),
         'indentor_id': fields.many2one('res.users', 'Indentor', required=True, readonly=True, track_visibility='always', states={'draft': [('readonly', False)]}),
         'employee_id': fields.many2one('hr.employee', 'Employee'),
         'employee_department_id': fields.related('employee_id', 'department_id',readonly=True, type='many2one', relation='hr.department', string='Employee Department', store=True, states={'draft': [('readonly', False)]}),
-        'department_id': fields.many2one('stock.location', 'Department', required=True,readonly=True, track_visibility='onchange', states={'draft': [('readonly', False)]}),
+        'department_id': fields.many2one('stock.location', 'Department', required=True, readonly=True, track_visibility='onchange', states={'draft': [('readonly', False)]}),
         'analytic_account_id': fields.many2one('account.analytic.account', 'Project', ondelete="cascade",readonly=True, track_visibility='onchange', states={'draft': [('readonly', False)]}),
-        'requirement': fields.selection([('ordinary','Ordinary'), ('urgent','Urgent')],'Requirement', readonly=True, required=True, track_visibility='onchange', states={'draft': [('readonly', False)]}),
-        'type': fields.selection([('new','New'), ('existing','Existing')],'Type', required=True, track_visibility='onchange',readonly=True, states={'draft': [('readonly', False)]}),
-        'product_lines': fields.one2many('indent.product.lines', 'indent_id', 'Products',readonly=True, states={'draft': [('readonly', False)],'inprogress': [('readonly', False)],'waiting_approval': [('readonly', False)]}),
-        'picking_id': fields.many2one('stock.picking','Picking', states={'draft': [('readonly', False)]}),
-        'description': fields.text('Item Description', readonly=True,states={'draft': [('readonly', False)]}),
-        'company_id': fields.many2one('res.company', 'Company', readonly=True,states={'draft': [('readonly', False)]}),
+        'requirement': fields.selection([('ordinary', 'Ordinary'), ('urgent', 'Urgent')], 'Requirement', readonly=True, required=True, track_visibility='onchange', states={'draft': [('readonly', False)]}),
+        'type': fields.selection([('new', 'Store'), ('existing', 'Repairing')], 'Type', required=True, track_visibility='onchange', readonly=True, states={'draft': [('readonly', False)]}),
+        'product_lines': fields.one2many('indent.product.lines', 'indent_id', 'Products', readonly=True, states={'draft': [('readonly', False)], 'waiting_approval': [('readonly', False)]}),
+        'picking_id': fields.many2one('stock.picking','Picking'),
+        'description': fields.text('Item Description', readonly=True, states={'draft': [('readonly', False)]}),
+        'company_id': fields.many2one('res.company', 'Company', readonly=True, states={'draft': [('readonly', False)]}),
         'indent_authority_ids': fields.one2many('document.authority.instance', 'indent_id', 'Authority', readonly=True, states={'draft': [('readonly', False)]}),
-        'requisition_done': fields.function(_check_po_done, type='boolean', string="Check Requisition Done"),
-        'shipment_done': fields.function(_check_shipment_done, type="boolean", string="Shipment Done"),
-        'purchase_count': fields.boolean('Puchase Done', help="Check box True means the Purchase Order is done for this Indent"),
         'active': fields.boolean('Active'),
-        'item_for': fields.selection([('store','Store'),('capital','Capital')],'Item For'),
+        'item_for': fields.selection([('store', 'Store'), ('capital', 'Capital')], 'Item For', readonly=True, states={'draft': [('readonly', False)]}),
         'amount_total': fields.function(_total_amount, type="float", string='Total', store=True),
-        'state':fields.selection([('draft','Draft'), ('confirm','Confirm'), ('waiting_approval','Waiting For Approval'), ('inprogress','Inprogress'), ('received','Received'), ('reject','Rejected')], 'State', readonly=True, track_visibility='onchange'),
+        'maize': fields.char('Maize', size=256, readonly=True),
+        'state':fields.selection([('draft', 'Draft'), ('confirm', 'Confirm'), ('waiting_approval', 'Waiting For Approval'), ('inprogress', 'Inprogress'), ('received', 'Received'), ('reject', 'Rejected')], 'State', readonly=True, track_visibility='onchange'),
     }
 
     def _default_employee_id(self, cr, uid, context=None):
@@ -116,39 +106,59 @@
         stock_location = self.pool.get('ir.model.data').get_object(cr, uid, 'stock', 'stock_location_stock')
         return stock_location.id
 
+    def _get_required_date(self, cr, uid, context=None):
+        return datetime.datetime.strftime(datetime.datetime.today() + timedelta(days=7), DEFAULT_SERVER_DATETIME_FORMAT)
+
     _defaults = {
         'state': 'draft',
-        'name': lambda obj, cr, uid, context:obj.pool.get('ir.sequence').get(cr, uid, 'indent.indent'),
         'indent_date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
-        'required_date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
+        'required_date': _get_required_date,
         'indentor_id': lambda self, cr, uid, context: uid,
         'employee_id': _default_employee_id,
-        'department_id': _default_stock_location,
         'requirement': 'ordinary',
         'type': 'new',
         'company_id': lambda self, cr, uid, c: self.pool.get('res.company')._company_default_get(cr, uid, 'indent.indent', context=c),
-        'purchase_count': False,
         'active': True,
     }
 
+    def create(self, cr, uid, vals, context=None):
+        if vals.get('department_id'):
+            location = self.pool.get('stock.location').browse(cr, uid, vals.get('department_id'), context=context).location_id
+            if location and location.seq_id:
+                seq = location.seq_id.code
+                vals['name'] = self.pool.get('ir.sequence').get(cr, uid, seq)
+        return super(indent_indent, self).create(cr, uid, vals, context=context)
+
+    def write(self, cr, uid, ids, vals, context=None):
+        if vals.get('department_id'):
+            location = self.pool.get('stock.location').browse(cr, uid, vals.get('department_id'), context=context).location_id
+            if location and location.seq_id:
+                seq = location.seq_id.code
+                vals['name'] = self.pool.get('ir.sequence').get(cr, uid, seq)
+        return super(indent_indent, self).write(cr, uid, ids, vals, context=context)
+
     def _needaction_domain_get(self, cr, uid, context=None):
         return [('state', '=', 'waiting_approval')]
 
     def copy(self, cr, uid, id, default=None, context=None):
         if default is None:
             default = {}
-        if context.get('default_contract') == False:
-            default.update({
-                'name': self.pool.get('ir.sequence').get(cr, uid, 'indent.indent'),
-                'indent_date': time.strftime('%Y-%m-%d %H:%M:%S'),
-                'required_date': time.strftime('%Y-%m-%d %H:%M:%S'),
-                'product_lines': [],
-                'picking_id': False,
-                'indent_authority_ids': [],
-                'state': 'draft',
-            })
+        default.update({
+            'name': self.pool.get('ir.sequence').get(cr, uid, 'indent.indent'),
+            'indent_date': time.strftime('%Y-%m-%d %H:%M:%S'),
+            'required_date': self._get_required_date(cr, uid, context=context),
+            'picking_id': False,
+            'indent_authority_ids': [],
+            'state': 'draft',
+        })
         return super(indent_indent, self).copy(cr, uid, id, default, context=context)
 
+    def onchange_item(self, cr, uid, ids, item_for=False, context=None):
+        result = {}
+        if not item_for or item_for == 'store':
+            result['analytic_account_id'] = False
+        return {'value': result}
+
     def indent_confirm(self, cr, uid, ids, context=None):
         def _create_parent_category_list(id, lst):
             if not id:
@@ -168,8 +178,11 @@
             if not indent.product_lines:
                 raise osv.except_osv(_('Warning!'),_('You cannot confirm an indent which has no line.'))
 
+            authorities = []
             for authority in document_authority_obj.browse(cr, uid, document_authority_ids, context=context):
-                document_authority_instance_obj.create(cr, uid, {'name': authority.name.id, 'document': 'indent', 'indent_id': indent.id, 'priority': authority.priority}, context=context)
+                if authority.name.id not in authorities:
+                    document_authority_instance_obj.create(cr, uid, {'name': authority.name.id, 'document': 'indent', 'indent_id': indent.id, 'priority': authority.priority}, context=context)
+                    authorities.append(authority.name.id)
 
             employee_parent_ids = obj_hr.search(cr, uid, [])
             employee_parents = obj_hr.read(cr, uid, employee_parent_ids, ['coach_id'])
@@ -182,8 +195,10 @@
             for auth in new_parent_employee_id:
                 emp = obj_hr.browse(cr,uid,auth,context=context)
                 if emp.user_id and not emp.absent:
-                    document_authority_instance_obj.create(cr, uid, {'name': emp.user_id.id, 'document': 'indent', 'indent_id': indent.id, 'priority': priority}, context=context)
-                    priority=priority+1
+                    if emp.user_id.id not in authorities:
+                        document_authority_instance_obj.create(cr, uid, {'name': emp.user_id.id, 'document': 'indent', 'indent_id': indent.id, 'priority': priority}, context=context)
+                        priority=priority+1
+                        authorities.append(emp.user_id.id)
 
             # Add all authorities of the indent as followers
             for authority in indent.indent_authority_ids:
@@ -194,12 +209,22 @@
         return True
 
     def action_picking_create(self, cr, uid, ids, context=None):
+        proc_obj = self.pool.get('procurement.order')
+        move_obj = self.pool.get('stock.move')
         assert len(ids) == 1, 'This option should only be used for a single id at a time.'
         picking_id = False
         indent = self.browse(cr, uid, ids[0], context=context)
         if indent.product_lines:
             picking_id = self._create_pickings_and_procurements(cr, uid, indent, indent.product_lines, None, context=context)
         self.write(cr, uid, ids, {'picking_id': picking_id, 'state' : 'inprogress'}, context=context)
+        wf_service = netsvc.LocalService("workflow")
+
+        move_ids = move_obj.search(cr,uid,[('picking_id','=',picking_id)])
+        pro_ids = proc_obj.search(cr,uid,[('move_id','in',move_ids)])
+        if indent.contract or indent.type == 'existing':
+            pro_ids  = proc_obj.search(cr,uid,[('origin','=',indent.name)])
+        for pro in pro_ids:
+            wf_service.trg_validate(uid, 'procurement.order', pro, 'button_check', cr)
         return picking_id
 
     def check_approval(self, cr, uid, ids):
@@ -208,20 +233,24 @@
             authorities = [(authority.id, authority.name.id, authority.priority, authority.state, authority.name.name) for authority in indent.indent_authority_ids]
             sort_authorities = sorted(authorities, key=lambda element: (element[2]))
             count = 0
+            count_auth = 0
             for authority in sort_authorities:
                 count += 1
                 if authority[1] == uid:
+                    count_auth += 1
                     if authority[3] == 'approve':
                         raise osv.except_osv(_("Warning !"),_('You have already approved an indent.'))
                     write_ids = [(auth[0], auth[3]) for auth in sort_authorities][count:]
                     document_authority_instance_obj.write(cr, uid, [authority[0]], {'state': 'approve'})
-                    for write_id in write_ids:
-                        desc = document_authority_instance_obj.browse(cr, uid, write_id[0]).description
-                        description = 'Approved by higher authority - %s' %(authority[4],)
-                        if desc:
-                            description = 'Approved by higher authority - %s' %(authority[4],) + '\n' + desc
-                        document_authority_instance_obj.write(cr, uid, [write_id[0]], {'description': description})
-                    break
+                    msg = 'Indent is approved by <b>%s</b>.' % (authority[4])
+                    self.message_post(cr, uid, [indent.id], body=msg)
+                    if count_auth == 1:
+                        for write_id in write_ids:
+                            desc = document_authority_instance_obj.browse(cr, uid, write_id[0]).description
+                            description = 'Approved by higher authority - %s' %(authority[4],)
+                            if desc:
+                                description = 'Approved by higher authority - %s' %(authority[4],) + '\n' + desc
+                            document_authority_instance_obj.write(cr, uid, [write_id[0]], {'description': description})
 
         for indent in self.browse(cr, uid, ids):
             authorities = [(authority.id, authority.priority, authority.state) for authority in indent.indent_authority_ids]
@@ -239,20 +268,24 @@
             authorities = [(authority.id, authority.name.id, authority.priority, authority.state, authority.name.name) for authority in indent.indent_authority_ids]
             sort_authorities = sorted(authorities, key=lambda element: (element[2]))
             count = 0
+            count_auth = 0
             for authority in sort_authorities:
                 count += 1
                 if authority[1] == uid:
+                    count_auth += 1
                     if authority[3] == 'reject':
                         raise osv.except_osv(_("Warning !"),_('You have already rejected an indent.'))
                     write_ids = [(auth[0], auth[3]) for auth in sort_authorities][count:]
                     document_authority_instance_obj.write(cr, uid, [authority[0]], {'state': 'reject'})
-                    for write_id in write_ids:
-                        desc = document_authority_instance_obj.browse(cr, uid, write_id[0]).description
-                        description = 'Rejected by higher authority - %s' %(authority[4],)
-                        if desc:
-                            description = 'Rejected by higher authority - %s' %(authority[4],) + '\n' + desc
-                        document_authority_instance_obj.write(cr, uid, [write_id[0]], {'description': description})
-                    break
+                    msg = 'Indent is rejected by <b>%s</b>.' % (authority[4])
+                    self.message_post(cr, uid, [indent.id], body=msg)
+                    if count_auth == 1:
+                        for write_id in write_ids:
+                            desc = document_authority_instance_obj.browse(cr, uid, write_id[0]).description
+                            description = 'Rejected by higher authority - %s' %(authority[4],)
+                            if desc:
+                                description = 'Rejected by higher authority - %s' %(authority[4],) + '\n' + desc
+                            document_authority_instance_obj.write(cr, uid, [write_id[0]], {'description': description})
 
         for indent in self.browse(cr, uid, ids):
             authorities = [(authority.id, authority.priority, authority.state) for authority in indent.indent_authority_ids]
@@ -276,7 +309,7 @@
             'view_type': 'form',
             'view_mode': 'form',
             'view_id': res and res[1] or False,
-            'res_model': 'stock.picking.in',
+            'res_model': 'stock.picking',
             'type': 'ir.actions.act_window',
             'nodestroy': True,
             'target': 'current',
@@ -289,10 +322,7 @@
         This function returns an action that display internal move of given indent ids.
         '''
         assert len(ids) == 1, 'This option should only be used for a single id at a time'
-        picking_id = self.browse(cr, uid, ids[0], context=context).picking_id.id
-        incoming_ship_id = self.pool.get('stock.picking').search(cr,uid,[('indent_id.id','=',ids[0])])
         domain = [('indent_id.id','=',ids[0]),('type','=','internal')]
-        res = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'stock', 'action_picking_tree6')
         result = {
             'name': _('Issue Receipt'),
             'view_type': 'form',
@@ -301,12 +331,15 @@
             'domain': domain,
             'type': 'ir.actions.act_window',
         }
-        return result    
+        return result
 
     def _prepare_indent_line_move(self, cr, uid, indent, line, picking_id, date_planned, context=None):
         location_id = self._default_stock_location(cr, uid, context=context)
         res = {
             'name': line.name,
+            'indent': indent.id,
+            'indentor': indent.indentor_id.id,
+            'department_id': indent.department_id.id,
             'picking_id': picking_id,
             'product_id': line.product_id.id,
             'date': date_planned,
@@ -337,13 +370,19 @@
             res = dict(res, company_id = indent.company_id.id)
         return res
 
-
-
     def _prepare_indent_line_procurement(self, cr, uid, indent, line, move_id, date_planned, context=None):
-        location_id = self._default_stock_location(cr, uid, context=context)
+        warehouse_obj = self.pool.get('stock.warehouse')
+        company_ids = self.pool.get('res.company').search(cr, uid, [('name', '=', 'MAIZE PRODUCTS')], context=context)
+        company_id = company_ids and company_ids[0] or False
+        warehouse_ids = warehouse_obj.search(cr, uid, [('company_id', '=', company_id)], context=context)
+        warehouse_id = warehouse_ids and warehouse_ids[0] or False
+        location_id = warehouse_obj.browse(cr, uid, warehouse_id, context=context).lot_input_id.id
         res = {
             'name': line.name,
             'origin': indent.name,
+            'indent_id': indent.id,
+            'indentor_id': indent.indentor_id.id,
+            'department_id': indent.department_id.id,
             'date_planned': date_planned,
             'product_id': line.product_id.id,
             'product_qty': line.product_uom_qty,
@@ -361,6 +400,10 @@
             res = dict(res, company_id = indent.company_id.id)
         return res
 
+    def _get_date_planned(self, cr, uid, indent, line, start_date, context=None):
+        date_planned = datetime.datetime.strptime(start_date, DEFAULT_SERVER_DATETIME_FORMAT) + relativedelta(days=line.delay or 0.0)
+        return date_planned
+
     def _create_pickings_and_procurements(self, cr, uid, indent, product_lines, picking_id=False, context=None):
         move_obj = self.pool.get('stock.move')
         picking_obj = self.pool.get('stock.picking')
@@ -368,7 +411,7 @@
         proc_ids = []
 
         for line in product_lines:
-            date_planned = indent.indent_date
+            date_planned = self._get_date_planned(cr, uid, indent, line, indent.indent_date, context=context)
 
             if line.product_id:
                 if line.product_id.type in ('product', 'consu'):
@@ -405,63 +448,6 @@
         if 'company_id' in vals:
             seq['company_id'] = vals['company_id']
         return self.pool.get('ir.sequence').create(cr, uid, seq)
-    
-    def process_purchase_order(self,cr,uid,ids,context):
-        obj_purchase_order = self.pool.get('purchase.order')
-        wf_service = netsvc.LocalService("workflow")
-        for indent in self.browse(cr,uid,ids,context):
-            po_grp_partners = obj_purchase_order.read_group(cr, uid, [('indent_id', '=', indent.id),('state', '=', 'approved')], ['partner_id'], ['partner_id'])
-            po_grp_series = obj_purchase_order.read_group(cr, uid, [('indent_id', '=', indent.id),('state', '=', 'approved')], ['po_series_id'], ['po_series_id'])
-            for po_grp_ser in po_grp_series:
-                for po_grp_partner in po_grp_partners:
-                    if po_grp_partner['partner_id_count'] > 1 and po_grp_ser['po_series_id_count'] > 1:
-                        po_to_merge = obj_purchase_order.search(cr, uid, [('indent_id', '=', indent.id),('state', '=', 'approved'),('partner_id', '=', po_grp_partner['partner_id'][0]), ('po_series_id', '=', po_grp_ser['po_series_id'][0])])
-                        obj_purchase_order.action_cancel(cr,uid,po_to_merge,context)
-                        obj_purchase_order.action_cancel_draft(cr,uid,po_to_merge,context)
-                        po_merged_id = obj_purchase_order.do_merge(cr,uid,po_to_merge,context).keys()[0]
-                        series_obj = self.pool.get('product.order.series')
-                        po = obj_purchase_order.browse(cr,uid,po_merged_id,context=context)
-                        series_code= po and po.po_series_id and po.po_series_id.code or False
-                        if series_code:
-                            vals = {'company_id':1,'po_series_id':po.po_series_id.id}
-                            if not self.pool.get('ir.sequence').search(cr,uid,[('name','=',series_code)]):
-                                seqq = self.create_series_sequence(cr,uid,vals,context)
-                            po_seq = self.pool.get('ir.sequence').get(cr, uid, series_code) or '/'
-                            obj_purchase_order.write(cr,uid,po_merged_id,{'name':po_seq})
-                        order = obj_purchase_order.browse(cr,uid,po_merged_id,context)
-                        today = order.date_order
-                        year = datetime.datetime.today().year
-                        month = datetime.datetime.today().month
-                        if month < 4:
-                            po_year=str(datetime.datetime.today().year-1)+'-'+str(datetime.datetime.today().year)
-                        else:
-                            po_year=str(datetime.datetime.today().year)+'-'+str(datetime.datetime.today().year+1)
-                        for line in order.order_line:
-                            self.pool.get('product.product').write(cr,uid,line.product_id.id,{
-                                                                          'last_supplier_rate': line.price_unit,
-                                                                          'last_po_no':order.id,
-                                                                          'last_po_series':order.po_series_id.id,
-                                                                          'last_supplier_code':order.partner_id.id,
-                                                                          'last_po_date':order.date_order,
-                                                                          'last_po_year':po_year
-                                                                      },context=context)
-                        obj_purchase_order.write(cr,uid,po_merged_id,{'indentor_id':indent.indentor_id.id,'indent_date':indent.indent_date,'indent_id':indent.id,'origin':indent.name})
-                        wf_service.trg_validate(uid, 'purchase.order', po_merged_id, 'purchase_confirm', cr)
-                        wf_service.trg_validate(uid, 'purchase.order', po_merged_id, 'purchase_approve', cr)
-                    else:
-                        # write purchase order series
-                        po_without_merge = obj_purchase_order.search(cr, uid, [('indent_id', '=', indent.id),('state', '=', 'approved'),('partner_id', '=', po_grp_partner['partner_id'][0]), ('po_series_id', '=', po_grp_ser['po_series_id'][0])])[0]
-                        series_obj = self.pool.get('product.order.series')
-                        po = obj_purchase_order.browse(cr,uid,po_without_merge,context=context)
-                        series_code= po and po.po_series_id and po.po_series_id.code or False
-                        if series_code:
-                            vals = {'company_id':1,'po_series_id':po.po_series_id.id}
-                            if not self.pool.get('ir.sequence').search(cr,uid,[('name','=',series_code)]):
-                                seqq = self.create_series_sequence(cr,uid,vals,context)
-                            po_seq = self.pool.get('ir.sequence').get(cr, uid, series_code) or '/'
-                            obj_purchase_order.write(cr,uid,po_without_merge,{'name':po_seq})
-            self.write(cr, uid, indent.id, {'purchase_count': True}, context=context)
-        return True
 
 indent_indent()
 
@@ -479,7 +465,8 @@
         'indent_id': fields.many2one('indent.indent', 'Indent', required=True, ondelete='cascade'),
         'name': fields.text('Description', required=True),
         'product_id': fields.many2one('product.product', 'Product', required=True),
-        'type': fields.selection([('make_to_stock', 'from stock'), ('make_to_order', 'on order')], 'Procurement Method', required=True,
+        'original_product_id': fields.many2one('product.product', 'Original Product'),
+        'type': fields.selection([('make_to_stock', 'Assign from stock'), ('make_to_order', 'Make new purchase order')], 'Procurement Method', required=True,
          help="From stock: When needed, the product is taken from the stock or we wait for replenishment.\nOn order: When needed, the product is purchased or produced."),
         'product_uom_qty': fields.float('Quantity', digits_compute= dp.get_precision('Product UoS'), required=True),
         'product_uom': fields.many2one('product.uom', 'Unit of Measure', required=True),
@@ -489,16 +476,9 @@
         'price_subtotal': fields.function(_amount_subtotal, string='Subtotal', digits_compute= dp.get_precision('Account'), store=True),
         'qty_available': fields.float('Stock'),
         'virtual_available': fields.float('Forecasted Qty'),
+        'delay': fields.float('Lead Time', required=True),
         'name': fields.text('Purpose', required=True),
         'specification': fields.text('Item Specification'),
-        'indentor_id': fields.related('indent_id', 'indentor_id', type='many2one', relation='res.users', string='Indentor', store=True, readonly=True),
-        'indentor_code': fields.related('indentor_id', 'login', type='char', string='Indentor No', store=True, readonly=True),
-        'indent_date': fields.related('indent_id', 'indent_date', type='datetime', string='Indent Date', store=True, readonly=True),
-        'department_id': fields.related('indent_id', 'department_id', type='many2one', relation='stock.location', string='Department', store=True, readonly=True),
-        'item_for': fields.related('indent_id', 'item_for', type='selection', selection=[('store','Store'),('capital','Capital')], string='Indent Type', store=True, readonly=True),
-        'requirement': fields.related('indent_id', 'requirement', type='selection', selection=[('ordinary','Ordinary'), ('urgent','Urgent')], string='Req Code', store=True, readonly=True),
-        'required_date': fields.related('indent_id', 'required_date', type='datetime', string='Req Date', store=True, readonly=True),
-        'product_code': fields.related('product_id', 'default_code', type='char', string='Product Code', store=True, readonly=True),
     }
 
     def _get_uom_id(self, cr, uid, *args):
@@ -506,84 +486,34 @@
         return result and result[1] or False
 
     _defaults = {
-        'product_uom' : _get_uom_id,
+#        'product_uom' : _get_uom_id,
         'product_uom_qty': 1,
         'product_uos_qty': 1,
         'type': 'make_to_order',
+        'delay': 0.0,
     }
 
-    def product_id_change(self, cr, uid, ids, product, qty=0, uom=False, qty_uos=0, uos=False, name='', date_order=False):
-        warning = {}
-        product_uom_obj = self.pool.get('product.uom')
+    def onchange_product_id(self, cr, uid, ids, product_id=False, product_uom_qty=0.0, product_uom=False, price_unit=0.0, qty_available=0.0, virtual_available=0.0, name='', analytic_account_id=False, indent_type=False, context=None):
+        result = {}
         product_obj = self.pool.get('product.product')
-
-        if not product:
-            return {'value': {'product_uos_qty': qty}, 'domain': {'product_uom': [], 'product_uos': []}}
-        if not date_order:
-            date_order = time.strftime(DEFAULT_SERVER_DATE_FORMAT)
-
-        result = {}
-        warning_msgs = {}
-        product_obj = product_obj.browse(cr, uid, product)
-
-        uom2 = False
-        if uom:
-            uom2 = product_uom_obj.browse(cr, uid, uom)
-            if product_obj.uom_id.category_id.id != uom2.category_id.id:
-                uom = False
-        if uos:
-            if product_obj.uos_id:
-                uos2 = product_uom_obj.browse(cr, uid, uos)
-                if product_obj.uos_id.category_id.id != uos2.category_id.id:
-                    uos = False
-            else:
-                uos = False
-
-        result['name'] = self.pool.get('product.product').name_get(cr, uid, [product_obj.id])[0][1]
-        domain = {}
-        if (not uom) and (not uos):
-            result['product_uom'] = product_obj.uom_id.id
-            if product_obj.uos_id:
-                result['product_uos'] = product_obj.uos_id.id
-                result['product_uos_qty'] = qty * product_obj.uos_coeff
-                uos_category_id = product_obj.uos_id.category_id.id
-            else:
-                result['product_uos'] = False
-                result['product_uos_qty'] = qty
-                uos_category_id = False
-            domain = {'product_uom':
-                        [('category_id', '=', product_obj.uom_id.category_id.id)],
-                        'product_uos':
-                        [('category_id', '=', uos_category_id)]}
-        elif uos and not uom: # only happens if uom is False
-            result['product_uom'] = product_obj.uom_id and product_obj.uom_id.id
-            result['product_uom_qty'] = qty_uos / product_obj.uos_coeff
-        elif uom: # whether uos is set or not
-            default_uom = product_obj.uom_id and product_obj.uom_id.id
-            q = product_uom_obj._compute_qty(cr, uid, uom, qty, default_uom)
-            if product_obj.uos_id:
-                result['product_uos'] = product_obj.uos_id.id
-                result['product_uos_qty'] = qty * product_obj.uos_coeff
-            else:
-                result['product_uos'] = False
-                result['product_uos_qty'] = qty
-
-        if not uom2:
-            uom2 = product_obj.uom_id
-
-        result['qty_available'] = product_obj.qty_available
-        result['virtual_available'] = product_obj.virtual_available
-        result['price_unit'] = product_obj.list_price
-        if warning_msgs:
-            warning = {
-                       'title': _('Configuration Error!'), 'message' : warning_msgs
-                    }
-        return {'value': result, 'domain': domain, 'warning': warning}
-
-    def product_uom_change(self, cr, uid, ids, product, qty=0, uom=False, qty_uos=0, uos=False, name='', date_order=False):
-        if not uom:
-            return {'value': {'product_uom' : uom or False}}
-        return self.product_id_change(cr, uid, ids, product, qty=qty, uom=uom, qty_uos=qty_uos, uos=uos, name=name, date_order=date_order)
+        if not product_id:
+            return {'value': {'product_uom_qty': 1.0, 'product_uom': False, 'price_unit': 0.0, 'qty_available': 0.0, 'virtual_available': 0.0, 'name': '', 'delay': 0.0}}
+        if analytic_account_id:
+            prod_ids = product_obj.search(cr, uid, [('default_code', '=like', '%s%%' % '0152')], context=context)
+            if product_id not in prod_ids:
+                raise osv.except_osv(_("Warning !"), _("You must select a product whose code start with '0152'."))
+        product = product_obj.browse(cr, uid, product_id, context=context)
+        if indent_type and indent_type == 'existing' and product.type != 'service':
+            raise osv.except_osv(_("Warning !"), _("You must select a service type product."))
+        if not product.seller_ids:
+            raise osv.except_osv(_("Warning !"), _("You must define at least one supplier for this product."))
+        result['name'] = product_obj.name_get(cr, uid, [product.id])[0][1]
+        result['product_uom'] = product.uom_id.id
+        result['price_unit'] = product.list_price
+        result['qty_available'] = product.qty_available
+        result['virtual_available'] = product.virtual_available
+        result['delay'] = product.seller_ids[0].delay
+        return {'value': result}
 
 indent_product_lines()
 
@@ -598,7 +528,7 @@
         # name_get may receive int id instead of an id list
         if isinstance(ids, (int, long)):
             ids = [ids]
-        
+
         return [(record.id, record.name.name) for record in self.browse(cr, uid , ids, context=context)]
 
     _columns = {
@@ -664,6 +594,44 @@
         'indentor_id': fields.related('indent_id', 'indentor_id', type='many2one', relation='res.users', string='Indentor', store=True, readonly=True),
         'indent_date': fields.related('indent_id', 'indent_date', type='datetime', relation='indent.indent', string='Indent Date', store=True, readonly=True),
         'picking_authority_ids': fields.one2many('picking.authority', 'picking_id', 'Authority'),
+        'maize': fields.char('Maize', size=256, readonly=True),
+        'maize_in': fields.char('Maize', size=256, readonly=True),
+        'maize_out': fields.char('Maize', size=256, readonly=True),
+        'maize_receipt': fields.char('Maize', size=256, readonly=True),
+        'lr_no': fields.char("LR No",size=64),
+        'lr_date': fields.date("LR Date"),
+        'transporter':fields.char("Transporter",size=256),
+        'hpressure':fields.integer("HPressure"),
+        'dest_from': fields.char("Destination From",size=64),
+        'dest_to': fields.char("Destination To",size=64),
+        'lab_no':fields.integer("Lab No"),
+        'gp_no': fields.integer("Gate Pass No"),
+        'gp_year': fields.char("GP Year",size=64),
+        'remark1': fields.char("Remark1",size=256),
+        'remark2': fields.char("remark2",size=256),
+        'case_code': fields.boolean("Cash Code"),
+        'challan_no': fields.char("Challan Number",size=256),
+        'despatch_mode': fields.selection([('person','By Person'),
+                                           ('scooter','By Scooter'),
+                                           ('tanker','By Tanker'),
+                                           ('truck','By Truck'),
+                                           ('auto_rickshaw','By Auto Rickshaw'),
+                                           ('loading_rickshaw','By Loading Rickshaw'),
+                                           ('tempo','By Tempo'),
+                                           ('metador','By Metador'),
+                                           ('rickshaw_tempo','By Rickshaw Tempo'),
+                                           ('cart','By Cart'),
+                                           ('cycle','By Cycle'),
+                                           ('pedal_rickshaw','By Pedal Rickshaw'),
+                                           ('car','By Car'),
+                                           ('post_parcel','By Post Parcel'),
+                                           ('courier','By Courier'),
+                                           ('tractor','By Tractor'),
+                                           ('hand_cart','By Hand Cart'),
+                                           ('camel_cart','By Camel Cart'),
+                                           ('others','Others'),],"Despatch Mode"),
+        'other_dispatch': fields.char("Other Dispatch",size=256),
+        'series_id':fields.selection(SERIES, 'Series'),
     }
 
     def action_confirm(self, cr, uid, ids, context=None):
@@ -707,37 +675,6 @@
                         return False
         return True
 
-    def check_reject(self, cr, uid, ids):
-        picking_authority_obj = self.pool.get('picking.authority')
-        for picking in self.browse(cr, uid, ids):
-            if picking.type == 'internal':
-                authorities = [(authority.id, authority.name.id, authority.priority, authority.state, authority.name.name) for authority in picking.picking_authority_ids]
-                sort_authorities = sorted(authorities, key=lambda element: (element[2]))
-                count = 0
-                for authority in sort_authorities:
-                    count += 1
-                    if authority[1] == uid:
-                        write_ids = [(auth[0], auth[3]) for auth in sort_authorities][count:]
-                        picking_authority_obj.write(cr, uid, [authority[0]], {'state': 'reject'})
-                        for write_id in write_ids:
-                            desc = picking_authority_obj.browse(cr, uid, write_id[0]).description
-                            description = 'Rejected by higher authority - %s' %(authority[4],)
-                            if desc:
-                                description = 'Rejected by higher authority - %s' %(authority[4],) + '\n' + desc
-                            picking_authority_obj.write(cr, uid, [write_id[0]], {'description': description})
-                        break
-
-        for picking in self.browse(cr, uid, ids):
-            if picking.type == 'internal':
-                authorities = [(authority.id, authority.priority, authority.state) for authority in picking.picking_authority_ids]
-                sort_authorities = sorted(authorities, key=lambda element: (element[1]))
-                for authority in sort_authorities:
-                    if authority[2] == 'approve' or authority[2] == 'pending':
-                        return False
-                    elif authority[2] == 'reject':
-                        return True
-        return True
-
 stock_picking()
 
 class picking_authority(osv.Model):
@@ -788,10 +725,23 @@
         'indent_id': fields.function(_get_indent, relation='indent.indent', type="many2one", string='Indent', store=True),
         'indentor_id': fields.related('indent_id', 'indentor_id', type='many2one', relation='res.users', string='Indentor', store=True, readonly=True),
         'indent_date': fields.related('indent_id', 'indent_date', type='datetime', relation='indent.indent', string='Indent Date', store=True, readonly=True),
+        'maize': fields.char('Maize PO Number', size=256, readonly=True),
+        'contract_name': fields.char('Contract Name', size=256, readonly=True),
     }
 
 purchase_order()
 
+class purchase_order_line(osv.Model):
+    _inherit = 'purchase.order.line'
+
+    _columns = {
+        'indent_id': fields.many2one('indent.indent', 'Indent'),
+        'indentor_id': fields.many2one('res.users', 'Indentor'),
+        'department_id': fields.many2one('stock.location', 'Department'),
+    }
+
+purchase_order_line()
+
 class purchase_requisition(osv.Model):
     _inherit = 'purchase.requisition'
 
@@ -810,13 +760,55 @@
         'indent_id': fields.function(_get_indent, relation='indent.indent', type="many2one", string='Indent', store=True),
         'indentor_id': fields.related('indent_id', 'indentor_id', type='many2one', relation='res.users', string='Indentor', store=True, readonly=True),
         'indent_date': fields.related('indent_id', 'indent_date', type='datetime', relation='indent.indent', string='Indent Date', store=True, readonly=True),
+        'maize': fields.char('Maize', size=256, readonly=True),
     }
 
     def make_purchase_order(self, cr, uid, ids, partner_id, context=None):
-        res = super(purchase_requisition, self).make_purchase_order(cr, uid, ids, partner_id, context=context)
-        origin = self.browse(cr, uid, ids[0], context).origin
-        if origin:
-            self.pool.get('purchase.order').write(cr, uid, res.values(), {'origin': origin}, context=context)
+        """
+        Create New RFQ for Supplier
+        """
+        if context is None:
+            context = {}
+        assert partner_id, 'Supplier should be specified'
+        purchase_order = self.pool.get('purchase.order')
+        purchase_order_line = self.pool.get('purchase.order.line')
+        res_partner = self.pool.get('res.partner')
+        fiscal_position = self.pool.get('account.fiscal.position')
+        supplier = res_partner.browse(cr, uid, partner_id, context=context)
+        supplier_pricelist = supplier.property_product_pricelist_purchase or False
+        res = {}
+        for requisition in self.browse(cr, uid, ids, context=context):
+            if supplier.id in filter(lambda x: x, [rfq.state <> 'cancel' and rfq.partner_id.id or None for rfq in requisition.purchase_ids]):
+                raise osv.except_osv(_('Warning!'), _('You have already one %s purchase order for this partner, you must cancel this purchase order to create a new quotation.') % rfq.state)
+            location_id = requisition.warehouse_id.lot_input_id.id
+            purchase_id = purchase_order.create(cr, uid, {
+                        'origin': requisition.origin,
+                        'partner_id': supplier.id,
+                        'pricelist_id': supplier_pricelist.id,
+                        'location_id': location_id,
+                        'company_id': requisition.company_id.id,
+                        'fiscal_position': supplier.property_account_position and supplier.property_account_position.id or False,
+                        'requisition_id':requisition.id,
+                        'notes':requisition.description,
+                        'warehouse_id':requisition.warehouse_id.id,
+            }, context=context)
+            res[requisition.id] = purchase_id
+            for line in requisition.line_ids:
+                product = line.product_id
+                seller_price, qty, default_uom_po_id, date_planned = self._seller_details(cr, uid, line, supplier, context=context)
+                taxes_ids = product.supplier_taxes_id
+                taxes = fiscal_position.map_tax(cr, uid, supplier.property_account_position, taxes_ids)
+                purchase_order_line.create(cr, uid, {
+                    'order_id': purchase_id,
+                    'name': product.partner_ref,
+                    'product_qty': qty,
+                    'product_id': product.id,
+                    'product_uom': default_uom_po_id,
+                    'price_unit': seller_price,
+                    'date_planned': date_planned,
+                    'taxes_id': [(6, 0, taxes)],
+                }, context=context)
+            self.pool.get('purchase.requisition').write(cr,uid,requisition.id,{'purchase_ids':[(4,purchase_id)]})
         return res
 
 purchase_requisition()
@@ -824,6 +816,12 @@
 class procurement_order(osv.osv):
     _inherit = 'procurement.order'
 
+    _columns = {
+        'indent_id': fields.many2one('indent.indent', 'Indent'),
+        'indentor_id': fields.many2one('res.users', 'Indentor'),
+        'department_id': fields.many2one('stock.location', 'Department'),
+    }
+
     def make_po(self, cr, uid, ids, context=None):
         """ Make purchase order from procurement
         @return: New created Purchase Orders procurement wise
@@ -865,17 +863,20 @@
             taxes_ids = procurement.product_id.supplier_taxes_id
             taxes = acc_pos_obj.map_tax(cr, uid, partner.property_account_position, taxes_ids)
 
-            name = product.partner_ref
+            name = ''
             if product.description_purchase:
-                name += '\n'+ product.description_purchase
+                name = product.description_purchase
             line_vals = {
                 'name': name,
+                'indent_id': procurement.indent_id and procurement.indent_id.id or False,
+                'indentor_id': procurement.indentor_id and procurement.indentor_id.id or False,
+                'department_id': procurement.department_id and procurement.department_id.id or False,
                 'product_qty': qty,
                 'product_id': procurement.product_id.id,
                 'product_uom': uom_id,
                 'price_unit': price or 0.0,
                 'date_planned': schedule_date.strftime(DEFAULT_SERVER_DATETIME_FORMAT),
-                'move_dest_id': res_id,
+                'move_dest_id': False,
                 'taxes_id': [(6,0,taxes)],
             }
             name = seq_obj.get(cr, uid, 'purchase.order') or _('PO: %s') % procurement.name
@@ -931,4 +932,141 @@
 
 hr_employee()
 
+class product_order_series(osv.Model):
+    _name = 'product.order.series'
+    _description = ' Add Purchase Order series'
+    _rec_name = 'code'
+
+    _columns = {
+        'name': fields.char('Name', size=64, required=True, translate=True),
+        'code': fields.char('Code', size=32, required=True),
+        'type': fields.selection([('indent', 'Indent'), ('purchase','Purchase')], 'Type', required=True),
+        'seq_id': fields.many2one('ir.sequence', 'Sequence'),
+        'seq_type_id': fields.many2one('ir.sequence.type', 'Sequence Type'),
+        }
+
+    _sql_constraints = [
+        ('code_uniq', 'unique (code,type)', 'The code of the product order series must be unique!')
+    ]
+
+    def create(self, cr, uid, vals, context=None):
+        name = vals['name']
+        prefix = vals['code']
+        code = vals['type'] + vals['code']
+        vals['seq_type_id'] = self.pool.get('ir.sequence.type').create(cr, uid, {'name': name, 'code': code}, context=context)
+        seq = {
+            'name': name,
+            'implementation':'no_gap',
+            'prefix': prefix + "/",
+            'padding': 4,
+            'number_increment': 1,
+            'code': code
+        }
+        if 'company_id' in vals:
+            seq['company_id'] = vals['company_id']
+        vals['seq_id'] = self.pool.get('ir.sequence').create(cr, uid, seq, context=context)
+        return super(product_order_series, self).create(cr, uid, vals, context=context)
+
+    def write(self, cr, uid, ids, vals, context=None):
+        seq_obj = self.pool.get('ir.sequence')
+        seq_type_obj = self.pool.get('ir.sequence.type')
+        if isinstance(ids, (int, long)):
+            ids = [ids]
+        if vals.get('code'):
+            for series in self.browse(cr, uid, ids, context=context):
+                seq_type_obj.write(cr, uid, [series.seq_type_id.id], {'code': series.type + vals.get('code')}, context=context)
+                seq_obj.write(cr, uid, [series.seq_id.id], {'code': series.type + vals.get('code'), 'prefix': vals.get('code') + "/"}, context=context)
+        return super(product_order_series, self).write(cr, uid, ids, vals, context=context)
+
+    def unlink(self, cr, uid, ids, context=None):
+        seq_ids = []
+        seq_type_ids = []
+        for series in self.browse(cr, uid, ids, context=context):
+            if series.seq_id:
+                seq_ids.append(series.seq_id.id)
+            if series.seq_type_id:
+                seq_type_ids.append(series.seq_type_id.id)
+        self.pool.get('ir.sequence').unlink(cr, uid, seq_ids, context=context)
+        self.pool.get('ir.sequence.type').unlink(cr, uid, seq_type_ids, context=context)
+        return super(product_order_series, self).unlink(cr, uid, ids, context=context)
+
+product_order_series()
+
+class stock_location(osv.Model):
+    _inherit = 'stock.location'
+
+    _columns = {
+        'seq_id': fields.many2one('ir.sequence', 'Sequence'),
+        'seq_type_id': fields.many2one('ir.sequence.type', 'Sequence Type'),
+        'maize_location': fields.boolean('Maize Location'),
+    }
+
+    def create(self, cr, uid, vals, context=None):
+        if not vals.get('location_id', False) and vals.get('code', False):
+            name = vals['name']
+            code = vals['code']
+            if vals.get('code') == '0**':
+                prefix = '5'
+                padding = 3
+            else:
+                prefix = vals.get('code')[0]
+                padding = 4
+            vals['seq_type_id'] = self.pool.get('ir.sequence.type').create(cr, uid, {'name': name, 'code': code}, context=context)
+            seq = {
+                'name': name,
+                'implementation':'no_gap',
+                'prefix': prefix,
+                'padding': padding,
+                'number_increment': 1,
+                'code': code
+            }
+            if 'company_id' in vals:
+                seq['company_id'] = vals['company_id']
+            vals['seq_id'] = self.pool.get('ir.sequence').create(cr, uid, seq, context=context)
+        return super(stock_location, self).create(cr, uid, vals, context=context)
+
+    def write(self, cr, uid, ids, vals, context=None):
+        seq_obj = self.pool.get('ir.sequence')
+        seq_type_obj = self.pool.get('ir.sequence.type')
+        if isinstance(ids, (int, long)):
+            ids = [ids]
+        if not vals.get('location_id', False) and vals.get('code', False):
+            if vals.get('code') == '0**':
+                prefix = '5'
+                padding = 3
+            else:
+                prefix = vals.get('code')[0]
+                padding = 4
+            for location in self.browse(cr, uid, ids, context=context):
+                if location.seq_type_id:
+                    seq_type_obj.write(cr, uid, [location.seq_type_id.id], {'code': vals.get('code')}, context=context)
+                if location.seq_id:
+                    seq_obj.write(cr, uid, [location.seq_id.id], {'code': vals.get('code'), 'prefix': prefix, 'padding': padding}, context=context)
+        return super(stock_location, self).write(cr, uid, ids, vals, context=context)
+
+    def unlink(self, cr, uid, ids, context=None):
+        seq_ids = []
+        seq_type_ids = []
+        for location in self.browse(cr, uid, ids, context=context):
+            if location.seq_id:
+                seq_ids.append(location.seq_id.id)
+            if location.seq_type_id:
+                seq_type_ids.append(location.seq_type_id.id)
+        self.pool.get('ir.sequence').unlink(cr, uid, seq_ids, context=context)
+        self.pool.get('ir.sequence.type').unlink(cr, uid, seq_type_ids, context=context)
+        return super(stock_location, self).unlink(cr, uid, ids, context=context)
+
+stock_location()
+
+class stock_move(osv.Model):
+    _inherit = 'stock.move'
+
+    _columns = {
+        'indent': fields.many2one('indent.indent', 'Indent'),
+        'indentor': fields.many2one('res.users', 'Indentor'),
+        'department_id': fields.many2one('stock.location', 'Department'),
+    }
+
+stock_move()
+
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

=== removed file 'indent/indent_sequence.xml'
--- indent/indent_sequence.xml	2013-04-05 11:27:38 +0000
+++ indent/indent_sequence.xml	1970-01-01 00:00:00 +0000
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<openerp>
-    <data noupdate="1">
-
-        <!-- Sequence for Indent -->
-        <record id="seq_indent_type" model="ir.sequence.type">
-            <field name="name">Indent</field>
-            <field name="code">indent.indent</field>
-        </record>
-
-        <record id="seq_indent" model="ir.sequence">
-            <field name="name">Indent</field>
-            <field name="code">indent.indent</field>
-            <field name="prefix"></field>
-            <field name="padding">3</field>
-        </record>
-
-    </data>
-</openerp>

=== modified file 'indent/indent_view.xml'
--- indent/indent_view.xml	2013-04-11 13:11:01 +0000
+++ indent/indent_view.xml	2013-06-14 04:50:36 +0000
@@ -54,47 +54,48 @@
                         <button name="indent_confirm" string="Confirm" states="draft" class="oe_highlight"/>
                         <button name="indent_inprogress" string="Approve" states="waiting_approval" class="oe_highlight"/>
                         <button name="indent_reject" string="Reject" states="waiting_approval"/>
+                        <button name="action_receive_products" string="Receive Product(s)" states="inprogress" type="object" class="oe_highlight"/>
                         <field name="state" widget="statusbar" statusbar_visible="draft,waiting_approval,inprogress,received" statusbar_colors='{"reject":"red"}'/>
                     </header>
                     <sheet>
                     	<div class="oe_title">
 	                        <h1>
-	                            <label for="name" class="oe_edit_only"/>
-	                            <field name="name"/>
+	                            <label string="Draft Indent" attrs="{'invisible': [('state','&lt;&gt;','draft')]}"/>
+                                <label string="Indent" attrs="{'invisible': [('state', '=', 'draft')]}"/>
+	                            <field name="name" class="oe_inline"/>
 	                        </h1>
                         </div>
-                                <field name="requisition_done" invisible="1"/>
-                                <field name="purchase_count" invisible="1"/>
-                               	<field name="shipment_done" invisible="1"/>
 	                    <div class="oe_right oe_inline" name="buttons">
-	  	                    <button name="%(action_purchase_requisition_indent_view)d" string="Enquiry" type="action" groups="purchase.group_purchase_user" states="inprogress,received"/> 
-                            <button name="process_purchase_order" string="Process Purchase Orders" type="object" groups="purchase.group_purchase_user" attrs="{'invisible': ['|',('purchase_count', '=', True),('requisition_done','=',False)]}"/>
-							<button name="action_receive_products" string="Inward" attrs="{'invisible': [('purchase_count', '=', False)]}" type="object"/>
-                            <button name="action_issue_receipt" string="Issue Reciept(s)" attrs="{'invisible': [('shipment_done','=',False)]}" type="object" groups="purchase.group_purchase_user"/>  
-	                        <button name="%(action_purchase_order_indent_view)d" string="Purchase Orders" type="action" groups="purchase.group_purchase_user" attrs="{'invisible': [('purchase_count','=',False)]}"/>
+	  	                    <button name="%(action_purchase_requisition_indent_view)d" string="Enquiry" type="action" groups="purchase.group_purchase_user"/> 
+							<button name="action_receive_products" string="Inward" type="object"/>
+                            <button name="action_issue_receipt" string="Issue Reciept(s)" type="object" groups="purchase.group_purchase_user"/>  
+	                        <button name="%(action_purchase_order_indent_view)d" string="Purchase Orders" type="action" groups="purchase.group_purchase_user" attrs="{'invisible': [('state', '!=', 'inprogress'),'|',('type', '!=', 'existing'),]}"/>
 	                        	
                         </div>
                         <group>
                             <group>
                                 <field name="indent_date" />
+                                <field name="maize" groups="indent.group_maize_data"/>
                             </group>
                             <group>
                                 <field name="required_date"/>
+                                <field name="attachment_id" invisible="1"/>
+                                <field name="print_report" readonly="1" attrs="{'invisible': [('print_report', '=', False)]}"/>
                             </group>
                         </group>
-                        <group string="Details">
-                            <group>
-                                <field name="indentor_id"/>
-                                <field name="employee_id" invisible="1"/>
-                                <field name="employee_department_id" invisible="1"/>
-                                <field name="department_id"/>
-                                <field name="analytic_account_id"/>
-                            </group>
-                            <group>
+                        <group>
+                            <group string="Details">
+                                <field name="item_for" on_change="onchange_item(item_for)"/>
+                                <field name="analytic_account_id" attrs="{'invisible': [('item_for', '!=', 'capital')], 'required': [('item_for', '=', 'capital')]}"/>
                                 <field name="requirement"/>
                                 <field name="type"/>
                                 <field name="company_id" invisible="1"/>
-                                <field name="item_for"/>
+                            </group>
+                            <group string="Indentor">
+                                <field name="indentor_id" readonly="1"/>
+                                <field name="employee_id" groups="indent.group_maize_data" invisible="1"/>
+                                <field name="employee_department_id" groups="indent.group_maize_data" invisible="1"/>
+                                <field name="department_id" domain="[('location_id', '!=', False), ('usage', '!=', 'view'), ('maize_location', '=', True)]" context="{'default_maize_location': True}"/>
                             </group>
                         </group>
                         <notebook>
@@ -105,26 +106,22 @@
                                             <group>
                                                 <field name="product_id"
                                                     groups="base.group_user"
-                                                    on_change="product_id_change(product_id, product_uom_qty, product_uom, product_uos_qty, product_uos, name, parent.indent_date)"/>
+                                                    on_change="onchange_product_id(product_id, product_uom_qty, product_uom, price_unit, qty_available, virtual_available, name, parent.analytic_account_id, parent.type)"/>
                                                 <label for="product_uom_qty"/>
                                                 <div>
                                                     <field
-                                                        name="product_uom_qty" class="oe_inline"
-                                                        on_change="product_id_change(product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name, parent.indent_date)"/>
+                                                        name="product_uom_qty" class="oe_inline"/>
                                                     <field name="product_uom" groups="product.group_uom" class="oe_inline oe_no_button"
-                                                        on_change="product_uom_change(product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name, parent.indent_date)"/>
-                                                </div>
-                                                <label for="product_uos_qty" groups="product.group_uos"/>
-                                                <div groups="product.group_uos">
-                                                    <field name="product_uos_qty" class="oe_inline"/>
-                                                    <field name="product_uos" options='{"no_open": True}' class="oe_inline"/>
-                                                </div>
-                                                 <field name="price_unit"/>
+                                                        on_change="onchange_product_id(product_id, product_uom_qty, product_uom, price_unit, qty_available, virtual_available, name, parent.analytic_account_id, parent.type)"/>
+                                                </div>
+                                                 <field name="price_unit" on_change="onchange_product_id(product_id, product_uom_qty, product_uom, price_unit, qty_available, virtual_available, name, parent.analytic_account_id, parent.type)"/>
                                             </group>
                                             <group>
+                                                <field name="original_product_id"/>
                                                 <field name="type"/>
-                                                <field name="qty_available"/>
-                                                <field name="virtual_available"/>
+                                                <field name="qty_available" on_change="onchange_product_id(product_id, product_uom_qty, product_uom, price_unit, qty_available, virtual_available, name, parent.analytic_account_id, parent.type)"/>
+                                                <field name="virtual_available" on_change="onchange_product_id(product_id, product_uom_qty, product_uom, price_unit, qty_available, virtual_available, name, parent.analytic_account_id, parent.type)"/>
+                                                <field name="delay"/>
                                             </group>
                                         </group>
                                         <label for="name"/>
@@ -135,18 +132,15 @@
                                     <tree string="Products">
                                         <field name="product_id"
                                             groups="base.group_user"
-                                            on_change="product_id_change(product_id, product_uom_qty, product_uom, product_uos_qty, product_uos, name, parent.indent_date)"/>
+                                            on_change="onchange_product_id(product_id, product_uom_qty, product_uom, price_unit, qty_available, virtual_available, name, parent.analytic_account_id, parent.type)"/>
                                         <field name="product_uom" string="Unit"
-                                            on_change="product_uom_change(product_id, product_uom_qty, product_uom, product_uos_qty, product_uos, name, parent.indent_date)"
+                                            on_change="onchange_product_id(product_id, product_uom_qty, product_uom, price_unit, qty_available, virtual_available, name, parent.analytic_account_id, parent.type)"
                                             groups="product.group_uom" options='{"no_open": True}'/>
-                                        <field name="qty_available"/>
-                                        <field name="product_uom_qty"
-                                            on_change="product_id_change(product_id, product_uom_qty, product_uom, product_uos_qty, product_uos, name, parent.indent_date)"/>
-                                        <field name="product_uos_qty" groups="product.group_uos" invisible="1"/>
-                                        <field name="product_uos" string="UoS" groups="product.group_uos" invisible="1"/>
+                                        <field name="qty_available" on_change="onchange_product_id(product_id, product_uom_qty, product_uom, price_unit, qty_available, virtual_available, name, parent.analytic_account_id, parent.type)"/>
+                                        <field name="product_uom_qty"/>
                                         <field name="name"/>
                                         <field name="specification"/>
-                                        <field name="price_unit"/>
+                                        <field name="price_unit" on_change="onchange_product_id(product_id, product_uom_qty, product_uom, price_unit, qty_available, virtual_available, name, parent.analytic_account_id, parent.type)"/>
                                         <field name="price_subtotal"/>
                                     </tree>
                                 </field>
@@ -182,7 +176,7 @@
             <field name="name">indent.indent.tree</field>
             <field name="model">indent.indent</field>
             <field name="arch" type="xml">
-                <tree string="Indents" colors="gray:state=='received';red:shipment_done==True;green:purchase_count==True;green:state=='waiting_approval';">
+                <tree string="Indents" colors="gray:state=='received';green:state=='waiting_approval';">
                     <field name="name"/>
                     <field name="indentor_id"/>
                     <field name="indent_date"/>
@@ -191,9 +185,6 @@
                     <field name="analytic_account_id"/>
                     <field name="requirement"/>
                     <field name="type"/>
-                    <field name="shipment_done" invisible="1"/>
-                    <field name="purchase_count" invisible="1"/>
-                    <field name="requisition_done" invisible="1"/>
                     <field name="amount_total"/>
                     <field name="state"/>
                 </tree>
@@ -209,11 +200,11 @@
                     <field name="name" string="Indent Name"/>
                     <field name="indent_date"/>
                     <field name="required_date"/>
-                    <filter string="Draft" name="state_draft" domain="[('state','=','draft')]"/>
-                    <filter string="Waiting For Approval" name="state_waiting_approval" domain="[('state','=','waiting_approval')]"/>
-                    <filter string="Inprogress" name="state_inprogress" domain="[('state','=','inprogress')]"/>
-                    <filter string="Received" name="state_received" domain="[('state','=','received')]"/>
-                    <filter string="Rejected" name="state_reject" domain="[('state','=','reject'),('active','=',False)]"/>
+                    <filter string="Draft" name="draft" domain="[('state','=','draft')]"/>
+                    <filter string="Waiting For Approval" name="waiting" domain="[('state','=','waiting_approval')]"/>
+                    <filter string="Inprogress" name="inprogress" domain="[('state','=','inprogress')]"/>
+                    <filter string="Received" name="received" domain="[('state','=','received')]"/>
+                    <filter string="Rejected" name="reject" domain="[('state','=','reject'),('active','=',False)]"/>
                     <field name="indentor_id"/>
                     <field name="department_id"/>
                     <field name="analytic_account_id"/>
@@ -236,6 +227,7 @@
             <field name="res_model">indent.indent</field>
             <field name="view_type">form</field>
             <field name="view_mode">tree,form</field>
+            <field name="context">{'search_default_waiting': 1}</field>
             <field name="help" type="html">
                 <p class="oe_view_nocontent_create">
                     Click to create a new indent.
@@ -249,74 +241,6 @@
         <menuitem id="stock.menu_stock_warehouse_mgmt" name="Receive/Deliver By Orders" parent="stock.menu_stock_root" sequence="2"/>
         <menuitem id="stock.menu_stock_products_moves" name="Receive/Deliver Products" parent="stock.menu_stock_root" sequence="3"/>
 
-        <!-- Indent Analysis Tree View -->
-        <record id='view_indent_product_lines_tree' model='ir.ui.view'>
-            <field name="name">indent.product.lines.tree</field>
-            <field name="model">indent.product.lines</field>
-            <field name="arch" type="xml">
-                <tree string="Indent Analysis" create="false" delete="false">
-                    <field name="indentor_code"/>
-                    <field name="indentor_id"/>
-                    <field name="indent_id" string="Indent No"/>
-                    <field name="indent_date"/>
-                    <field name="department_id"/>
-                    <field name="item_for"/>
-                    <field name="requirement"/>
-                    <field name="required_date"/>
-                    <field name="product_code"/>
-                    <field name="product_id"/>
-                    <field name="product_uom_qty"/>
-                    <field name="product_uom"/>
-                    <field name="name" string="Purpose"/>
-                    <field name="price_unit" string="Rate"/>
-                    <field name="price_subtotal" string="Value"/>
-                </tree>
-            </field>
-        </record>
-
-        <!-- Indent Analysis Search View -->
-        <record id="view_indent_product_lines_search" model="ir.ui.view">
-            <field name="name">indent.product.lines.search</field>
-            <field name="model">indent.product.lines</field>
-            <field name="arch" type="xml">
-                <search string="Indents">
-                    <field name="name" string="Indent" filter_domain="['|', '|', ('name', 'ilike', self), ('indentor_code', 'ilike', self), ('product_code', 'ilike', self)]"/>
-                    <field name="indent_date"/>
-                    <field name="required_date"/>
-                    <field name="indentor_id"/>
-                    <field name="indent_id"/>
-                    <field name="department_id"/>
-                    <field name="product_id"/>
-                    <group expand="0" string="Group By...">
-                        <filter string="Indentor" context="{'group_by': 'indentor_id'}"/>
-                        <filter string="Indent" context="{'group_by': 'indent_id'}"/>
-                        <filter string="Department" context="{'group_by': 'department_id'}"/>
-                        <filter string="Type" context="{'group_by': 'item_for'}"/>
-                        <filter string="Product" context="{'group_by': 'product_id'}"/>
-                        <filter string="Requirement" context="{'group_by': 'requirement'}"/>
-                        <filter string="Indent Date" context="{'group_by': 'indent_date'}"/>
-                        <filter string="Required Date" context="{'group_by': 'required_date'}"/>
-                    </group>
-                </search>
-            </field>
-        </record>
-
-        <!-- Indent Analysis Action -->
-        <record id='action_indent_product_lines' model='ir.actions.act_window'>
-            <field name="name">Indent Analysis</field>
-            <field name="res_model">indent.product.lines</field>
-            <field name="view_type">form</field>
-            <field name="view_mode">tree</field>
-            <field name="help" type="html">
-                <p class="oe_view_nocontent_create">
-                    Click to create a new indent.
-                </p>
-            </field>
-        </record>
-
-        <!-- Indent Analysis Menu -->
-        <menuitem action="action_indent_product_lines" id="menu_indent_product_lines_report" parent="stock.next_id_61" sequence="5"/>
-
         <!-- Document Authority Form View -->
         <record id="view_document_authority_form" model="ir.ui.view">
             <field name="name">document.authority.form</field>
@@ -379,11 +303,15 @@
             <field name="arch" type="xml">
                 <field name="origin" position="replace">
                     <field name="origin" invisible="1"/>
-                    <field name="indent_id"/>
-                    <field name="indentor_id"/>
-                    <field name="indent_date"/>
+                    <field name="indent_id" invisible="1"/>
+                    <field name="indentor_id" invisible="1"/>
+                    <field name="indent_date" invisible="1"/>
+                    <field name="maize" groups="indent.group_maize_data"/>
                 </field>
                 <xpath expr="//button[@name='draft_validate']" position="replace"/>
+                <button name="force_assign" position="attributes">
+                    <attribute name="string">Approve</attribute>
+                </button>
                 <xpath expr="//notebook/page[@string='Additional Info']" position="after">
                     <page string="Status">
                         <field name="picking_authority_ids" readonly="1">
@@ -400,18 +328,43 @@
             </field>
         </record>
 
+        <!-- Stock Move Form View -->
+        <record id="view_indent_move_form" model="ir.ui.view">
+            <field name="name">indent.move.form</field>
+            <field name="model">stock.move</field>
+            <field name="inherit_id" ref="stock.view_move_form"/>
+            <field name="arch" type="xml">
+                <xpath expr="//group[@string='Traceability']" position="after">
+                    <group string="Indent">
+                        <field name="indent" readonly="1"/>
+                        <field name="indentor" readonly="1"/>
+                        <field name="department_id" readonly="1"/>
+                    </group>
+                </xpath>
+            </field>
+        </record>
+
         <!-- Purchase Order Form View -->
         <record id="view_purchase_order_form" model="ir.ui.view">
             <field name="name">purchase.order.form.inherit</field>
             <field name="model">purchase.order</field>
             <field name="inherit_id" ref="purchase.purchase_order_form"/>
             <field name="arch" type="xml">
+                <xpath expr="//sheet/div/h1/field[@name='name']" position="after">
+                    <field name="contract_name"/>
+                </xpath>
                 <field name="origin" position="replace">
                     <field name="origin" invisible="1"/>
-                    <field name="indent_id"/>
-                    <field name="indentor_id"/>
-                    <field name="indent_date"/>
+                    <field name="indent_id" invisible="1"/>
+                    <field name="indentor_id" invisible="1"/>
+                    <field name="indent_date" invisible="1"/>
+                    <field name="maize" groups="indent.group_maize_data"/>
                 </field>
+                <xpath expr="//field[@name='order_line']/tree/field[@name='name']" position="after">
+                    <field name="indent_id" readonly="1"/>
+                    <field name="indentor_id" readonly="1"/>
+                    <field name="department_id" readonly="1"/>
+                </xpath>
             </field>
         </record>
 
@@ -425,6 +378,7 @@
                     <field name="indent_id"/>
                     <field name="indentor_id"/>
                     <field name="indent_date"/>
+                    <field name="maize" groups="indent.group_maize_data"/>
                 </field>
             </field>
         </record>
@@ -458,5 +412,46 @@
             </field>
         </record>
 
+        <!-- Partner Search View -->
+        <record id="view_res_partner_inherited_search" model="ir.ui.view">
+            <field name="name">res.partner.inherited.search</field>
+            <field name="model">res.partner</field>
+            <field name="inherit_id" ref="base.view_res_partner_filter"/>
+            <field name="arch" type="xml">
+               <field name="name" position="replace">
+                    <field name="name"
+                       filter_domain="['|', '|', '|', ('name', 'ilike', self), ('parent_id', 'ilike', self), ('ref', '=', self), ('supp_code', '=', self)]"/>
+                </field>
+            </field>
+        </record>
+
+        <!-- Product Form View -->
+        <record id="view_maize_product_product_form" model="ir.ui.view">
+            <field name="name">maize.product.product.form</field>
+            <field name="model">product.product</field>
+            <field name="inherit_id" ref="stock.view_normal_procurement_locations_form"/>
+            <field name="arch" type="xml">
+                <xpath expr="//button[@name='%(stock.action_view_change_product_quantity)d']" position="attributes">
+                    <attribute name="groups">indent.group_maize_data</attribute>
+                </xpath>
+            </field>
+        </record>
+
+        <!-- Stock Location Form View -->
+        <record id="view_maize_stock_location_form" model="ir.ui.view">
+            <field name="name">maize.stock.location.form</field>
+            <field name="model">stock.location</field>
+            <field name="inherit_id" ref="stock.view_location_form"/>
+            <field name="arch" type="xml">
+                <xpath expr="//group[@string='Localization']" position="after">
+                    <group string="Maize">
+                        <field name="seq_id" readonly="1"/>
+                        <field name="seq_type_id" readonly="1"/>
+                        <field name="maize_location"/>
+                    </group>
+                </xpath>
+            </field>
+        </record>
+
     </data>
 </openerp>

=== modified file 'indent/indent_workflow.xml'
--- indent/indent_workflow.xml	2013-04-05 10:45:28 +0000
+++ indent/indent_workflow.xml	2013-06-14 04:50:36 +0000
@@ -75,6 +75,12 @@
             <field name="condition">check_reject()</field>
         </record>
 
+        <record model="workflow.transition" id="trans_inprogress_reject">
+            <field name="act_from" ref="act_inprogress"/>
+            <field name="act_to" ref="act_reject"/>
+            <field name="signal">subflow.cancel</field>
+        </record>
+
         <record model="workflow.transition" id="trans_inprogress_received">
             <field name="act_from" ref="act_inprogress"/>
             <field name="act_to" ref="act_received"/>

=== modified file 'indent/purchase_report.xml'
--- indent/purchase_report.xml	2013-03-14 12:09:00 +0000
+++ indent/purchase_report.xml	2013-06-14 04:50:36 +0000
@@ -9,6 +9,7 @@
                 usage="default" string="Maize Purchase Enquiry"/>
         <report auto="False" id="report_indent" model="indent.indent"
                 name="indent.indent" rml="indent/report/indent.rml"
-                usage="default" string="Indent Report"/>
+                usage="default" string="Indent Report"
+                attachment="((object.name or '').replace('/','')+'.pdf')"/>
     </data>
 </openerp>

=== modified file 'indent/report/__init__.py'
--- indent/report/__init__.py	2013-02-12 13:39:19 +0000
+++ indent/report/__init__.py	2013-06-14 04:50:36 +0000
@@ -22,4 +22,5 @@
 import indent
 import new_po
 import new_rfq
+
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

=== modified file 'indent/report/indent.py'
--- indent/report/indent.py	2013-04-09 05:15:45 +0000
+++ indent/report/indent.py	2013-06-14 04:50:36 +0000
@@ -25,13 +25,27 @@
 from openerp.report import report_sxw
 from openerp.osv import osv
 from openerp import pooler
+from openerp.tools.translate import _
 
 class indent(report_sxw.rml_parse):
+
+    def already_print_report(self, cr , uid, context):
+        context = context or {}
+        self.pool = pooler.get_pool(cr.dbname)
+        active_id = context.get('active_id',False)
+        active_model = context.get('active_model','')
+        if active_id and active_model:
+            already_exist = self.pool.get('ir.attachment').search(cr, uid, [('res_model','=',active_model),('res_id','=',active_id)], context=context)
+            if already_exist:
+                raise osv.except_osv(_('Warning!'),_('Already print this report, For more information please contact your Manager'))
+        return True
+
     def __init__(self, cr, uid, name, context):
         self.sr_no = 0
         self.cr = cr
         self.uid = uid
         self.get_value ={}
+       # self.already_print_report(cr, uid, context)
         super(indent, self).__init__(cr, uid, name, context=context)
         self.localcontext.update({
               'time': time, 
@@ -48,6 +62,7 @@
               'check_tax': self._check_tax,
               'qty': self._qty,
               'sign': self._get_sign,
+              'authority_sign': self._authority_sign,
               })
         self.context = context
 
@@ -57,10 +72,26 @@
     
     def _get_sign(self, line, indent):
         authority_obj = self.pool.get('document.authority.instance')
+        image = "/9j/4AAQSkZJRgABAQEASABIAAD/7QyKUGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAccAgAAAgAAADhCSU0EJQAAAAAAEOjxXPMvwRihontnrcVk1bo4QklNA+0AAAAAABAASAAAAAEAAQBIAAAAAQABOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNBA0AAAAAAAQAAAB4OEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNBAoAAAAAAAEAADhCSU0nEAAAAAAACgABAAAAAAAAAAI4QklNA/UAAAAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEAL2ZmAAEAoZmaAAYAAAAAAAEAMgAAAAEAWgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklNA/gAAAAAAHAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAOEJJTQQAAAAAAAACAAI4QklNBAIAAAAAAAYAAAAAAAA4QklNBDAAAAAAAAMBAQEAOEJJTQQtAAAAAAAGAAEAAAAGOEJJTQQIAAAAAAAQAAAAAQAAAkAAAAJAAAAAADhCSU0EHgAAAAAABAAAAAA4QklNBBoAAAAAA2cAAAAGAAAAAAAAAAAAAAGKAAACJgAAABkAVwBoAGkAdABlACAAQgBhAGMAawBnAHIAbwB1AG4AZAAgAFQAZQBtAHAAbABhAHQAZQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAACJgAAAYoAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAG51bGwAAAACAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAAYoAAAAAUmdodGxvbmcAAAImAAAABnNsaWNlc1ZsTHMAAAABT2JqYwAAAAEAAAAAAAVzbGljZQAAABIAAAAHc2xpY2VJRGxvbmcAAAAAAAAAB2dyb3VwSURsb25nAAAAAAAAAAZvcmlnaW5lbnVtAAAADEVTbGljZU9yaWdpbgAAAA1hdXRvR2VuZXJhdGVkAAAAAFR5cGVlbnVtAAAACkVTbGljZVR5cGUAAAAASW1nIAAAAAZib3VuZHNPYmpjAAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9uZwAAAAAAAAAAQnRvbWxvbmcAAAGKAAAAAFJnaHRsb25nAAACJgAAAAN1cmxURVhUAAAAAQAAAAAAAG51bGxURVhUAAAAAQAAAAAAAE1zZ2VURVhUAAAAAQAAAAAABmFsdFRhZ1RFWFQAAAABAAAAAAAOY2VsbFRleHRJc0hUTUxib29sAQAAAAhjZWxsVGV4dFRFWFQAAAABAAAAAAAJaG9yekFsaWduZW51bQAAAA9FU2xpY2VIb3J6QWxpZ24AAAAHZGVmYXVsdAAAAAl2ZXJ0QWxpZ25lbnVtAAAAD0VTbGljZVZlcnRBbGlnbgAAAAdkZWZhdWx0AAAAC2JnQ29sb3JUeXBlZW51bQAAABFFU2xpY2VCR0NvbG9yVHlwZQAAAABOb25lAAAACXRvcE91dHNldGxvbmcAAAAAAAAACmxlZnRPdXRzZXRsb25nAAAAAAAAAAxib3R0b21PdXRzZXRsb25nAAAAAAAAAAtyaWdodE91dHNldGxvbmcAAAAAADhCSU0EKAAAAAAADAAAAAE/8AAAAAAAADhCSU0EFAAAAAAABAAAAAY4QklNBAwAAAAABl0AAAABAAAAoAAAAHMAAAHgAADXoAAABkEAGAAB/9j/4AAQSkZJRgABAgAASABIAAD/7QAMQWRvYmVfQ00AAf/uAA5BZG9iZQBkgAAAAAH/2wCEAAwICAgJCAwJCQwRCwoLERUPDAwPFRgTExUTExgRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBDQsLDQ4NEA4OEBQODg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIAHMAoAMBIgACEQEDEQH/3QAEAAr/xAE/AAABBQEBAQEBAQAAAAAAAAADAAECBAUGBwgJCgsBAAEFAQEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAQQBAwIEAgUHBggFAwwzAQACEQMEIRIxBUFRYRMicYEyBhSRobFCIyQVUsFiMzRygtFDByWSU/Dh8WNzNRaisoMmRJNUZEXCo3Q2F9JV4mXys4TD03Xj80YnlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3EQACAgECBAQDBAUGBwcGBTUBAAIRAyExEgRBUWFxIhMFMoGRFKGxQiPBUtHwMyRi4XKCkkNTFWNzNPElBhaisoMHJjXC0kSTVKMXZEVVNnRl4vKzhMPTdePzRpSkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2JzdHV2d3h5ent8f/2gAMAwEAAhEDEQA/APTaqGPrD3yS7UQSAB2+jCn9mp8D/nO/8knx/wCYZ/VCIkpF9mp8D/nO/wDJJfZqfA/5zv8AySKkkpF9mp8D/nO/8kl9mp8D/nO/8kipJKRfZqfA/wCc7/ySX2anwP8AnO/8kipJKRfZqfA/5zv/ACSX2anwP+c7/wAkipJKRfZqfA/5zv8AySX2anwP+c7/AMkipJKRfZqfA/5zv/JJfZqfA/5zv/JIqSSkX2anwP8AnO/8kl9mp8D/AJzv/JIqSSkX2anwP+c7/wAkl9mp8D/nO/8AJIqSSkX2anwP+c7/AMkq2Y6vFOOAD+ntFOpJ+kHuB90/uK8s3rP0un/+HK/+psSU/wD/0PUcf+YZ/VCIh4/8wz+qERJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpZvWfpdP/8ADlf/AFNi0lm9Z+l0/wD8OV/9TYkp/9H1HH/mGf1QiIeP/MM/qhESUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKWb1n6XT//AA5X/wBTYtJZvWfpdP8A/Dlf/U2JKf/S9Rx/5hn9UIiHj/zDP6oRElKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSlm9Z+l0//wAOV/8AU2LSWb1n6XT/APw5X/1NiSn/0/Ucf+YZ/VCIh4/8wz+qERJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpZvWfpdP/8ADlf/AFNi0lm9Z+l0/wD8OV/9TYkp/9T1HH/mGf1QiIeP/MM/qhESUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKWb1n6XT//AA5X/wBTYtJZvWfpdP8A/Dlf/U2JKf/V9Rx/5hn9UIiDjPY6oNa4FzPa8A6g+DkZJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpZvWfpdP/APDlf/U2LSWV1q6oZPS8bcPWtyw9lc+4sqZbZdZt/wBHW36b/wCXX++kp//W3/rR6P7Qb6v7Hj0xH271ftP/ALK/4H9zesf9S/8Aof8A/ZteRpIqfXP1L/6H/wD2bS/Uv/of/wDZteRpIKfXP1L/AOh//wBm0v1L/wCh/wD9m15Gkkp9c/Uv/of/APZtL9S/+h//ANm15Gkkp9c/Uv8A6H//AGbS/Uv/AKH/AP2bXkaSSn1z9S/+h/8A9m0v1L/6H/8A2bXkaSSn1z9S/wDof/8AZtL9S/8Aof8A/ZteRpJKfXP1L/6H/wD2bS/Uv/of/wDZteRpJKfXP1L/AOh//wBm0v1L/wCh/wD9m15Gkkp9c/Uv/of/APZtbX1S9P7dk+l+x9vpCf2b6n2n6Q/pP2n9J9l/9GLwlJFT/9kAOEJJTQQhAAAAAABVAAAAAQEAAAAPAEEAZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwAAAAEwBBAGQAbwBiAGUAIABQAGgAbwB0AG8AcwBoAG8AcAAgAEMAUwAzAAAAAQA4QklNBAYAAAAAAAcACAAAAAEBAP/hB3dFeGlmAABNTQAqAAAACAAHARIAAwAAAAEAAQAAARoABQAAAAEAAABiARsABQAAAAEAAABqASgAAwAAAAEAAgAAATEAAgAAABwAAAByATIAAgAAABQAAACOh2kABAAAAAEAAACkAAAA0AAAAEgAAAABAAAASAAAAAFBZG9iZSBQaG90b3Nob3AgQ1MzIFdpbmRvd3MAMjAwOTowMzowMyAwOTo1OToyMgAAAAADoAEAAwAAAAEAAQAAoAIABAAAAAEAAAImoAMABAAAAAEAAAGKAAAAAAAAAAYBAwADAAAAAQAGAAABGgAFAAAAAQAAAR4BGwAFAAAAAQAAASYBKAADAAAAAQACAAACAQAEAAAAAQAAAS4CAgAEAAAAAQAABkEAAAAAAAAASAAAAAEAAABIAAAAAf/Y/+AAEEpGSUYAAQIAAEgASAAA/+0ADEFkb2JlX0NNAAH/7gAOQWRvYmUAZIAAAAAB/9sAhAAMCAgICQgMCQkMEQsKCxEVDwwMDxUYExMVExMYEQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQ0LCw0ODRAODhAUDg4OFBQODg4OFBEMDAwMDBERDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCABzAKADASIAAhEBAxEB/90ABAAK/8QBPwAAAQUBAQEBAQEAAAAAAAAAAwABAgQFBgcICQoLAQABBQEBAQEBAQAAAAAAAAABAAIDBAUGBwgJCgsQAAEEAQMCBAIFBwYIBQMMMwEAAhEDBCESMQVBUWETInGBMgYUkaGxQiMkFVLBYjM0coLRQwclklPw4fFjczUWorKDJkSTVGRFwqN0NhfSVeJl8rOEw9N14/NGJ5SkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2N0dXZ3eHl6e3x9fn9xEAAgIBAgQEAwQFBgcHBgU1AQACEQMhMRIEQVFhcSITBTKBkRShsUIjwVLR8DMkYuFygpJDUxVjczTxJQYWorKDByY1wtJEk1SjF2RFVTZ0ZeLys4TD03Xj80aUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9ic3R1dnd4eXp7fH/9oADAMBAAIRAxEAPwD02qhj6w98ku1EEgAdvowp/ZqfA/5zv/JJ8f8AmGf1QiJKRfZqfA/5zv8AySX2anwP+c7/AMkipJKRfZqfA/5zv/JJfZqfA/5zv/JIqSSkX2anwP8AnO/8kl9mp8D/AJzv/JIqSSkX2anwP+c7/wAkl9mp8D/nO/8AJIqSSkX2anwP+c7/AMkl9mp8D/nO/wDJIqSSkX2anwP+c7/ySX2anwP+c7/ySKkkpF9mp8D/AJzv/JJfZqfA/wCc7/ySKkkpF9mp8D/nO/8AJJfZqfA/5zv/ACSKkkpF9mp8D/nO/wDJKtmOrxTjgA/p7RTqSfpB7gfdP7ivLN6z9Lp//hyv/qbElP8A/9D1HH/mGf1QiIeP/MM/qhESUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKWb1n6XT//AA5X/wBTYtJZvWfpdP8A/Dlf/U2JKf/R9Rx/5hn9UIiHj/zDP6oRElKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSlm9Z+l0//wAOV/8AU2LSWb1n6XT/APw5X/1NiSn/0vUcf+YZ/VCIh4/8wz+qERJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpZvWfpdP/8ADlf/AFNi0lm9Z+l0/wD8OV/9TYkp/9P1HH/mGf1QiIeP/MM/qhESUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKWb1n6XT//AA5X/wBTYtJZvWfpdP8A/Dlf/U2JKf/U9Rx/5hn9UIiHj/zDP6oRElKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSlm9Z+l0//wAOV/8AU2LSWb1n6XT/APw5X/1NiSn/1fUcf+YZ/VCIg4z2OqDWuBcz2vAOoPg5GSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKWb1n6XT/wDw5X/1Ni0lldauqGT0vG3D1rcsPZXPuLKmW2XWbf8AR1t+m/8Al1/vpKf/1t/60ej+0G+r+x49MR9u9X7T/wCyv+B/c3rH/Uv/AKH/AP2bXkaSKn1z9S/+h/8A9m0v1L/6H/8A2bXkaSCn1z9S/wDof/8AZtL9S/8Aof8A/ZteRpJKfXP1L/6H/wD2bS/Uv/of/wDZteRpJKfXP1L/AOh//wBm0v1L/wCh/wD9m15Gkkp9c/Uv/of/APZtL9S/+h//ANm15Gkkp9c/Uv8A6H//AGbS/Uv/AKH/AP2bXkaSSn1z9S/+h/8A9m0v1L/6H/8A2bXkaSSn1z9S/wDof/8AZtL9S/8Aof8A/ZteRpJKfXP1L/6H/wD2bW19UvT+3ZPpfsfb6Qn9m+p9p+kP6T9p/SfZf/Ri8JSRU//Z/+IMWElDQ19QUk9GSUxFAAEBAAAMSExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQAAAAASUVDIHNSR0IAAAAAAAAAAAAAAAEAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAUYmtwdAAAAgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQAAABwZG1kZAAAAsQAAACIdnVlZAAAA0wAAACGdmlldwAAA9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAABAwAAAAkdGVjaAAABDAAAAAMclRSQwAABDwAAAgMZ1RSQwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5cmlnaHQgKGMpIDE5OTggSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAADzUQABAAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAAAABMCVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAAQ1JUIGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAARQBKAE8AVABZAF4AYwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcBDQETARkBHwElASsBMgE4AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHpAfIB+gIDAgwCFAIdAiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC4ALrAvUDAAMLAxYDIQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQtBDsESARVBGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWGBZYFpgW1BcUF1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysHPQdPB2EHdAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJEAklCToJTwlkCXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1ELaQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3eDfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJFEmQShBKjEsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYmFkkWbBaPFrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkgGUUZaxmRGbcZ3RoEGioaURp3Gp4axRrsGxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3DHeweFh5AHmoelB6+HukfEx8+H2kflB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwojOCNmI5QjwiPwJB8kTSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkGKTgpaymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYuTC6CLrcu7i8kL1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4M/E0KzRlNJ402DUTNU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76DwnPGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPARANER0SKRM5FEkVVRZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkviTCpMcky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1OqU/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0VblVvlXDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSUZOllPWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFqSGqfavdrT2una/9sV2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2+HdWd7N4EXhueMx5KnmJeed6RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZif6KZIrKizCLlov8jGOMyo0xjZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSKlPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg2KFHobaiJqKWowajdqPmpFakx6U4pammGqaLpv2nbqfgqFKoxKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6hrxavi7AAsHWw6rFgsdayS7LCszizrrQltJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796v/XAcMDswWfB48JfwtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf///+EPzmh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNC4xLWMwMzYgNDYuMjc2NzIwLCBNb24gRmViIDE5IDIwMDcgMjI6NDA6MDggICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6eGFwPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4YXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIiB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiBkYzpmb3JtYXQ9ImltYWdlL2pwZWciIHhhcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTMyBXaW5kb3dzIiB4YXA6Q3JlYXRlRGF0ZT0iMjAwOS0wMy0wM1QwOTo1OToyMi0wODowMCIgeGFwOk1vZGlmeURhdGU9IjIwMDktMDMtMDNUMDk6NTk6MjItMDg6MDAiIHhhcDpNZXRhZGF0YURhdGU9IjIwMDktMDMtMDNUMDk6NTk6MjItMDg6MDAiIHhhcE1NOkRvY3VtZW50SUQ9InV1aWQ6MENDMjlFMDYxRDA4REUxMTgwQzdGOTkxOUI0RDc5MUQiIHhhcE1NOkluc3RhbmNlSUQ9InV1aWQ6MERDMjlFMDYxRDA4REUxMTgwQzdGOTkxOUI0RDc5MUQiIHRpZmY6T3JpZW50YXRpb249IjEiIHRpZmY6WFJlc29sdXRpb249IjcyMDAwMC8xMDAwMCIgdGlmZjpZUmVzb2x1dGlvbj0iNzIwMDAwLzEwMDAwIiB0aWZmOlJlc29sdXRpb25Vbml0PSIyIiB0aWZmOk5hdGl2ZURpZ2VzdD0iMjU2LDI1NywyNTgsMjU5LDI2MiwyNzQsMjc3LDI4NCw1MzAsNTMxLDI4MiwyODMsMjk2LDMwMSwzMTgsMzE5LDUyOSw1MzIsMzA2LDI3MCwyNzEsMjcyLDMwNSwzMTUsMzM0MzI7NjBGMkU0MERGNDc5RDY0MUIzMUJGMjI0MUZFRDg1QUUiIGV4aWY6UGl4ZWxYRGltZW5zaW9uPSI1NTAiIGV4aWY6UGl4ZWxZRGltZW5zaW9uPSIzOTQiIGV4aWY6Q29sb3JTcGFjZT0iMSIgZXhpZjpOYXRpdmVEaWdlc3Q9IjM2ODY0LDQwOTYwLDQwOTYxLDM3MTIxLDM3MTIyLDQwOTYyLDQwOTYzLDM3NTEwLDQwOTY0LDM2ODY3LDM2ODY4LDMzNDM0LDMzNDM3LDM0ODUwLDM0ODUyLDM0ODU1LDM0ODU2LDM3Mzc3LDM3Mzc4LDM3Mzc5LDM3MzgwLDM3MzgxLDM3MzgyLDM3MzgzLDM3Mzg0LDM3Mzg1LDM3Mzg2LDM3Mzk2LDQxNDgzLDQxNDg0LDQxNDg2LDQxNDg3LDQxNDg4LDQxNDkyLDQxNDkzLDQxNDk1LDQxNzI4LDQxNzI5LDQxNzMwLDQxOTg1LDQxOTg2LDQxOTg3LDQxOTg4LDQxOTg5LDQxOTkwLDQxOTkxLDQxOTkyLDQxOTkzLDQxOTk0LDQxOTk1LDQxOTk2LDQyMDE2LDAsMiw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwyMCwyMiwyMywyNCwyNSwyNiwyNywyOCwzMDtEMUVBODhCRDlBMUNFNTJBQkZGRjg4OTYzQjgxQjU1MyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiBwaG90b3Nob3A6SGlzdG9yeT0iIj4gPHhhcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InV1aWQ6MDhBMERFMjgxNjA1REUxMTg0ODJGMEZFMUIxRDlEQUMiIHN0UmVmOmRvY3VtZW50SUQ9InV1aWQ6MDRBMERFMjgxNjA1REUxMTg0ODJGMEZFMUIxRDlEQUMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/Pv/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/AABEIACQAXwMBEQACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APsugAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9k="
         authority_id = authority_obj.search(self.cr, self.uid, [('name', '=', line.name),('indent_id', '=', indent.id),('state', '=', 'approve')])
         if authority_id:
-            return line.sign or "/9j/4AAQSkZJRgABAQEASABIAAD/7QyKUGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAccAgAAAgAAADhCSU0EJQAAAAAAEOjxXPMvwRihontnrcVk1bo4QklNA+0AAAAAABAASAAAAAEAAQBIAAAAAQABOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNBA0AAAAAAAQAAAB4OEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNBAoAAAAAAAEAADhCSU0nEAAAAAAACgABAAAAAAAAAAI4QklNA/UAAAAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEAL2ZmAAEAoZmaAAYAAAAAAAEAMgAAAAEAWgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklNA/gAAAAAAHAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAOEJJTQQAAAAAAAACAAI4QklNBAIAAAAAAAYAAAAAAAA4QklNBDAAAAAAAAMBAQEAOEJJTQQtAAAAAAAGAAEAAAAGOEJJTQQIAAAAAAAQAAAAAQAAAkAAAAJAAAAAADhCSU0EHgAAAAAABAAAAAA4QklNBBoAAAAAA2cAAAAGAAAAAAAAAAAAAAGKAAACJgAAABkAVwBoAGkAdABlACAAQgBhAGMAawBnAHIAbwB1AG4AZAAgAFQAZQBtAHAAbABhAHQAZQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAACJgAAAYoAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAG51bGwAAAACAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAAYoAAAAAUmdodGxvbmcAAAImAAAABnNsaWNlc1ZsTHMAAAABT2JqYwAAAAEAAAAAAAVzbGljZQAAABIAAAAHc2xpY2VJRGxvbmcAAAAAAAAAB2dyb3VwSURsb25n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Osm5yjjKt8s2y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf///+EPzmh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNC4xLWMwMzYgNDYuMjc2NzIwLCBNb24gRmViIDE5IDIwMDcgMjI6NDA6MDggICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6eGFwPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4YXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIiB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiBkYzpmb3JtYXQ9ImltYWdlL2pwZWciIHhhcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTMyBXaW5kb3dzIiB4YXA6Q3JlYXRlRGF0ZT0iMjAwOS0wMy0wM1QwOTo1OToyMi0wODowMCIgeGFwOk1vZGlmeURhdGU9IjIwMDktMDMtMDNUMDk6NTk6MjItMDg6MDAiIHhhcDpNZXRhZGF0YURhdGU9IjIwMDktMDMtMDNUMDk6NTk6MjItMDg6MDAiIHhhcE1NOkRvY3VtZW50SUQ9InV1aWQ6MENDMjlFMDYxRDA4REUxMTgwQzdGOTkxOUI0RDc5MUQiIHhhcE1NOkluc3RhbmNlSUQ9InV1aWQ6MERDMjlFMDYxRDA4REUxMTgwQzdGOTkxOUI0RDc5MUQiIHRpZmY6T3JpZW50YXRpb249IjEiIHRpZmY6WFJlc29sdXRpb249IjcyMDAwMC8xMDAwMCIgdGlmZjpZUmVzb2x1dGlvbj0iNzIwMDAwLzEwMDAwIiB0aWZmOlJlc29sdXRpb25Vbml0PSIyIiB0aWZmOk5hdGl2ZURpZ2VzdD0iMjU2LDI1NywyNTgsMjU5LDI2MiwyNzQsMjc3LDI4NCw1MzAsNTMxLDI4MiwyODMsMjk2LDMwMSwzMTgsMzE5LDUyOSw1MzIsMzA2LDI3MCwyNzEsMjcyLDMwNSwzMTUsMzM0MzI7NjBGMkU0MERGNDc5RDY0MUIzMUJGMjI0MUZFRDg1QUUiIGV4aWY6UGl4ZWxYRGltZW5zaW9uPSI1NTAiIGV4aWY6UGl4ZWxZRGltZW5zaW9uPSIzOTQiIGV4aWY6Q29sb3JTcGFjZT0iMSIgZXhpZjpOYXRpdmVEaWdlc3Q9IjM2ODY0LDQwOTYwLDQwOTYxLDM3MTIxLDM3MTIyLDQwOTYyLDQwOTYzLDM3NTEwLDQwOTY0LDM2ODY3LDM2ODY4LDMzNDM0LDMzNDM3LDM0ODUwLDM0ODUyLDM0ODU1LDM0ODU2LDM3Mzc3LDM3Mzc4LDM3Mzc5LDM3MzgwLDM3MzgxLDM3MzgyLDM3MzgzLDM3Mzg0LDM3Mzg1LDM3Mzg2LDM3Mzk2LDQxNDgzLDQxNDg0LDQxNDg2LDQxNDg3LDQxNDg4LDQxNDkyLDQxNDkzLDQxNDk1LDQxNzI4LDQxNzI5LDQxNzMwLDQxOTg1LDQxOTg2LDQxOTg3LDQxOTg4LDQxOTg5LDQxOTkwLDQxOTkxLDQxOTkyLDQxOTkzLDQxOTk0LDQxOTk1LDQxOTk2LDQyMDE2LDAsMiw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwyMCwyMiwyMywyNCwyNSwyNiwyNywyOCwzMDtEMUVBODhCRDlBMUNFNTJBQkZGRjg4OTYzQjgxQjU1MyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiBwaG90b3Nob3A6SGlzdG9yeT0iIj4gPHhhcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InV1aWQ6MDhBMERFMjgxNjA1REUxMTg0ODJGMEZFMUIxRDlEQUMiIHN0UmVmOmRvY3VtZW50SUQ9InV1aWQ6MDRBMERFMjgxNjA1REUxMTg0ODJGMEZFMUIxRDlEQUMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/Pv/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/AABEIACQAXwMBEQACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APsugAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9k="
-        return "/9j/4AAQSkZJRgABAQEASABIAAD/7QyKUGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAccAgAAAgAAADhCSU0EJQAAAAAAEOjxXPMvwRihontnrcVk1bo4QklNA+0AAAAAABAASAAAAAEAAQBIAAAAAQABOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNBA0AAAAAAAQAAAB4OEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNBAoAAAAAAAEAADhCSU0nEAAAAAAACgABAAAAAAAAAAI4QklNA/UAAAAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEAL2ZmAAEAoZmaAAYAAAAAAAEAMgAAAAEAWgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklNA/gAAAAAAHAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAOEJJTQQAAAAAAAACAAI4QklNBAIAAAAAAAYAAAAAAAA4QklNBDAAAAAAAAMBAQEAOEJJTQQtAAAAAAAGAAEAAAAGOEJJTQQIAAAAAAAQAAAAAQAAAkAAAAJAAAAAADhCSU0EHgAAAAAABAAAAAA4QklNBBoAAAAAA2cAAAAGAAAAAAAAAAAAAAGKAAACJgAAABkAVwBoAGkAdABlACAAQgBhAGMAawBnAHIAbwB1AG4AZAAgAFQAZQBtAHAAbABhAHQAZQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAACJgAAAYoAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAG51bGwAAAACAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAAYoAAAAAUmdodGxvbmcAAAImAAAABnNsaWNlc1ZsTHMAAAABT2JqYwAAAAEAAAAAAAVzbGljZQAAABIAAAAHc2xpY2VJRGxvbmcAAAAAAAAAB2dyb3VwSURsb25n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Osm5yjjKt8s2y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf///+EPzmh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNC4xLWMwMzYgNDYuMjc2NzIwLCBNb24gRmViIDE5IDIwMDcgMjI6NDA6MDggICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6eGFwPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4YXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIiB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiBkYzpmb3JtYXQ9ImltYWdlL2pwZWciIHhhcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTMyBXaW5kb3dzIiB4YXA6Q3JlYXRlRGF0ZT0iMjAwOS0wMy0wM1QwOTo1OToyMi0wODowMCIgeGFwOk1vZGlmeURhdGU9IjIwMDktMDMtMDNUMDk6NTk6MjItMDg6MDAiIHhhcDpNZXRhZGF0YURhdGU9IjIwMDktMDMtMDNUMDk6NTk6MjItMDg6MDAiIHhhcE1NOkRvY3VtZW50SUQ9InV1aWQ6MENDMjlFMDYxRDA4REUxMTgwQzdGOTkxOUI0RDc5MUQiIHhhcE1NOkluc3RhbmNlSUQ9InV1aWQ6MERDMjlFMDYxRDA4REUxMTgwQzdGOTkxOUI0RDc5MUQiIHRpZmY6T3JpZW50YXRpb249IjEiIHRpZmY6WFJlc29sdXRpb249IjcyMDAwMC8xMDAwMCIgdGlmZjpZUmVzb2x1dGlvbj0iNzIwMDAwLzEwMDAwIiB0aWZmOlJlc29sdXRpb25Vbml0PSIyIiB0aWZmOk5hdGl2ZURpZ2VzdD0iMjU2LDI1NywyNTgsMjU5LDI2MiwyNzQsMjc3LDI4NCw1MzAsNTMxLDI4MiwyODMsMjk2LDMwMSwzMTgsMzE5LDUyOSw1MzIsMzA2LDI3MCwyNzEsMjcyLDMwNSwzMTUsMzM0MzI7NjBGMkU0MERGNDc5RDY0MUIzMUJGMjI0MUZFRDg1QUUiIGV4aWY6UGl4ZWxYRGltZW5zaW9uPSI1NTAiIGV4aWY6UGl4ZWxZRGltZW5zaW9uPSIzOTQiIGV4aWY6Q29sb3JTcGFjZT0iMSIgZXhpZjpOYXRpdmVEaWdlc3Q9IjM2ODY0LDQwOTYwLDQwOTYxLDM3MTIxLDM3MTIyLDQwOTYyLDQwOTYzLDM3NTEwLDQwOTY0LDM2ODY3LDM2ODY4LDMzNDM0LDMzNDM3LDM0ODUwLDM0ODUyLDM0ODU1LDM0ODU2LDM3Mzc3LDM3Mzc4LDM3Mzc5LDM3MzgwLDM3MzgxLDM3MzgyLDM3MzgzLDM3Mzg0LDM3Mzg1LDM3Mzg2LDM3Mzk2LDQxNDgzLDQxNDg0LDQxNDg2LDQxNDg3LDQxNDg4LDQxNDkyLDQxNDkzLDQxNDk1LDQxNzI4LDQxNzI5LDQxNzMwLDQxOTg1LDQxOTg2LDQxOTg3LDQxOTg4LDQxOTg5LDQxOTkwLDQxOTkxLDQxOTkyLDQxOTkzLDQxOTk0LDQxOTk1LDQxOTk2LDQyMDE2LDAsMiw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwyMCwyMiwyMywyNCwyNSwyNiwyNywyOCwzMDtEMUVBODhCRDlBMUNFNTJBQkZGRjg4OTYzQjgxQjU1MyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiBwaG90b3Nob3A6SGlzdG9yeT0iIj4gPHhhcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InV1aWQ6MDhBMERFMjgxNjA1REUxMTg0ODJGMEZFMUIxRDlEQUMiIHN0UmVmOmRvY3VtZW50SUQ9InV1aWQ6MDRBMERFMjgxNjA1REUxMTg0ODJGMEZFMUIxRDlEQUMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/Pv/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/AABEIACQAXwMBEQACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APsugAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9k="
+            return line.sign or image
+        return image
+    
+    def _authority_sign(self, line, indent):
+        image = "/9j/4AAQSkZJRgABAQEASABIAAD/7QyKUGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAccAgAAAgAAADhCSU0EJQAAAAAAEOjxXPMvwRihontnrcVk1bo4QklNA+0AAAAAABAASAAAAAEAAQBIAAAAAQABOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNBA0AAAAAAAQAAAB4OEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNBAoAAAAAAAEAADhCSU0nEAAAAAAACgABAAAAAAAAAAI4QklNA/UAAAAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEAL2ZmAAEAoZmaAAYAAAAAAAEAMgAAAAEAWgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklNA/gAAAAAAHAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAOEJJTQQAAAAAAAACAAI4QklNBAIAAAAAAAYAAAAAAAA4QklNBDAAAAAAAAMBAQEAOEJJTQQtAAAAAAAGAAEAAAAGOEJJTQQIAAAAAAAQAAAAAQAAAkAAAAJAAAAAADhCSU0EHgAAAAAABAAAAAA4QklNBBoAAAAAA2cAAAAGAAAAAAAAAAAAAAGKAAACJgAAABkAVwBoAGkAdABlACAAQgBhAGMAawBnAHIAbwB1AG4AZAAgAFQAZQBtAHAAbABhAHQAZQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAACJgAAAYoAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAG51bGwAAAACAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAAYoAAAAAUmdodGxvbmcAAAImAAAABnNsaWNlc1ZsTHMAAAABT2JqYwAAAAEAAAAAAAVzbGljZQAAABIAAAAHc2xpY2VJRGxvbmcAAAAAAAAAB2dyb3VwSURsb25n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Osm5yjjKt8s2y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf///+EPzmh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNC4xLWMwMzYgNDYuMjc2NzIwLCBNb24gRmViIDE5IDIwMDcgMjI6NDA6MDggICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6eGFwPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4YXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIiB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiBkYzpmb3JtYXQ9ImltYWdlL2pwZWciIHhhcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTMyBXaW5kb3dzIiB4YXA6Q3JlYXRlRGF0ZT0iMjAwOS0wMy0wM1QwOTo1OToyMi0wODowMCIgeGFwOk1vZGlmeURhdGU9IjIwMDktMDMtMDNUMDk6NTk6MjItMDg6MDAiIHhhcDpNZXRhZGF0YURhdGU9IjIwMDktMDMtMDNUMDk6NTk6MjItMDg6MDAiIHhhcE1NOkRvY3VtZW50SUQ9InV1aWQ6MENDMjlFMDYxRDA4REUxMTgwQzdGOTkxOUI0RDc5MUQiIHhhcE1NOkluc3RhbmNlSUQ9InV1aWQ6MERDMjlFMDYxRDA4REUxMTgwQzdGOTkxOUI0RDc5MUQiIHRpZmY6T3JpZW50YXRpb249IjEiIHRpZmY6WFJlc29sdXRpb249IjcyMDAwMC8xMDAwMCIgdGlmZjpZUmVzb2x1dGlvbj0iNzIwMDAwLzEwMDAwIiB0aWZmOlJlc29sdXRpb25Vbml0PSIyIiB0aWZmOk5hdGl2ZURpZ2VzdD0iMjU2LDI1NywyNTgsMjU5LDI2MiwyNzQsMjc3LDI4NCw1MzAsNTMxLDI4MiwyODMsMjk2LDMwMSwzMTgsMzE5LDUyOSw1MzIsMzA2LDI3MCwyNzEsMjcyLDMwNSwzMTUsMzM0MzI7NjBGMkU0MERGNDc5RDY0MUIzMUJGMjI0MUZFRDg1QUUiIGV4aWY6UGl4ZWxYRGltZW5zaW9uPSI1NTAiIGV4aWY6UGl4ZWxZRGltZW5zaW9uPSIzOTQiIGV4aWY6Q29sb3JTcGFjZT0iMSIgZXhpZjpOYXRpdmVEaWdlc3Q9IjM2ODY0LDQwOTYwLDQwOTYxLDM3MTIxLDM3MTIyLDQwOTYyLDQwOTYzLDM3NTEwLDQwOTY0LDM2ODY3LDM2ODY4LDMzNDM0LDMzNDM3LDM0ODUwLDM0ODUyLDM0ODU1LDM0ODU2LDM3Mzc3LDM3Mzc4LDM3Mzc5LDM3MzgwLDM3MzgxLDM3MzgyLDM3MzgzLDM3Mzg0LDM3Mzg1LDM3Mzg2LDM3Mzk2LDQxNDgzLDQxNDg0LDQxNDg2LDQxNDg3LDQxNDg4LDQxNDkyLDQxNDkzLDQxNDk1LDQxNzI4LDQxNzI5LDQxNzMwLDQxOTg1LDQxOTg2LDQxOTg3LDQxOTg4LDQxOTg5LDQxOTkwLDQxOTkxLDQxOTkyLDQxOTkzLDQxOTk0LDQxOTk1LDQxOTk2LDQyMDE2LDAsMiw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwyMCwyMiwyMywyNCwyNSwyNiwyNywyOCwzMDtEMUVBODhCRDlBMUNFNTJBQkZGRjg4OTYzQjgxQjU1MyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiBwaG90b3Nob3A6SGlzdG9yeT0iIj4gPHhhcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InV1aWQ6MDhBMERFMjgxNjA1REUxMTg0ODJGMEZFMUIxRDlEQUMiIHN0UmVmOmRvY3VtZW50SUQ9InV1aWQ6MDRBMERFMjgxNjA1REUxMTg0ODJGMEZFMUIxRDlEQUMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/Pv/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/AABEIACQAXwMBEQACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APsugAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9k="
+        if len(line) != 0 :
+            number = 0
+            authority_obj = self.pool.get('document.authority.instance')
+            for authority in line:
+                authority_id = authority_obj.search(self.cr, self.uid, [('name', '=', authority.name.name),('indent_id', '=', indent.id),('state', '=', 'approve')])
+                if authority_id:
+                    self.get_value.update({number: authority.name.sign or image})
+                    number+=1
+                else:
+                    self.get_value.update({number: image})
+                    number+=1
+        return ''
     
     def _qty(self, qty):
         return int(qty)
@@ -86,6 +117,7 @@
         stock_obj = self.pool.get('stock.move')
         stock_id = stock_obj.search(self.cr, self.uid, [('product_id', '=', product_id.id), ('type', '=', 'internal'),('state', '=', 'done'), ('create_date', '<=', date)])
         stock_id = sorted(stock_id,reverse=True)
+        self.get_value.update({'date':'','department':''})
         if stock_id and len(stock_id) >= 2:
             pick = stock_obj.browse(self.cr, self.uid, stock_id[1])
             self.get_value.update({'date': pick.picking_id.date.split(' ')[0], 'department' : pick.location_dest_id.name})
@@ -147,7 +179,7 @@
     def _last_supplier_code_name(self, id):
         code = ''
         if id:
-            code = (id.ref or '')+' '+ id.name or ''
+            code = ('['+id.supp_code+']'or '')+' '+ id.name or ''
         return code
 
 report_sxw.report_sxw('report.indent.indent','indent.indent','addons/indent/report/indent.rml',parser=indent, header=False)

=== modified file 'indent/report/indent.rml'
--- indent/report/indent.rml	2013-04-09 05:15:45 +0000
+++ indent/report/indent.rml	2013-06-14 04:50:36 +0000
@@ -2,7 +2,10 @@
 <document filename="indent.pdf">
   <template pageSize="(842.0,595.0)" title="Indent" author="Martin Simon" allowSplitting="20">
     <pageTemplate id="first">
-      <frame id="first" x1="1.0" y1="1.0" width="840" height="525"/>
+      <frame id="first" x1="1.0" y1="1.0" width="840" height="595"/>
+      <pageGraphics>
+          <drawString x="27.0cm" y="20.5cm">Page <pageNumber/></drawString>
+      </pageGraphics>
     </pageTemplate>
   </template>
   <stylesheet>
@@ -13,9 +16,6 @@
     <blockTableStyle id="Table1">
       <blockAlignment value="LEFT"/>
       <blockValign value="TOP"/>
-      <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
-      <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
-      <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
     </blockTableStyle>
     <blockTableStyle id="Table3">
       <blockAlignment value="LEFT"/>
@@ -146,7 +146,7 @@
     </initialize>
     <paraStyle name="P1" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
     <paraStyle name="Standard" fontName="Helvetica"/>
-    <paraStyle name="Text body" fontName="Helveti>ca" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
     <paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
     <paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
     <paraStyle name="Table Contents" fontName="Helvetica"/>
@@ -187,6 +187,55 @@
     <para style="terp_default_9">[[repeatIn(objects,'order')]]</para>
     <para style="terp_default_8">[[ setLang(order.indentor_id.lang) ]]</para>
     <pto_header>
+    <para style="terp_tblheader_Details_Centre"> [[ order.company_id.name or removeParentNode('para')]]-INDENT</para>
+    <para style="Table Heading"> [[ order.company_id.street or removeParentNode('para')]] </para>
+    <para style="Table Heading"> [[ order.company_id.street2 or '']] <font color="black"> ,</font> [[ order.company_id.city or '']] <font color="black"> - </font>[[ order.company_id.zip or removeParentNode('para')]] </para>
+    <blockTable colWidths="200.0,10.0,600.0" style="Table1">
+    <tr>
+        <td>
+            <para style="P1"> TO : </para>
+            <para style="P1"> THE PURCHASE OFFICER, </para>
+        </td>
+        <td>
+        </td>
+        <td>
+            <blockTable colWidths="80.0,260.0,10.0,70.0,180.0" style="Table9">
+            <tr>
+                <td>
+                    <para style="P1">Indent No </para>
+                    <para style="P1">Indentor Code </para>
+                    <para style="P1">Indentor Dept </para>
+                    <para style="P1">Department </para>
+                    <para style="P1">Project <font color="white">[[ project_name(order.analytic_account_id)  or removeParentNode('para')]]  [[removeParentNode('font')]]</font></para>
+                </td>
+                <td>
+                    <para style="P1"> : [[indent_no(order.name) or removeParentNode('para')]]</para>
+                    <para style="P1"> : [[(order.indentor_id and order.indentor_id.user_code) or False]] </para>
+                    <para style="P1"> : [[ (order.employee_department_id.name) or False ]] </para>
+                    <para style="P1"> : [[(order.department_id and order.department_id.name) or False]] </para>
+                    <para style="P1"> : [[ project_name(order.analytic_account_id) or removeParentNode('para')]] </para>
+                </td>
+                <td>
+                </td>
+                <td>
+                    <para style="P1">Indent Date </para>
+                    <para style="P1">Indentor </para>
+                    <para style="P1">Indent Type </para>
+                    <para style="P1">Print Date </para>
+                </td>
+                <td>
+                    <para style="P1"> : [[formatLang(order.indent_date, date = True) or removeParentNode('para')]] </para>
+                    <para style="P1"> : [[(order.indentor_id and order.indentor_id.name) or removeParentNode('para')]] </para>
+                    <para style="P1"> : [[(order.type) or removeParentNode('para')]] </para>
+                    <para style="P1"> : [[time.strftime('%d/%m/%y') or removeParentNode('para')]] </para>
+                </td>
+            </tr>
+            </blockTable>
+        </td>
+    </tr>
+    </blockTable>
+    <para style="P1"> KINDLY ARRANGE TO PROCURE THE FOLLOWING MATERIALS AS PER GIVEN SCHEDULE.</para>
+    <para style="P1"> <font color="white"> </font> </para>
     <blockTable colWidths="15.0,195.0,40.0,40.0,50.0,60.0,90.0,50.0,90.0,70.0,70.0,50.0" style="Table_Product_Header_Title">
       <tr>
         <td>
@@ -231,34 +280,64 @@
       </tr>
     </blockTable>
     </pto_header>
-    <blockTable colWidths="480.0,100.0,240.0" style="Table1">
+    <para style="terp_tblheader_Details_Centre"> [[ order.company_id.name or removeParentNode('para')]]-INDENT</para>
+    <para style="Table Heading"> [[ order.company_id.street or removeParentNode('para')]] </para>
+    <para style="Table Heading"> [[ order.company_id.street2 or '']] <font color="black"> ,</font> [[ order.company_id.city or '']] <font color="black"> - </font>[[ order.company_id.zip or removeParentNode('para')]] </para>
+    <blockTable colWidths="200.0,10.0,600.0" style="Table1">
     <tr>
         <td>
             <para style="P1"> TO : </para>
             <para style="P1"> THE PURCHASE OFFICER, </para>
-            <para style="P1"> <font color="white"> </font> </para>
-            <para style="P1"> <font color="white"> </font> </para>
-            <para style="P1"> <font color="white"> </font> </para>
-            <para style="P1"> <font color="white"> </font> </para>
-            <para style="P1"> <font color="white"> </font> </para>
-            <para style="P1"> KINDLY ARRANGE TO PROCURE THE FOLLOWING MATERIALS AS PER GIVEN SCHEDULE.</para>
-            <para style="P1"> <font color="white"> </font> </para>
-        </td>
-        <td>
-        </td>
-        <td>
-            <para style="P1">Indent No : [[indent_no(order.name) or False]] </para>
+        </td>
+        <td>
+        </td>
+        <td>
+            <blockTable colWidths="80.0,260.0,10.0,70.0,180.0" style="Table9">
+            <tr>
+                <td>
+                    <para style="P1">Indent No </para>
+                    <para style="P1">Indentor Code </para>
+                    <para style="P1">Indentor Dept </para>
+                    <para style="P1">Department </para>
+                    <para style="P1">Project <font color="white">[[ project_name(order.analytic_account_id)  or removeParentNode('para')]] [[removeParentNode('font')]]</font></para>
+                </td>
+                <td>
+                    <para style="P1"> : [[indent_no(order.name) or removeParentNode('para')]]</para>
+                    <para style="P1"> : [[(order.indentor_id and order.indentor_id.user_code) or False]] </para>
+                    <para style="P1"> : [[ (order.employee_department_id.name) or False]] </para>
+                    <para style="P1"> : [[(order.department_id and order.department_id.name) or False]] </para>
+                    <para style="P1"> : [[ project_name(order.analytic_account_id) or removeParentNode('para')]] </para>
+                </td>
+                <td>
+                </td>
+                <td>
+                    <para style="P1">Indent Date </para>
+                    <para style="P1">Indentor </para>
+                    <para style="P1">Indent Type </para>
+                    <para style="P1">Print Date </para>
+                </td>
+                <td>
+                    <para style="P1"> : [[formatLang(order.indent_date, date = True) or removeParentNode('para')]] </para>
+                    <para style="P1"> : [[(order.indentor_id and order.indentor_id.name) or removeParentNode('para')]] </para>
+                    <para style="P1"> : [[(order.type) or removeParentNode('para')]] </para>
+                    <para style="P1"> : [[time.strftime('%d/%m/%y') or removeParentNode('para')]] </para>
+                </td>
+            </tr>
+            <!--para style="P1">Indent No : [[indent_no(order.name) or False]] Indent Date: [[formatLang(order.indent_date, date = True) or False]]</para>
             <para style="P1">Indent Date: [[formatLang(order.indent_date, date = True) or False]] </para>
-            <para style="P1">Indentor Code : [[(order.indentor_id and order.indentor_id.user_code) or False]] </para>
-            <para style="P1">Indentor : [[(order.indentor_id and order.indentor_id.name) or False]] </para>
-            <para style="P1">Indentor Dept : [[ (order.employee_department_id.name) ]] </para>
+            <para style="P1">Indentor Code : [[(order.indentor_id and order.indentor_id.user_code) or False]] Indentor : [[(order.indentor_id and order.indentor_id.name) or False]] </para>
+            <para style="P1"></para>
+            <para style="P1">Indentor Dept : [[ (order.employee_department_id.name) ]] Indent Type: [[(order.type) or False]] </para>
             <para style="P1">Indent Type: [[(order.type) or False]] </para>
-            <para style="P1">Department : [[(order.department_id and order.department_id.name) or False]]</para>
+            <para style="P1">Department : [[(order.department_id and order.department_id.name) or False]] [[ project_name(order.analytic_account_id) or False]] </para>
             <para style="P1">Project  : [[ project_name(order.analytic_account_id) or False]] </para>
-            <para style="P1">Print Date: [[formatLang(order.indent_date, date = True) or False]] </para>
+            <para style="P1">Print Date: [[formatLang(order.indent_date, date = True) or False]] </para-->
+            </blockTable>
         </td>
     </tr>
     </blockTable>
+    <para style="P1"> KINDLY ARRANGE TO PROCURE THE FOLLOWING MATERIALS AS PER GIVEN SCHEDULE.</para>
+    <para style="P1"> <font color="white"> </font> </para>
     <blockTable colWidths="15.0,195.0,40.0,40.0,50.0,60.0,90.0,50.0,90.0,70.0,70.0,50.0" style="Table_Product_Header_Title">
       <tr>
         <td>
@@ -312,8 +391,11 @@
           <td>
             <para style="terp_default_9">[[ (order_line.product_id and order_line.product_id.default_code) or '' ]]</para>
             <para style="terp_default_9">[[ (order_line.product_id and order_line.product_id.name) or '' ]]</para>
-            <para style="terp_default_9">Purpose: [[ (order_line.name) or '']] </para>
-            <para style="terp_default_9">Specification: [[ (order_line.specification) or '' ]]</para>
+            <para style="terp_default_9">[[ (order_line.product_id and order_line.product_id.desc2) or '' ]]</para>
+            <para style="terp_default_9">[[ (order_line.product_id and order_line.product_id.desc3) or '' ]]</para>
+            <para style="terp_default_9">[[ (order_line.product_id and order_line.product_id.desc4) or '' ]]</para>
+            <!--para style="terp_default_9">Purpose: [[ (order_line.name) or '']] </para-->
+            <!--para style="terp_default_9">Specification: [[ (order_line.specification) or '' ]]</para-->
           </td>
           <td>
             <para style="terp_default_9"> [[ (order_line.product_id and order_line.product_id.uom_id.name) or '' ]]</para>
@@ -328,6 +410,7 @@
             <para style="terp_default_Centre_9">[[  formatLang(order.required_date, date = True) or '']]</para>
           </td>
           <td>
+            <para style="terp_default_Centre_9">Rate: [[ (order_line.product_id.last_supplier_rate) or '0.0']]</para>
             <para style="terp_default_Left_9">Service: [[ check_tax(order_line.product_id.last_po_no and order_line.product_id.last_po_no.id, order_line.product_id.id).get('service') or removeParentNode('para')]] %</para>
             <para style="terp_default_Left_9">Excise: [[ get_value().get('excise') or removeParentNode('para')]] %</para>
             <para style="terp_default_Left_9">VAT: [[ get_value().get('vat') or removeParentNode('para')]]%</para>
@@ -339,7 +422,7 @@
             <para style="terp_default_Centre_9">[[ (order_line.product_uom_qty * order_line.product_id.last_supplier_rate) or '0.0']]</para>
           </td>
           <td>
-            <para style="terp_default_Centre_9">[[  last_supplier((order_line.product_id and (order_line.product_id.last_po_no and order_line.product_id.last_po_no.partner_id))) or False]]</para>
+            <para style="terp_default_Centre_9">[[  last_supplier((order_line.product_id and (order_line.product_id.last_supplier_code))) or '']]</para>
           </td>
           <td>
             <para style="terp_default_Centre_9"> [[ last_consumption_qty(order_line.product_id).get('last_year_qty') or '0']] </para>
@@ -409,9 +492,9 @@
                 <para style="terp_default_9"> MANAGER(PROJECT TECH &amp; PLANNING) </para>
             </td>
             <td>
-                <para style="terp_default_9"> <font color="white"> </font> </para>
-                <para style="terp_default_9"> <font color="white"> </font> </para>
-                <image x="14.0cm" y="27.6cm" height="30.0" width="100">[[ sign( order.indent_authority_ids[0].name, order) ]]</image>
+                <para style="terp_default_9"> <font color="white"> [[ authority_sign( order.indent_authority_ids, order) ]]  </font> </para>
+                <para style="terp_default_9"> <font color="white"> </font> </para>
+                <image x="14.0cm" y="27.6cm" height="30.0" width="100">  [[ get_value().get(1,"/9j/4AAQSkZJRgABAQEASABIAAD/7QyKUGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAccAgAAAgAAADhCSU0EJQAAAAAAEOjxXPMvwRihontnrcVk1bo4QklNA+0AAAAAABAASAAAAAEAAQBIAAAAAQABOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNBA0AAAAAAAQAAAB4OEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNBAoAAAAAAAEAADhCSU0nEAAAAAAACgABAAAAAAAAAAI4QklNA/UAAAAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEAL2ZmAAEAoZmaAAYAAAAAAAEAMgAAAAEAWgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklNA/gAAAAAAHAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAOEJJTQQAAAAAAAACAAI4QklNBAIAAAAAAAYAAAAAAAA4QklNBDAAAAAAAAMBAQEAOEJJTQQtAAAAAAAGAAEAAAAGOEJJTQQIAAAAAAAQAAAAAQAAAkAAAAJAAAAAADhCSU0EHgAAAAAABAAAAAA4QklNBBoAAAAAA2cAAAAGAAAAAAAAAAAAAAGKAAACJgAAABkAVwBoAGkAdABlACAAQgBhAGMAawBnAHIAbwB1AG4AZAAgAFQAZQBtAHAAbABhAHQAZQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAACJgAAAYoAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAG51bGwAAAACAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAAYoAAAAAUmdodGxvbmcAAAImAAAABnNsaWNlc1ZsTHMAAAABT2JqYwAAAAEAAAAAAAVzbGljZQAAABIAAAAHc2xpY2VJRGxvbmcAAAAAAAAAB2dyb3VwSURsb25n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Osm5yjjKt8s2y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf///+EPzmh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNC4xLWMwMzYgNDYuMjc2NzIwLCBNb24gRmViIDE5IDIwMDcgMjI6NDA6MDggICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6eGFwPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4YXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIiB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiBkYzpmb3JtYXQ9ImltYWdlL2pwZWciIHhhcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTMyBXaW5kb3dzIiB4YXA6Q3JlYXRlRGF0ZT0iMjAwOS0wMy0wM1QwOTo1OToyMi0wODowMCIgeGFwOk1vZGlmeURhdGU9IjIwMDktMDMtMDNUMDk6NTk6MjItMDg6MDAiIHhhcDpNZXRhZGF0YURhdGU9IjIwMDktMDMtMDNUMDk6NTk6MjItMDg6MDAiIHhhcE1NOkRvY3VtZW50SUQ9InV1aWQ6MENDMjlFMDYxRDA4REUxMTgwQzdGOTkxOUI0RDc5MUQiIHhhcE1NOkluc3RhbmNlSUQ9InV1aWQ6MERDMjlFMDYxRDA4REUxMTgwQzdGOTkxOUI0RDc5MUQiIHRpZmY6T3JpZW50YXRpb249IjEiIHRpZmY6WFJlc29sdXRpb249IjcyMDAwMC8xMDAwMCIgdGlmZjpZUmVzb2x1dGlvbj0iNzIwMDAwLzEwMDAwIiB0aWZmOlJlc29sdXRpb25Vbml0PSIyIiB0aWZmOk5hdGl2ZURpZ2VzdD0iMjU2LDI1NywyNTgsMjU5LDI2MiwyNzQsMjc3LDI4NCw1MzAsNTMxLDI4MiwyODMsMjk2LDMwMSwzMTgsMzE5LDUyOSw1MzIsMzA2LDI3MCwyNzEsMjcyLDMwNSwzMTUsMzM0MzI7NjBGMkU0MERGNDc5RDY0MUIzMUJGMjI0MUZFRDg1QUUiIGV4aWY6UGl4ZWxYRGltZW5zaW9uPSI1NTAiIGV4aWY6UGl4ZWxZRGltZW5zaW9uPSIzOTQiIGV4aWY6Q29sb3JTcGFjZT0iMSIgZXhpZjpOYXRpdmVEaWdlc3Q9IjM2ODY0LDQwOTYwLDQwOTYxLDM3MTIxLDM3MTIyLDQwOTYyLDQwOTYzLDM3NTEwLDQwOTY0LDM2ODY3LDM2ODY4LDMzNDM0LDMzNDM3LDM0ODUwLDM0ODUyLDM0ODU1LDM0ODU2LDM3Mzc3LDM3Mzc4LDM3Mzc5LDM3MzgwLDM3MzgxLDM3MzgyLDM3MzgzLDM3Mzg0LDM3Mzg1LDM3Mzg2LDM3Mzk2LDQxNDgzLDQxNDg0LDQxNDg2LDQxNDg3LDQxNDg4LDQxNDkyLDQxNDkzLDQxNDk1LDQxNzI4LDQxNzI5LDQxNzMwLDQxOTg1LDQxOTg2LDQxOTg3LDQxOTg4LDQxOTg5LDQxOTkwLDQxOTkxLDQxOTkyLDQxOTkzLDQxOTk0LDQxOTk1LDQxOTk2LDQyMDE2LDAsMiw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwyMCwyMiwyMywyNCwyNSwyNiwyNywyOCwzMDtEMUVBODhCRDlBMUNFNTJBQkZGRjg4OTYzQjgxQjU1MyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiBwaG90b3Nob3A6SGlzdG9yeT0iIj4gPHhhcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InV1aWQ6MDhBMERFMjgxNjA1REUxMTg0ODJGMEZFMUIxRDlEQUMiIHN0UmVmOmRvY3VtZW50SUQ9InV1aWQ6MDRBMERFMjgxNjA1REUxMTg0ODJGMEZFMUIxRDlEQUMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/Pv/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/AABEIACQAXwMBEQACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APsugAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9k=")]]</image>
                 <para style="terp_default_9"> <font color="white"> </font> </para>
                 <para style="terp_default_9"> <font color="white"> </font> </para>
                 <para style="terp_default_9"> MANAGER(MAINTENANCE)</para>
@@ -419,7 +502,7 @@
             <td>
                 <para style="terp_default_9"> <font color="white"> </font> </para>
                 <para style="terp_default_9"> <font color="white"> </font> </para>
-                <image x="14.0cm" y="27.6cm" height="30.0" width="100">[[ sign( order.indent_authority_ids[1].name, order) ]]</image>
+                <image x="14.0cm" y="27.6cm" height="30.0" width="100">  [[ get_value().get(0,"/9j/4AAQSkZJRgABAQEASABIAAD/7QyKUGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAccAgAAAgAAADhCSU0EJQAAAAAAEOjxXPMvwRihontnrcVk1bo4QklNA+0AAAAAABAASAAAAAEAAQBIAAAAAQABOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNBA0AAAAAAAQAAAB4OEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNBAoAAAAAAAEAADhCSU0nEAAAAAAACgABAAAAAAAAAAI4QklNA/UAAAAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEAL2ZmAAEAoZmaAAYAAAAAAAEAMgAAAAEAWgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklNA/gAAAAAAHAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAOEJJTQQAAAAAAAACAAI4QklNBAIAAAAAAAYAAAAAAAA4QklNBDAAAAAAAAMBAQEAOEJJTQQtAAAAAAAGAAEAAAAGOEJJTQQIAAAAAAAQAAAAAQAAAkAAAAJAAAAAADhCSU0EHgAAAAAABAAAAAA4QklNBBoAAAAAA2cAAAAGAAAAAAAAAAAAAAGKAAACJgAAABkAVwBoAGkAdABlACAAQgBhAGMAawBnAHIAbwB1AG4AZAAgAFQAZQBtAHAAbABhAHQAZQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAACJgAAAYoAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAG51bGwAAAACAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAAYoAAAAAUmdodGxvbmcAAAImAAAABnNsaWNlc1ZsTHMAAAABT2JqYwAAAAEAAAAAAAVzbGljZQAAABIAAAAHc2xpY2VJRGxvbmcAAAAAAAAAB2dyb3VwSURsb25n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

Follow ups