clearcorp team mailing list archive
-
clearcorp team
-
Mailing list archive
-
Message #00533
[Merge] lp:~ss-dtic/openerp-costa-rica/6.1-bom-price-update into lp:openerp-costa-rica
Miguel Gutierrez has proposed merging lp:~ss-dtic/openerp-costa-rica/6.1-bom-price-update into lp:openerp-costa-rica.
Requested reviews:
CLEARCORP drivers (clearcorp-drivers)
For more details, see:
https://code.launchpad.net/~ss-dtic/openerp-costa-rica/6.1-bom-price-update/+merge/143354
--
The attached diff has been truncated due to its size.
https://code.launchpad.net/~ss-dtic/openerp-costa-rica/6.1-bom-price-update/+merge/143354
Your team CLEARCORP development team is subscribed to branch lp:openerp-costa-rica.
=== added file '.bzrignore'
--- .bzrignore 1970-01-01 00:00:00 +0000
+++ .bzrignore 2013-01-15 16:49:27 +0000
@@ -0,0 +1,1 @@
+.~lock*
=== renamed file '.bzrignore' => '.bzrignore.moved'
=== added file 'LICENSE'
--- LICENSE 1970-01-01 00:00:00 +0000
+++ LICENSE 2013-01-15 16:49:27 +0000
@@ -0,0 +1,47 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Addons modules by CLEARCORP S.A.
+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
+#
+# 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" : 'NAME',
+ "version" : '1.0',
+ "author" : 'CLEARCORP S.A.',
+ #easy, normal, expert
+ 'complexity': 'normal',
+ "description": """
+LONG DESCRIPTION
+ """,
+ "category": 'Accounting & Finance',
+ "sequence": 4,
+ "website" : "http://clearcorp.co.cr",
+ "images" : [],
+ "icon" : False,
+ "depends" : [],
+ "init_xml" : [],
+ "demo_xml" : [],
+ "update_xml" : [],
+ "test" : [],
+ "auto_install": False,
+ "application": False,
+ "installable": True,
+ 'license': 'AGPL-3',
+}
\ No newline at end of file
=== added directory 'TODO-6.1'
=== renamed directory 'TODO-6.1' => 'TODO-6.1.moved'
=== added directory 'TODO-6.1/account_analytic_plans_fix'
=== added file 'TODO-6.1/account_analytic_plans_fix/__init__.py'
--- TODO-6.1/account_analytic_plans_fix/__init__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/account_analytic_plans_fix/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,35 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# __init__.py
+# account_analytic_plans_fix
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+import account_analytic_plans_fix
=== added file 'TODO-6.1/account_analytic_plans_fix/__openerp__.py'
--- TODO-6.1/account_analytic_plans_fix/__openerp__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/account_analytic_plans_fix/__openerp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,50 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# __openerp__.py
+# account_analytic_plans_fix
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+{
+ 'name': 'account_analytic_plans bug fix',
+ 'version': '0.1',
+ 'author': 'ClearCorp S.A.',
+ 'website': 'http://clearcorp.co.cr',
+ 'category': 'Generic Modules/Accounting',
+ 'description': """Fixes a bug on account_analytic_plans that breaks manual account move entry UI.
+ """,
+ 'depends': ['account_analytic_plans'],
+ 'init_xml': [],
+ 'demo_xml': [],
+ 'update_xml': [],
+ 'license': 'Other OSI approved licence',
+ 'installable': True,
+ 'active': False,
+}
=== added file 'TODO-6.1/account_analytic_plans_fix/account_analytic_plans_fix.py'
--- TODO-6.1/account_analytic_plans_fix/account_analytic_plans_fix.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/account_analytic_plans_fix/account_analytic_plans_fix.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,49 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# account_analytic_plans_fix.py
+# account_analytic_plans_fix
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+from osv import osv,fields
+from account.account_move_line import *
+
+class account_analytic_plans_fix_move_line(osv.osv):
+ '''
+ fixes move line manual entry view
+ '''
+ _name = 'account.move.line'
+ _inherit = 'account.move.line'
+
+
+ def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
+ return account_move_line.fields_view_get(self, cr, uid, view_id, view_type, context=context, toolbar=toolbar, submenu=submenu)
+
+account_analytic_plans_fix_move_line()
=== added directory 'TODO-6.1/account_analytic_rename'
=== added file 'TODO-6.1/account_analytic_rename/__init__.py'
--- TODO-6.1/account_analytic_rename/__init__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/account_analytic_rename/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,1 @@
+import account_analytic_rename
=== added file 'TODO-6.1/account_analytic_rename/__openerp__.py'
--- TODO-6.1/account_analytic_rename/__openerp__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/account_analytic_rename/__openerp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,44 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# account_analytic_rename.py
+# account_analytic_rename
+# First author: Mag Guevara <mag.guevara@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+{
+ "name" : "Accounting Analytics rename",
+ "author" : "ClearCorp S.A.",
+ "version" : "1.0",
+ "depends" : ["base","account"],
+ "init_xml" : [],
+ "update_xml" : ["account_analytic_rename_view.xml"],
+ "category" : "Accounting",
+ "active" : False,
+ "instalable" : True,
+}
=== added file 'TODO-6.1/account_analytic_rename/account_analytic_rename.py'
--- TODO-6.1/account_analytic_rename/account_analytic_rename.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/account_analytic_rename/account_analytic_rename.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,60 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# account_analytic_rename.py
+# account_analytic_rename
+# First author: Mag Guevara <mag.guevara@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+from osv import osv, fields
+from tools import debug
+from tools.translate import _
+
+class account_analytic_account(osv.osv):
+ _name = "account.analytic.account"
+ _inherit = "account.analytic.account"
+
+ def name_get(self, cr, uid, ids, context=None):
+ if not ids:
+ return []
+ res = []
+ for obj_account in self.browse(cr,uid,ids):
+ data = []
+ account = obj_account.parent_id
+ while account:
+ data.insert(0,(account.shortcut or account.name))
+ account = account.parent_id
+ data.append(obj_account.name)
+ data = '/'.join(data)
+ res.append((obj_account.id, data))
+ return res
+
+ _columns = {
+ 'shortcut': fields.char('Shortcut',size=10),
+ }
+account_analytic_account()
=== added file 'TODO-6.1/account_analytic_rename/account_analytic_rename_view.xml'
--- TODO-6.1/account_analytic_rename/account_analytic_rename_view.xml 1970-01-01 00:00:00 +0000
+++ TODO-6.1/account_analytic_rename/account_analytic_rename_view.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,41 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<openerp>
+ <data>
+
+ <!--
+ ======================================
+ accounts
+ ======================================
+ -->
+ <record model = "ir.ui.view" id = "account_analytic_rename_form_view">
+ <field name = "name">account.analytic.account.form</field>
+ <field name = "model">account.analytic.account</field>
+ <field name = "type">form</field>
+ <field name="inherit_id" ref="account.view_account_analytic_account_form"/>
+ <field name = "arch" type = "xml">
+ <data>
+ <field name = "type" position = "after">
+ <field name = "shortcut"/>
+ </field>
+ </data>
+ </field>
+ </record>
+
+ <record model = "ir.ui.view" id = "account_analytic_rename_tree_view">
+ <field name = "name">account.analytic.account.tree</field>
+ <field name = "model">account.analytic.account</field>
+ <field name = "type">tree</field>
+ <field name="inherit_id" ref="account.view_account_analytic_account_tree"/>
+ <field name = "arch" type = "xml">
+ <data>
+ <field name = "name" position = "after">
+ <field name = "complete_name"/>
+ <field name = "shortcut"/>
+ </field>
+ <field name = "name" position = "replace"/>
+ </data>
+ </field>
+ </record>
+ </data>
+</openerp>
+
=== added directory 'TODO-6.1/account_asset_product'
=== added file 'TODO-6.1/account_asset_product/__init__.py'
--- TODO-6.1/account_asset_product/__init__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/account_asset_product/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,1 @@
+import account_asset_produt
=== added file 'TODO-6.1/account_asset_product/__openerp__.py'
--- TODO-6.1/account_asset_product/__openerp__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/account_asset_product/__openerp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,11 @@
+{
+ "name" : "account_asset_produt",
+ "author" : "Clear Corp S.A.",
+ "version" : "1.0",
+ "depends" : ["base","account_asset","product_serial"],
+ "init_xml" : [],
+ "update_xml" : ["account_asset_produt_sequence.xml",],
+ "category" : "Account Asset",
+ "active" : False,
+ "instalable" : True,
+}
=== added file 'TODO-6.1/account_asset_product/account_asset_produt.py'
--- TODO-6.1/account_asset_product/account_asset_produt.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/account_asset_product/account_asset_produt.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,104 @@
+from osv import osv, fields
+from tools import debug
+import time
+import pooler
+from dateutil import parser
+from datetime import date
+from datetime import timedelta
+import calendar
+from tools.translate import _
+
+
+
+class ccorp_addons_account_assets(osv.osv):
+ _name = 'account.asset.asset'
+ _inherit = 'account.asset.asset'
+
+
+ def _getCompany(self, cr, uid, vals, context=None):
+ user = pooler.get_pool(cr.dbname).get('res.users').browse(cr, uid, [uid], context=context)[0]
+ if user.company_id:
+ return user.company_id.id
+
+ # Metodos de ir.sequence
+ # se utilizan para poder traer el numero de secuencia sin incrementarlo.
+
+ def _process(self, s):
+ return (s or '') % {
+ 'year':time.strftime('%Y'),
+ 'month': time.strftime('%m'),
+ 'day':time.strftime('%d'),
+ 'y': time.strftime('%y'),
+ 'doy': time.strftime('%j'),
+ 'woy': time.strftime('%W'),
+ 'weekday': time.strftime('%w'),
+ 'h24': time.strftime('%H'),
+ 'h12': time.strftime('%I'),
+ 'min': time.strftime('%M'),
+ 'sec': time.strftime('%S'),
+ }
+
+
+
+ def get_id_search(self, cr, uid, sequence_id, test='id', context=None):
+ assert test in ('code','id')
+ company_ids = self.pool.get('res.company').search(cr, uid, [], context=context)
+ cr.execute('''SELECT id, number_next, prefix, suffix, padding
+ FROM ir_sequence
+ WHERE %s=%%s
+ AND active=true
+ AND (company_id in %%s or company_id is NULL)
+ ORDER BY company_id, id
+ FOR UPDATE NOWAIT''' % test,
+ (sequence_id, tuple(company_ids)))
+ res = cr.dictfetchone()
+ if res:
+ if res['number_next']:
+ return self._process(res['prefix']) + '%%0%sd' % res['padding'] % res['number_next'] + self._process(res['suffix'])
+ else:
+ return self._process(res['prefix']) + self._process(res['suffix'])
+ return False
+
+
+ def get_search(self, cr, uid, context=None):
+ code='account.asset.asset'
+ return self.get_id_search(cr, uid, code, test='code')
+
+ #################################33
+
+
+
+ _columns = {
+ 'prod_lot_id': fields.many2one('stock.production.lot', 'Production Lot'), #, domain="[('company_id','=',product_id)]",
+ 'asset_product_id': fields.related('prod_lot_id', 'product_id', type='many2one', relation='product.product', string='Product', readonly=True),
+ 'location_id': fields.related('prod_lot_id', 'last_location_id', type='many2one', relation='stock.location', string='Location', readonly=True),
+
+ }
+
+ _defaults = {
+ 'code': get_search,
+ 'partner_id': _getCompany
+ }
+
+ _sql_constraints = [
+ ('unique_asset_company', 'UNIQUE (partner_id,code)', 'You can not have two asset with the same code in the same partner !')
+ ]
+
+ # Metodo: Create
+ #Descripcion:
+ # Revisa que el codigo que se quiere guardar sea igual al autogenerado si lo es incrementa el secuencial
+ # si no lo es no incrementa el secuencial y lo guarda como viene.
+ #
+ def create(self, cr, uid, vals, context=None):
+ sentCode = vals['code']
+ debug(sentCode)
+ if sentCode == self.get_search(cr, uid, 'account.asset.asset'):
+ codep=self.pool.get('ir.sequence').get(cr, uid, 'account.asset.asset')
+ return super(ccorp_addons_account_assets, self).create(cr, uid, vals, context=None)
+
+ccorp_addons_account_assets()
+
+
+
+
+
=== added file 'TODO-6.1/account_asset_product/account_asset_produt_sequence.xml'
--- TODO-6.1/account_asset_product/account_asset_produt_sequence.xml 1970-01-01 00:00:00 +0000
+++ TODO-6.1/account_asset_product/account_asset_produt_sequence.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+ <data>
+
+ <record id="seq_type_asset_product" model="ir.sequence.type">
+ <field name="name">account.asset.asset</field>
+ <field name="code">account.asset.asset</field>
+ </record>
+ <record id="seq_master_item" model="ir.sequence">
+ <field name="name">account.asset.asset</field>
+ <field name="code">account.asset.asset</field>
+ <field name="padding">3</field>
+ <!--field name="company_id">user.company_id.id</field-->
+ </record>
+
+ <record model="ir.ui.view" id="account_asset_product_assre_form">
+ <field name="name">account.asset.asset</field>
+ <field name="model">account.asset.asset</field>
+ <field name="type">form</field>
+ <field name="inherit_id" ref="account_asset.view_account_asset_asset_form"/>
+ <field name="arch" type="xml">
+ <data>
+ <field name="code" position="after">
+ <!--newline/-->
+ <field name="prod_lot_id" /><!--on_change="on_change_search_location(prod_lot_id)"-->
+ <field name="asset_product_id" select="1"/>
+ <field name="location_id" select="1"/>
+
+ </field>
+ <field name="localisation" position="replace"/>
+
+ </data>
+ </field>
+ </record>
+
+ <record id="view_medical_zahha_laboratory_filter" model="ir.ui.view">
+ <field name="name">account.asset.asset search</field>
+ <field name="model">account.asset.asset</field>
+ <field name="type">search</field>
+ <field name="arch" type="xml">
+ <search string="Search Asset">
+ <separator orientation="vertical"/>
+ <filter string="Active" domain="[('active','=','True')]" icon="terp-project"/>
+ <filter string="Inactive" domain="[('active','=','False')]" icon="terp-project"/>
+ <newline/>
+ <field name="name"/>
+ <field name="code" />
+ <field name="location_id"/>
+ <field name="asset_product_id" />
+ <field name="category_id" />
+ <field name="prod_lot_id" />
+
+
+
+
+
+
+
+ <newline/>
+ </search>
+ </field>
+ </record>
+
+
+
+
+ </data>
+</openerp>
=== added directory 'TODO-6.1/account_company_shortcut'
=== added file 'TODO-6.1/account_company_shortcut/__init__.py'
--- TODO-6.1/account_company_shortcut/__init__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/account_company_shortcut/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,1 @@
+import account_company_shortcut_rename
=== added file 'TODO-6.1/account_company_shortcut/__openerp__.py'
--- TODO-6.1/account_company_shortcut/__openerp__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/account_company_shortcut/__openerp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,48 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# account_company_shorcut_rename.py
+# account_company_shorcut_rename
+# First author: Mag Guevara <mag.guevara@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+{
+ "name" : "Accounting Company Shorcut rename",
+ "author" : "CLEARCORP S.A.",
+ "version" : "1.0",
+ "description" : """
+ This module creates a field for the company shortcut to later use it a the chart of accounts as part for the complete name of each
+ account
+ """,
+ "depends" : ["base","account"],
+ "init_xml" : [],
+ "update_xml" : ["account_company_shortcut_rename_view.xml"],
+ "category" : "Accounting",
+ "active" : False,
+ "instalable" : True,
+}
=== added file 'TODO-6.1/account_company_shortcut/account_company_shortcut_rename.py'
--- TODO-6.1/account_company_shortcut/account_company_shortcut_rename.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/account_company_shortcut/account_company_shortcut_rename.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,80 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# account_company_shortcut_rename.py
+# account_company_shortcut_rename
+# First author: Mag Guevara <mag.guevara@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+from osv import osv, fields
+from tools import debug
+from tools.translate import _
+
+class account_account(osv.osv):
+ _name = "account.account"
+ _inherit = "account.account"
+
+ def name_get(self, cr, uid, ids, context=None):
+ if not ids:
+ return []
+ res = []
+ for obj_account in self.browse(cr,uid,ids):
+ data = []
+ account = obj_account.parent_id
+ if account.parent_id:
+ while account.parent_id:
+ data.insert(0,(account.shortcut or account.name))
+ account = account.parent_id
+ data.append(obj_account.name)
+ data = '/'.join(data)
+ company = obj_account.company_id
+ data = (company and company.shortcut + "-" or '') + obj_account.code + ' ' + data
+ res.append((obj_account.id, data))
+ return res
+
+ def _complete_name(self, cr, uid, ids, name, args, context=None):
+ """ Forms complete name of account from parent account to child account.
+ @return: Dictionary of values
+ """
+ res = {}
+ name_list = self.name_get(cr,uid,ids,context)
+ for name in name_list:
+ res[name[0]] = name[1]
+ return res
+ _columns = {
+ 'complete_name': fields.function(_complete_name, method=True, type='char', size=100, string="Account Name"),
+ }
+account_account()
+
+class res_company(osv.osv):
+ _name = 'res.company'
+ _inherit = 'res.company'
+ _columns = {
+ 'shortcut' : fields.char('Shortcut', size=8,help='Shortcut for the company, It would be added on some places as part of the name that will be shown'),
+ }
+res_company()
=== added file 'TODO-6.1/account_company_shortcut/account_company_shortcut_rename_view.xml'
--- TODO-6.1/account_company_shortcut/account_company_shortcut_rename_view.xml 1970-01-01 00:00:00 +0000
+++ TODO-6.1/account_company_shortcut/account_company_shortcut_rename_view.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,25 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<openerp>
+ <data>
+
+ <!--
+ ======================================
+ accounts
+ ======================================
+ -->
+ <record model = "ir.ui.view" id = "account_company_rename_form_view">
+ <field name = "name">res.company.rename.form</field>
+ <field name = "model">res.company</field>
+ <field name = "type">tree</field>
+ <field name="inherit_id" ref="base.view_company_form"/>
+ <field name = "arch" type = "xml">
+ <data>
+ <field name = "parent_id" position = "after">
+ <field name = "shortcut"/>
+ </field>
+ </data>
+ </field>
+ </record>
+ </data>
+</openerp>
+
=== added directory 'TODO-6.1/account_journal_template'
=== added file 'TODO-6.1/account_journal_template/__init__.py'
--- TODO-6.1/account_journal_template/__init__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/account_journal_template/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,1 @@
+import account_journal_template
=== added file 'TODO-6.1/account_journal_template/__openerp__.py'
--- TODO-6.1/account_journal_template/__openerp__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/account_journal_template/__openerp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,11 @@
+{
+ "name" : "Account journal template module",
+ "author" : "CLEARCORP S.A",
+ "version" : "0.1",
+ "depends" : ["base", "account", "account_voucher_payment_method"],
+ "init_xml" : [],
+ "update_xml" : [],
+ "category" : "",
+ "active": False,
+ "installable": True
+}
=== added file 'TODO-6.1/account_journal_template/account_journal_template.py'
--- TODO-6.1/account_journal_template/account_journal_template.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/account_journal_template/account_journal_template.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,98 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# Author: Nicolas Bessi. Copyright Camptocamp SA
+# Donors: Hasa Sàrl, Open Net Sàrl and Prisme Solutions Informatique SA
+#
+# 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 tools
+from osv import osv, fields
+import addons
+import os
+from tools import debug
+
+class account_journal_template(osv.osv):
+
+ _name = 'account.journal.template'
+ _columns = {
+
+ 'name': fields.char('Journal Name', size=64),
+ 'code': fields.char('Code', size=5),
+ 'type': fields.selection([('sale', 'Sale'),('sale_refund','Sale Refund'), ('purchase', 'Purchase'), ('purchase_refund','Purchase Refund'), ('cash', 'Cash'), ('bank', 'Bank and Cheques'), ('general', 'General'), ('situation', 'Opening/Closing Situation'), ('payment', 'Payment method')], 'Type'),
+ 'allow_date':fields.boolean('Check Date not in the Period'),
+ 'entry_posted': fields.boolean('Skip \'Draft\' State for Manual Entries'),
+ 'update_posted': fields.boolean('Allow Cancelling Entries'),
+ 'group_invoice_lines': fields.boolean('Group Invoice Lines'),
+ 'currency': fields.many2one('res.currency', 'Currency'),
+ 'view_id': fields.many2one('account.journal.view', 'Display Mode'),
+ 'centralisation': fields.boolean('Centralised counterpart'),
+ 'default_credit_account_id': fields.many2one('account.account', 'Default Credit Account', domain="[('type','!=','view')]", help="It acts as a default account for credit amount"),
+ 'default_debit_account_id': fields.many2one('account.account', 'Default Debit Account', domain="[('type','!=','view')]", help="It acts as a default account for debit amount"),
+ 'chart_template_id': fields.many2one('account.chart.template', 'Chart Template', required=True),
+ }
+account_journal_template()
+
+class WizardMultiChartsAccounts(osv.osv_memory):
+
+ _inherit ='wizard.multi.charts.accounts'
+
+
+ def execute(self, cr, uid, ids, context=None):
+
+
+ res = super(WizardMultiChartsAccounts, self).execute(cr, uid, ids, context)
+
+ #getting the wizard object
+ obj_self = self.browse(cr,uid,ids[0])
+
+ #getting the id of the company from the wizard
+ id_companny = obj_self.company_id.id
+
+ #getting the char_id from the wizard object
+ id_char_template = obj_self.chart_template_id
+
+ #getting the list of journal_templates
+ lista = self.pool.get('account.journal.template').search(cr, uid, [('chart_template_id','=',id_char_template)])
+
+
+ for x in lista:
+ obj = self.pool.get('account.journal.template').browse(cr,uid,x)
+ vals = {
+ 'name' : obj.name,
+ 'code' : obj.code,
+ 'type' : obj.type,
+ 'currency' : obj.currency,
+ 'allow_date' : obj.allow_date,
+ 'centralisation' : obj.centralisation,
+ 'entry_posted' : obj.entry_posted,
+ 'update_posted' : obj.update_posted,
+ 'group_invoice_lines' : obj.group_invoice_lines,
+ 'sequence_id' : obj.sequence_id.id,
+ 'view_id' : obj.view_id.id,
+ 'default_credit_account_id': obj.default_credit_account_id.id,
+ 'default_debit_account_id' : obj.default_debit_account_id.id,
+ 'company_id': id_companny,
+ }
+ debug(obj.view_id.id)
+ journal = self.pool.get('account.journal')
+ journal.create(cr,uid,vals, context=context)
+
+
+ return res
+
+WizardMultiChartsAccounts()
+
+
=== added file 'TODO-6.1/account_journal_template/account_journal_template_data.xml'
--- TODO-6.1/account_journal_template/account_journal_template_data.xml 1970-01-01 00:00:00 +0000
+++ TODO-6.1/account_journal_template/account_journal_template_data.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,171 @@
+<openerp>
+ <data>
+ <record id="banks_cajas_journal" model="account.journal.template">
+ <field name="name">Bancos y Cajas</field>
+ <field name="code">BYC</field>
+ <field name="type">bank</field>
+ <field name="allow_date">False</field>
+ <field name="default_credit_account_id"></field>
+ <field name="default_debit_account_id"></field>
+ <field name="entry_posted">False</field>
+ <field name="update_posted">False</field>
+ <field name="group_invoice_lines">False</field>
+ <field name="view_id">2</field>
+ <field name="sequence_id">1</field>
+ </record>
+
+ <record id="cierre_mensual_journal" model="account.journal.template">
+ <field name="name">Cierre mensual</field>
+ <field name="code">CM</field>
+ <field name="type">general</field>
+ <field name="allow_date">False</field>
+ <field name="default_credit_account_id"></field>
+ <field name="default_debit_account_id"></field>
+ <field name="entry_posted">False</field>
+ <field name="update_posted">False</field>
+ <field name="group_invoice_lines">False</field>
+ <field name="view_id">2</field>
+ <field name="sequence_id">1</field>
+ </record>
+
+ <record id="cierre_anual_journal" model="account.journal.template">
+ <field name="name">Cierre anual</field>
+ <field name="code">CA</field>
+ <field name="type">general</field>
+ <field name="allow_date">False</field>
+ <field name="default_credit_account_id"></field>
+ <field name="default_debit_account_id"></field>
+ <field name="entry_posted">False</field>
+ <field name="update_posted">False</field>
+ <field name="group_invoice_lines">False</field>
+ <field name="view_id">2</field>
+ <field name="sequence_id">1</field>
+ </record>
+
+ <record id="compras_gastos_journal" model="account.journal.template">
+ <field name="name">Compras y gastos</field>
+ <field name="code">CYG</field>
+ <field name="type">general</field>
+ <field name="allow_date">False</field>
+ <field name="default_credit_account_id"></field>
+ <field name="default_debit_account_id"></field>
+ <field name="entry_posted">False</field>
+ <field name="update_posted">False</field>
+ <field name="group_invoice_lines">False</field>
+ <field name="view_id">2</field>
+ <field name="sequence_id">1</field>
+ </record>
+
+ <record id="devolucion_compra_gastos_journal" model="account.journal.template">
+ <field name="name">Devolucion compras y gastos</field>
+ <field name="code">DCYG</field>
+ <field name="type">general</field>
+ <field name="allow_date">False</field>
+ <field name="default_credit_account_id"></field>
+ <field name="default_debit_account_id"></field>
+ <field name="entry_posted">False</field>
+ <field name="update_posted">False</field>
+ <field name="group_invoice_lines">False</field>
+ <field name="view_id">2</field>
+ <field name="sequence_id">1</field>
+ </record>
+
+ <record id="ventas_journal" model="account.journal.template">
+ <field name="name">Ventas</field>
+ <field name="code">VTAS</field>
+ <field name="type">general</field>
+ <field name="allow_date">False</field>
+ <field name="default_credit_account_id"></field>
+ <field name="default_debit_account_id"></field>
+ <field name="entry_posted">False</field>
+ <field name="update_posted">False</field>
+ <field name="group_invoice_lines">False</field>
+ <field name="view_id">2</field>
+ <field name="sequence_id">1</field>
+ </record>
+
+ <record id="devolucion_ventas_journal" model="account.journal.template">
+ <field name="name">Devolucion ventas</field>
+ <field name="code">DV</field>
+ <field name="type">general</field>
+ <field name="allow_date">False</field>
+ <field name="default_credit_account_id"></field>
+ <field name="default_debit_account_id"></field>
+ <field name="entry_posted">False</field>
+ <field name="update_posted">False</field>
+ <field name="group_invoice_lines">False</field>
+ <field name="view_id">2</field>
+ <field name="sequence_id">1</field>
+ </record>
+
+ <record id="balance_inicial_journal" model="account.journal.template">
+ <field name="name">Balance inicial</field>
+ <field name="code">BI</field>
+ <field name="type">general</field>
+ <field name="allow_date">False</field>
+ <field name="default_credit_account_id"></field>
+ <field name="default_debit_account_id"></field>
+ <field name="entry_posted">False</field>
+ <field name="update_posted">False</field>
+ <field name="group_invoice_lines">False</field>
+ <field name="view_id">2</field>
+ <field name="sequence_id">1</field>
+ </record>
+
+ <record id="inter_comp_journal" model="account.journal.template">
+ <field name="name">Inter-comp</field>
+ <field name="code">IC</field>
+ <field name="type">general</field>
+ <field name="allow_date">False</field>
+ <field name="default_credit_account_id"></field>
+ <field name="default_debit_account_id"></field>
+ <field name="entry_posted">False</field>
+ <field name="update_posted">False</field>
+ <field name="group_invoice_lines">False</field>
+ <field name="view_id">2</field>
+ <field name="sequence_id">1</field>
+ </record>
+
+ <record id="inventario_journal" model="account.journal.template">
+ <field name="name">Inventario</field>
+ <field name="code">INV</field>
+ <field name="type">general</field>
+ <field name="allow_date">False</field>
+ <field name="default_credit_account_id"></field>
+ <field name="default_debit_account_id"></field>
+ <field name="entry_posted">False</field>
+ <field name="update_posted">False</field>
+ <field name="group_invoice_lines">False</field>
+ <field name="view_id">2</field>
+ <field name="sequence_id">1</field>
+ </record>
+
+ <record id="transito_cambio_journal" model="account.journal.template">
+ <field name="name">Transito y cambio</field>
+ <field name="code">TYC</field>
+ <field name="type">general</field>
+ <field name="allow_date">False</field>
+ <field name="default_credit_account_id"></field>
+ <field name="default_debit_account_id"></field>
+ <field name="entry_posted">False</field>
+ <field name="update_posted">False</field>
+ <field name="group_invoice_lines">False</field>
+ <field name="view_id">2</field>
+ <field name="sequence_id">1</field>
+ </record>
+
+ <record id="conciliaciones_journal" model="account.journal.template">
+ <field name="name">Conciliaciones</field>
+ <field name="code">CONC</field>
+ <field name="type">general</field>
+ <field name="allow_date">False</field>
+ <field name="default_credit_account_id"></field>
+ <field name="default_debit_account_id"></field>
+ <field name="entry_posted">False</field>
+ <field name="update_posted">False</field>
+ <field name="group_invoice_lines">False</field>
+ <field name="view_id">2</field>
+ <field name="sequence_id">1</field>
+ </record>
+ </data>
+</openerp>
=== added directory 'TODO-6.1/account_period_extended_code'
=== added file 'TODO-6.1/account_period_extended_code/__init__.py'
--- TODO-6.1/account_period_extended_code/__init__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/account_period_extended_code/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,35 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# __init__.py
+# account_journal_extended_code
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+import account_period_extended_code
=== added file 'TODO-6.1/account_period_extended_code/__openerp__.py'
--- TODO-6.1/account_period_extended_code/__openerp__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/account_period_extended_code/__openerp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,50 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# __openerp__.py
+# account_journal_extended_code
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+{
+ 'name': 'Account fiscal year and period code extended',
+ 'version': '0.1',
+ 'author': 'ClearCorp S.A.',
+ 'website': 'http://clearcorp.co.cr',
+ 'category': 'General Modules/Accounting',
+ 'description': """Enables up to 64 chars in a fiscal year and period code
+ """,
+ 'depends': ['account'],
+ 'init_xml': [],
+ 'demo_xml': [],
+ 'update_xml': [],
+ 'license': 'Other OSI approved licence',
+ 'installable': True,
+ 'active': False,
+}
=== added file 'TODO-6.1/account_period_extended_code/account_period_extended_code.py'
--- TODO-6.1/account_period_extended_code/account_period_extended_code.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/account_period_extended_code/account_period_extended_code.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,60 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# account_period_extended_code.py
+# account_period_extended_code
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+from osv import osv,fields
+
+class fiscalyear(osv.osv):
+ '''
+ Adds up to 64 chars to code
+ '''
+ _name = 'account.fiscalyear'
+ _inherit = 'account.fiscalyear'
+
+ _columns = {
+ 'code': fields.char('Code', size=64, required=True, help="The code will be used to generate the code of the fiscal year."),
+ }
+fiscalyear()
+
+
+class period(osv.osv):
+ '''
+ Adds up to 64 chars to code
+ '''
+ _name = 'account.period'
+ _inherit = 'account.period'
+
+ _columns = {
+ 'code': fields.char('Code', size=64, required=True, help="The code will be used for the code of the period."),
+ }
+period()
=== added directory 'TODO-6.1/address_name_inc'
=== added file 'TODO-6.1/address_name_inc/__init__.py'
--- TODO-6.1/address_name_inc/__init__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/address_name_inc/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,1 @@
+import address_name_inc
=== added file 'TODO-6.1/address_name_inc/__openerp__.py'
--- TODO-6.1/address_name_inc/__openerp__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/address_name_inc/__openerp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,44 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# address_name_inc.py
+# address_name_inc
+# First author: Mag Guevara <mag.guevara@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+{
+ "name" : "Address name include",
+ "author" : "ClearCorp S.A.",
+ "version" : "0.1",
+ "depends" : ["base","base_contact"],
+ "init_xml" : [],
+ "update_xml" : ["address_name_inc_view.xml"],
+ "category" : "Base",
+ "active" : False,
+ "instalable" : True,
+}
=== added file 'TODO-6.1/address_name_inc/address_name_inc.py'
--- TODO-6.1/address_name_inc/address_name_inc.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/address_name_inc/address_name_inc.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,56 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# address_name_inc.py
+# address_name_inc
+# First author: Mag Guevara <mag.guevara@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+from osv import osv, fields
+from tools import debug
+from tools.translate import _
+
+class address_name_inc(osv.osv):
+ _name = 'res.partner.address'
+ _inherit = 'res.partner.address'
+
+ def name_get(self, cr, uid, ids, context=None):
+ if not ids:
+ return []
+ res = []
+ superdata = {}
+ for record in super(address_name_inc,self).name_get(cr,uid,ids):
+ superdata[record[0]] = record[1]
+ for obj_address in self.browse(cr,uid,ids):
+ data = []
+ data.append((obj_address.name and obj_address.name or superdata[obj_address.id]))
+ data = '/'.join(data)
+ res.append((obj_address.id, data))
+ return res
+address_name_inc()
+
=== added file 'TODO-6.1/address_name_inc/address_name_inc_view.xml'
--- TODO-6.1/address_name_inc/address_name_inc_view.xml 1970-01-01 00:00:00 +0000
+++ TODO-6.1/address_name_inc/address_name_inc_view.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,23 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<openerp>
+ <data>
+ <!--
+ ======================================
+ res.partner address form
+ ======================================
+ -->
+ <record model = "ir.ui.view" id = "address_form_view">
+ <field name = "name">res.partner.form1</field>
+ <field name = "model">res.partner</field>
+ <field name="inherit_id" ref="base.view_partner_form"/>
+ <field name="arch" type="xml">
+ <data>
+ <xpath expr="//field[@name='address']//field[@name='type']" position = "before">
+ <field name = "name"/>
+ </xpath>
+ </data>
+ </field>
+ </record>
+ </data>
+</openerp>
+
=== added directory 'TODO-6.1/ccorp_account'
=== added file 'TODO-6.1/ccorp_account/__init__.py'
--- TODO-6.1/ccorp_account/__init__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_account/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,35 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# __init__.py
+# ccorp_account
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2010-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+import wizard
+import report
=== added file 'TODO-6.1/ccorp_account/__terp__.py'
--- TODO-6.1/ccorp_account/__terp__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_account/__terp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,61 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# __terp__.py
+# ccorp_account
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Second author: Mag Guevara <mag.guevara@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2010-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+{
+ 'name': 'ClearCorp account module modifications',
+ 'version': '0.1',
+ 'url': 'http://launchpad.net/openerp-costa-rica',
+ 'author': 'ClearCorp S.A.',
+ 'website': 'http://clearcorp.co.cr',
+ 'category': '',
+ 'description': """ClearCorp 'account' modifications:
+ Reports:
+ * Invoice
+ """,
+ 'depends': [
+ 'account',
+ 'ccorp_report_fonts',
+ 'report_webkit',
+ 'account_invoice_global_discount',
+ ],
+ 'init_xml': [],
+ 'demo_xml': ['ccorp_account_demo.xml'],
+ 'update_xml': [
+ 'ccorp_account_webkit_report.xml', 'ccorp_account_view.xml',
+ ],
+ 'license': 'Other OSI approved licence',
+ 'installable': True,
+ 'active': False,
+}
=== added file 'TODO-6.1/ccorp_account/ccorp_account.py'
--- TODO-6.1/ccorp_account/ccorp_account.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_account/ccorp_account.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,53 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# ccorp_account.py
+# ccorp_account
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2010-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+from osv import osv,fields
+
+class account_invoice(osv.osv):
+ _inherit = 'account.invoice'
+
+ def name_get(self, cr, uid, ids, context={}):
+ if not len(ids):
+ return []
+ reads = self.read(cr, uid, ids, ['name', 'number'], context)
+ res = []
+ for record in reads:
+ name = ""
+ if record['number']:
+ name = record['number']
+ if record['name']:
+ name = name + ' ' + record['name']
+ res.append((record['id'], name))
+ return res
+account_invoice()
=== added file 'TODO-6.1/ccorp_account/ccorp_account_demo.xml'
--- TODO-6.1/ccorp_account/ccorp_account_demo.xml 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_account/ccorp_account_demo.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+ <data noupdate="1">
+ <!--
+ Resource: res.company
+ Reset main_company currency to USD, demo data in account sets it as EUR
+ -->
+ <record id="base.main_company" model="res.company">
+ <field name="currency_id" ref="base.CRC"/>
+ </record>
+ </data>
+</openerp>
=== added file 'TODO-6.1/ccorp_account/ccorp_account_report.xml'
--- TODO-6.1/ccorp_account/ccorp_account_report.xml 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_account/ccorp_account_report.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<openerp>
+ <data>
+ <report id="account.account_invoices"
+ string="Invoice"
+ model="account.invoice"
+ name="account.invoice.layout_ccorp"
+ rml="ccorp_account/report/invoice.rml"
+ auto="False"
+ header="False"
+ attachment="(object.state in ('open','paid')) and ('Fac.'+(object.number or '').replace('/',''))"
+ attachment_use="1"/>
+
+ <!--
+ Deletes entries from account_invoice_layout
+ -->
+ <delete model="ir.actions.wizard" search="[('wiz_name','=','wizard.notify_message')]"/>
+ <delete model="ir.actions.report.xml" search="[('report_name','=','account.invoice.layout')]"/>
+ </data>
+</openerp>
=== added file 'TODO-6.1/ccorp_account/ccorp_account_view.xml'
--- TODO-6.1/ccorp_account/ccorp_account_view.xml 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_account/ccorp_account_view.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<openerp>
+ <data>
+ <record model = "ir.ui.view" id = "view_char_account_inactive">
+ <field name = "name">account.search.chart.inactive</field>
+ <field name = "model">account.account</field>
+ <field name = "type">search</field>
+ <field name = "inherit_id" ref = "account.view_account_search"/>
+ <field name = "arch" type = "xml">
+ <data>
+ <xpath expr = "/search/group/separator" position = "before">
+ <filter icon="gtk-cancel" string="Inactive Accounts" domain="[('active','=',False)]"/>
+ </xpath>
+ </data>
+ </field>
+ </record>
+ </data>
+</openerp>
=== added file 'TODO-6.1/ccorp_account/ccorp_account_webkit_report.xml'
--- TODO-6.1/ccorp_account/ccorp_account_webkit_report.xml 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_account/ccorp_account_webkit_report.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<openerp>
+ <data>
+ <report auto="False" id="account_invoice_ccorp" model="account.invoice" name="account.invoice.layout_ccorp" file="ccorp_account/report/invoice.mako" string="Invoice HTML" report_type="webkit" attachment="(object.state in ('open','paid')) and ('Fac.'+(object.number or '').replace('/',''))"
+ attachment_use="1"/>
+ <!--
+ Deletes entries from account_invoice_layout
+ -->
+ <delete model="ir.actions.wizard" search="[('wiz_name','=','wizard.notify_message')]"/>
+ <delete model="ir.actions.report.xml" search="[('report_name','=','account.invoice.layout')]"/>
+ </data>
+</openerp>
=== added directory 'TODO-6.1/ccorp_account/i18n'
=== added file 'TODO-6.1/ccorp_account/i18n/ccorp_account.pot'
--- TODO-6.1/ccorp_account/i18n/ccorp_account.pot 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_account/i18n/ccorp_account.pot 2013-01-15 16:49:27 +0000
@@ -0,0 +1,179 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * ccorp_account
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 5.0.12\n"
+"Report-Msgid-Bugs-To: support@xxxxxxxxxxx\n"
+"POT-Creation-Date: 2010-08-23 20:49:00+0000\n"
+"PO-Revision-Date: 2010-08-23 20:49:00+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: ccorp_account
+#: model:ir.module.module,description:ccorp_account.module_meta_information
+msgid "ClearCorp 'account' modifications:\n"
+" Reports:\n"
+" * Invoice\n"
+" "
+msgstr ""
+
+#. module: ccorp_account
+#: model:ir.module.module,shortdesc:ccorp_account.module_meta_information
+msgid "ClearCorp account module modifications"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Electronic Invoice"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "PRO-FORMA"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Draft Invoice"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Cancelled Invoice"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Supplier Refund"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Supplier Invoice"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Num.: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Date: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "ID Num.: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Tel-fax: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Email: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Web: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Address:"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Phone: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Fax: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Salesman: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Payment tems: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Due date: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Exchange rate: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Page: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Thank you for choosing us."
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Qty."
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Description / (Taxes)"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Disc."
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Unit Price"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Total Price"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Subtotal"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Discount"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Taxes"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "TOTAL"
+msgstr ""
=== added file 'TODO-6.1/ccorp_account/i18n/ccorp_account_webkit.pot'
--- TODO-6.1/ccorp_account/i18n/ccorp_account_webkit.pot 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_account/i18n/ccorp_account_webkit.pot 2013-01-15 16:49:27 +0000
@@ -0,0 +1,190 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * ccorp_account
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0.2\n"
+"Report-Msgid-Bugs-To: support@xxxxxxxxxxx\n"
+"POT-Creation-Date: 2011-10-06 19:15+0000\n"
+"PO-Revision-Date: 2011-10-06 19:15+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:93
+#: report:report.account.invoice.layout_ccorp:98
+msgid "Sub Total"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:39
+msgid "Date:"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:36
+msgid "ID Num."
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:47
+msgid "Payment tems"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:81
+msgid "Note"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:23
+msgid "Supplier Invoice"
+msgstr ""
+
+#. module: ccorp_account
+#: model:ir.module.module,description:ccorp_account.module_meta_information
+msgid "ClearCorp 'account' modifications:\n"
+" Reports:\n"
+" * Invoice\n"
+" "
+msgstr "ClearCorp 'account' modifications:\n"
+" Reports:\n"
+" * Invoice\n"
+" "
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:63
+msgid "Disc.(%)"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:48
+msgid "Email"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:63
+#: report:report.account.invoice.layout_ccorp:65
+msgid "Total Price"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:17
+msgid "PROFORMA"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:44
+msgid "Fax"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:94
+msgid "Discount"
+msgstr ""
+
+#. module: ccorp_account
+#: model:ir.actions.report.xml,name:ccorp_account.account_invoice_ccorp
+msgid "Invoice HTML"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:21
+msgid "Canceled Invoice"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:40
+msgid "Phone"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:107
+msgid "Invoice Note"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:63
+#: report:report.account.invoice.layout_ccorp:65
+msgid "[Code] Description / (Taxes)"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:19
+msgid "Draft Inovice"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:55
+msgid "Address"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:15
+msgid "Electronic Invoice"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:95
+#: report:report.account.invoice.layout_ccorp:99
+msgid "Taxes"
+msgstr ""
+
+#. module: ccorp_account
+#: model:ir.module.module,shortdesc:ccorp_account.module_meta_information
+msgid "ClearCorp account module modifications"
+msgstr "ClearCorp account module modifications"
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:110
+msgid "Payment Note"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:25
+msgid "Refund"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:43
+msgid "Due date"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:63
+#: report:report.account.invoice.layout_ccorp:65
+msgid "Qty"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:63
+#: report:report.account.invoice.layout_ccorp:65
+msgid "Unit Price"
+msgstr ""
+
+#. module: ccorp_account
+#: view:account.account:0
+msgid "Inactive Accounts"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:27
+msgid "Supplier Refund"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:96
+#: report:report.account.invoice.layout_ccorp:100
+msgid "Total"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:51
+msgid "Salesman"
+msgstr ""
+
=== added file 'TODO-6.1/ccorp_account/i18n/es.po'
--- TODO-6.1/ccorp_account/i18n/es.po 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_account/i18n/es.po 2013-01-15 16:49:27 +0000
@@ -0,0 +1,182 @@
+# Spanish translation for openerp-ccorp-addons
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the openerp-ccorp-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openerp-ccorp-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2010-08-23 20:49+0000\n"
+"PO-Revision-Date: 2012-06-25 08:19+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Spanish <es@xxxxxx>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2012-12-15 05:23+0000\n"
+"X-Generator: Launchpad (build 16372)\n"
+
+#. module: ccorp_account
+#: model:ir.module.module,description:ccorp_account.module_meta_information
+msgid ""
+"ClearCorp 'account' modifications:\n"
+" Reports:\n"
+" * Invoice\n"
+" "
+msgstr ""
+
+#. module: ccorp_account
+#: model:ir.module.module,shortdesc:ccorp_account.module_meta_information
+msgid "ClearCorp account module modifications"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Electronic Invoice"
+msgstr "Factura Electrónica"
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "PRO-FORMA"
+msgstr "Proforma"
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Draft Invoice"
+msgstr "Factura BORRADOR"
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Cancelled Invoice"
+msgstr "Factura CANCELADA"
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Supplier Refund"
+msgstr "Nota de crédito PROVEEDOR"
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Supplier Invoice"
+msgstr "Factura PROVEEDOR"
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Num.: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Date: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "ID Num.: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Tel-fax: "
+msgstr "Tel-fax: "
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Email: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Web: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Address:"
+msgstr "Dirección:"
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Phone: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Fax: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Salesman: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Payment tems: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Due date: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Exchange rate: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Page: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Thank you for choosing us."
+msgstr "Gracias por escoger nuestros servicios."
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Qty."
+msgstr "Cant."
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Description / (Taxes)"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Disc."
+msgstr "Desc."
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Unit Price"
+msgstr "Precio Unit."
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Total Price"
+msgstr "Precio Total"
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Subtotal"
+msgstr "Subtotal"
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Discount"
+msgstr "Descuento"
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Taxes"
+msgstr "Impuestos"
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "TOTAL"
+msgstr "TOTAL"
=== added file 'TODO-6.1/ccorp_account/i18n/es_CR.po'
--- TODO-6.1/ccorp_account/i18n/es_CR.po 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_account/i18n/es_CR.po 2013-01-15 16:49:27 +0000
@@ -0,0 +1,190 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * ccorp_account
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0.2\n"
+"Report-Msgid-Bugs-To: support@xxxxxxxxxxx\n"
+"POT-Creation-Date: 2011-10-06 19:15+0000\n"
+"PO-Revision-Date: 2011-10-06 19:15+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:93
+#: report:report.account.invoice.layout_ccorp:98
+msgid "Sub Total"
+msgstr "Sub Total"
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:39
+msgid "Date:"
+msgstr "Fecha:"
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:36
+msgid "ID Num."
+msgstr "Céd. Jur.."
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:47
+msgid "Payment tems"
+msgstr "Plazo de pago"
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:81
+msgid "Note"
+msgstr "Nota"
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:23
+msgid "Supplier Invoice"
+msgstr "Factura de proveedor"
+
+#. module: ccorp_account
+#: model:ir.module.module,description:ccorp_account.module_meta_information
+msgid "ClearCorp 'account' modifications:\n"
+" Reports:\n"
+" * Invoice\n"
+" "
+msgstr "ClearCorp 'account' modifications:\n"
+" Reports:\n"
+" * Invoice\n"
+" "
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:63
+msgid "Disc.(%)"
+msgstr "Desc.(%)"
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:48
+msgid "Email"
+msgstr "Email"
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:63
+#: report:report.account.invoice.layout_ccorp:65
+msgid "Total Price"
+msgstr "Precio total"
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:17
+msgid "PROFORMA"
+msgstr "PROFORMA"
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:44
+msgid "Fax"
+msgstr "Fax"
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:94
+msgid "Discount"
+msgstr "Descuento"
+
+#. module: ccorp_account
+#: model:ir.actions.report.xml,name:ccorp_account.account_invoice_ccorp
+msgid "Invoice HTML"
+msgstr "Factura"
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:21
+msgid "Canceled Invoice"
+msgstr "Factura cancelada"
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:40
+msgid "Phone"
+msgstr "Tel."
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:107
+msgid "Invoice Note"
+msgstr "Nota de factura"
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:63
+#: report:report.account.invoice.layout_ccorp:65
+msgid "[Code] Description / (Taxes)"
+msgstr "[Cód.] Descripción / (Imp.)"
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:19
+msgid "Draft Inovice"
+msgstr "Factura Borrador"
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:55
+msgid "Address"
+msgstr "Dirección"
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:15
+msgid "Electronic Invoice"
+msgstr "Factura Electrónica"
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:95
+#: report:report.account.invoice.layout_ccorp:99
+msgid "Taxes"
+msgstr "Impuestos"
+
+#. module: ccorp_account
+#: model:ir.module.module,shortdesc:ccorp_account.module_meta_information
+msgid "ClearCorp account module modifications"
+msgstr "ClearCorp account module modifications"
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:110
+msgid "Payment Note"
+msgstr "Nota de pago"
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:25
+msgid "Refund"
+msgstr "Reembolso"
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:43
+msgid "Due date"
+msgstr "Vence"
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:63
+#: report:report.account.invoice.layout_ccorp:65
+msgid "Qty"
+msgstr "Cant."
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:63
+#: report:report.account.invoice.layout_ccorp:65
+msgid "Unit Price"
+msgstr "Precio unitario"
+
+#. module: ccorp_account
+#: view:account.account:0
+msgid "Inactive Accounts"
+msgstr "Cuentas inactivas"
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:27
+msgid "Supplier Refund"
+msgstr "Reembolso de proveedor"
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:96
+#: report:report.account.invoice.layout_ccorp:100
+msgid "Total"
+msgstr "Total"
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:51
+msgid "Salesman"
+msgstr "Vendedor"
+
=== added directory 'TODO-6.1/ccorp_account/report'
=== added file 'TODO-6.1/ccorp_account/report/__init__.py'
--- TODO-6.1/ccorp_account/report/__init__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_account/report/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,35 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# __init__.py
+# ccorp_account
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2010-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+import invoice
=== added file 'TODO-6.1/ccorp_account/report/invoice.mako'
--- TODO-6.1/ccorp_account/report/invoice.mako 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_account/report/invoice.mako 2013-01-15 16:49:27 +0000
@@ -0,0 +1,117 @@
+<html>
+<head>
+ <style type="text/css">
+ ${css}
+ </style>
+</head>
+<body class = "data">
+ %for inv in objects :
+ <% setLang(inv.partner_id.lang) %>
+ <div id="wrapper">
+ <table width = "100%" class = "document_data">
+ <tr class = "title">
+ <td class = "document_data">
+ %if inv.type == 'out_invoice' and (inv.state == 'open' or inv.state == 'paid') :
+ <span class="title">${_("Electronic Invoice")} ${inv.number or ''|entity}</span>
+ %elif inv.type == 'out_invoice' and inv.state == 'proforma2' :
+ <span class="title">${_("PROFORMA")} ${inv.number or ''|entity}</span>
+ %elif inv.type == 'out_invoice' and inv.state == 'draft' :
+ <span class="title">${_("Draft Inovice")} ${inv.number or ''|entity}</span>
+ %elif inv.type == 'out_invoice' and inv.state == 'cancel':
+ <span class="title">${_("Canceled Invoice")} ${inv.number or ''|entity}</span>
+ %elif inv.type == 'in_invoice' :
+ <span class="title">${_("Supplier Invoice")} ${inv.number or ''|entity}</span>
+ %elif inv.type == 'out_refund' :
+ <span class="title">${_("Refund")} ${inv.number or ''|entity}</span>
+ %elif inv.type == 'in_refund' :
+ <span class="title">${_("Supplier Refund")} ${inv.number or ''|entity}</span>
+ %endif
+ </td>
+ <td>
+ ${inv.partner_id.name}
+ </td>
+ </tr>
+ <tr>
+ <td>${inv.name or '' |entity}</td>
+ <td>${_("ID Num.")}: ${inv.partner_id.ref or '-'|entity}</td>
+ </tr>
+ <tr>
+ <td>${_("Date:")} ${formatLang(inv.date_invoice, date=True)|entity}</td>
+ <td>${_("Phone")}:${inv.address_invoice_id.phone or '-'|entity}</td>
+ </tr>
+ <tr>
+ <td>${_("Due date")}: ${formatLang(inv.date_due, date=True)|entity}</td>
+ <td>${_("Fax")}: ${inv.address_invoice_id.fax or '-' | entity}</td>
+ </tr>
+ <tr>
+ <td>${_("Payment tems")}: ${inv.payment_term.name or '-' |entity}</td>
+ <td colspan = "2">${_("Email")}: ${inv.address_invoice_id.email or '-'|entity}</td><td> </td>
+ </tr>
+ <tr>
+ <td>${_("Salesman")}: ${inv.partner_id.user_id.name or ' '|entity}</td>
+ <td> </td>
+ </tr>
+ <tr class = "zone_break"><td> </td><td> </td></tr>
+ <tr class = "title"><td>${_("Address")}</td><td> </td></tr>
+ <tr><td>${inv.address_invoice_id.street or ''}</td><td> </td></tr>
+ <tr><td>${inv.address_invoice_id.street2 or ''}</td><td> </td></tr>
+ <tr><td>${(inv.address_invoice_id.zip and format(inv.address_invoice_id.zip) + ((inv.address_invoice_id.city or inv.address_invoice_id.state_id or inv.address_invoice_id.country_id) and ' ' or '') or '') + (inv.address_invoice_id.city and format(inv.address_invoice_id.city) + ((inv.address_invoice_id.state_id or inv.address_invoice_id.country_id) and ', ' or '') or '') + (inv.address_invoice_id.state_id and format(inv.address_invoice_id.state_id.name) + (inv.address_invoice_id.country_id and ', ' or '') or '') + (inv.address_invoice_id.country_id and format(inv.address_invoice_id.country_id.name) or '')}</td><td> </td></tr>
+ <tr><td> </td><td> </td></tr>
+ </table>
+ <table id ="data-table" cellspacing = "3">
+ %if inv.amount_discounted != 0:
+ <thead><th>${_("Qty")}</th><th>${_("[Code] Description / (Taxes)")}</th><th>${_("Disc.(%)")}</th><th>${_("Unit Price")}</th><th>${_("Total Price")}</th></thead>
+ %else:
+ <thead><th>${_("Qty")}</th><th>${_("[Code] Description / (Taxes)")}</th><th>${_("Unit Price")}</th><th>${_("Total Price")}</th></thead>
+ %endif
+ <tbody>
+ <%i = 0 %>
+ %for line in inv.invoice_line :
+ %if i% 2 == 0:
+ <tr class = "even">
+ %else:
+ <tr class = "odd">
+ %endif
+ <td valign = "top">${formatLang(line.quantity)} ${format(line.uos_id.name)}</td>
+ <td valign = "top" id="desc_col">${line.name}
+ %if line.invoice_line_tax_id != []:
+ ${ ', '.join([ tax.name or '' for tax in line.invoice_line_tax_id ])|entity}
+ %endif
+ %if line.note :
+ <br/><span class = "notes"><b>${_("Note")}:</b> ${format(line.note)}</span>
+ %endif
+ </td>
+ %if inv.amount_discounted != 0:
+ <td valign = "top" style="text-align:right;">${line.discount and formatLang(line.discount) + '%' or '-'}</td>
+ %endif
+ <td style="text-align:right;" valign = "top">${inv.currency_id.symbol_prefix or ''|entity } ${formatLang(line.price_unit)} ${inv.currency_id.symbol_suffix or ''|entity }</td>
+ <td style="text-align:right;" valign = "top">${inv.currency_id.symbol_prefix or ''|entity } ${formatLang(line.price_subtotal_not_discounted)} ${inv.currency_id.symbol_suffix or ''|entity }</td>
+ </tr>
+ <%i += 1%>
+ %endfor
+ %if inv.amount_discounted != 0:
+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-top:2px solid"><b>${_("Sub Total")}:</b></td><td style="border-top:2px solid;text-align:right">${inv.currency_id.symbol_prefix or ''|entity} ${formatLang(inv.amount_untaxed_not_discounted)} ${inv.currency_id.symbol_suffix or ''|entity}</td></tr>
+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"><b>${_("Discount")}:</b></td><td style="text-align:right">${inv.currency_id.symbol_prefix or ''|entity} ${formatLang(inv.amount_discounted)} ${inv.currency_id.symbol_suffix or ''|entity}</td></tr>
+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"><b>${_("Taxes")}:</b></td><td style="text-align:right">${inv.currency_id.symbol_prefix or ''|entity} ${formatLang(inv.amount_tax)} ${inv.currency_id.symbol_suffix or ''|entity}</td></tr>
+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-top:2px solid"><b>${_("Total")}:</b></td><td style="border-top:2px solid;text-align:right">${inv.currency_id.symbol_prefix or ''|entity} ${formatLang(inv.amount_total)} ${inv.currency_id.symbol_suffix or ''|entity}</td></tr>
+ %else:
+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-top:2px solid"><b>${_("Sub Total")}:</b></td><td style="border-top:2px solid;text-align:right">${inv.currency_id.symbol_prefix or ''|entity} ${formatLang(inv.amount_untaxed_not_discounted)} ${inv.currency_id.symbol_suffix or ''|entity}</td></tr>
+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"><b>${_("Taxes")}:</b></td><td style="text-align:right">${inv.currency_id.symbol_prefix or ''|entity} ${formatLang(inv.amount_tax)} ${inv.currency_id.symbol_suffix or ''|entity}</td></tr>
+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-top:2px solid"><b>${_("Total")}:</b></td><td style="border-top:2px solid;text-align:right">${inv.currency_id.symbol_prefix or ''|entity} ${formatLang(inv.amount_total)} ${inv.currency_id.symbol_suffix or ''|entity}</td></tr>
+ %endif
+
+ </tbody>
+ </table>
+ <table id = "notes_table">
+ %if inv.comment:
+ <tr><td><b>${_("Invoice Note")}:</b> ${format(inv.comment)}</td></tr>
+ %endif
+ %if inv.payment_term and inv.payment_term.note:
+ <tr><td><b>${_("Payment Note")}:</b> ${format(inv.payment_term and inv.payment_term.note)}</td></tr>
+ %endif
+ </table>
+ </div>
+ <p style="page-break-after:always"></p>
+ %endfor
+</body>
+</html>
=== added file 'TODO-6.1/ccorp_account/report/invoice.py'
--- TODO-6.1/ccorp_account/report/invoice.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_account/report/invoice.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,54 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# invoice.py
+# ccorp_account
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Second author: Mag Guevara <mag.guevara@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2010-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+import time
+import pooler
+from report import report_sxw
+import locale
+
+class account_invoice_ccorp(report_sxw.rml_parse):
+ def __init__(self, cr, uid, name, context):
+ super(account_invoice_ccorp, self).__init__(cr, uid, name, context=context)
+ self.localcontext.update({
+ 'time': time,
+ 'cr' : cr,
+ 'uid': uid,
+ })
+
+report_sxw.report_sxw(
+ 'report.account.invoice.layout_ccorp',
+ 'account.invoice',
+ 'addons/ccorp_account/report/invoice.mako',
+ parser=account_invoice_ccorp)
=== added file 'TODO-6.1/ccorp_account/report/invoice.rml'
--- TODO-6.1/ccorp_account/report/invoice.rml 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_account/report/invoice.rml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,319 @@
+<?xml version="1.0"?>
+<document filename="invoice.pdf">[[ repeatIn(objects,'o') ]]
+ <template pageSize="(612.0,792.0)" title="Invoice" author="Carlos Vasquez" allowSplitting="20">
+ <pageTemplate id="letter">
+ <frame id="letter" x1="28.0" y1="78" width="556" height="535"/>
+<!--
+ Substract 324 to all heights and y coords from letter
+ <template pageSize="(612.0,468.0)" title="Invoice" author="Carlos Vasquez" allowSplitting="20">
+ <pageTemplate id="half-legal">
+ <frame id="half-legal" x1="28.0" y1="60.0" width="556" height="256"/>
+-->
+ <pageGraphics>
+ <!-- Translation -->
+ <drawCentredString x="240.25" y="756">[[ setLang(o.partner_id.lang) ]]</drawCentredString>
+ <!-- Logos -->
+ <image x="32" y="708" height="62" >[[ o.company_id.logo ]]</image>
+ <!-- Header main data -->
+ <setFont name="Helvetica-Bold" size="13"/>
+ <drawCentredString x="240.25" y="756">Electronic Invoice[[ ((o.type == 'out_invoice' and (o.state == 'open' or o.state == 'paid')) or removeParentNode('drawCentredString')) and '' ]]</drawCentredString>
+ <drawCentredString x="240.25" y="756">PRO-FORMA[[ ((o.type == 'out_invoice' and o.state == 'proforma2') or removeParentNode('drawCentredString')) and '' ]]</drawCentredString>
+ <drawCentredString x="240.25" y="756">Draft Invoice[[ ((o.type == 'out_invoice' and o.state == 'draft') or removeParentNode('drawCentredString')) and '' ]]</drawCentredString>
+ <drawCentredString x="240.25" y="756">Cancelled Invoice[[ ((o.type == 'out_invoice' and o.state == 'cancel') or removeParentNode('drawCentredString')) and '' ]]</drawCentredString>
+ <drawCentredString x="240.25" y="756">Refund[[ (o.type=='out_refund' or removeParentNode('drawCentredString')) and '' ]]</drawCentredString>
+ <drawCentredString x="240.25" y="756">Supplier Refund[[ (o.type=='in_refund' or removeParentNode('drawCentredString')) and '' ]]</drawCentredString>
+ <drawCentredString x="240.25" y="756">Supplier Invoice[[ (o.type=='in_invoice' or removeParentNode('drawCentredString')) and '' ]]</drawCentredString>
+ <setFont name="Helvetica" size="12"/>
+ <drawCentredString x="240.25" y="736">Num.: [[ o.number or removeParentNode('drawCentredString') ]]</drawCentredString>
+ <setFont name="Helvetica" size="10"/>
+ <drawCentredString x="240.25" y="724">Date: [[ (o.date_invoice != 'False' and formatLang(o.date_invoice,date=True)) or removeParentNode('drawCentredString') ]]</drawCentredString>
+ <drawCentredString x="240.25" y="712">[[ o.name ]]</drawCentredString>
+ <!-- Header Company data -->
+ <setFont name="Helvetica-Bold" size="10"/>
+ <drawCentredString x="390" y="760">[[ o.company_id.partner_id.name ]]</drawCentredString>
+ <setFont name="Helvetica" size="10"/>
+ <drawCentredString x="390" y="748">ID Num.: [[ o.company_id.partner_id.ref ]]</drawCentredString>
+ <drawCentredString x="390" y="736">Tel-fax: [[ o.company_id.partner_id.address[0].phone ]]</drawCentredString>
+ <drawCentredString x="390" y="724">Email: [[ o.company_id.partner_id.address[0].email ]]</drawCentredString>
+ <drawCentredString x="390" y="712">Web: [[ o.company_id.partner_id.website ]]</drawCentredString>
+ <!-- Header Company address -->
+ <setFont name="Helvetica-Bold" size="10"/>
+ <drawRightString x="584" y="760">Address:</drawRightString>
+ <setFont name="Helvetica" size="10"/>
+ <drawRightString x="584" y="748">[[ o.company_id.partner_id.address[0].street ]]</drawRightString>
+ <drawRightString x="584" y="736">[[ o.company_id.partner_id.address[0].street2 ]]</drawRightString>
+ <drawRightString x="584" y="724">[[ o.company_id.partner_id.address[0].zip ]] [[ o.company_id.partner_id.address[0].city ]]</drawRightString>
+ <drawRightString x="584" y="712">[[ o.company_id.partner_id.address[0].state_id.name ]], [[ o.company_id.partner_id.address[0].country_id.name ]]</drawRightString>
+ <!-- Header slogan -->
+ <setFont name="Times-BoldItalic" size="10"/>
+ <drawString x="28" y="694">[[ o.company_id.rml_header1 ]]</drawString>
+ <!-- Header lines -->
+ <stroke color='#7E7E7E'></stroke>
+ <lineMode width="0.5" />
+ <lines>16 690 612 690</lines>
+ <!-- Header partner data -->
+ <setFont name="Helvetica-Bold" size="10"/>
+ <drawString x="28" y="672">[[ o.partner_id.name ]]</drawString>
+ <setFont name="Helvetica" size="10"/>
+ <drawString x="28" y="660">ID Num.: [[ o.partner_id.ref or '-' ]]</drawString>
+ <drawString x="28" y="648">Phone: [[ o.address_invoice_id.phone or '-' ]]</drawString>
+ <drawString x="28" y="636">Fax: [[ o.address_invoice_id.fax or '-' ]]</drawString>
+ <drawString x="28" y="624">Email: [[ o.address_invoice_id.email or '-' ]]</drawString>
+ <!-- Header partner address -->
+ <setFont name="Helvetica" size="10"/>
+ <drawString x="180" y="660">Address: [[ o.address_invoice_id.street or '' ]]</drawString>
+ <drawString x="180" y="648">[[ o.address_invoice_id.street2 or '' ]]</drawString>
+ <drawString x="180" y="636">[[ (o.address_invoice_id.zip and format(o.address_invoice_id.zip) + ((o.address_invoice_id.city or o.address_invoice_id.state_id or o.address_invoice_id.country_id) and ' ' or '') or '') + (o.address_invoice_id.city and format(o.address_invoice_id.city) + ((o.address_invoice_id.state_id or o.address_invoice_id.country_id) and ', ' or '') or '') + (o.address_invoice_id.state_id and format(o.address_invoice_id.state_id.name) + (o.address_invoice_id.country_id and ', ' or '') or '') + (o.address_invoice_id.country_id and format(o.address_invoice_id.country_id.name) or '') ]]</drawString>
+ <!-- Header invoice data -->
+ <setFont name="Helvetica" size="10"/>
+ <drawRightString x="584" y="672">Salesman: [[ o.partner_id.user_id.name or removeParentNode('drawRightString') ]]</drawRightString>
+ <drawRightString x="584" y="660">Payment tems: [[ o.payment_term.name or '-' ]]</drawRightString>
+ <drawRightString x="584" y="648">Due date: [[ formatLang(o.date_due,date=True) or '-' ]]</drawRightString>
+ <drawRightString x="584" y="636">Exchange rate: [[ '-' ]]</drawRightString>
+ <drawRightString x="584" y="624">Page: <pageNumber/></drawRightString>
+ <!-- Footer greeting -->
+ <setFont name="Helvetica" size="10"/>
+ <drawCentredString x="306" y="62">Thank you for choosing us.</drawCentredString>
+ <!-- Footer line -->
+ <stroke color='#7E7E7E'/>
+ <lineMode width="0.5" />
+ <lines>16 56 596 56</lines>
+ <!-- Footer text -->
+ <setFont name="Helvetica" size="8"/>
+ <drawCentredString x="306" y="44">Ctas. Bancarias: HSBC $ 40129749 SINPE 10400740511348127 - HSBC ¢ 40129749 SINPE 10400740511347211 | Todos los cheques a nombre de ClearCorp S.A.</drawCentredString>
+ <drawCentredString x="306" y="34">Si realiza el pago en colones (CRC), por favor utilizar el tipo de cambio al día de la fecha de pago del BCCR.</drawCentredString>
+ <setFont name="Times-LightItalic" size="8"/>
+ <drawCentredString x="306" y="22">Emitida conforme lo establecido en la resolución de Facturación Electrónica, N° DGT-22-07 del diecisiete de setiembre de dos mil siete de la Dirección General de Tributación</drawCentredString>
+ </pageGraphics>
+ </pageTemplate>
+ </template>
+ <stylesheet>
+
+ <blockTableStyle id="invoice_tbl_main">
+ <blockAlignment value="CENTER"/><blockValign value="TOP"/>
+ <blockLeftPadding length="0"/><blockRightPadding length="0"/><blockTopPadding length="0"/><blockBottomPadding length="0"/>
+ <lineStyle kind="LINEBELOW" colorName="black" thickness="1" start="0,0" stop="-1,0"/>
+ <lineStyle kind="LINEBELOW" colorName="#AAAAAA" thickness="0.3" start="0,1" stop="0,-3"/>
+ </blockTableStyle>
+ <blockTableStyle id="invoice_tbl_header">
+ <blockAlignment value="CENTER"/><blockValign value="MIDDLE"/>
+ <blockLeftPadding length="0"/><blockRightPadding length="0"/><blockTopPadding length="0"/><blockBottomPadding length="3"/>
+ </blockTableStyle>
+ <blockTableStyle id="invoice_tbl_content">
+ <blockAlignment value="LEFT"/><blockValign value="MIDDLE"/>
+ <blockLeftPadding length="2"/><blockRightPadding length="2"/><blockTopPadding length="2.5"/><blockBottomPadding length="2.5"/>
+ </blockTableStyle>
+ <blockTableStyle id="invoice_tbl_content_note">
+ <blockAlignment value="LEFT"/><blockValign value="MIDDLE"/>
+ <blockLeftPadding length="15"/><blockRightPadding length="200"/><blockTopPadding length="3"/><blockBottomPadding length="3"/>
+ <blockBackground colorName="#F6F6F6"/>
+ </blockTableStyle>
+ <blockTableStyle id="invoice_tbl_content_text">
+ <blockAlignment value="LEFT"/><blockValign value="MIDDLE"/>
+ <blockLeftPadding length="15"/><blockRightPadding length="200"/><blockTopPadding length="3"/><blockBottomPadding length="3"/>
+ <blockBackground colorName="#F6F6F6"/>
+ <lineStyle kind="LINEABOVE" colorName="black" thickness="0.5"/>
+ <lineStyle kind="LINEBELOW" colorName="black" thickness="0.5"/>
+ </blockTableStyle>
+ <blockTableStyle id="invoice_tbl_content_title">
+ <blockAlignment value="LEFT"/><blockValign value="MIDDLE"/>
+ <blockLeftPadding length="15"/><blockRightPadding length="200"/><blockTopPadding length="3"/><blockBottomPadding length="3"/>
+ <lineStyle kind="LINEABOVE" colorName="black" thickness="0.5"/>
+ <lineStyle kind="LINEBELOW" colorName="black" thickness="0.5"/>
+ </blockTableStyle>
+ <blockTableStyle id="invoice_tbl_content_line">
+ <blockLeftPadding length="0"/><blockRightPadding length="0"/><blockTopPadding length="0"/><blockBottomPadding length="0"/>
+ <blockBackground colorName="#666666"/>
+ </blockTableStyle>
+ <blockTableStyle id="invoice_tbl_content_subtotal">
+ <blockAlignment value="LEFT"/><blockValign value="MIDDLE"/>
+ <blockLeftPadding length="15"/><blockRightPadding length="200"/><blockTopPadding length="2.5"/><blockBottomPadding length="2.5"/>
+ <lineStyle kind="LINEABOVE" colorName="black" thickness="0.5"/>
+ <lineStyle kind="LINEBELOW" colorName="black" thickness="0.5"/>
+ </blockTableStyle>
+ <blockTableStyle id="invoice_tbl_end">
+ <blockAlignment value="CENTER"/><blockValign value="TOP"/>
+ <blockLeftPadding length="0"/><blockRightPadding length="0"/><blockTopPadding length="0"/><blockBottomPadding length="0"/>
+ <lineStyle kind="LINEABOVE" colorName="black" thickness="1" start="2,0" stop="2,0"/>
+ </blockTableStyle>
+ <blockTableStyle id="invoice_tbl_tax">
+ <blockAlignment value="CENTER"/><blockValign value="TOP"/>
+ <blockLeftPadding length="0"/><blockRightPadding length="0"/><blockTopPadding length="0"/><blockBottomPadding length="0"/>
+ <lineStyle kind="LINEBELOW" colorName="black" thickness="1" start="0,0" stop="-1,0"/>
+ <lineStyle kind="LINEBELOW" colorName="#AAAAAA" thickness="0.3" start="0,1" stop="-1,-2"/>
+ </blockTableStyle>
+ <blockTableStyle id="invoice_tbl_total">
+ <blockAlignment value="CENTER"/><blockValign value="TOP"/>
+ <blockLeftPadding length="0"/><blockRightPadding length="0"/><blockTopPadding length="0"/><blockBottomPadding length="0"/>
+ <lineStyle kind="LINEBELOW" colorName="#AAAAAA" thickness="0.3" start="0,0" stop="-1,-3"/>
+ <lineStyle kind="LINEBELOW" colorName="#000000" thickness="1" start="0,-2" stop="-1,-2"/>
+ </blockTableStyle>
+ <blockTableStyle id="invoice_tbl_comment">
+ <blockAlignment value="LEFT"/><blockValign value="MIDDLE"/>
+ <blockLeftPadding length="14"/><blockRightPadding length="14"/><blockTopPadding length="7"/><blockBottomPadding length="7"/>
+ <lineStyle kind="GRID" colorName="#AAAAAA" thickness="0.3"/>
+ <blockBackground colorName="#F6F6F6"/>
+ </blockTableStyle>
+ <blockTableStyle id="invoice_tbl_space">
+ <blockAlignment value="LEFT"/><blockValign value="MIDDLE"/>
+ <blockLeftPadding length="0"/><blockRightPadding length="0"/><blockTopPadding length="0"/><blockBottomPadding length="0"/>
+ </blockTableStyle>
+
+ <initialize>
+ <paraStyle name="all" alignment="justify" fontSize="10" spaceBefore="0" spaceAfter="0" leading="14"/>
+ </initialize>
+ <paraStyle name="invoice_tbl_header_txt_left" fontName="Helvetica-Bold" alignment="LEFT" spaceBefore="-2.0"/>
+ <paraStyle name="invoice_tbl_header_txt_center" fontName="Helvetica-Bold" alignment="CENTER" spaceBefore="-2.0"/>
+ <paraStyle name="invoice_tbl_header_txt_right" fontName="Helvetica-Bold" alignment="RIGHT" spaceBefore="-2.0"/>
+ <paraStyle name="invoice_tbl_content_txt_left" fontName="Helvetica" alignment="LEFT"/>
+ <paraStyle name="invoice_tbl_content_txt_center" fontName="Helvetica" alignment="CENTER"/>
+ <paraStyle name="invoice_tbl_content_txt_right" fontName="Helvetica" alignment="RIGHT"/>
+ <paraStyle name="invoice_tbl_content_txt_note" fontName="Times-Italic" alignment="JUSTIFY"/>
+ <paraStyle name="invoice_tbl_content_txt_title" fontName="Helvetica-Bold" alignment="LEFT"/>
+ <paraStyle name="invoice_tbl_content_txt_line" fontName="Helvetica" alignment="LEFT" leading="1"/>
+ <paraStyle name="invoice_tbl_comment_text" fontName="Times-Italic" alignment="JUSTIFY"/>
+ </stylesheet>
+ <images/>
+ <story>[[ repeatIn(objects,'o') ]]
+ <!-- Translation -->
+ <para>[[ setLang(o.partner_id.lang) ]]</para>
+ <blockTable colWidths="556" style="invoice_tbl_main" repeatRows="1"><tr><td>
+ <blockTable colWidths="50,328,38,70,70" style="invoice_tbl_header">[[ o.amount_discounted != 0 or removeParentNode('blockTable') ]]
+ <tr>
+ <td><para style="invoice_tbl_header_txt_center">Qty.</para></td>
+ <td><para style="invoice_tbl_header_txt_center">[Code] Description / (Taxes)</para></td>
+ <td><para style="invoice_tbl_header_txt_center">Disc.</para></td>
+ <td><para style="invoice_tbl_header_txt_right">Unit Price</para></td>
+ <td><para style="invoice_tbl_header_txt_right">Total Price</para></td>
+ </tr>
+ </blockTable>
+ <blockTable colWidths="50,366,70,70" style="invoice_tbl_header">[[ o.amount_discounted == 0 or removeParentNode('blockTable') ]]
+ <tr>
+ <td><para style="invoice_tbl_header_txt_center">Qty.</para></td>
+ <td><para style="invoice_tbl_header_txt_center">[Code] Description / (Taxes)</para></td>
+ <td><para style="invoice_tbl_header_txt_right">Unit Price</para></td>
+ <td><para style="invoice_tbl_header_txt_right">Total Price</para></td>
+ </tr>
+ </blockTable>
+ </td></tr>
+ <tr><td>[[ repeatIn(o.invoice_line, 'line') ]]
+<!--
+ <blockTable colWidths="50,328,38,70,70" style="invoice_tbl_content">[[ (line.state == 'article' and o.amount_discounted != 0) or removeParentNode('blockTable') ]]
+-->
+ <blockTable colWidths="50,328,38,70,70" style="invoice_tbl_content">[[ (o.amount_discounted != 0) or removeParentNode('blockTable') ]]
+ <tr>
+ <td><para style="invoice_tbl_content_txt_right">[[ formatLang(line.quantity) ]] [[ format(line.uos_id.name) ]]</para></td>
+ <td><para style="invoice_tbl_content_txt_left">[[ format(line.name) ]][[ (line.invoice_line_tax_id != []) and (' / (' + (', '.join([ lt.description for lt in line.invoice_line_tax_id ])) + ')') ]]</para></td>
+ <td><para style="invoice_tbl_content_txt_center">[[ (line.discount == 0 and '-') or formatLang(line.discount) + ' %' ]]</para></td>
+ <td><para style="invoice_tbl_content_txt_right">[[ o.currency_id.symbol_prefix or '' ]][[ formatLang(line.price_unit) ]][[ o.currency_id.symbol_suffix or '' ]]</para></td>
+ <td><para style="invoice_tbl_content_txt_right">[[ o.currency_id.symbol_prefix or '' ]][[ formatLang(line.price_subtotal_not_discounted) ]][[ o.currency_id.symbol_suffix or '' ]]</para></td>
+ </tr>
+ </blockTable>
+ <blockTable colWidths="50,366,70,70" style="invoice_tbl_content">[[ (o.amount_discounted == 0) or removeParentNode('blockTable') ]]
+ <tr>
+ <td><para style="invoice_tbl_content_txt_right">[[ formatLang(line.quantity) ]] [[ format(line.uos_id.name) ]]</para></td>
+ <td><para style="invoice_tbl_content_txt_left">[[ format(line.name) ]][[ (line.invoice_line_tax_id != []) and (' / (' + (', '.join([ lt.description for lt in line.invoice_line_tax_id ])) + ')') ]]</para></td>
+ <td><para style="invoice_tbl_content_txt_right">[[ o.currency_id.symbol_prefix or '' ]][[ formatLang(line.price_unit) ]][[ o.currency_id.symbol_suffix or '' ]]</para></td>
+ <td><para style="invoice_tbl_content_txt_right">[[ o.currency_id.symbol_prefix or '' ]][[ formatLang(line.price_subtotal_not_discounted) ]][[ o.currency_id.symbol_suffix or '' ]]</para></td>
+ </tr>
+ </blockTable>
+ <blockTable colWidths="556" style="invoice_tbl_content_note">[[ line.note or removeParentNode('blockTable') ]]
+ <tr>
+ <td><para style="invoice_tbl_content_txt_note">[[ line.product_id and line.product_id.code and '[' + format(line.product_id.code) + '] ' ]]<b>Note:</b> [[ format(line.note) ]]</para></td>
+ </tr>
+ </blockTable>
+<!--
+ <blockTable colWidths="556" style="invoice_tbl_content_text">[[ line.state == 'text' or removeParentNode('blockTable') ]]
+ <tr>
+ <td><para style="invoice_tbl_content_txt_note">[[ format(line.name) ]]</para></td>
+ </tr>
+ </blockTable>
+ <blockTable colWidths="556" style="invoice_tbl_content_title">[[ line.state == 'title' or removeParentNode('blockTable') ]]
+ <tr>
+ <td><para style="invoice_tbl_content_txt_title">[[ format(line.name) ]]</para></td>
+ </tr>
+ </blockTable>
+ <blockTable colWidths="556" rowHeights="4" style="invoice_tbl_content_line">[[ line.state == 'line' or removeParentNode('blockTable') ]]
+ <tr>
+ <td><para style="invoice_tbl_content_txt_line">.</para></td>
+ </tr>
+ </blockTable>
+ <blockTable colWidths="496,60" style="invoice_tbl_content_subtotal">[[ line.state == 'subtotal' or removeParentNode('blockTable') ]]
+ <tr>
+ <td><para style="invoice_tbl_content_right"><b>Subtotal</b></para></td>
+ <td><para style="invoice_tbl_content_right">[[ format(line.price_subtotal) ]]</para></td>
+ </tr>
+ </blockTable>
+ <pageBreak>[[ line.state == 'break' or removeParentNode('pageBreak')]]</pageBreak>
+-->
+ </td></tr>
+ <tr><td>
+ <blockTable colWidths="396,20,140" style="invoice_tbl_end">
+ <tr>
+ <td>
+ <blockTable colWidths="396" rowHeights="17" style="invoice_tbl_space">
+ <tr>
+ <td> </td>
+ </tr>
+ </blockTable>
+ <blockTable colWidths="396" style="invoice_tbl_comment">[[ o.comment or removeParentNode('blockTable') ]]
+ <tr>
+ <td><para style="invoice_tbl_comment_text"><b>Nota de factura: </b>[[ format(o.comment) ]]</para></td>
+ </tr>
+ </blockTable>
+ <blockTable colWidths="396" style="invoice_tbl_comment">[[ (o.payment_term and o.payment_term.note) or removeParentNode('blockTable') ]]
+ <tr>
+ <td><para style="invoice_tbl_comment_text"><b>Nota de pago: </b>[[ format(o.payment_term and o.payment_term.note) ]]</para></td>
+ </tr>
+ </blockTable>
+ </td>
+ <td> </td>
+ <td>
+ <blockTable colWidths="140" style="invoice_tbl_total">
+ <tr>
+ <td>
+ <blockTable colWidths="70,70" style="invoice_tbl_content">
+ <tr>
+ <td><para style="invoice_tbl_content_txt_right">Subtotal</para></td>
+ <td><para style="invoice_tbl_content_txt_right">[[ o.currency_id.symbol_prefix or '' ]][[ formatLang(o.amount_untaxed_not_discounted) ]][[ o.currency_id.symbol_suffix or '' ]]</para></td>
+ </tr>
+ </blockTable>
+ </td>
+ </tr>
+ <tr>[[ o.amount_discounted != 0 or removeParentNode('tr') ]]
+ <td>
+ <blockTable colWidths="70,70" style="invoice_tbl_content">
+ <tr>
+ <td><para style="invoice_tbl_content_txt_right">Discount</para></td>
+ <td><para style="invoice_tbl_content_txt_right">[[ o.currency_id.symbol_prefix or '' ]][[ formatLang(o.amount_discounted) ]][[ o.currency_id.symbol_suffix or '' ]]</para></td>
+ </tr>
+ </blockTable>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <blockTable colWidths="70,70" style="invoice_tbl_content">
+ <tr>
+ <td><para style="invoice_tbl_content_txt_right">Taxes</para></td>
+ <td><para style="invoice_tbl_content_txt_right">[[ o.currency_id.symbol_prefix or '' ]][[ formatLang(o.amount_tax) ]][[ o.currency_id.symbol_suffix or '' ]]</para></td>
+ </tr>
+ </blockTable>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <blockTable colWidths="70,70" style="invoice_tbl_content">
+ <tr>
+ <td><para style="invoice_tbl_content_txt_right"><b>TOTAL</b></para></td>
+ <td><para style="invoice_tbl_content_txt_right"><b>[[ o.currency_id.symbol_prefix or '' ]][[ formatLang(o.amount_total) ]][[ o.currency_id.symbol_suffix or '' ]]</b></para></td>
+ </tr>
+ </blockTable>
+ </td>
+ </tr>
+ </blockTable>
+ </td>
+ </tr>
+ </blockTable>
+ </td></tr></blockTable>
+ </story>
+</document>
=== added directory 'TODO-6.1/ccorp_account_payment_term'
=== added file 'TODO-6.1/ccorp_account_payment_term/__init__.py'
--- TODO-6.1/ccorp_account_payment_term/__init__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_account_payment_term/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,1 @@
+import ccorp_account_payment_term
=== added file 'TODO-6.1/ccorp_account_payment_term/__openerp__.py'
--- TODO-6.1/ccorp_account_payment_term/__openerp__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_account_payment_term/__openerp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,44 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# address_name_inc.py
+# address_name_inc
+# First author: Mag Guevara <mag.guevara@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+{
+ "name" : "Accounting",
+ "author" : "ClearCorp S.A.",
+ "version" : "0.1",
+ "depends" : ["base","account"],
+ "init_xml" : [],
+ "update_xml" : [],
+ "category" : "Base",
+ "active" : False,
+ "instalable" : True,
+}
=== added file 'TODO-6.1/ccorp_account_payment_term/ccorp_account_payment_term.py'
--- TODO-6.1/ccorp_account_payment_term/ccorp_account_payment_term.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_account_payment_term/ccorp_account_payment_term.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,49 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# address_name_inc.py
+# address_name_inc
+# First author: Mag Guevara <mag.guevara@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+from osv import osv, fields
+from tools import debug
+from tools.translate import _
+
+class account_invoice_payment(osv.osv):
+ _name = 'account.invoice'
+ _inherit = 'account.invoice'
+
+ _columns = {
+ 'payment_term': fields.many2one('account.payment.term', 'Payment Term',readonly=True, states={'draft':[('readonly',False)]},
+ help="If you use payment terms, the due date will be computed automatically at the generation "\
+ "of accounting entries. If you keep the payment term and the due date empty, it means direct payment. "\
+ "The payment term may compute several due dates, for example 50% now, 50% in one month.", required=True),
+ }
+account_invoice_payment()
+
=== added directory 'TODO-6.1/ccorp_main_company'
=== added file 'TODO-6.1/ccorp_main_company/__init__.py'
--- TODO-6.1/ccorp_main_company/__init__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_main_company/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,34 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# __init__.py
+# ccorp_main_company
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2010-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
=== added file 'TODO-6.1/ccorp_main_company/__openerp__.py'
--- TODO-6.1/ccorp_main_company/__openerp__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_main_company/__openerp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,51 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# __terp__.py
+# ccorp_seisa_main_company
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2010-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+{
+ 'name': 'Changes default main company to ClearCorp',
+ 'version': '0.1',
+ 'url': 'http://launchpad.net/openerp-costa-rica',
+ 'author': 'ClearCorp S.A.',
+ 'website': 'http://clearcorp.co.cr',
+ 'category': 'Generic Modules/Base',
+ 'description': """Changes default main company to ClearCorp on demo data
+ """,
+ 'depends': ['base','l10n_cr_base'],
+ 'init_xml': [],
+ 'demo_xml': ['ccorp_main_company_data.xml'],
+ 'update_xml': [],
+ 'license': 'Other OSI approved licence',
+ 'installable': True,
+ 'active': True,
+}
=== added file 'TODO-6.1/ccorp_main_company/ccorp_main_company_data.xml'
--- TODO-6.1/ccorp_main_company/ccorp_main_company_data.xml 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_main_company/ccorp_main_company_data.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+ <data noupdate="0">
+ <!-- Basic Company -->
+ <record id="base.main_partner" model="res.partner">
+ <field name="name">CLEARCORP S.A.</field>
+ <field name="website">http://clearcorp.co.cr</field>
+ <field name="ref">3-101-000000</field>
+ <field name="title" ref="base.res_partner_title_pvt_ltd"/>
+ <field eval="time.strftime('%Y-01-01')" name="date"/>
+ </record>
+ <record id="base.main_address" model="res.partner.address">
+ <field name="name">CLEARCORP S.A.</field>
+ <field name="street">15 m. Este de la esq. NE</field>
+ <field name="street2">De las Inst. Deportivas de la UCR</field>
+ <field name="zip">11502</field>
+ <field name="city">Sabanilla, Montes de Oca</field>
+ <field name="fax">+(506) 4000-2677</field>
+ <field name="phone">+(506) 4000-2677</field>
+ <field name="email">info@xxxxxxxxxxxxxxx</field>
+ <field name="type">default</field>
+ <field model="res.country" name="state_id" ref="l10n_cr_base.state_SJ"/>
+ <field model="res.country" name="country_id" ref="base.cr"/>
+ </record>
+ <record id="base.main_company" model="res.company">
+ <field name="name">CLEARCORP S.A.</field>
+ <field name="rml_header1">Soluciones Realmente Integrales, a la medida y en Software Libre</field>
+ <field name="rml_footer1"></field>
+ <field name="rml_footer2"></field>
+ <field name="currency_id" ref="base.CRC"/>
+ </record>
+ </data>
+</openerp>
=== added directory 'TODO-6.1/ccorp_partner_payment_term'
=== added file 'TODO-6.1/ccorp_partner_payment_term/__init__.py'
--- TODO-6.1/ccorp_partner_payment_term/__init__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_partner_payment_term/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,1 @@
+import ccorp_partner_payment_term
=== added file 'TODO-6.1/ccorp_partner_payment_term/__openerp__.py'
--- TODO-6.1/ccorp_partner_payment_term/__openerp__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_partner_payment_term/__openerp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,44 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# address_name_inc.py
+# address_name_inc
+# First author: Mag Guevara <mag.guevara@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+{
+ "name" : "Accounting",
+ "author" : "ClearCorp S.A.",
+ "version" : "0.1",
+ "depends" : ["base","account"],
+ "init_xml" : [],
+ "update_xml" : [],
+ "category" : "Accounting",
+ "active" : False,
+ "instalable" : True,
+}
=== added file 'TODO-6.1/ccorp_partner_payment_term/ccorp_partner_payment_term.py'
--- TODO-6.1/ccorp_partner_payment_term/ccorp_partner_payment_term.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_partner_payment_term/ccorp_partner_payment_term.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,54 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# address_name_inc.py
+# address_name_inc
+# First author: Mag Guevara <mag.guevara@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+from osv import osv, fields
+from tools import debug
+from tools.translate import _
+
+class partnert_payment(osv.osv):
+ _name = 'res.partner'
+ _inherit = 'res.partner'
+
+ _columns = {
+ 'property_payment_term': fields.property(
+ 'account.payment.term',
+ type='many2one',
+ relation='account.payment.term',
+ string ='Payment Term',
+ method=True,
+ view_load=True,
+ help="This payment term will be used instead of the default one for the current partner", required=True),
+
+ }
+partnert_payment()
+
=== added directory 'TODO-6.1/ccorp_purchase'
=== added file 'TODO-6.1/ccorp_purchase/__init__.py'
--- TODO-6.1/ccorp_purchase/__init__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_purchase/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,35 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# __init__.py
+# ccorp_sale
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2010-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+import report
=== added file 'TODO-6.1/ccorp_purchase/__terp__.py'
--- TODO-6.1/ccorp_purchase/__terp__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_purchase/__terp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,59 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# __terp__.py
+# ccorp_purchase
+# First author: Mag Guevara <mag.guevara@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2010-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+{
+ 'name': 'ClearCorp sale module modifications',
+ 'version': '0.1',
+ 'author': 'ClearCorp S.A.',
+ 'website': 'http://clearcorp.co.cr',
+ 'category': '',
+ 'description': """ClearCorp 'sale' modifications:
+ Reports:
+ * Sale Order / Quotation
+ """,
+ 'depends': [
+ 'purchase',
+ 'ccorp_report_fonts',
+ 'report_webkit',
+ ],
+ 'init_xml': [],
+ 'demo_xml': [],
+ 'update_xml': [
+ 'ccorp_purchase_webkit_report.xml',
+ 'ccorp_purchase_quotation_webkit_report.xml',
+ ],
+ 'license': 'Other OSI approved licence',
+ 'installable': True,
+ 'active': False,
+}
=== added file 'TODO-6.1/ccorp_purchase/ccorp_purchase.py'
--- TODO-6.1/ccorp_purchase/ccorp_purchase.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_purchase/ccorp_purchase.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,53 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# ccorp_account.py
+# ccorp_account
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2010-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+from osv import osv,fields
+
+class account_invoice(osv.osv):
+ _inherit = 'account.invoice'
+
+ def name_get(self, cr, uid, ids, context={}):
+ if not len(ids):
+ return []
+ reads = self.read(cr, uid, ids, ['name', 'number'], context)
+ res = []
+ for record in reads:
+ name = ""
+ if record['number']:
+ name = record['number']
+ if record['name']:
+ name = name + ' ' + record['name']
+ res.append((record['id'], name))
+ return res
+account_invoice()
=== added file 'TODO-6.1/ccorp_purchase/ccorp_purchase_quotation_webkit_report.xml'
--- TODO-6.1/ccorp_purchase/ccorp_purchase_quotation_webkit_report.xml 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_purchase/ccorp_purchase_quotation_webkit_report.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<openerp>
+ <data>
+ <report auto="False"
+ id="purchase.report_quotation_order"
+ model="purchase.order"
+ name="purchase.order.quotation.layout_ccorp"
+ file="ccorp_purchase/report/purchase_order.mako"
+ string="Purchase Quotation"
+ report_type="webkit"
+ />
+ </data>
+</openerp>
=== added file 'TODO-6.1/ccorp_purchase/ccorp_purchase_webkit_report.xml'
--- TODO-6.1/ccorp_purchase/ccorp_purchase_webkit_report.xml 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_purchase/ccorp_purchase_webkit_report.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<openerp>
+ <data>
+ <report auto="False"
+ id="purchase.report_sale_order"
+ model="purchase.order"
+ name="purchase.order.layout_ccorp"
+ file="ccorp_purchase/report/purchase_order.mako"
+ string="Purchase Order"
+ report_type="webkit"
+ />
+ </data>
+</openerp>
=== added directory 'TODO-6.1/ccorp_purchase/i18n'
=== added file 'TODO-6.1/ccorp_purchase/i18n/ccorp_purchase_webkit.pot'
--- TODO-6.1/ccorp_purchase/i18n/ccorp_purchase_webkit.pot 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_purchase/i18n/ccorp_purchase_webkit.pot 2013-01-15 16:49:27 +0000
@@ -0,0 +1,143 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * ccorp_purchase
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0.2\n"
+"Report-Msgid-Bugs-To: support@xxxxxxxxxxx\n"
+"POT-Creation-Date: 2011-10-06 19:16+0000\n"
+"PO-Revision-Date: 2011-10-06 19:16+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: ccorp_purchase
+#: model:ir.module.module,description:ccorp_purchase.module_meta_information
+msgid "ClearCorp 'sale' modifications:\n"
+" Reports:\n"
+" * Sale Order / Quotation\n"
+" "
+msgstr "ClearCorp 'sale' modifications:\n"
+" Reports:\n"
+" * Sale Order / Quotation\n"
+" "
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:87
+msgid "Sub Total"
+msgstr ""
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:32
+msgid "ID Num."
+msgstr ""
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:78
+msgid "Note"
+msgstr ""
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:66
+msgid "Date Req."
+msgstr ""
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:18
+msgid "Order N°"
+msgstr ""
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:47
+msgid "Email"
+msgstr ""
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:66
+msgid "Total Price"
+msgstr ""
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:35
+msgid "Date Ordered:"
+msgstr ""
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:42
+msgid "Validated By."
+msgstr ""
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:39
+msgid "Phone"
+msgstr ""
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:46
+msgid "TVA"
+msgstr ""
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:66
+msgid "[Code] Description / (Taxes)"
+msgstr ""
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:94
+msgid "Order Notes:"
+msgstr ""
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:52
+msgid "Shipping address"
+msgstr ""
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:43
+msgid "Fax"
+msgstr ""
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:88
+msgid "Taxes"
+msgstr ""
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:52
+msgid "Partner address"
+msgstr ""
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:89
+msgid "Total"
+msgstr ""
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:66
+msgid "Qty"
+msgstr ""
+
+#. module: ccorp_purchase
+#: model:ir.module.module,shortdesc:ccorp_purchase.module_meta_information
+msgid "ClearCorp sale module modifications"
+msgstr "ClearCorp sale module modifications"
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:66
+msgid "Unit Price"
+msgstr ""
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:26
+msgid "Partnert Order Ref"
+msgstr ""
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:15
+msgid "Order Ref"
+msgstr ""
+
=== added file 'TODO-6.1/ccorp_purchase/i18n/es_CR.po'
--- TODO-6.1/ccorp_purchase/i18n/es_CR.po 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_purchase/i18n/es_CR.po 2013-01-15 16:49:27 +0000
@@ -0,0 +1,143 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * ccorp_purchase
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0.2\n"
+"Report-Msgid-Bugs-To: support@xxxxxxxxxxx\n"
+"POT-Creation-Date: 2011-10-06 19:16+0000\n"
+"PO-Revision-Date: 2011-10-06 19:16+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: ccorp_purchase
+#: model:ir.module.module,description:ccorp_purchase.module_meta_information
+msgid "ClearCorp 'sale' modifications:\n"
+" Reports:\n"
+" * Sale Order / Quotation\n"
+" "
+msgstr "ClearCorp 'sale' modifications:\n"
+" Reports:\n"
+" * Sale Order / Quotation\n"
+" "
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:87
+msgid "Sub Total"
+msgstr "Sub Total"
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:32
+msgid "ID Num."
+msgstr "Céd. Jur."
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:78
+msgid "Note"
+msgstr "Nota"
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:66
+msgid "Date Req."
+msgstr "Fecha Req."
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:18
+msgid "Order N°"
+msgstr "Orden N°"
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:47
+msgid "Email"
+msgstr "Email"
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:66
+msgid "Total Price"
+msgstr "Precio total"
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:35
+msgid "Date Ordered:"
+msgstr "Fecha:"
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:42
+msgid "Validated By."
+msgstr "Validado por"
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:39
+msgid "Phone"
+msgstr "Tel."
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:46
+msgid "TVA"
+msgstr "TVA"
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:66
+msgid "[Code] Description / (Taxes)"
+msgstr "[Cód] Descripción / (Imp)"
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:94
+msgid "Order Notes:"
+msgstr "Notas:"
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:52
+msgid "Shipping address"
+msgstr "Dirección de envío"
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:43
+msgid "Fax"
+msgstr "Fax"
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:88
+msgid "Taxes"
+msgstr "Impuestos"
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:52
+msgid "Partner address"
+msgstr "Dirección origen"
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:89
+msgid "Total"
+msgstr "Total"
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:66
+msgid "Qty"
+msgstr "Cant."
+
+#. module: ccorp_purchase
+#: model:ir.module.module,shortdesc:ccorp_purchase.module_meta_information
+msgid "ClearCorp sale module modifications"
+msgstr "ClearCorp purchase module modifications"
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:66
+msgid "Unit Price"
+msgstr "Precio unitario"
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:26
+msgid "Partnert Order Ref"
+msgstr "Ref."
+
+#. module: ccorp_purchase
+#: report:report.purchase.order.layout_ccorp:15
+msgid "Order Ref"
+msgstr "Orden de Ref"
+
=== added directory 'TODO-6.1/ccorp_purchase/report'
=== added file 'TODO-6.1/ccorp_purchase/report/__init__.py'
--- TODO-6.1/ccorp_purchase/report/__init__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_purchase/report/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,36 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# __init__.py
+# ccorp_purchase
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2010-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+import purchase_order
+import purchase_quotation
=== added file 'TODO-6.1/ccorp_purchase/report/purchase_order.mako'
--- TODO-6.1/ccorp_purchase/report/purchase_order.mako 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_purchase/report/purchase_order.mako 2013-01-15 16:49:27 +0000
@@ -0,0 +1,103 @@
+<html>
+<head>
+ <style type="text/css">
+ ${css}
+ </style>
+</head>
+<body class = "data">
+ %for po in objects :
+ <% setLang(po.partner_id.lang) %>
+ <div id="wrapper">
+ <table width = "100%" class = "document_data">
+ <tr class = "title">
+ <td class = "document_data">
+ %if po.state =='draft' :
+ <span class="title">${_("Request for Quotation")} ${po.name or ''|entity}</span><br/>
+ %endif
+ %if po.state != 'draft' :
+ <span class="title">${_("Order N°")} ${po.name or ''|entity}</span>
+ %endif
+ </td>
+ <td>
+ ${(po.partner_id and po.partner_id.title and po.partner_id.title.name) or ''} ${po.partner_id and po.partner_id.name or ''}
+ </td>
+ </tr>
+ <tr>
+ %if po.state != 'draft' :
+ <td><span class="title">${_("Partnert Order Ref")}
+ ${po.partner_ref or ''|entity}
+ </span><br/>
+ </td>
+ %else:
+ <td> </td>
+ %endif
+ <td>${_("ID Num.")}: ${po.partner_id.ref or '-'|entity}</td>
+ </tr>
+ <tr>
+ <td>${_("Date Ordered:")}
+ %if po.date_order:
+ ${formatLang(po.date_order, date=True)|entity}
+ %endif</td>
+ <td>${_("Phone")}:${po.partner_address_id and po.partner_address_id.phone or '-'|entity}</td>
+ </tr>
+ <tr>
+ <td>${_("Validated By.")}: ${po.validator and po.validator.name or ''|entity}</td>
+ <td>${_("Fax")}:${po.partner_address_id and po.partner_address_id.fax or '-'|entity}</td>
+ </tr>
+ <tr>
+ <td>${_("TVA")}: ${(po.partner_id and po.partner_id.vat) or '-'|entity}</td>
+ <td>${_("Email")}: ${po.partner_id.email or '-'|entity}</td>
+ </tr>
+ <tr class = "zone_break"><td> </td><td> </td></tr>
+ <!-- Shipping partner address -->
+ <!-- Invoice partner address -->
+ <tr class = "title"><td>${_("Partner address")}</td><td>${_("Shipping address")}</td></tr>
+ <tr><td>${(po.partner_address_id and po.partner_address_id.street ) or ''}</td><td>${(po.dest_address_id and po.dest_address_id.street ) or ''}</td></tr>
+ <tr><td>${(po.partner_address_id and po.partner_address_id.street2 ) or ''}</td><td>${(po.dest_address_id and po.dest_address_id.street2 ) or ''}</td></tr>
+ <tr>
+ <td>${(po.partner_address_id.zip and format(po.partner_address_id.zip) + ((po.partner_address_id.city or po.partner_address_id.state_id or po.partner_address_id.country_id) and ' ' or '') or '') + (po.partner_address_id.city and format(po.partner_address_id.city) or '')}</td>
+ <td>${(po.dest_address_id.zip and format(po.dest_address_id.zip) + ((po.dest_address_id.city or po.dest_address_id.state_id or po.dest_address_id.country_id) and ' ' or '') or '') + (po.dest_address_id.city and format(po.dest_address_id.city) or '')}</td>
+ </tr>
+ <tr>
+ <td>${(po.partner_address_id.state_id and format(po.partner_address_id.state_id.name) + (po.partner_address_id.country_id and ', ' or '') or '') + (po.partner_address_id.country_id and format(po.partner_address_id.country_id.name) or '')}</td>
+ <td>${(po.dest_address_id.state_id and format(po.dest_address_id.state_id.name) + (po.dest_address_id.country_id and ', ' or '') or '') + (po.dest_address_id.country_id and format(po.dest_address_id.country_id.name) or '')}</td>
+ </tr>
+ </table>
+
+ <table id="data-table" cellspacing="3">
+ <thead><th>${_("Qty")}</th><th>${_("[Code] Description / (Taxes)")}</th><th>${_("Date Req.")}</th><th>${_("Unit Price")}</th><th>${_("Total Price")}</th></thead>
+ <tbody>
+ <%i = 0 %>
+ %for line in po.order_line :
+ %if i% 2 == 0:
+ <tr class = "even">
+ %else:
+ <tr class = "odd">
+ %endif
+ <td valign = "top">${formatLang(line.product_qty)} ${format(line.product_uom.name)}</td>
+ <td valign = "top" id="desc_col_po">${line.name} ${', '.join(map(lambda x: x.name, line.taxes_id))|entity}
+ %if line.notes :
+ <br/><span class = "notes"><b>${_("Note")}:</b> ${format(line.notes)}</span>
+ %endif
+ </td>
+ <td valign = "top">${formatLang( line.date_planned, date=True)}</td>
+ <td valign = "top" style="text-align:right;">${po.pricelist_id.currency_id.symbol_prefix or ''|entity } ${formatLang(line.price_unit,digits=get_digits(dp='Purchase Price'))} ${po.pricelist_id.currency_id.symbol_suffix or ''|entity }</td>
+ <td valign = "top" style="text-align:right;">${po.pricelist_id.currency_id.symbol_prefix or ''|entity } ${formatLang(line.price_subtotal)} ${po.pricelist_id.currency_id.symbol_suffix or ''|entity }</td>
+ </tr>
+ <%i +=1%>
+ %endfor
+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-top:2px solid"><b>${_("Sub Total")}:</b></td><td style="border-top:2px solid;text-align:right">${po.pricelist_id.currency_id.symbol_prefix or ''|entity} ${formatLang(po.amount_untaxed)} ${po.pricelist_id.currency_id.symbol_suffix or ''|entity}</td></tr>
+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"><b>${_("Taxes")}:</b></td><td style="text-align:right">${po.pricelist_id.currency_id.symbol_prefix or ''|entity} ${formatLang(po.amount_tax)} ${po.pricelist_id.currency_id.symbol_suffix or ''|entity}</td></tr>
+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"><b>${_("Total")}:</b></td><td style="text-align:right">${po.pricelist_id.currency_id.symbol_prefix or ''|entity} ${formatLang(po.amount_total)} ${po.pricelist_id.currency_id.symbol_suffix or ''|entity}</td></tr>
+ </tbody>
+ </table>
+ <table id="notes_table">
+ %if po.notes:
+ <tr><td><b>${_("Order Notes:")}</b>${format(po.notes)}</td></tr>
+ %endif
+ </table>
+ </div>
+ <p style="page-break-after:always"></p>
+%endfor
+</body>
+</html>
=== added file 'TODO-6.1/ccorp_purchase/report/purchase_order.py'
--- TODO-6.1/ccorp_purchase/report/purchase_order.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_purchase/report/purchase_order.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,104 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# invoice.py
+# ccorp_sale
+# First author: Mag Guevara <mag.guevara@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2010-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+import time
+import pooler
+from report import report_sxw
+import locale
+
+class purchase_order_ccorp(report_sxw.rml_parse):
+
+ def _get_line_tax(self, line_obj):
+ self.cr.execute("SELECT tax_id FROM purchase_order_taxe WHERE order_line_id=%s", (line_obj.id))
+ res = self.cr.fetchall() or None
+ if not res:
+ return ""
+ if isinstance(res, list):
+ tax_ids = [t[0] for t in res]
+ else:
+ tax_ids = res[0]
+ res = [tax.name for tax in pooler.get_pool(self.cr.dbname).get('account.tax').browse(self.cr, self.uid, tax_ids)]
+ return ",\n ".join(res)
+
+ def _get_tax(self, order_obj):
+ self.cr.execute("SELECT DISTINCT tax_id FROM purchase_order_taxe, purchase_order_line, purchase_order \
+ WHERE (purchase_order_line.order_id=purchase_order.id) AND (purchase_order.id=%s)", (order_obj.id))
+ res = self.cr.fetchall() or None
+ if not res:
+ return []
+ if isinstance(res, list):
+ tax_ids = [t[0] for t in res]
+ else:
+ tax_ids = res[0]
+ tax_obj = pooler.get_pool(self.cr.dbname).get('account.tax')
+ res = []
+ for tax in tax_obj.browse(self.cr, self.uid, tax_ids):
+ self.cr.execute("SELECT DISTINCT order_line_id FROM purchase_order_line, purchase_order_taxe \
+ WHERE (purchase_order_taxe.tax_id=%s) AND (purchase_order_line.order_id=%s)", (tax.id, order_obj.id))
+ lines = self.cr.fetchall() or None
+ if lines:
+ if isinstance(lines, list):
+ line_ids = [l[0] for l in lines]
+ else:
+ line_ids = lines[0]
+ base = 0
+ for line in pooler.get_pool(self.cr.dbname).get('purchase.order.line').browse(self.cr, self.uid, line_ids):
+ base += line.price_subtotal
+ res.append({'code':tax.name,
+ 'base':base,
+ 'amount':base*tax.amount})
+ return res
+ def _get_product_code(self, product_id, partner_id):
+ product_obj=pooler.get_pool(self.cr.dbname).get('product.product')
+ return product_obj._product_code(self.cr, self.uid, [product_id], name=None, arg=None, context={'partner_id': partner_id})[product_id]
+
+ def __init__(self, cr, uid, name, context):
+ super(purchase_order_ccorp, self).__init__(cr, uid, name, context=context)
+ self.localcontext.update({
+ 'time': time,
+ 'get_line_tax': self._get_line_tax,
+ 'get_tax': self._get_tax,
+ 'get_product_code': self._get_product_code,
+ 'cr' : cr,
+ 'uid' : uid,
+ })
+ self.context = context
+ self._node = None
+
+report_sxw.report_sxw(
+ 'report.purchase.order.layout_ccorp',
+ 'purchase.order',
+ 'addons/ccorp_purchase/report/purchase_order.mako',
+ parser=purchase_order_ccorp
+)
=== added file 'TODO-6.1/ccorp_purchase/report/purchase_quotation.mako'
--- TODO-6.1/ccorp_purchase/report/purchase_quotation.mako 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_purchase/report/purchase_quotation.mako 2013-01-15 16:49:27 +0000
@@ -0,0 +1,103 @@
+<html>
+<head>
+ <style type="text/css">
+ ${css}
+ </style>
+</head>
+<body class = "data">
+ %for po in objects :
+ <% setLang(po.partner_id.lang) %>
+ <div id="wrapper">
+ <table width = "100%" class = "document_data">
+ <tr class = "title">
+ <td class = "document_data">
+ %if po.state =='draft' :
+ <span class="title">${_("Request for Quotation")} ${po.name or ''|entity}</span><br/>
+ %endif
+ %if po.state != 'draft' :
+ <span class="title">${_("Order N°")} ${po.name or ''|entity}</span>
+ %endif
+ </td>
+ <td>
+ ${(po.partner_id and po.partner_id.title and po.partner_id.title.name) or ''} ${po.partner_id and po.partner_id.name or ''}
+ </td>
+ </tr>
+ <tr>
+ %if po.state != 'draft' :
+ <td><span class="title">${_("Partnert Order Ref")}
+ ${po.partner_ref or ''|entity}
+ </span><br/>
+ </td>
+ %else:
+ <td> </td>
+ %endif
+ <td>${_("ID Num.")}: ${po.partner_id.ref or '-'|entity}</td>
+ </tr>
+ <tr>
+ <td>${_("Date Ordered:")}
+ %if po.date_order:
+ ${formatLang(po.date_order, date=True)|entity}
+ %endif</td>
+ <td>${_("Phone")}:${po.partner_address_id and po.partner_address_id.phone or '-'|entity}</td>
+ </tr>
+ <tr>
+ <td>${_("Validated By.")}: ${po.validator and po.validator.name or ''|entity}</td>
+ <td>${_("Fax")}:${po.partner_address_id and po.partner_address_id.fax or '-'|entity}</td>
+ </tr>
+ <tr>
+ <td>${_("TVA")}: ${(po.partner_id and po.partner_id.vat) or '-'|entity}</td>
+ <td>${_("Email")}: ${po.partner_id.email or '-'|entity}</td>
+ </tr>
+ <tr class = "zone_break"><td> </td><td> </td></tr>
+ <!-- Shipping partner address -->
+ <!-- Invoice partner address -->
+ <tr class = "title"><td>${_("Partner address")}</td><td>${_("Shipping address")}</td></tr>
+ <tr><td>${(po.partner_address_id and po.partner_address_id.street ) or ''}</td><td>${(po.dest_address_id and po.dest_address_id.street ) or ''}</td></tr>
+ <tr><td>${(po.partner_address_id and po.partner_address_id.street2 ) or ''}</td><td>${(po.dest_address_id and po.dest_address_id.street2 ) or ''}</td></tr>
+ <tr>
+ <td>${(po.partner_address_id.zip and format(po.partner_address_id.zip) + ((po.partner_address_id.city or po.partner_address_id.state_id or po.partner_address_id.country_id) and ' ' or '') or '') + (po.partner_address_id.city and format(po.partner_address_id.city) or '')}</td>
+ <td>${(po.dest_address_id.zip and format(po.dest_address_id.zip) + ((po.dest_address_id.city or po.dest_address_id.state_id or po.dest_address_id.country_id) and ' ' or '') or '') + (po.dest_address_id.city and format(po.dest_address_id.city) or '')}</td>
+ </tr>
+ <tr>
+ <td>${(po.partner_address_id.state_id and format(po.partner_address_id.state_id.name) + (po.partner_address_id.country_id and ', ' or '') or '') + (po.partner_address_id.country_id and format(po.partner_address_id.country_id.name) or '')}</td>
+ <td>${(po.dest_address_id.state_id and format(po.dest_address_id.state_id.name) + (po.dest_address_id.country_id and ', ' or '') or '') + (po.dest_address_id.country_id and format(po.dest_address_id.country_id.name) or '')}</td>
+ </tr>
+ </table>
+
+ <table id="data-table" cellspacing="3">
+ <thead><th>${_("Qty")}</th><th>${_("[Code] Description / (Taxes)")}</th><th>${_("Date Req.")}</th><th>${_("Unit Price")}</th><th>${_("Total Price")}</th></thead>
+ <tbody>
+ <%i = 0 %>
+ %for line in po.order_line :
+ %if i% 2 == 0:
+ <tr class = "even">
+ %else:
+ <tr class = "odd">
+ %endif
+ <td valign = "top">${formatLang(line.product_qty)} ${format(line.product_uom.name)}</td>
+ <td valign = "top" id="desc_col_po">${line.name} ${', '.join(map(lambda x: x.name, line.taxes_id))|entity}
+ %if line.notes :
+ <br/><span class = "notes"><b>${_("Note")}:</b> ${format(line.notes)}</span>
+ %endif
+ </td>
+ <td valign = "top">${formatLang( line.date_planned, date=True)}</td>
+ <td valign = "top" style="text-align:right;">${po.pricelist_id.currency_id.symbol_prefix or ''|entity } ${formatLang(line.price_unit,digits=get_digits(dp='Purchase Price'))} ${po.pricelist_id.currency_id.symbol_suffix or ''|entity }</td>
+ <td valign = "top" style="text-align:right;">${po.pricelist_id.currency_id.symbol_prefix or ''|entity } ${formatLang(line.price_subtotal)} ${po.pricelist_id.currency_id.symbol_suffix or ''|entity }</td>
+ </tr>
+ <%i +=1%>
+ %endfor
+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-top:2px solid"><b>${_("Sub Total")}:</b></td><td style="border-top:2px solid;text-align:right">${po.pricelist_id.currency_id.symbol_prefix or ''|entity} ${formatLang(po.amount_untaxed)} ${po.pricelist_id.currency_id.symbol_suffix or ''|entity}</td></tr>
+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"><b>${_("Taxes")}:</b></td><td style="text-align:right">${po.pricelist_id.currency_id.symbol_prefix or ''|entity} ${formatLang(po.amount_tax)} ${po.pricelist_id.currency_id.symbol_suffix or ''|entity}</td></tr>
+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"><b>${_("Total")}:</b></td><td style="text-align:right">${po.pricelist_id.currency_id.symbol_prefix or ''|entity} ${formatLang(po.amount_total)} ${po.pricelist_id.currency_id.symbol_suffix or ''|entity}</td></tr>
+ </tbody>
+ </table>
+ <table id="notes_table">
+ %if po.notes:
+ <tr><td><b>${_("Order Notes:")}</b>${format(po.notes)}</td></tr>
+ %endif
+ </table>
+ </div>
+ <p style="page-break-after:always"></p>
+%endfor
+</body>
+</html>
=== added file 'TODO-6.1/ccorp_purchase/report/purchase_quotation.py'
--- TODO-6.1/ccorp_purchase/report/purchase_quotation.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_purchase/report/purchase_quotation.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,104 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# invoice.py
+# ccorp_sale
+# First author: Mag Guevara <mag.guevara@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2010-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+import time
+import pooler
+from report import report_sxw
+import locale
+
+class purchase_order_quotation_ccorp(report_sxw.rml_parse):
+
+ def _get_line_tax(self, line_obj):
+ self.cr.execute("SELECT tax_id FROM purchase_order_taxe WHERE order_line_id=%s", (line_obj.id))
+ res = self.cr.fetchall() or None
+ if not res:
+ return ""
+ if isinstance(res, list):
+ tax_ids = [t[0] for t in res]
+ else:
+ tax_ids = res[0]
+ res = [tax.name for tax in pooler.get_pool(self.cr.dbname).get('account.tax').browse(self.cr, self.uid, tax_ids)]
+ return ",\n ".join(res)
+
+ def _get_tax(self, order_obj):
+ self.cr.execute("SELECT DISTINCT tax_id FROM purchase_order_taxe, purchase_order_line, purchase_order \
+ WHERE (purchase_order_line.order_id=purchase_order.id) AND (purchase_order.id=%s)", (order_obj.id))
+ res = self.cr.fetchall() or None
+ if not res:
+ return []
+ if isinstance(res, list):
+ tax_ids = [t[0] for t in res]
+ else:
+ tax_ids = res[0]
+ tax_obj = pooler.get_pool(self.cr.dbname).get('account.tax')
+ res = []
+ for tax in tax_obj.browse(self.cr, self.uid, tax_ids):
+ self.cr.execute("SELECT DISTINCT order_line_id FROM purchase_order_line, purchase_order_taxe \
+ WHERE (purchase_order_taxe.tax_id=%s) AND (purchase_order_line.order_id=%s)", (tax.id, order_obj.id))
+ lines = self.cr.fetchall() or None
+ if lines:
+ if isinstance(lines, list):
+ line_ids = [l[0] for l in lines]
+ else:
+ line_ids = lines[0]
+ base = 0
+ for line in pooler.get_pool(self.cr.dbname).get('purchase.order.line').browse(self.cr, self.uid, line_ids):
+ base += line.price_subtotal
+ res.append({'code':tax.name,
+ 'base':base,
+ 'amount':base*tax.amount})
+ return res
+ def _get_product_code(self, product_id, partner_id):
+ product_obj=pooler.get_pool(self.cr.dbname).get('product.product')
+ return product_obj._product_code(self.cr, self.uid, [product_id], name=None, arg=None, context={'partner_id': partner_id})[product_id]
+
+ def __init__(self, cr, uid, name, context):
+ super(purchase_order_quotation_ccorp, self).__init__(cr, uid, name, context=context)
+ self.localcontext.update({
+ 'time': time,
+ 'get_line_tax': self._get_line_tax,
+ 'get_tax': self._get_tax,
+ 'get_product_code': self._get_product_code,
+ 'cr' : cr,
+ 'uid' : uid,
+ })
+ self.context = context
+ self._node = None
+
+report_sxw.report_sxw(
+ 'report.purchase.order.quotation.layout_ccorp',
+ 'purchase.order',
+ 'addons/ccorp_purchase/report/purchase_quotation.mako',
+ parser=purchase_order_quotation_ccorp
+)
=== added directory 'TODO-6.1/ccorp_report_fonts'
=== added file 'TODO-6.1/ccorp_report_fonts/__init__.py'
--- TODO-6.1/ccorp_report_fonts/__init__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_report_fonts/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,35 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# __init__.py
+# ccorp_report_fonts
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2010-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+import ccorp_report_fonts
=== added file 'TODO-6.1/ccorp_report_fonts/__terp__.py'
--- TODO-6.1/ccorp_report_fonts/__terp__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_report_fonts/__terp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,51 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# __terp__.py
+# ccorp_report_fonts
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2010-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+{
+ 'name': 'ClearCorp report fonts',
+ 'version': '0.1',
+ 'url': 'http://launchpad.net/openerp-costa-rica',
+ 'author': 'ClearCorp S.A.',
+ 'website': 'http://clearcorp.co.cr',
+ 'category': 'General Modules',
+ 'description': """Replaces standard fonts with ClearCorp fonts.
+ """,
+ 'depends': ['base'],
+ 'init_xml': [],
+ 'demo_xml': [],
+ 'update_xml': [],
+ 'license': 'Other OSI approved licence',
+ 'installable': True,
+ 'active': False,
+}
=== added file 'TODO-6.1/ccorp_report_fonts/ccorp_report_fonts.py'
--- TODO-6.1/ccorp_report_fonts/ccorp_report_fonts.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_report_fonts/ccorp_report_fonts.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,124 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# ccorp_report_fonts.py
+# ccorp_report_fonts
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2010-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+from tools.config import config
+import report
+import os
+
+import reportlab
+import reportlab.rl_config
+from reportlab.pdfbase import pdfmetrics
+from reportlab.pdfbase.ttfonts import TTFont
+from reportlab.lib.fonts import addMapping
+
+reportlab.rl_config.warnOnMissingFontGlyphs = 0
+enc = 'UTF-8'
+
+def wrap_trml2pdf(method):
+ """We have to wrap the original parseString() to modify the rml data
+ before it generates the pdf."""
+ #AppleGaramond
+ pdfmetrics.registerFont(TTFont('AppleGaramond', os.path.join(os.path.abspath(config['addons_path']), 'ccorp_report_fonts', 'fonts', 'AppleGaramond-Regular.ttf'),enc))
+ pdfmetrics.registerFont(TTFont('AppleGaramond-Bold', os.path.join(os.path.abspath(config['addons_path']), 'ccorp_report_fonts', 'fonts', 'AppleGaramond-Bold.ttf'),enc))
+ pdfmetrics.registerFont(TTFont('AppleGaramond-Light', os.path.join(os.path.abspath(config['addons_path']), 'ccorp_report_fonts', 'fonts', 'AppleGaramond-Light.ttf'),enc))
+ pdfmetrics.registerFont(TTFont('AppleGaramond-Italic', os.path.join(os.path.abspath(config['addons_path']), 'ccorp_report_fonts', 'fonts', 'AppleGaramond-Italic.ttf'),enc))
+ pdfmetrics.registerFont(TTFont('AppleGaramond-BoldItalic', os.path.join(os.path.abspath(config['addons_path']), 'ccorp_report_fonts', 'fonts', 'AppleGaramond-BoldItalic.ttf'),enc))
+ pdfmetrics.registerFont(TTFont('AppleGaramond-LightItalic', os.path.join(os.path.abspath(config['addons_path']), 'ccorp_report_fonts', 'fonts', 'AppleGaramond-LightItalic.ttf'),enc))
+ addMapping('AppleGaramond', 0, 0, 'AppleGaramond')
+ addMapping('AppleGaramond', 1, 0, 'AppleGaramond-Bold')
+ addMapping('AppleGaramond', 0, 1, 'AppleGaramond-Italic')
+ addMapping('AppleGaramond', 1, 1, 'AppleGaramond-BoldItalic')
+ addMapping('AppleGaramond-Light', 0, 0, 'AppleGaramond-Light')
+ addMapping('AppleGaramond-Light', 0, 1, 'AppleGaramond-LightItalic')
+ #MyriadPro
+ pdfmetrics.registerFont(TTFont('MyriadPro', os.path.join(os.path.abspath(config['addons_path']), 'ccorp_report_fonts', 'fonts', 'MyriadPro-Regular.ttf'),enc))
+ pdfmetrics.registerFont(TTFont('MyriadPro-Bold', os.path.join(os.path.abspath(config['addons_path']), 'ccorp_report_fonts', 'fonts', 'MyriadPro-Bold.ttf'),enc))
+ pdfmetrics.registerFont(TTFont('MyriadPro-Italic', os.path.join(os.path.abspath(config['addons_path']), 'ccorp_report_fonts', 'fonts', 'MyriadPro-Italic.ttf'),enc))
+ pdfmetrics.registerFont(TTFont('MyriadPro-BoldItalic', os.path.join(os.path.abspath(config['addons_path']), 'ccorp_report_fonts', 'fonts', 'MyriadPro-BoldItalic.ttf'),enc))
+ addMapping('MyriadPro', 0, 0, 'MyriadPro')
+ addMapping('MyriadPro', 1, 0, 'MyriadPro-Bold')
+ addMapping('MyriadPro', 0, 1, 'MyriadPro-Italic')
+ addMapping('MyriadPro', 1, 1, 'MyriadPro-BoldItalic')
+ #Inconsolata
+ pdfmetrics.registerFont(TTFont('Inconsolata', os.path.join(os.path.abspath(config['addons_path']), 'ccorp_report_fonts', 'fonts', 'Inconsolata.ttf'), enc))
+ addMapping('Inconsolata', 0, 0, 'Inconsolata')
+ addMapping('Inconsolata', 1, 0, 'Inconsolata')
+ addMapping('Inconsolata', 0, 1, 'Inconsolata')
+ addMapping('Inconsolata', 1, 1, 'Inconsolata')
+
+ def convertClearCorpFonts(*args, **argv):
+ """This function replaces the type1 font names with their truetype
+ substitutes and puts a font registration section at the beginning
+ of the rml file. The rml file is acually a string (data)."""
+ data = args[0]
+ fontmap = {
+ 'Times-Roman': 'AppleGaramond',
+ 'Times-BoldItalic': 'AppleGaramond-BoldItalic',
+ 'Times-Bold': 'AppleGaramond-Bold',
+ 'Times-Italic': 'AppleGaramond-Italic',
+ 'Times-Light': 'AppleGaramond-Light',
+ 'Times-LightItalic': 'AppleGaramond-LightItalic',
+
+ 'TimesCondensed-Roman': 'AppleGaramond',
+ 'TimesCondensed-BoldItalic': 'AppleGaramond-BoldItalic',
+ 'TimesCondensed-Bold': 'AppleGaramond-Bold',
+ 'TimesCondensed-Italic': 'AppleGaramond-Italic',
+
+ 'Helvetica-BoldItalic': 'MyriadPro-BoldItalic',
+ 'Helvetica-BoldOblique': 'MyriadPro-BoldItalic',
+ 'Helvetica-Bold': 'MyriadPro-Bold',
+ 'Helvetica-Italic': 'MyriadPro-Italic',
+ 'Helvetica-Oblique': 'MyriadPro-Italic',
+ 'Helvetica': 'MyriadPro',
+
+ 'Helvetica-ExtraLight': 'MyriadPro',
+
+ 'HelveticaCondensed-BoldItalic':'MyriadPro-BoldCondItalic',
+ 'HelveticaCondensed-Bold': 'MyriadPro-BoldCond',
+ 'HelveticaCondensed-Italic': 'MyriadPro-CondItalic',
+ 'HelveticaCondensed': 'MyriadPro-Cond',
+
+ 'Courier': 'Inconsolata',
+ 'Courier-Bold': 'Inconsolata',
+ 'Courier-BoldItalic': 'Inconsolata',
+ 'Courier-Italic': 'Inconsolata',
+ }
+ for old, new in fontmap.iteritems():
+ data = data.replace(old, new)
+ return method(data, args[1:] if len(args) > 2 else args[1], **argv)
+ return convertClearCorpFonts
+
+report.render.rml2pdf.parseString = wrap_trml2pdf(report.render.rml2pdf.parseString)
+
+report.render.rml2pdf.parseNode = wrap_trml2pdf(report.render.rml2pdf.parseNode)
=== added directory 'TODO-6.1/ccorp_report_fonts/fonts'
=== added file 'TODO-6.1/ccorp_report_fonts/fonts/AppleGaramond-Bold.ttf'
Binary files TODO-6.1/ccorp_report_fonts/fonts/AppleGaramond-Bold.ttf 1970-01-01 00:00:00 +0000 and TODO-6.1/ccorp_report_fonts/fonts/AppleGaramond-Bold.ttf 2013-01-15 16:49:27 +0000 differ
=== added file 'TODO-6.1/ccorp_report_fonts/fonts/AppleGaramond-BoldItalic.ttf'
Binary files TODO-6.1/ccorp_report_fonts/fonts/AppleGaramond-BoldItalic.ttf 1970-01-01 00:00:00 +0000 and TODO-6.1/ccorp_report_fonts/fonts/AppleGaramond-BoldItalic.ttf 2013-01-15 16:49:27 +0000 differ
=== added file 'TODO-6.1/ccorp_report_fonts/fonts/AppleGaramond-Italic.ttf'
Binary files TODO-6.1/ccorp_report_fonts/fonts/AppleGaramond-Italic.ttf 1970-01-01 00:00:00 +0000 and TODO-6.1/ccorp_report_fonts/fonts/AppleGaramond-Italic.ttf 2013-01-15 16:49:27 +0000 differ
=== added file 'TODO-6.1/ccorp_report_fonts/fonts/AppleGaramond-Light.ttf'
Binary files TODO-6.1/ccorp_report_fonts/fonts/AppleGaramond-Light.ttf 1970-01-01 00:00:00 +0000 and TODO-6.1/ccorp_report_fonts/fonts/AppleGaramond-Light.ttf 2013-01-15 16:49:27 +0000 differ
=== added file 'TODO-6.1/ccorp_report_fonts/fonts/AppleGaramond-LightItalic.ttf'
Binary files TODO-6.1/ccorp_report_fonts/fonts/AppleGaramond-LightItalic.ttf 1970-01-01 00:00:00 +0000 and TODO-6.1/ccorp_report_fonts/fonts/AppleGaramond-LightItalic.ttf 2013-01-15 16:49:27 +0000 differ
=== added file 'TODO-6.1/ccorp_report_fonts/fonts/AppleGaramond-Regular.ttf'
Binary files TODO-6.1/ccorp_report_fonts/fonts/AppleGaramond-Regular.ttf 1970-01-01 00:00:00 +0000 and TODO-6.1/ccorp_report_fonts/fonts/AppleGaramond-Regular.ttf 2013-01-15 16:49:27 +0000 differ
=== added file 'TODO-6.1/ccorp_report_fonts/fonts/Inconsolata.ttf'
Binary files TODO-6.1/ccorp_report_fonts/fonts/Inconsolata.ttf 1970-01-01 00:00:00 +0000 and TODO-6.1/ccorp_report_fonts/fonts/Inconsolata.ttf 2013-01-15 16:49:27 +0000 differ
=== added file 'TODO-6.1/ccorp_report_fonts/fonts/MyriadPro-Bold.ttf'
Binary files TODO-6.1/ccorp_report_fonts/fonts/MyriadPro-Bold.ttf 1970-01-01 00:00:00 +0000 and TODO-6.1/ccorp_report_fonts/fonts/MyriadPro-Bold.ttf 2013-01-15 16:49:27 +0000 differ
=== added file 'TODO-6.1/ccorp_report_fonts/fonts/MyriadPro-BoldCond.ttf'
Binary files TODO-6.1/ccorp_report_fonts/fonts/MyriadPro-BoldCond.ttf 1970-01-01 00:00:00 +0000 and TODO-6.1/ccorp_report_fonts/fonts/MyriadPro-BoldCond.ttf 2013-01-15 16:49:27 +0000 differ
=== added file 'TODO-6.1/ccorp_report_fonts/fonts/MyriadPro-BoldCondItalic.ttf'
Binary files TODO-6.1/ccorp_report_fonts/fonts/MyriadPro-BoldCondItalic.ttf 1970-01-01 00:00:00 +0000 and TODO-6.1/ccorp_report_fonts/fonts/MyriadPro-BoldCondItalic.ttf 2013-01-15 16:49:27 +0000 differ
=== added file 'TODO-6.1/ccorp_report_fonts/fonts/MyriadPro-BoldItalic.ttf'
Binary files TODO-6.1/ccorp_report_fonts/fonts/MyriadPro-BoldItalic.ttf 1970-01-01 00:00:00 +0000 and TODO-6.1/ccorp_report_fonts/fonts/MyriadPro-BoldItalic.ttf 2013-01-15 16:49:27 +0000 differ
=== added file 'TODO-6.1/ccorp_report_fonts/fonts/MyriadPro-Cond.ttf'
Binary files TODO-6.1/ccorp_report_fonts/fonts/MyriadPro-Cond.ttf 1970-01-01 00:00:00 +0000 and TODO-6.1/ccorp_report_fonts/fonts/MyriadPro-Cond.ttf 2013-01-15 16:49:27 +0000 differ
=== added file 'TODO-6.1/ccorp_report_fonts/fonts/MyriadPro-CondItalic.ttf'
Binary files TODO-6.1/ccorp_report_fonts/fonts/MyriadPro-CondItalic.ttf 1970-01-01 00:00:00 +0000 and TODO-6.1/ccorp_report_fonts/fonts/MyriadPro-CondItalic.ttf 2013-01-15 16:49:27 +0000 differ
=== added file 'TODO-6.1/ccorp_report_fonts/fonts/MyriadPro-Italic.ttf'
Binary files TODO-6.1/ccorp_report_fonts/fonts/MyriadPro-Italic.ttf 1970-01-01 00:00:00 +0000 and TODO-6.1/ccorp_report_fonts/fonts/MyriadPro-Italic.ttf 2013-01-15 16:49:27 +0000 differ
=== added file 'TODO-6.1/ccorp_report_fonts/fonts/MyriadPro-Regular.ttf'
Binary files TODO-6.1/ccorp_report_fonts/fonts/MyriadPro-Regular.ttf 1970-01-01 00:00:00 +0000 and TODO-6.1/ccorp_report_fonts/fonts/MyriadPro-Regular.ttf 2013-01-15 16:49:27 +0000 differ
=== added file 'TODO-6.1/ccorp_report_fonts/fonts/MyriadPro-Semibold.ttf'
Binary files TODO-6.1/ccorp_report_fonts/fonts/MyriadPro-Semibold.ttf 1970-01-01 00:00:00 +0000 and TODO-6.1/ccorp_report_fonts/fonts/MyriadPro-Semibold.ttf 2013-01-15 16:49:27 +0000 differ
=== added file 'TODO-6.1/ccorp_report_fonts/fonts/MyriadPro-SemiboldItalic.ttf'
Binary files TODO-6.1/ccorp_report_fonts/fonts/MyriadPro-SemiboldItalic.ttf 1970-01-01 00:00:00 +0000 and TODO-6.1/ccorp_report_fonts/fonts/MyriadPro-SemiboldItalic.ttf 2013-01-15 16:49:27 +0000 differ
=== added directory 'TODO-6.1/ccorp_sale_payment_term'
=== added file 'TODO-6.1/ccorp_sale_payment_term/__init__.py'
--- TODO-6.1/ccorp_sale_payment_term/__init__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_sale_payment_term/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,1 @@
+import ccorp_sale_payment_term
=== added file 'TODO-6.1/ccorp_sale_payment_term/__openerp__.py'
--- TODO-6.1/ccorp_sale_payment_term/__openerp__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_sale_payment_term/__openerp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,44 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# address_name_inc.py
+# address_name_inc
+# First author: Mag Guevara <mag.guevara@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+{
+ "name" : "Payterm required for sale",
+ "author" : "ClearCorp S.A.",
+ "version" : "0.1",
+ "depends" : ["base","sale"],
+ "init_xml" : [],
+ "update_xml" : [],
+ "category" : "Sale",
+ "active" : False,
+ "instalable" : True,
+}
=== added file 'TODO-6.1/ccorp_sale_payment_term/ccorp_sale_payment_term.py'
--- TODO-6.1/ccorp_sale_payment_term/ccorp_sale_payment_term.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/ccorp_sale_payment_term/ccorp_sale_payment_term.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,46 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# address_name_inc.py
+# address_name_inc
+# First author: Mag Guevara <mag.guevara@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+from osv import osv, fields
+from tools import debug
+from tools.translate import _
+
+class sale_payment(osv.osv):
+ _name = 'sale.order'
+ _inherit = 'sale.order'
+
+ _columns = {
+ 'payment_term': fields.many2one('account.payment.term', 'Payment Term', required=True),
+ }
+sale_payment()
+
=== added directory 'TODO-6.1/company_webkit'
=== added file 'TODO-6.1/company_webkit/__init__.py'
--- TODO-6.1/company_webkit/__init__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/company_webkit/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,1 @@
+import company_webkit
=== added file 'TODO-6.1/company_webkit/__openerp__.py'
--- TODO-6.1/company_webkit/__openerp__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/company_webkit/__openerp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,44 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# account_rename.py
+# account_rename
+# First author: Mag Guevara <mag.guevara@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+{
+ "name" : "Company fields for report webkit",
+ "author" : "ClearCorp S.A.",
+ "version" : "1.0",
+ "depends" : ["base","report_webkit"],
+ "init_xml" : [],
+ "update_xml" : ["company_webkit_view.xml"],
+ "category" : "Report",
+ "active" : False,
+ "instalable" : True,
+}
=== added file 'TODO-6.1/company_webkit/company_webkit.py'
--- TODO-6.1/company_webkit/company_webkit.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/company_webkit/company_webkit.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,282 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# company_webkit.py
+# company_webkit
+# First author: Mag Guevara <mag.guevara@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+from osv import osv, fields
+from tools import debug
+from tools.translate import _
+
+class company_webkit(osv.osv):
+ _name = "res.company"
+ _inherit = "res.company"
+
+ def _get_default_header(self,cr,uid,ids):
+ return """
+<html>
+ <head>
+ <meta content="text/html; charset=UTF-8" http-equiv="content-type"/>
+ <script>
+ function subst() {
+ var vars={};
+ var x=document.location.search.substring(1).split('&');
+ for(var i in x) {var z=x[i].split('=',2);vars[z[0]] = unescape(z[1]);}
+ var x=['frompage','topage','page','webpage','section','subsection','subsubsection'];
+ for(var i in x) {
+ var y = document.getElementsByClassName(x[i]);
+ for(var j=0; j<y.length; ++j) y[j].textContent = vars[x[i]];
+ }
+ }
+ </script>
+ <style type="text/css">
+ ${css}
+ </style>
+ </head>
+ <body class = "header" onload="subst()">
+ <table class="header-table" cellspacing = "3">
+ <tbody>
+ <tr>
+ <td>
+ ${helper.embed_logo_by_name('company_logo')|n}
+ </td>
+ <td>
+ <table class="company_data">
+ <tr class = "title">
+ <td>${company.partner_id.name |entity}</td>
+ <td style = "text-align : right;">${_("Address")}</td>
+ </tr>
+ <tr>
+ <td>${_("ID Num")}: ${company.partner_id.ref | entity}</td>
+ <td style = "text-align : right;">${company.partner_id.address[0].street or ''|entity}</td>
+ </tr>
+ <tr>
+ <td>${_("Tel-fax")}: ${company.partner_id.address[0].phone or '-'|entity}</td>
+ <td style = "text-align : right;">${company.partner_id.address[0].street2 or ''|entity}</td>
+ </tr>
+ <tr>
+ <td>${_("E-mail")}: ${company.partner_id.address[0].email or '-'|entity}</td>
+ <td style = "text-align : right;">${company.partner_id.address[0].zip or ''|entity} ${company.partner_id.address[0].city or ''|entity}</td>
+ </tr>
+ <tr>
+ <td>${_("Web")}: ${company.partner_id.website or '-'|entity}</td>
+ %if company.partner_id.address[0].country_id :
+ <td style = "text-align : right;">${company.partner_id.address[0].state_id.name or ''|entity}, ${company.partner_id.address[0].country_id.name or ''|entity} </td>
+ %else:
+ <td style = "text-align : right;"> </td>
+ %endif
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p class = "slogan">${company.rml_header1}</p>
+ <hr />${_debug or ''|n} </body>
+</html>
+"""
+
+ def _get_default_footer(self,cr,uid,ids):
+ return """
+<html>
+ <head>
+ <meta content="text/html; charset=UTF-8" http-equiv="content-type"/>
+ <script>
+ function subst() {
+ var vars={};
+ var x=document.location.search.substring(1).split('&');
+ for(var i in x) {var z=x[i].split('=',2);vars[z[0]] = unescape(z[1]);}
+ var x=['frompage','topage','page','webpage','section','subsection','subsubsection'];
+ for(var i in x) {
+ var y = document.getElementsByClassName(x[i]);
+ for(var j=0; j<y.length; ++j) y[j].textContent = vars[x[i]];
+ }
+ }
+ </script>
+ <style type="text/css">
+ ${css}
+ </style>
+ </head>
+ <body class = "footer" onload="subst()">
+ <table class = "footer_table">
+ <tr><td><p class ="company_footer">${company.webkit_footer1 or ' '}</p></td></tr>
+ <tr><td><p class ="company_footer">${company.webkit_footer2 or ' '}</p></td><td style="text-align:right;font-size:12;">Page <span class="page"/></td><td style="text-align:left;font-size:12;"> of <span class="topage"/></td></tr>
+ <tr><td><p class ="company_footer">${company.webkit_footer3 or ' '}</p></td></tr>
+ </table>
+ </body>
+</html>
+ """
+ def _get_default_css(self,cr,uid,ids):
+ return """
+ .header {
+ padding : 200px 10px 5px 10px;
+ border:0; margin: 0;
+ }
+ .header-table {
+ width: 100%;
+ padding-top: 8%;
+ }
+ .partner-table {
+ width: 100%;
+ font-family: Arial,Verdana, Sans, Serif;
+ font-size: 12;
+ }
+
+ #data-table {
+ width: 100%;
+ padding-top: 20px;
+ font-family: Arial,Verdana, Sans, Serif;
+ font-size: 12;
+ }
+ #data-table th{
+ border-bottom:2px solid black;
+ text-align:center;
+ font-size:12;
+ font-weight:bold;
+ padding-right:3px;
+ padding-left:3px;
+ }
+ #data-table thead {
+ display:table-header-group;
+ }
+
+ .title {
+ font-size:16;
+ font-weight: bold;
+ }
+
+ .company_address{
+ width : 100%;
+ text-align: right;
+ font-family: Arial,Verdana, Sans, Serif;
+ font-size: 13;
+ }
+
+ .company_data {
+ width : 100%;
+ text-align: center;
+ font-family: Arial,Verdana, Sans, Serif;
+ font-size: 13;
+
+ }
+
+ .company_footer {
+ font-family: Arial,Verdana, Sans, Serif;
+ font-size: 8.4;
+ font-style : italic;
+ }
+ .footer {
+ border-top: 1px solid black;
+ width: 100%;
+ border:0; margin: 0;
+ padding-bottom: 300px;
+ }
+
+ .data {
+ padding : 5px 10px 10px 10px;
+ border:0; margin: 0;
+ }
+
+ .footer_table {
+ width: 100%;
+ padding-bottom: 150px;
+ border-top: 1px solid black;
+ }
+
+ .slogan {
+ font-family: Arial,Verdana, Sans, Serif;
+ font-size: 10;
+ font-style : italic;
+ color : #888888;
+ }
+
+ #notes_table {
+ font-family: Arial,Verdana, Sans, Serif;
+ font-size: 12;
+ font-style : italic;
+ width:65%;
+ border-collapse:separate;
+ border-spacing:10px;
+ }
+ #notes_table td{
+ background-color: #eee;
+ padding: 10px
+ }
+
+ .document_data {
+ font-family: Arial,Verdana, Sans, Serif;
+ font-size: 13;
+ width : 100%;
+ }
+
+ #data-table tbody tr.even td {
+ background-color: #eee;
+ }
+ #data-table tbody tr.odd td {
+ background-color: #fff;
+ }
+
+ .notes{
+ padding-top : 0px;
+ margin-left: 5px;
+ font-style : italic;
+ }
+ #desc_col{
+ width : 380px;
+ }
+
+ """
+ def create(self,cr,uid, vals,context=None):
+ company_id = super(company_webkit,self).create(cr,uid,vals,context)
+ obj_company = self.pool.get('res.company').browse(cr,uid,company_id)
+
+ vals = {
+ 'name' : 'Base ' + obj_company.name,
+ 'html': obj_company._get_default_header(),
+ 'css' : obj_company._get_default_css(),
+ 'footer_html' : obj_company._get_default_footer(),
+ 'margin_top' : 55.00,
+ 'margin_bottom' : 24.00,
+ 'orientation' : 'Portrait',
+ 'format' : 'Letter',
+ }
+ register_id = self.pool.get('ir.header_webkit').search(cr,uid,[('name','=', 'Base ' + obj_company.name)])
+ if not register_id:
+ #obj_header = super(rent_contract,self).create(cr,uid,vals,context)
+ obj_company.write({'header_webkit' : [(0,0, vals)]})
+ return obj_company.id
+
+ _columns = {
+ 'webkit_footer1': fields.char('Report Footer 1', size=200),
+ 'webkit_footer2': fields.char('Report Footer 2', size=200),
+ 'webkit_footer3': fields.char('Report Footer 3', size=200),
+ }
+company_webkit()
=== added file 'TODO-6.1/company_webkit/company_webkit_view.xml'
--- TODO-6.1/company_webkit/company_webkit_view.xml 1970-01-01 00:00:00 +0000
+++ TODO-6.1/company_webkit/company_webkit_view.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,28 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<openerp>
+ <data>
+
+ <!--
+ ======================================
+ accounts
+ ======================================
+ -->
+
+ <record model = "ir.ui.view" id = "view_webkit_company_form">
+ <field name = "name">res.company.form</field>
+ <field name = "model">res.company</field>
+ <field name = "type">form</field>
+ <field name="inherit_id" ref="report_webkit.currency_del_img"/>
+ <field name = "arch" type = "xml">
+ <data>
+ <field name = "lib_path" position = "after">
+ <field name = "webkit_footer1"/>
+ <field name = "webkit_footer2"/>
+ <field name = "webkit_footer3"/>
+ </field>
+ </data>
+ </field>
+ </record>
+ </data>
+</openerp>
+
=== added directory 'TODO-6.1/purchase_change_pricelist'
=== added file 'TODO-6.1/purchase_change_pricelist/__init__.py'
--- TODO-6.1/purchase_change_pricelist/__init__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/purchase_change_pricelist/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,1 @@
+import wizard
=== added file 'TODO-6.1/purchase_change_pricelist/__openerp__.py'
--- TODO-6.1/purchase_change_pricelist/__openerp__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/purchase_change_pricelist/__openerp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,44 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# purchase_change_pricelist.py
+# purchase_change_pricelist
+# First author: Mag Guevara <mag.guevara@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+{
+ "name" : "Purchase change pricelist",
+ "author" : "ClearCorp S.A.",
+ "version" : "1.0",
+ "depends" : ["base","purchase"],
+ "init_xml" : [],
+ "update_xml" : ["wizard/purchase_change_pricelist_view.xml","purchase_pricelist_view.xml",],
+ "category" : "Purchase",
+ "active" : False,
+ "instalable" : True,
+}
=== added file 'TODO-6.1/purchase_change_pricelist/purchase_pricelist_view.xml'
--- TODO-6.1/purchase_change_pricelist/purchase_pricelist_view.xml 1970-01-01 00:00:00 +0000
+++ TODO-6.1/purchase_change_pricelist/purchase_pricelist_view.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,27 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<openerp>
+ <data>
+
+ <!--
+ ======================================
+ purchase order
+ ======================================
+ -->
+
+ <record model = "ir.ui.view" id = "view_purchase_update_currency">
+ <field name = "name">purchase.order.pricelist.form</field>
+ <field name = "model">purchase.order</field>
+ <field name = "type">form</field>
+ <field name="inherit_id" ref="purchase.purchase_order_form"/>
+ <field name = "arch" type = "xml">
+ <data>
+ <field name="pricelist_id" position="replace">
+ <field domain="[('type','=','purchase')]" name="pricelist_id" groups="base.group_extended" readonly="1"/>
+ <button name="%(action_purchase_change_pricelist)d" string="Change Currency" type="action" icon="terp-stock_effects-object-colorize" attrs="{'invisible':[('state','!=','draft')]}" />
+ </field>
+ </data>
+ </field>
+ </record>
+ </data>
+</openerp>
+
=== added directory 'TODO-6.1/purchase_change_pricelist/wizard'
=== added file 'TODO-6.1/purchase_change_pricelist/wizard/__init__.py'
--- TODO-6.1/purchase_change_pricelist/wizard/__init__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/purchase_change_pricelist/wizard/__init__.py 2013-01-15 16:49:27 +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 purchase_change_pricelist
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
+
=== added file 'TODO-6.1/purchase_change_pricelist/wizard/purchase_change_pricelist.py'
--- TODO-6.1/purchase_change_pricelist/wizard/purchase_change_pricelist.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/purchase_change_pricelist/wizard/purchase_change_pricelist.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,90 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# purchase_change_pricelist.py
+# purchase_change_pricelist
+# First author: Mag Guevara <mag.guevara@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+from osv import osv, fields
+from tools import debug
+from tools.translate import _
+
+class purchase_change_pricelist(osv.osv_memory):
+ _name = 'purchase.change.pricelist'
+
+ _columns = {
+ 'pricelist_id': fields.many2one('product.pricelist', 'Change to', required=True, help="Select a pricelist to apply on the purchase order"),
+ }
+
+ def view_init(self, cr , uid , fields_list, context=None):
+ obj_inv = self.pool.get('purchase.order')
+ if context is None:
+ context = {}
+ if context.get('active_id',False):
+ if obj_inv.browse(cr, uid, context['active_id']).state != 'draft':
+ raise osv.except_osv(_('Error'), _('You can only change pricelist for Draft orders !'))
+ pass
+
+ def change_currency(self, cr, uid, ids, context=None):
+ obj_po = self.pool.get('purchase.order')
+ obj_po_line = self.pool.get('purchase.order.line')
+ obj_currency = self.pool.get('res.currency')
+
+ data = self.read(cr, uid, ids)[0]
+ new_pricelist_id = data['pricelist_id']
+
+ porder = obj_po.browse(cr, uid, context['active_id'], context=context)
+
+ new_currency = self.pool.get('product.pricelist').browse(cr,uid,new_pricelist_id).currency_id.id
+
+ if porder.pricelist_id.currency_id.id == new_currency:
+ return {}
+ rate = obj_currency.browse(cr, uid, new_currency).rate
+ for line in porder.order_line:
+ new_price = 0
+ if porder.company_id.currency_id.id == porder.pricelist_id.currency_id.id:
+ new_price = line.price_unit * rate
+ if new_price <= 0:
+ raise osv.except_osv(_('Error'), _('New currency is not confirured properly !'))
+
+ if porder.company_id.currency_id.id != porder.pricelist_id.currency_id.id and porder.company_id.currency_id.id == new_currency:
+ old_rate = porder.pricelist_id.currency_id.rate
+ if old_rate <= 0:
+ raise osv.except_osv(_('Error'), _('Currnt currency is not confirured properly !'))
+ new_price = line.price_unit / old_rate
+
+ if porder.company_id.currency_id.id != porder.pricelist_id.currency_id.id and porder.company_id.currency_id.id != new_currency:
+ old_rate = porder.pricelist_id.currency_id.rate
+ if old_rate <= 0:
+ raise osv.except_osv(_('Error'), _('Current currency is not confirured properly !'))
+ new_price = (line.price_unit / old_rate ) * rate
+ obj_po_line.write(cr, uid, [line.id], {'price_unit': new_price})
+ obj_po.write(cr, uid, [porder.id], {'pricelist_id': new_pricelist_id})
+ return {'type': 'ir.actions.act_window_close'}
+purchase_change_pricelist()
=== added file 'TODO-6.1/purchase_change_pricelist/wizard/purchase_change_pricelist_view.xml'
--- TODO-6.1/purchase_change_pricelist/wizard/purchase_change_pricelist_view.xml 1970-01-01 00:00:00 +0000
+++ TODO-6.1/purchase_change_pricelist/wizard/purchase_change_pricelist_view.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+ <data>
+ <record id="view_purchase_change_list" model="ir.ui.view">
+ <field name="name">Change Pricelist</field>
+ <field name="model">purchase.change.pricelist</field>
+ <field name="type">form</field>
+ <field name="arch" type="xml">
+ <form string="Purchase Pricelist">
+ <separator colspan="4" string="This wizard will change the currency to the new pricelist of the Purchase"/>
+ <field name="pricelist_id" domain="[('type','=','purchase')]"/>
+ <separator colspan="4"/>
+ <group colspan="2" col="4">
+ <button special="cancel" string="Cancel" icon="gtk-cancel"/>
+ <button name="change_currency" string="Change Pricelist" type="object" icon="terp-stock_effects-object-colorize"/>
+ </group>
+ </form>
+ </field>
+ </record>
+
+ <record id="action_purchase_change_pricelist" model="ir.actions.act_window">
+ <field name="name">Change Pricelist</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">purchase.change.pricelist</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">form</field>
+ <field name="view_id" ref="view_purchase_change_list"/>
+ <field name="target">new</field>
+ </record>
+ </data>
+</openerp>
=== added directory 'TODO-6.1/report_webkit_format'
=== added file 'TODO-6.1/report_webkit_format/__init__.py'
--- TODO-6.1/report_webkit_format/__init__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/report_webkit_format/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,1 @@
+import report_webkit_format
=== added file 'TODO-6.1/report_webkit_format/__openerp__.py'
--- TODO-6.1/report_webkit_format/__openerp__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/report_webkit_format/__openerp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,12 @@
+{
+ "name" : "Report webkit format",
+ "author" : "CLEARCORP S.A",
+ "version" : "0.1",
+ "depends" : ["report_webkit"],
+ "init_xml" : [],
+ "update_xml" : [
+ ],
+ "category" : "Reporting",
+ "active": False,
+ "installable": True
+}
=== added file 'TODO-6.1/report_webkit_format/report_webkit_format.py'
--- TODO-6.1/report_webkit_format/report_webkit_format.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/report_webkit_format/report_webkit_format.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,65 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# Author: Mag Guevara. Copyright ClearCorp SA
+#
+# 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 osv import osv, fields
+
+class report_webkit_format(osv.osv):
+ _name = "ir.header_webkit"
+ _inherit = "ir.header_webkit"
+ _columns = {
+ 'format': fields.selection( [
+ ('A0' ,'A0 5 841 x 1189 mm'),
+ ('A1' ,'A1 6 594 x 841 mm'),
+ ('A2' ,'A2 7 420 x 594 mm'),
+ ('A3' ,'A3 8 297 x 420 mm'),
+ ('A4' ,'A4 0 210 x 297 mm, 8.26 x 11.69 inches'),
+ ('A5' ,'A5 9 148 x 210 mm'),
+ ('A6' ,'A6 10 105 x 148 mm'),
+ ('A7' ,'A7 11 74 x 105 mm'),
+ ('A8' ,'A8 12 52 x 74 mm'),
+ ('A9' ,'A9 13 37 x 52 mm'),
+ ('B0' ,'B0 14 1000 x 1414 mm'),
+ ('B1' ,'B1 15 707 x 1000 mm'),
+ ('B2' ,'B2 17 500 x 707 mm'),
+ ('B3' ,'B3 18 353 x 500 mm'),
+ ('B4' ,'B4 19 250 x 353 mm'),
+ ('B5' ,'B5 1 176 x 250 mm, 6.93 x 9.84 inches'),
+ ('B6' ,'B6 20 125 x 176 mm'),
+ ('B7' ,'B7 21 88 x 125 mm'),
+ ('B8' ,'B8 22 62 x 88 mm'),
+ ('B9' ,'B9 23 33 x 62 mm'),
+ ('B10',':B10 16 31 x 44 mm'),
+ ('C5E','C5E 24 163 x 229 mm'),
+ ('Letter','Checks 25 171 x 180 mm'),
+ ('Comm10E','Comm10E 26 105 x 241 mm, U.S. Common 10 Envelope'),
+ ('DLE', 'DLE 27 110 x 220 mm'),
+ ('Executive','Executive 4 7.5 x 10 inches, 190.5 x 254 mm'),
+ ('Folio','Folio 28 210 x 330 mm'),
+ ('Ledger', 'Ledger 29 431.8 x 279.4 mm'),
+ ('Legal', 'Legal 3 8.5 x 14 inches, 215.9 x 355.6 mm'),
+ ('Letter','Letter 2 8.5 x 11 inches, 215.9 x 279.4 mm'),
+ ('Tabloid', 'Tabloid 29 279.4 x 431.8 mm'),
+ ],
+ 'Paper size',
+ required=True,
+ help="Select Proper Paper size"
+ )
+ }
+report_webkit_format()
=== added directory 'TODO-6.1/sale_change_pricelist'
=== added file 'TODO-6.1/sale_change_pricelist/__init__.py'
--- TODO-6.1/sale_change_pricelist/__init__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/sale_change_pricelist/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,1 @@
+import wizard
=== added file 'TODO-6.1/sale_change_pricelist/__openerp__.py'
--- TODO-6.1/sale_change_pricelist/__openerp__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/sale_change_pricelist/__openerp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,44 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# sale_change_pricelist.py
+# sale_change_pricelist
+# First author: Mag Guevara <mag.guevara@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+{
+ "name" : "Sale change pricelist",
+ "author" : "ClearCorp S.A.",
+ "version" : "1.0",
+ "depends" : ["base","sale"],
+ "init_xml" : [],
+ "update_xml" : ["wizard/sale_change_pricelist_view.xml","sale_pricelist_view.xml",],
+ "category" : "Sale",
+ "active" : False,
+ "instalable" : True,
+}
=== added file 'TODO-6.1/sale_change_pricelist/sale_pricelist_view.xml'
--- TODO-6.1/sale_change_pricelist/sale_pricelist_view.xml 1970-01-01 00:00:00 +0000
+++ TODO-6.1/sale_change_pricelist/sale_pricelist_view.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,27 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<openerp>
+ <data>
+
+ <!--
+ ======================================
+ sales order
+ ======================================
+ -->
+
+ <record model = "ir.ui.view" id = "view_sale_update_currency">
+ <field name = "name">sale.order.pricelist.form</field>
+ <field name = "model">sale.order</field>
+ <field name = "type">form</field>
+ <field name="inherit_id" ref="sale.view_order_form"/>
+ <field name = "arch" type = "xml">
+ <data>
+ <field name="pricelist_id" position="replace">
+ <field domain="[('type','=','sale')]" name="pricelist_id" groups="base.group_extended" readonly="1"/>
+ <button name="%(action_sale_change_pricelist)d" string="Change Currency" type="action" icon="terp-stock_effects-object-colorize" attrs="{'invisible':[('state','!=','draft')]}"/>
+ </field>
+ </data>
+ </field>
+ </record>
+ </data>
+</openerp>
+
=== added directory 'TODO-6.1/sale_change_pricelist/wizard'
=== added file 'TODO-6.1/sale_change_pricelist/wizard/__init__.py'
--- TODO-6.1/sale_change_pricelist/wizard/__init__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/sale_change_pricelist/wizard/__init__.py 2013-01-15 16:49:27 +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 sale_change_pricelist
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
+
=== added file 'TODO-6.1/sale_change_pricelist/wizard/sale_change_pricelist.py'
--- TODO-6.1/sale_change_pricelist/wizard/sale_change_pricelist.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/sale_change_pricelist/wizard/sale_change_pricelist.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,92 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# sale_change_pricelist.py
+# sale_change_pricelist
+# First author: Mag Guevara <mag.guevara@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+from osv import osv, fields
+from tools import debug
+from tools.translate import _
+
+class sale_change_pricelist(osv.osv_memory):
+ _name = 'sale.change.pricelist'
+
+ _columns = {
+ 'pricelist_id': fields.many2one('product.pricelist', 'Change to', required=True, help="Select a pricelist to apply on the sale order"),
+ }
+
+ def view_init(self, cr , uid , fields_list, context=None):
+ obj_inv = self.pool.get('sale.order')
+ if context is None:
+ context = {}
+ if context.get('active_id',False):
+ if obj_inv.browse(cr, uid, context['active_id']).state != 'draft':
+ raise osv.except_osv(_('Error'), _('You can only change pricelist for Draft orders !'))
+ pass
+
+ def change_currency(self, cr, uid, ids, context=None):
+ obj_so = self.pool.get('sale.order')
+ obj_so_line = self.pool.get('sale.order.line')
+ obj_currency = self.pool.get('res.currency')
+
+ data = self.read(cr, uid, ids)[0]
+ new_pricelist_id = data['pricelist_id']
+
+ sorder = obj_so.browse(cr, uid, context['active_id'], context=context)
+ #new_pricelist_id = sorder.pricelist_id and sorder.pricelist_id.id or False
+
+ new_currency = self.pool.get('product.pricelist').browse(cr,uid,new_pricelist_id).currency_id.id
+
+ if sorder.pricelist_id.currency_id.id == new_currency:
+ return {}
+ rate = obj_currency.browse(cr, uid, new_currency).rate
+ debug(sorder.order_line)
+ for line in sorder.order_line:
+ new_price = 0
+ if sorder.company_id.currency_id.id == sorder.pricelist_id.currency_id.id:
+ new_price = line.price_unit * rate
+ if new_price <= 0:
+ raise osv.except_osv(_('Error'), _('New currency is not confirured properly !'))
+
+ if sorder.company_id.currency_id.id != sorder.pricelist_id.currency_id.id and sorder.company_id.currency_id.id == new_currency:
+ old_rate = sorder.pricelist_id.currency_id.rate
+ if old_rate <= 0:
+ raise osv.except_osv(_('Error'), _('Currnt currency is not confirured properly !'))
+ new_price = line.price_unit / old_rate
+
+ if sorder.company_id.currency_id.id != sorder.pricelist_id.currency_id.id and sorder.company_id.currency_id.id != new_currency:
+ old_rate = sorder.pricelist_id.currency_id.rate
+ if old_rate <= 0:
+ raise osv.except_osv(_('Error'), _('Current currency is not confirured properly !'))
+ new_price = (line.price_unit / old_rate ) * rate
+ obj_so_line.write(cr, uid, [line.id], {'price_unit': new_price})
+ obj_so.write(cr, uid, [sorder.id], {'pricelist_id': new_pricelist_id})
+ return {'type': 'ir.actions.act_window_close'}
+sale_change_pricelist()
=== added file 'TODO-6.1/sale_change_pricelist/wizard/sale_change_pricelist_view.xml'
--- TODO-6.1/sale_change_pricelist/wizard/sale_change_pricelist_view.xml 1970-01-01 00:00:00 +0000
+++ TODO-6.1/sale_change_pricelist/wizard/sale_change_pricelist_view.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+ <data>
+ <record id="view_sale_change_list" model="ir.ui.view">
+ <field name="name">Change Pricelist</field>
+ <field name="model">sale.change.pricelist</field>
+ <field name="type">form</field>
+ <field name="arch" type="xml">
+ <form string="Sale Pricelist">
+ <separator colspan="4" string="This wizard will change the currency to the new pricelist of the sale"/>
+ <field name="pricelist_id" domain="[('type','=','sale')]"/>
+ <separator colspan="4"/>
+ <group colspan="2" col="4">
+ <button special="cancel" string="Cancel" icon="gtk-cancel"/>
+ <button name="change_currency" string="Change Pricelist" type="object" icon="terp-stock_effects-object-colorize"/>
+ </group>
+ </form>
+ </field>
+ </record>
+
+ <record id="action_sale_change_pricelist" model="ir.actions.act_window">
+ <field name="name">Change Pricelist</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">sale.change.pricelist</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">form</field>
+ <field name="view_id" ref="view_sale_change_list"/>
+ <field name="target">new</field>
+ </record>
+ </data>
+</openerp>
=== added directory 'TODO-6.1/stock_location_rename'
=== added file 'TODO-6.1/stock_location_rename/__init__.py'
--- TODO-6.1/stock_location_rename/__init__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/stock_location_rename/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,1 @@
+import stock_location_rename
=== added file 'TODO-6.1/stock_location_rename/__openerp__.py'
--- TODO-6.1/stock_location_rename/__openerp__.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/stock_location_rename/__openerp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,11 @@
+{
+ "name" : "stock_location_rename",
+ "author" : "ClearCorp S.A.",
+ "version" : "1.0",
+ "depends" : ["base","stock"],
+ "init_xml" : [],
+ "update_xml" : ["stock_location_rename_view.xml"],
+ "category" : "Stock",
+ "active" : False,
+ "instalable" : True,
+}
=== added file 'TODO-6.1/stock_location_rename/stock_location_rename.py'
--- TODO-6.1/stock_location_rename/stock_location_rename.py 1970-01-01 00:00:00 +0000
+++ TODO-6.1/stock_location_rename/stock_location_rename.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,70 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# stock_location_rename.py
+# stock_location_rename
+# First author: Mag Guevara <mag.guevara@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+from osv import osv, fields
+from tools import debug
+from tools.translate import _
+
+class stock_location(osv.osv):
+ _name = "stock.location"
+ _inherit = "stock.location"
+
+ def name_get(self, cr, uid, ids, context=None):
+ if not ids:
+ return []
+ res = []
+ for obj_stock_location in self.browse(cr,uid,ids):
+ data = []
+ location = obj_stock_location.location_id
+ while location:
+ data.insert(0,(location.shortcut or location.name))
+ location = location.location_id
+ data.append(obj_stock_location.name)
+ data = '/'.join(data)
+ res.append((obj_stock_location.id, data))
+ return res
+
+ def _complete_name2(self, cr, uid, ids, name, args, context=None):
+ """ Forms complete name of location from parent location to child location.
+ @return: Dictionary of values
+ """
+ res = {}
+ name_list = self.name_get(cr,uid,ids,context)
+ for name in name_list:
+ res[name[0]] = name[1]
+ return res
+ _columns = {
+ 'shortcut' : fields.char('Shortcut',size=10),
+ 'complete_name': fields.function(_complete_name2, method=True, type='char', size=100, string="Location Name"),
+ }
+stock_location()
=== added file 'TODO-6.1/stock_location_rename/stock_location_rename_view.xml'
--- TODO-6.1/stock_location_rename/stock_location_rename_view.xml 1970-01-01 00:00:00 +0000
+++ TODO-6.1/stock_location_rename/stock_location_rename_view.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,39 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<openerp>
+ <data>
+
+ <!--
+ ======================================
+ STOCK LOCATIONS
+ ======================================
+ -->
+ <record model = "ir.ui.view" id = "stock_rename_form_view">
+ <field name = "name">stock.location.form</field>
+ <field name = "model">stock.location</field>
+ <field name = "type">form</field>
+ <field name="inherit_id" ref="stock.view_location_form"/>
+ <field name="arch" type="xml">
+ <data>
+ <field name="location_id" position = "after">
+ <field name="shortcut"/>
+ </field>
+ </data>
+ </field>
+ </record>
+
+ <record model = "ir.ui.view" id = "stock_rename_tree_view">
+ <field name = "name">stock.location.tree</field>
+ <field name = "model">stock.location</field>
+ <field name = "type">tree</field>
+ <field name="inherit_id" ref="stock.view_location_tree2"/>
+ <field name = "arch" type = "xml">
+ <data>
+ <field name = "complete_name" position = "after">
+ <field name = "shortcut"/>
+ </field>
+ </data>
+ </field>
+ </record>
+ </data>
+</openerp>
+
=== added directory 'account_account_rename'
=== added file 'account_account_rename/__init__.py'
--- account_account_rename/__init__.py 1970-01-01 00:00:00 +0000
+++ account_account_rename/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Addons modules by CLEARCORP S.A.
+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
+#
+# 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_rename
=== added file 'account_account_rename/__openerp__.py'
--- account_account_rename/__openerp__.py 1970-01-01 00:00:00 +0000
+++ account_account_rename/__openerp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,53 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Addons modules by CLEARCORP S.A.
+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
+#
+# 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 object (account.account) rename',
+ "version" : '1.0',
+ "author" : 'CLEARCORP S.A',
+ 'complexity': 'normal',
+ "description": """
+This module simply renames the financial account. It makes uses of the company shortcut (provided by "base_company_prefix" module) and the account shortcut field.
+
+The account will appear as:
+CP-CODE SRT2/SRT3/.../SRTn-1/NAME
+
+CP: Company prefix
+CODE: Account code
+SRT2: Account shortcut for the second parent (being the account without parent the first)
+SRTX: Next account shortcuts for the account hierarchy
+NAME: Account name
+ """,
+ "category": 'Accounting & Finance',
+ "sequence": 4,
+ "website" : "http://clearcorp.co.cr",
+ "images" : [],
+ "icon" : False,
+ "depends" : ["account","base_company_prefix"],
+ "init_xml" : [],
+ "demo_xml" : [],
+ "update_xml" : ["account_rename_view.xml"],
+ "test" : [],
+ "auto_install": False,
+ "application": False,
+ "installable": True,
+}
\ No newline at end of file
=== added file 'account_account_rename/account_rename.py'
--- account_account_rename/account_rename.py 1970-01-01 00:00:00 +0000
+++ account_account_rename/account_rename.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,101 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# account_rename.py
+# account_rename
+# First author: Mag Guevara <mag.guevara@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+from osv import osv, fields
+#from tools import debug
+from tools.translate import _
+
+class account_account(osv.osv):
+ _name = "account.account"
+ _inherit = "account.account"
+
+ def name_get(self, cr, uid, ids, context=None):
+ if not ids:
+ return []
+ res = []
+ for obj_account in self.browse(cr,uid,ids):
+ obj_company = self.pool.get('res.company').browse(cr,uid,obj_account.company_id.id)
+ prefix= obj_company.prefix
+ if prefix == False:
+ prefix = ''
+ data = []
+ account = obj_account.parent_id
+ if account.parent_id:
+ while account.parent_id:
+ data.insert(0,(account.shortcut or account.name))
+ account = account.parent_id
+ data.append(obj_account.name)
+ data = '/'.join(data)
+ data = obj_account.code + ' ' + data
+ data = prefix and prefix + '-' + data or data
+ else:
+ data.append(obj_account.name)
+ data = '/'.join(data)
+ data = prefix and prefix + ' ' + data or data
+ res.append((obj_account.id, data))
+ return res
+
+ #def _complete_name(self, cr, uid, ids, name, args, context=None):
+ #""" Forms complete name of account from parent account to child account.
+ #@return: Dictionary of values
+ #"""
+ #res = {}
+ #name_list = self.name_get(cr,uid,ids,context)
+ #for name in name_list:
+ #res[name[0]] = name[1]
+ #return res
+ #_columns = {
+ #'complete_name': fields.function(_complete_name, method=True, type='char', size=100, string="Account Name"),
+ #}
+
+class account_fiscalyear(osv.osv):
+ '''
+ Adds up to 16 chars to a Fiscal year code
+ '''
+ _name = 'account.fiscalyear'
+ _inherit = 'account.fiscalyear'
+
+ _columns = {
+ 'code': fields.char('Code', size=16, required=True, help="The code will be used to generate the numbers of the journal entries of this journal."),
+ }
+
+class account_period(osv.osv):
+ '''
+ Adds up to 16 chars to a Fiscal year code
+ '''
+ _name = 'account.period'
+ _inherit = 'account.period'
+
+ _columns = {
+ 'code': fields.char('Code', size=16),
+ }
=== added file 'account_account_rename/account_rename_view.xml'
--- account_account_rename/account_rename_view.xml 1970-01-01 00:00:00 +0000
+++ account_account_rename/account_rename_view.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,43 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<openerp>
+ <data>
+
+ <!--
+ ======================================
+ accounts
+ ======================================
+ -->
+
+ <record model = "ir.ui.view" id = "account_rename_tree_view">
+ <field name = "name">account.account.tree</field>
+ <field name = "model">account.account</field>
+ <field name = "type">tree</field>
+ <field name="inherit_id" ref="account.view_account_list"/>
+ <field name = "arch" type = "xml">
+ <data>
+ <field name = "name" position = "after">
+ <field name = "shortcut"/>
+ </field>
+ <field name = "company_currency_id" position = "after">
+ <field name = "currency_id"/>
+ </field>
+ </data>
+ </field>
+ </record>
+
+ <record model = "ir.ui.view" id = "account_rename_form_view">
+ <field name = "name">account.account.form</field>
+ <field name = "model">account.account</field>
+ <field name = "type">form</field>
+ <field name="inherit_id" ref="account.view_account_form"/>
+ <field name = "arch" type = "xml">
+ <data>
+ <field name = "user_type" position = "after">
+ <field name = "shortcut" />
+ </field>
+ </data>
+ </field>
+ </record>
+ </data>
+</openerp>
+
=== added directory 'account_invoice_global_discount'
=== added file 'account_invoice_global_discount/__init__.py'
--- account_invoice_global_discount/__init__.py 1970-01-01 00:00:00 +0000
+++ account_invoice_global_discount/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Addons modules by CLEARCORP S.A.
+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
+#
+# 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_invoice_global_discount
+import wizard
=== added file 'account_invoice_global_discount/__openerp__.py'
--- account_invoice_global_discount/__openerp__.py 1970-01-01 00:00:00 +0000
+++ account_invoice_global_discount/__openerp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,52 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Addons modules by CLEARCORP S.A.
+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
+#
+# 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" : 'Global invoice discount',
+ "version" : '1.0',
+ "author" : 'CLEARCORP S.A',
+ #easy, normal, expert
+ 'complexity': 'normal',
+ "description": """
+Adds a discount feature for invoice.
+
+With it one can add a discount percent to all invoice lines on an invoice.
+It adds the discounted and undiscounted amounts on the invoice totals.
+ """,
+ "category": 'Accounting & Finance',
+ "sequence": 4,
+ "website" : "http://clearcorp.co.cr",
+ "images" : [],
+ "icon" : False,
+ "depends" : ['account'],
+ "init_xml" : [],
+ "demo_xml" : [],
+ "update_xml" : [
+ 'account_invoice_global_discount_wizard.xml',
+ 'account_invoice_global_discount_view.xml',
+ ],
+ "test" : [],
+ "auto_install": False,
+ "application": False,
+ "installable": True,
+ 'license': 'AGPL-3',
+}
=== added file 'account_invoice_global_discount/account_invoice_global_discount.py'
--- account_invoice_global_discount/account_invoice_global_discount.py 1970-01-01 00:00:00 +0000
+++ account_invoice_global_discount/account_invoice_global_discount.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,105 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Addons modules by CLEARCORP S.A.
+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
+#
+# 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 osv import osv,fields
+from tools import config
+import decimal_precision as dp
+
+class account_invoice_line_ccorp(osv.osv):
+ '''
+ Inherits account.invoice.line de add global discount feature.
+ '''
+ _inherit = 'account.invoice.line'
+
+ def _amount_line_no_discount(self, cr, uid, ids, prop, unknow_none,unknow_dict):
+ res = {}
+ cur_obj=self.pool.get('res.currency')
+ for line in self.browse(cr, uid, ids):
+ if line.invoice_id:
+ res[line.id] = line.price_unit * line.quantity
+ cur = line.invoice_id.currency_id
+ res[line.id] = cur_obj.round(cr, uid, cur, res[line.id])
+ else:
+ res[line.id] = line.price_unit * line.quantity
+ return res
+
+ def _amount_line_ccorp(self, cr, uid, ids, prop, unknow_none,unknow_dict):
+ return self.pool.get('account.invoice.line')._amount_line(cr, uid, ids, prop, unknow_none,unknow_dict)
+
+ _columns = {
+ 'price_subtotal': fields.function(_amount_line_ccorp, method=True, string='Subtotal (discounted)',store=True, type="float", digits_compute=dp.get_precision('Account')),
+ 'price_subtotal_not_discounted': fields.function(_amount_line_no_discount, method=True, string='Subtotal',store=True, type="float", digits_compute=dp.get_precision('Account')),
+ }
+
+class account_invoice_ccorp(osv.osv):
+ '''
+ Inherits account.invoice to add global discount feature.
+ '''
+
+ _inherit = 'account.invoice'
+
+ def _amount_all_ccorp(self, cr, uid, ids, name, args, context=None):
+ res = {}
+ for invoice in self.browse(cr,uid,ids, context=context):
+ res[invoice.id] = {
+ 'invoice_discount': 0.0,
+ 'amount_discounted': 0.0,
+ 'amount_untaxed_not_discounted': 0.0,
+ }
+ for line in invoice.invoice_line:
+ res[invoice.id]['amount_untaxed_not_discounted'] += line.price_subtotal_not_discounted
+ res[invoice.id]['amount_discounted'] += line.price_subtotal_not_discounted - line.price_subtotal
+ if res[invoice.id]['amount_untaxed_not_discounted'] == 0:
+ res[invoice.id]['invoice_discount'] = 0
+ else:
+ res[invoice.id]['invoice_discount'] = 100 * res[invoice.id]['amount_discounted'] / res[invoice.id]['amount_untaxed_not_discounted']
+ return res
+
+ def _get_invoice_line_ccorp(self, cr, uid, ids, context=None):
+ return self.pool.get('account.invoice')._get_invoice_line(cr, uid, ids, context)
+
+ def _get_invoice_tax_ccorp(self, cr, uid, ids, context=None):
+ return self.pool.get('account.invoice')._get_invoice_tax(cr, uid, ids, context)
+
+ _columns = {
+ 'invoice_discount': fields.function(_amount_all_ccorp, method=True, digits_compute=dp.get_precision('Account'), string='Discount (%)',
+ store={
+ 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20),
+ 'account.invoice.tax': (_get_invoice_tax_ccorp, None, 20),
+ 'account.invoice.line': (_get_invoice_line_ccorp, ['price_unit','invoice_line_tax_id','quantity','discount'], 20),
+ },
+ multi='ccorp'),
+ 'amount_discounted': fields.function(_amount_all_ccorp, method=True, digits_compute=dp.get_precision('Account'), string='Discount',
+ store={
+ 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20),
+ 'account.invoice.tax': (_get_invoice_tax_ccorp, None, 20),
+ 'account.invoice.line': (_get_invoice_line_ccorp, ['price_unit','invoice_line_tax_id','quantity','discount'], 20),
+ },
+ multi='ccorp'),
+ 'amount_untaxed_not_discounted': fields.function(_amount_all_ccorp, method=True, digits_compute=dp.get_precision('Account'),string='Subtotal',
+ store={
+ 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20),
+ 'account.invoice.tax': (_get_invoice_tax_ccorp, None, 20),
+ 'account.invoice.line': (_get_invoice_line_ccorp, ['price_unit','invoice_line_tax_id','quantity','discount'], 20),
+ },
+ multi='ccorp'),
+ }
=== added file 'account_invoice_global_discount/account_invoice_global_discount_view.xml'
--- account_invoice_global_discount/account_invoice_global_discount_view.xml 1970-01-01 00:00:00 +0000
+++ account_invoice_global_discount/account_invoice_global_discount_view.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp><data>
+ <!--
+ Resource: account.invoice
+ Adds fields with not discounted amounts
+ -->
+ <record id="invoice_tree_ccorp1" model="ir.ui.view">
+ <field name="name">account.invoice.tree_ccorp1</field>
+ <field name="model">account.invoice</field>
+ <field name="inherit_id" ref="account.invoice_tree"/>
+ <field name="type">tree</field>
+ <field name="arch" type="xml">
+ <field name="amount_untaxed" position="replace">
+ <field name="amount_untaxed_not_discounted" sum="Untaxed amount"/>
+ </field>
+ </field>
+ </record>
+ <record id="invoice_tree_ccorp2" model="ir.ui.view">
+ <field name="name">account.invoice.tree_ccorp2</field>
+ <field name="model">account.invoice</field>
+ <field name="inherit_id" ref="account.invoice_tree"/>
+ <field name="type">tree</field>
+ <field name="arch" type="xml">
+ <field name="amount_total" position="before">
+ <field name="invoice_discount"/>
+ <field name="amount_discounted" sum="Discounted amount"/>
+ </field>
+ </field>
+ </record>
+
+ <record id="invoice_supplier_form_ccorp_line1" model="ir.ui.view">
+ <field name="name">account.invoice.supplier.form_ccorp1</field>
+ <field name="model">account.invoice</field>
+ <field name="inherit_id" ref="account.invoice_supplier_form"/>
+ <field name="type">form</field>
+ <field name="arch" type="xml">
+ <xpath expr="/form/notebook/page/field[@name='invoice_line']/tree/field[@name='price_subtotal']" position="before">
+ <field name="discount"/>
+ </xpath>
+ </field>
+ </record>
+ <record id="invoice_supplier_form_ccorp_line2" model="ir.ui.view">
+ <field name="name">account.invoice.supplier.form_ccorp1</field>
+ <field name="model">account.invoice</field>
+ <field name="inherit_id" ref="account.invoice_supplier_form"/>
+ <field name="type">form</field>
+ <field name="arch" type="xml">
+ <xpath expr="/form/notebook/page/field[@name='invoice_line']/tree/field[@name='price_subtotal']" position="after">
+ <field name="price_subtotal_not_discounted"/>
+ </xpath>
+ </field>
+ </record>
+
+ <record id="invoice_supplier_form_ccorp1" model="ir.ui.view">
+ <field name="name">account.invoice.supplier.form_ccorp1</field>
+ <field name="model">account.invoice</field>
+ <field name="inherit_id" ref="account.invoice_supplier_form"/>
+ <field name="type">form</field>
+ <field name="arch" type="xml">
+ <xpath expr="/form/notebook/page/group/button[@name='button_reset_taxes']" position="replace">
+ <button colspan="2" name="%(invoice_discount)d" states="draft" string="Apply Discount" type="action"/>
+ <button colspan="2" name="button_reset_taxes" states="draft" string="Compute Totals" type="object"/>
+ </xpath>
+ </field>
+ </record>
+ <record id="invoice_supplier_form_ccorp2" model="ir.ui.view">
+ <field name="name">account.invoice.supplier.form_ccorp2</field>
+ <field name="model">account.invoice</field>
+ <field name="inherit_id" ref="account.invoice_supplier_form"/>
+ <field name="type">form</field>
+ <field name="arch" type="xml">
+ <xpath expr="/form/notebook/page/group/field[@name='amount_untaxed']" position="replace">
+ <label colspan="2"/>
+ <field name="amount_untaxed_not_discounted"/>
+ <field name="invoice_discount"/>
+ <field name="amount_discounted"/>
+ </xpath>
+ </field>
+ </record>
+
+ <record id="invoice_form_ccorp1" model="ir.ui.view">
+ <field name="name">account.invoice.form_ccorp1</field>
+ <field name="model">account.invoice</field>
+ <field name="inherit_id" ref="account.invoice_form"/>
+ <field name="type">form</field>
+ <field name="arch" type="xml">
+ <xpath expr="/form/notebook/page/group/field[@name='amount_untaxed']" position="replace">
+ <field name="amount_untaxed_not_discounted"/>
+ <group colspan="2" col="1">
+ <button colspan="2" name="%(invoice_discount)d" states="draft" string="Apply Discount" type="action"/>
+ </group>
+ <field name="invoice_discount"/>
+ <label colspan="2" string=""/>
+ <field name="amount_discounted"/>
+ </xpath>
+ </field>
+ </record>
+
+ <!--
+ Resource: account.invoice.line
+ Adds the subtotal not discounted to tree and form views
+ -->
+ <record id="view_invoice_line_tree_ccorp" model="ir.ui.view">
+ <field name="name">account.invoice.line.tree_ccorp</field>
+ <field name="model">account.invoice.line</field>
+ <field name="inherit_id" ref="account.view_invoice_line_tree"/>
+ <field name="type">tree</field>
+ <field name="arch" type="xml">
+ <field name="price_subtotal" position="after">
+ <field name="price_subtotal_not_discounted"/>
+ </field>
+ </field>
+ </record>
+</data>
+</openerp>
=== added file 'account_invoice_global_discount/account_invoice_global_discount_wizard.xml'
--- account_invoice_global_discount/account_invoice_global_discount_wizard.xml 1970-01-01 00:00:00 +0000
+++ account_invoice_global_discount/account_invoice_global_discount_wizard.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+ <data noupdate="1">
+ <!--
+ Resource: account.invoice
+ -->
+ <wizard string="Discount" model="account.invoice" name="invoice.discount" id="invoice_discount" menu="False"/>
+ </data>
+</openerp>
=== added directory 'account_invoice_global_discount/i18n'
=== added file 'account_invoice_global_discount/i18n/account_invoice_global_discount.pot'
--- account_invoice_global_discount/i18n/account_invoice_global_discount.pot 1970-01-01 00:00:00 +0000
+++ account_invoice_global_discount/i18n/account_invoice_global_discount.pot 2013-01-15 16:49:27 +0000
@@ -0,0 +1,83 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * account_invoice_global_discount
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 5.0.12\n"
+"Report-Msgid-Bugs-To: support@xxxxxxxxxxx\n"
+"POT-Creation-Date: 2010-08-15 05:20:45+0000\n"
+"PO-Revision-Date: 2010-08-15 05:20:45+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: account_invoice_global_discount
+#: view:account.invoice:0
+msgid "Compute Totals"
+msgstr ""
+
+#. module: account_invoice_global_discount
+#: view:account.invoice:0
+msgid "Discounted amount"
+msgstr ""
+
+#. module: account_invoice_global_discount
+#: wizard_field:invoice.discount,init,discount:0
+msgid "Discount percentage"
+msgstr ""
+
+#. module: account_invoice_global_discount
+#: model:ir.module.module,shortdesc:account_invoice_global_discount.module_meta_information
+msgid "Global invoice discount"
+msgstr ""
+
+#. module: account_invoice_global_discount
+#: model:ir.module.module,description:account_invoice_global_discount.module_meta_information
+msgid "Adds a discount feature for invoice.\n"
+" With it one can add a discount percent to all invoice lines on an invoice.\n"
+" It adds the discounted and undiscounted amounts on the invoice totals.\n"
+" "
+msgstr ""
+
+#. module: account_invoice_global_discount
+#: field:account.invoice,amount_discounted:0
+#: model:ir.actions.wizard,name:account_invoice_global_discount.invoice_discount
+msgid "Discount"
+msgstr ""
+
+#. module: account_invoice_global_discount
+#: wizard_view:invoice.discount,init:0
+msgid "Discount:"
+msgstr ""
+
+#. module: account_invoice_global_discount
+#: view:account.invoice:0
+msgid "Untaxed amount"
+msgstr "Base imponible"
+
+#. module: account_invoice_global_discount
+#: wizard_button:invoice.discount,init,end:0
+msgid "Cancel"
+msgstr ""
+
+#. module: account_invoice_global_discount
+#: view:account.invoice:0
+#: wizard_button:invoice.discount,init,apply_discount:0
+msgid "Apply Discount"
+msgstr ""
+
+#. module: account_invoice_global_discount
+#: field:account.invoice,amount_untaxed_not_discounted:0
+#: field:account.invoice.line,price_subtotal_not_discounted:0
+msgid "Subtotal"
+msgstr ""
+
+#. module: account_invoice_global_discount
+#: field:account.invoice,invoice_discount:0
+msgid "Discount (%)"
+msgstr ""
+
=== added file 'account_invoice_global_discount/i18n/ar.po'
--- account_invoice_global_discount/i18n/ar.po 1970-01-01 00:00:00 +0000
+++ account_invoice_global_discount/i18n/ar.po 2013-01-15 16:49:27 +0000
@@ -0,0 +1,86 @@
+# Arabic translation for openerp-ccorp-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openerp-ccorp-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openerp-ccorp-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2010-08-15 05:20+0000\n"
+"PO-Revision-Date: 2012-06-25 08:21+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Arabic <ar@xxxxxx>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2012-12-15 05:23+0000\n"
+"X-Generator: Launchpad (build 16372)\n"
+
+#. module: account_invoice_global_discount
+#: view:account.invoice:0
+msgid "Compute Totals"
+msgstr ""
+
+#. module: account_invoice_global_discount
+#: view:account.invoice:0
+msgid "Discounted amount"
+msgstr ""
+
+#. module: account_invoice_global_discount
+#: wizard_field:invoice.discount,init,discount:0
+msgid "Discount percentage"
+msgstr ""
+
+#. module: account_invoice_global_discount
+#: model:ir.module.module,shortdesc:account_invoice_global_discount.module_meta_information
+msgid "Global invoice discount"
+msgstr ""
+
+#. module: account_invoice_global_discount
+#: model:ir.module.module,description:account_invoice_global_discount.module_meta_information
+msgid ""
+"Adds a discount feature for invoice.\n"
+" With it one can add a discount percent to all invoice lines on an "
+"invoice.\n"
+" It adds the discounted and undiscounted amounts on the invoice totals.\n"
+" "
+msgstr ""
+
+#. module: account_invoice_global_discount
+#: field:account.invoice,amount_discounted:0
+#: model:ir.actions.wizard,name:account_invoice_global_discount.invoice_discount
+msgid "Discount"
+msgstr ""
+
+#. module: account_invoice_global_discount
+#: wizard_view:invoice.discount,init:0
+msgid "Discount:"
+msgstr ""
+
+#. module: account_invoice_global_discount
+#: view:account.invoice:0
+msgid "Untaxed amount"
+msgstr ""
+
+#. module: account_invoice_global_discount
+#: wizard_button:invoice.discount,init,end:0
+msgid "Cancel"
+msgstr "إلغاء"
+
+#. module: account_invoice_global_discount
+#: view:account.invoice:0
+#: wizard_button:invoice.discount,init,apply_discount:0
+msgid "Apply Discount"
+msgstr ""
+
+#. module: account_invoice_global_discount
+#: field:account.invoice,amount_untaxed_not_discounted:0
+#: field:account.invoice.line,price_subtotal_not_discounted:0
+msgid "Subtotal"
+msgstr "المجموع الفرعي"
+
+#. module: account_invoice_global_discount
+#: field:account.invoice,invoice_discount:0
+msgid "Discount (%)"
+msgstr "الخصم (%)"
=== added file 'account_invoice_global_discount/i18n/es.po'
--- account_invoice_global_discount/i18n/es.po 1970-01-01 00:00:00 +0000
+++ account_invoice_global_discount/i18n/es.po 2013-01-15 16:49:27 +0000
@@ -0,0 +1,91 @@
+# Spanish translation for openerp-ccorp-addons
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the openerp-ccorp-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openerp-ccorp-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2010-08-15 05:20+0000\n"
+"PO-Revision-Date: 2012-06-25 08:21+0000\n"
+"Last-Translator: ClearCorp S.A. <Unknown>\n"
+"Language-Team: Spanish <es@xxxxxx>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2012-12-15 05:23+0000\n"
+"X-Generator: Launchpad (build 16372)\n"
+
+#. module: account_invoice_global_discount
+#: view:account.invoice:0
+msgid "Compute Totals"
+msgstr "Calcular Totales"
+
+#. module: account_invoice_global_discount
+#: view:account.invoice:0
+msgid "Discounted amount"
+msgstr "Monto descontado"
+
+#. module: account_invoice_global_discount
+#: wizard_field:invoice.discount,init,discount:0
+msgid "Discount percentage"
+msgstr "Porcentaje de descuento"
+
+#. module: account_invoice_global_discount
+#: model:ir.module.module,shortdesc:account_invoice_global_discount.module_meta_information
+msgid "Global invoice discount"
+msgstr "Descuento global de factura"
+
+#. module: account_invoice_global_discount
+#: model:ir.module.module,description:account_invoice_global_discount.module_meta_information
+msgid ""
+"Adds a discount feature for invoice.\n"
+" With it one can add a discount percent to all invoice lines on an "
+"invoice.\n"
+" It adds the discounted and undiscounted amounts on the invoice totals.\n"
+" "
+msgstr ""
+"Agrega la funcionalidad de descuento para la factura\n"
+" Con ésta es posible aplicar un porcentaje de descuento a todas las "
+"líneas de una factura\n"
+" Agrega los montos descontados y sin descontar a los totales de factura.\n"
+" "
+
+#. module: account_invoice_global_discount
+#: field:account.invoice,amount_discounted:0
+#: model:ir.actions.wizard,name:account_invoice_global_discount.invoice_discount
+msgid "Discount"
+msgstr "Descuento"
+
+#. module: account_invoice_global_discount
+#: wizard_view:invoice.discount,init:0
+msgid "Discount:"
+msgstr "Descuento:"
+
+#. module: account_invoice_global_discount
+#: view:account.invoice:0
+msgid "Untaxed amount"
+msgstr "Monto sin impuesto"
+
+#. module: account_invoice_global_discount
+#: wizard_button:invoice.discount,init,end:0
+msgid "Cancel"
+msgstr "Cancelar"
+
+#. module: account_invoice_global_discount
+#: view:account.invoice:0
+#: wizard_button:invoice.discount,init,apply_discount:0
+msgid "Apply Discount"
+msgstr "Aplicar descuento"
+
+#. module: account_invoice_global_discount
+#: field:account.invoice,amount_untaxed_not_discounted:0
+#: field:account.invoice.line,price_subtotal_not_discounted:0
+msgid "Subtotal"
+msgstr "Subtotal"
+
+#. module: account_invoice_global_discount
+#: field:account.invoice,invoice_discount:0
+msgid "Discount (%)"
+msgstr "Descuento (%)"
=== added file 'account_invoice_global_discount/i18n/es_ES.po'
--- account_invoice_global_discount/i18n/es_ES.po 1970-01-01 00:00:00 +0000
+++ account_invoice_global_discount/i18n/es_ES.po 2013-01-15 16:49:27 +0000
@@ -0,0 +1,86 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * account_invoice_global_discount
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 5.0.12\n"
+"Report-Msgid-Bugs-To: support@xxxxxxxxxxx\n"
+"POT-Creation-Date: 2010-08-15 05:20:45+0000\n"
+"PO-Revision-Date: 2010-08-15 05:20:45+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: account_invoice_global_discount
+#: view:account.invoice:0
+msgid "Compute Totals"
+msgstr "Calcular Totales"
+
+#. module: account_invoice_global_discount
+#: view:account.invoice:0
+msgid "Discounted amount"
+msgstr "Monto descontado"
+
+#. module: account_invoice_global_discount
+#: wizard_field:invoice.discount,init,discount:0
+msgid "Discount percentage"
+msgstr "Porcentaje de descuento"
+
+#. module: account_invoice_global_discount
+#: model:ir.module.module,shortdesc:account_invoice_global_discount.module_meta_information
+msgid "Global invoice discount"
+msgstr "Descuento global de factura"
+
+#. module: account_invoice_global_discount
+#: model:ir.module.module,description:account_invoice_global_discount.module_meta_information
+msgid "Adds a discount feature for invoice.\n"
+" With it one can add a discount percent to all invoice lines on an invoice.\n"
+" It adds the discounted and undiscounted amounts on the invoice totals.\n"
+" "
+msgstr "Agrega la funcionalidad de descuento a la factura\n"
+" Con ésta es posible aplicar un porcetaje de descuento a todas las líneas de una factura.\n"
+" Agrega los montos con y sin descuento al total de la factura.\n"
+" "
+
+#. module: account_invoice_global_discount
+#: field:account.invoice,amount_discounted:0
+#: model:ir.actions.wizard,name:account_invoice_global_discount.invoice_discount
+msgid "Discount"
+msgstr "Descuento"
+
+#. module: account_invoice_global_discount
+#: wizard_view:invoice.discount,init:0
+msgid "Discount:"
+msgstr "Descuento:"
+
+#. module: account_invoice_global_discount
+#: view:account.invoice:0
+msgid "Untaxed amount"
+msgstr "Base imponible"
+
+#. module: account_invoice_global_discount
+#: wizard_button:invoice.discount,init,end:0
+msgid "Cancel"
+msgstr "Cancelar"
+
+#. module: account_invoice_global_discount
+#: view:account.invoice:0
+#: wizard_button:invoice.discount,init,apply_discount:0
+msgid "Apply Discount"
+msgstr "Aplicar Descuento"
+
+#. module: account_invoice_global_discount
+#: field:account.invoice,amount_untaxed_not_discounted:0
+#: field:account.invoice.line,price_subtotal_not_discounted:0
+msgid "Subtotal"
+msgstr "Subtotal"
+
+#. module: account_invoice_global_discount
+#: field:account.invoice,invoice_discount:0
+msgid "Discount (%)"
+msgstr "Descuento (%)"
+
=== added directory 'account_invoice_global_discount/wizard'
=== added file 'account_invoice_global_discount/wizard/__init__.py'
--- account_invoice_global_discount/wizard/__init__.py 1970-01-01 00:00:00 +0000
+++ account_invoice_global_discount/wizard/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,35 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# __init__.py
+# account_invoice_global_discount
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2010-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+import discount_wizard
=== added file 'account_invoice_global_discount/wizard/discount_wizard.py'
--- account_invoice_global_discount/wizard/discount_wizard.py 1970-01-01 00:00:00 +0000
+++ account_invoice_global_discount/wizard/discount_wizard.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,87 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# wizard_discount.py
+# account_invoice_global_discount
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2010-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+import pooler
+import wizard
+
+
+_form = """<?xml version="1.0"?>
+<form string="Discount:">
+ <field name="discount"/>
+</form>
+"""
+
+_fields = {
+ 'discount': {
+ 'string': 'Discount percentage',
+ 'type': 'float',
+ 'required': True,
+ 'default': lambda *args: 0
+ },
+}
+
+
+def apply_discount(self, cr, uid, data, context):
+ pool = pooler.get_pool(cr.dbname)
+ invoice_obj = pool.get('account.invoice')
+ invoice_line_obj = pool.get('account.invoice.line')
+ for invoice in invoice_obj.browse(cr, uid, data['ids'], context=context):
+ invoice_line_obj.write(cr, uid, [line.id for line in invoice.invoice_line], {'discount': data['form']['discount']}, context=context,)
+ return {}
+
+
+class discount_wizard(wizard.interface):
+ states = {
+ 'init': {
+ 'actions': [],
+ 'result': {
+ 'type': 'form',
+ 'arch': _form,
+ 'fields': _fields,
+ 'state': (('end', 'Cancel'),
+ ('apply_discount', 'Apply Discount', 'gtk-ok', True)
+ )
+ }
+ },
+ 'apply_discount': {
+ 'actions': [],
+ 'result': {
+ 'type': 'action',
+ 'action': apply_discount,
+ 'state': "end",
+ }
+ },
+ }
+
+discount_wizard('invoice.discount')
=== added directory 'account_invoice_journal_defaults'
=== added file 'account_invoice_journal_defaults/__init__.py'
--- account_invoice_journal_defaults/__init__.py 1970-01-01 00:00:00 +0000
+++ account_invoice_journal_defaults/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,25 @@
+#-*- coding:utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
+# d$
+#
+# 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_invoice_journal_defaults
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
=== added file 'account_invoice_journal_defaults/__openerp__.py'
--- account_invoice_journal_defaults/__openerp__.py 1970-01-01 00:00:00 +0000
+++ account_invoice_journal_defaults/__openerp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,48 @@
+#-*- coding:utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
+# d$
+#
+# 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_invoice_journal_defaults',
+ 'version': '1.0',
+ 'category': 'Accounting & Finance',
+ "sequence": 4,
+ 'complexity': "normal",
+ 'description': """
+account_invoice_journal_defaults.
+=======================
+ * Currency changed to readonly
+ * Change button removed
+ * account_id removed in onchange_partner
+ * account_id added in onchange_journal
+ """,
+ "author" : 'CLEARCORP S.A',
+ 'website':'http://www.clearcorp.co.cr',
+ "depends" : ['account'],
+ 'update_xml': [
+ 'account_invoice_journal_defaults_view.xml',
+ ],
+ "auto_install": False,
+ "application": False,
+ "installable": True,
+ 'license': 'AGPL-3',
+}
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
=== added file 'account_invoice_journal_defaults/account_invoice_journal_defaults.py'
--- account_invoice_journal_defaults/account_invoice_journal_defaults.py 1970-01-01 00:00:00 +0000
+++ account_invoice_journal_defaults/account_invoice_journal_defaults.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,128 @@
+#-*- coding:utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
+# d$
+#
+# 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 netsvc
+from osv import fields, orm
+import tools
+from tools.translate import _
+
+class AccountInvoice(orm.Model):
+ _inherit = 'account.invoice'
+
+ def onchange_partner_id(self, cr, uid, ids, type, partner_id,\
+ date_invoice=False, payment_term=False, partner_bank_id=False, company_id=False):
+
+ result = super(AccountInvoice, self).onchange_partner_id(cr, uid, ids, type, partner_id, date_invoice, payment_term, partner_bank_id, company_id)
+
+ del result['value']['account_id']
+
+ return result
+
+ def onchange_journal_id(self, cr, uid, ids, journal_id=False, context=None):
+ result = super(AccountInvoice, self).onchange_journal_id(cr, uid, ids, journal_id, context)
+
+ journal = self.pool.get('account.journal').browse(cr, uid, journal_id, context=context)
+
+ if journal.type == 'sale':
+ acc_id = journal.default_receivable_account_id.id
+ elif journal.type == 'purchase':
+ acc_id = journal.default_payable_account_id.id
+ elif journal.type == 'sale_refund':
+ acc_id = journal.default_payable_account_id.id
+ elif journal.type == 'purchase_refund':
+ acc_id = journal.default_receivable_account_id.id
+
+ result['value']['account_id'] = acc_id
+
+ return result
+
+ def create(self, cr, uid, vals, context=None):
+ if 'journal_id' in vals:
+ journal_val_id = vals['journal_id']
+ journal_id = self.pool.get('account.journal').search(cr,uid,[('id','=',journal_val_id)])
+ journal_obj = self.pool.get('account.journal').browse(cr, uid, journal_id, context=context)
+
+ for journal in journal_obj:
+ if journal.type == 'sale':
+ acc_id = journal.default_receivable_account_id.id
+ elif journal.type == 'purchase':
+ acc_id = journal.default_payable_account_id.id
+ elif journal.type == 'sale_refund':
+ acc_id = journal.default_payable_account_id.id
+ elif journal.type == 'purchase_refund':
+ acc_id = journal.default_receivable_account_id.id
+
+ if journal and journal.id:
+ currency_id = journal.currency and journal.currency.id or journal.company_id.currency_id.id
+ else:
+ currency_id = False
+
+ if not 'account_id' in vals:
+ vals['account_id'] = acc_id
+
+ if not 'currency_id' in vals:
+ vals['currency_id'] = currency_id
+
+ return super(AccountInvoice, self).create(cr, uid, vals, context=context)
+
+ def write(self, cr, uid, ids, vals, context=None):
+
+ if 'journal_id' in vals:
+ journal_val_id = vals['journal_id']
+ journal_id = self.pool.get('account.journal').search(cr,uid,[('id','=',journal_val_id)])
+ journal_obj = self.pool.get('account.journal').browse(cr, uid, journal_id, context=context)
+
+ for journal in journal_obj:
+ if journal.type == 'sale':
+ acc_id = journal.default_receivable_account_id.id
+ elif journal.type == 'purchase':
+ acc_id = journal.default_payable_account_id.id
+ elif journal.type == 'sale_refund':
+ acc_id = journal.default_payable_account_id.id
+ elif journal.type == 'purchase_refund':
+ acc_id = journal.default_receivable_account_id.id
+
+ if journal and journal.id:
+ currency_id = journal.currency and journal.currency.id or journal.company_id.currency_id.id
+ else:
+ currency_id = False
+
+ if not 'account_id' in vals:
+ vals['account_id'] = acc_id
+
+ if not 'currency_id' in vals:
+ vals['currency_id'] = currency_id
+
+ return super(AccountInvoice, self).write(cr, uid, ids, vals, context=context)
+
+class AccountJournal(orm.Model):
+ _inherit = 'account.journal'
+
+ _columns = {
+ 'default_receivable_account_id': fields.many2one('account.account', 'Default Receivable Account', domain="[('type','!=','view')]", help="It acts as a default receivable account"),
+ 'default_payable_account_id': fields.many2one('account.account', 'Default Payable Account', domain="[('type','!=','view')]", help="It acts as a default payable account"),
+ }
+
+
+
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
=== added file 'account_invoice_journal_defaults/account_invoice_journal_defaults_view.xml'
--- account_invoice_journal_defaults/account_invoice_journal_defaults_view.xml 1970-01-01 00:00:00 +0000
+++ account_invoice_journal_defaults/account_invoice_journal_defaults_view.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+ <data>
+
+ <!-- Supplier Invoice -->
+ <record id="account_invoice_journal_defalut_supplier_form" model="ir.ui.view">
+ <field name="name">account.invoice.journal.defalut.supplier.form</field>
+ <field name="model">account.invoice</field>
+ <field name="type">form</field>
+ <field name="inherit_id" ref="account.invoice_supplier_form"/>
+ <field name="arch" type="xml">
+ <data>
+ <field name = "currency_id" position = "replace">
+ <field name="currency_id" width="50" readonly="1"/>
+ </field>
+ <field name = "account_id" position = "replace">
+ <field domain="[('company_id', '=', company_id), ('type', '=', 'payable')]" name="account_id" readonly="1" groups="account.group_account_user"/>
+ </field>
+ <button string="Change" position = "replace">
+ <button invisible = "True" type="action" icon="terp-stock_effects-object-colorize" string="Change" groups="account.group_account_user"/>
+ </button>
+ </data>
+ </field>
+ </record>
+ <!-- End Supplier Invoice -->
+
+ <!-- Customer Invoice -->
+ <record id="account_invoice_journal_defalut_customer_form" model="ir.ui.view">
+ <field name="name">account.invoice.journal.defalut.customer.form</field>
+ <field name="model">account.invoice</field>
+ <field name="type">form</field>
+ <field name="inherit_id" ref="account.invoice_form"/>
+ <field name="arch" type="xml">
+ <data>
+ <field name = "currency_id" position = "replace">
+ <field name="currency_id" width="50" readonly="1"/>
+ </field>
+ <field name = "account_id" position = "replace">
+ <field domain="[('company_id', '=', company_id),('type','=', 'receivable')]" name="account_id" readonly="1" groups="account.group_account_user"/>
+ </field>
+ <button string="Change" position = "replace">
+ <button invisible = "True" type="action" icon="terp-stock_effects-object-colorize" string="Change" groups="account.group_account_user"/>
+ </button>
+ </data>
+ </field>
+ </record>
+ <!-- End Customer Invoice -->
+
+ <!-- Account Journal -->
+ <record id="account_invoice_journal_defalut_journal_form" model="ir.ui.view">
+ <field name="name">account.invoice.journal.defalut.journal.form</field>
+ <field name="model">account.journal</field>
+ <field name="type">form</field>
+ <field name="inherit_id" ref="account.view_account_journal_form"/>
+ <field name="arch" type="xml">
+ <data>
+ <field name="default_credit_account_id" position = "after">
+ <group colspan="2" col="2" attrs="{'invisible':[('type','not in', ('sale', 'purchase', 'sale_refund', 'purchase_refund'))]}">
+ <separator string="Default Accounts Receivable/Payable" colspan="4"/>
+ <field name="default_receivable_account_id" attrs="{'required':[('type','in', ('sale', 'purchase', 'sale_refund', 'purchase_refund'))]}" domain="[('type','<>','view'),('type','<>','consolidation')]"/>
+ <field name="default_payable_account_id" attrs="{'required':[('type','in', ('sale', 'purchase', 'sale_refund', 'purchase_refund'))]}" domain="[('type','<>','view'),('type','<>','consolidation')]"/>
+ </group>
+ </field>
+ </data>
+ </field>
+ </record>
+ <!-- End Account Journal -->
+ </data>
+</openerp>
=== added directory 'account_invoice_journal_defaults/i18n'
=== added file 'account_invoice_journal_defaults/i18n/es_CR.po'
--- account_invoice_journal_defaults/i18n/es_CR.po 1970-01-01 00:00:00 +0000
+++ account_invoice_journal_defaults/i18n/es_CR.po 2013-01-15 16:49:27 +0000
@@ -0,0 +1,77 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * account_invoice_journal_defaults
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2012-06-29 18:46+0000\n"
+"PO-Revision-Date: 2012-06-29 18:46+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: account_invoice_journal_defaults
+#: sql_constraint:account.invoice:0
+msgid "Invoice Number must be unique per Company!"
+msgstr "¡El número de factura debe ser único por empresa!"
+
+#. module: account_invoice_journal_defaults
+#: field:account.journal,default_payable_account_id:0
+msgid "Default Payable Account"
+msgstr "Cuenta por pagar por defecto"
+
+#. module: account_invoice_journal_defaults
+#: model:ir.model,name:account_invoice_journal_defaults.model_account_journal
+msgid "Journal"
+msgstr "Diario"
+
+#. module: account_invoice_journal_defaults
+#: sql_constraint:account.journal:0
+msgid "The name of the journal must be unique per company !"
+msgstr "¡El nombre del diaro debe ser único por compañía!"
+
+#. module: account_invoice_journal_defaults
+#: view:account.journal:0
+msgid "Default Accounts Receivable/Payable"
+msgstr "Cuentas por Defecto por Cobrar/Pagar"
+
+#. module: account_invoice_journal_defaults
+#: constraint:account.journal:0
+msgid "Configuration error! The currency chosen should be shared by the default accounts too."
+msgstr "¡Error de configuración! La moneda elegida debería ser también la misma en las cuentas por defecto"
+
+#. module: account_invoice_journal_defaults
+#: help:account.journal,default_receivable_account_id:0
+msgid "It acts as a default receivable account"
+msgstr "Actúa como cuenta por cobrar por defecto"
+
+#. module: account_invoice_journal_defaults
+#: model:ir.model,name:account_invoice_journal_defaults.model_account_invoice
+msgid "Invoice"
+msgstr "Factura"
+
+#. module: account_invoice_journal_defaults
+#: sql_constraint:account.journal:0
+msgid "The code of the journal must be unique per company !"
+msgstr "¡El código del diario debe ser único por compañía!"
+
+#. module: account_invoice_journal_defaults
+#: field:account.journal,default_receivable_account_id:0
+msgid "Default Receivable Account"
+msgstr "Cuenta por cobrar por defecto"
+
+#. module: account_invoice_journal_defaults
+#: view:account.invoice:0
+msgid "Change"
+msgstr "Cambiar"
+
+#. module: account_invoice_journal_defaults
+#: help:account.journal,default_payable_account_id:0
+msgid "It acts as a default payable account"
+msgstr "Actúa como cuenta por pagar por defecto"
+
=== added directory 'account_invoice_webkit_report'
=== added file 'account_invoice_webkit_report/__init__.py'
--- account_invoice_webkit_report/__init__.py 1970-01-01 00:00:00 +0000
+++ account_invoice_webkit_report/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Addons modules by CLEARCORP S.A.
+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
+#
+# 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 report
+import account_invoice_webkit_report
=== added file 'account_invoice_webkit_report/__openerp__.py'
--- account_invoice_webkit_report/__openerp__.py 1970-01-01 00:00:00 +0000
+++ account_invoice_webkit_report/__openerp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,50 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Addons modules by CLEARCORP S.A.
+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
+#
+# 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" : 'Invoice Webkit Report',
+ "version" : '1.0',
+ "author" : 'CLEARCORP S.A',
+ #easy, normal, expert
+ 'complexity': 'normal',
+ "description": """
+Invoice webkit report
+ """,
+ "category": 'Accounting & Finance',
+ "sequence": 4,
+ "website" : "http://clearcorp.co.cr",
+ "images" : [],
+ "icon" : False,
+ "depends" : [
+ 'base',
+ 'report_webkit',
+ 'account_invoice_global_discount',
+ ],
+ "init_xml" : [],
+ "demo_xml" : [],
+ "update_xml" : ['ccorp_account_webkit_report.xml'],
+ "test" : [],
+ "auto_install": False,
+ "application": False,
+ "installable": True,
+ 'license': 'AGPL-3',
+}
=== added file 'account_invoice_webkit_report/account_invoice_webkit_report.py'
--- account_invoice_webkit_report/account_invoice_webkit_report.py 1970-01-01 00:00:00 +0000
+++ account_invoice_webkit_report/account_invoice_webkit_report.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,32 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Addons modules by CLEARCORP S.A.
+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
+#
+# 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 osv import fields,osv
+
+class res_company(osv.osv):
+ _name = 'res.company'
+ _inherit = 'res.company'
+
+ _columns = {
+ 'use_email_invoice':fields.boolean('Use user email',help="In the invoice, if it is selected appears the user's mail is logged in. If not selected, do not appear any associated email"),
+ }
+res_company()
\ No newline at end of file
=== added file 'account_invoice_webkit_report/ccorp_account_webkit_report.xml'
--- account_invoice_webkit_report/ccorp_account_webkit_report.xml 1970-01-01 00:00:00 +0000
+++ account_invoice_webkit_report/ccorp_account_webkit_report.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<openerp>
+ <data>
+ <report auto="False"
+ id="account.account_invoices"
+ model="account.invoice"
+ name="account.invoice.layout_ccorp"
+ file="account_invoice_webkit_report/report/invoice.mako"
+ string="Invoice HTML" report_type="webkit"
+ attachment="(object.state in ('open','paid')) and ('Fac.'+(object.number or '').replace('/',''))"
+ attachment_use="1"/>
+
+
+ <record id="view_company_form_inherit" model="ir.ui.view">
+ <field name="name">res.company.form.inherit</field>
+ <field name="model">res.company</field>
+ <field name="type">form</field>
+ <field name="inherit_id" ref="base.view_company_form"/>
+ <field name="arch" type="xml">
+ <data>
+ <page string="General Information" position="after">
+ <page string="Configuration Report" groups="base.group_extended">
+ <separator colspan="4" string="Invoices"/>
+ <field colspan="4" name="use_email_invoice"/>
+ </page>
+ </page>
+ </data>
+ </field>
+ </record>
+ </data>
+</openerp>
=== added directory 'account_invoice_webkit_report/i18n'
=== added file 'account_invoice_webkit_report/i18n/ccorp_account.pot'
--- account_invoice_webkit_report/i18n/ccorp_account.pot 1970-01-01 00:00:00 +0000
+++ account_invoice_webkit_report/i18n/ccorp_account.pot 2013-01-15 16:49:27 +0000
@@ -0,0 +1,179 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * ccorp_account
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 5.0.12\n"
+"Report-Msgid-Bugs-To: support@xxxxxxxxxxx\n"
+"POT-Creation-Date: 2010-08-23 20:49:00+0000\n"
+"PO-Revision-Date: 2010-08-23 20:49:00+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: ccorp_account
+#: model:ir.module.module,description:ccorp_account.module_meta_information
+msgid "ClearCorp 'account' modifications:\n"
+" Reports:\n"
+" * Invoice\n"
+" "
+msgstr ""
+
+#. module: ccorp_account
+#: model:ir.module.module,shortdesc:ccorp_account.module_meta_information
+msgid "ClearCorp account module modifications"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Electronic Invoice"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "PRO-FORMA"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Draft Invoice"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Cancelled Invoice"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Supplier Refund"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Supplier Invoice"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Num.: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Date: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "ID Num.: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Tel-fax: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Email: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Web: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Address:"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Phone: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Fax: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Salesman: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Payment tems: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Due date: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Exchange rate: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Page: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Thank you for choosing us."
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Qty."
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Description / (Taxes)"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Disc."
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Unit Price"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Total Price"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Subtotal"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Discount"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Taxes"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "TOTAL"
+msgstr ""
=== added file 'account_invoice_webkit_report/i18n/ccorp_account_webkit.pot'
--- account_invoice_webkit_report/i18n/ccorp_account_webkit.pot 1970-01-01 00:00:00 +0000
+++ account_invoice_webkit_report/i18n/ccorp_account_webkit.pot 2013-01-15 16:49:27 +0000
@@ -0,0 +1,190 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * ccorp_account
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0.2\n"
+"Report-Msgid-Bugs-To: support@xxxxxxxxxxx\n"
+"POT-Creation-Date: 2011-10-06 19:15+0000\n"
+"PO-Revision-Date: 2011-10-06 19:15+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:93
+#: report:report.account.invoice.layout_ccorp:98
+msgid "Sub Total"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:39
+msgid "Date:"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:36
+msgid "ID Num."
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:47
+msgid "Payment tems"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:81
+msgid "Note"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:23
+msgid "Supplier Invoice"
+msgstr ""
+
+#. module: ccorp_account
+#: model:ir.module.module,description:ccorp_account.module_meta_information
+msgid "ClearCorp 'account' modifications:\n"
+" Reports:\n"
+" * Invoice\n"
+" "
+msgstr "ClearCorp 'account' modifications:\n"
+" Reports:\n"
+" * Invoice\n"
+" "
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:63
+msgid "Disc.(%)"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:48
+msgid "Email"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:63
+#: report:report.account.invoice.layout_ccorp:65
+msgid "Total Price"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:17
+msgid "PROFORMA"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:44
+msgid "Fax"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:94
+msgid "Discount"
+msgstr ""
+
+#. module: ccorp_account
+#: model:ir.actions.report.xml,name:ccorp_account.account_invoice_ccorp
+msgid "Invoice HTML"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:21
+msgid "Canceled Invoice"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:40
+msgid "Phone"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:107
+msgid "Invoice Note"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:63
+#: report:report.account.invoice.layout_ccorp:65
+msgid "[Code] Description / (Taxes)"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:19
+msgid "Draft Inovice"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:55
+msgid "Address"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:15
+msgid "Electronic Invoice"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:95
+#: report:report.account.invoice.layout_ccorp:99
+msgid "Taxes"
+msgstr ""
+
+#. module: ccorp_account
+#: model:ir.module.module,shortdesc:ccorp_account.module_meta_information
+msgid "ClearCorp account module modifications"
+msgstr "ClearCorp account module modifications"
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:110
+msgid "Payment Note"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:25
+msgid "Refund"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:43
+msgid "Due date"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:63
+#: report:report.account.invoice.layout_ccorp:65
+msgid "Qty"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:63
+#: report:report.account.invoice.layout_ccorp:65
+msgid "Unit Price"
+msgstr ""
+
+#. module: ccorp_account
+#: view:account.account:0
+msgid "Inactive Accounts"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:27
+msgid "Supplier Refund"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:96
+#: report:report.account.invoice.layout_ccorp:100
+msgid "Total"
+msgstr ""
+
+#. module: ccorp_account
+#: report:report.account.invoice.layout_ccorp:51
+msgid "Salesman"
+msgstr ""
+
=== added file 'account_invoice_webkit_report/i18n/es.po'
--- account_invoice_webkit_report/i18n/es.po 1970-01-01 00:00:00 +0000
+++ account_invoice_webkit_report/i18n/es.po 2013-01-15 16:49:27 +0000
@@ -0,0 +1,182 @@
+# Spanish translation for openerp-ccorp-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openerp-ccorp-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openerp-ccorp-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2010-08-23 20:49+0000\n"
+"PO-Revision-Date: 2011-11-16 05:10+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Spanish <es@xxxxxx>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-11-29 06:07+0000\n"
+"X-Generator: Launchpad (build 14399)\n"
+
+#. module: ccorp_account
+#: model:ir.module.module,description:ccorp_account.module_meta_information
+msgid ""
+"ClearCorp 'account' modifications:\n"
+" Reports:\n"
+" * Invoice\n"
+" "
+msgstr ""
+
+#. module: ccorp_account
+#: model:ir.module.module,shortdesc:ccorp_account.module_meta_information
+msgid "ClearCorp account module modifications"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Electronic Invoice"
+msgstr "Factura Electrónica"
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "PRO-FORMA"
+msgstr "Proforma"
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Draft Invoice"
+msgstr "Factura BORRADOR"
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Cancelled Invoice"
+msgstr "Factura CANCELADA"
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Supplier Refund"
+msgstr "Nota de crédito PROVEEDOR"
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Supplier Invoice"
+msgstr "Factura PROVEEDOR"
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Num.: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Date: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "ID Num.: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Tel-fax: "
+msgstr "Tel-fax: "
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Email: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Web: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Address:"
+msgstr "Dirección:"
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Phone: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Fax: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Salesman: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Payment tems: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Due date: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Exchange rate: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Page: "
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Thank you for choosing us."
+msgstr "Gracias por escoger nuestros servicios."
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Qty."
+msgstr "Cant."
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Description / (Taxes)"
+msgstr ""
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Disc."
+msgstr "Desc."
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Unit Price"
+msgstr "Precio Unit."
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Total Price"
+msgstr "Precio Total"
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Subtotal"
+msgstr "Subtotal"
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Discount"
+msgstr "Descuento"
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "Taxes"
+msgstr "Impuestos"
+
+#. module: ccorp_account
+#: rml:account.invoice.layout_ccorp:0
+msgid "TOTAL"
+msgstr "TOTAL"
=== added file 'account_invoice_webkit_report/i18n/es_CR.po'
--- account_invoice_webkit_report/i18n/es_CR.po 1970-01-01 00:00:00 +0000
+++ account_invoice_webkit_report/i18n/es_CR.po 2013-01-15 16:49:27 +0000
@@ -0,0 +1,209 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * account_invoice_webkit_report
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2012-12-04 17:11+0000\n"
+"PO-Revision-Date: 2012-12-04 17:11+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: account_invoice_webkit_report
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:93
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:98
+msgid "Sub Total"
+msgstr "Sub Total"
+
+#. module: account_invoice_webkit_report
+#: field:res.company,use_email_invoice:0
+msgid "Use user email"
+msgstr "Usar email del usuario logueado"
+
+#. module: account_invoice_webkit_report
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:39
+msgid "Date:"
+msgstr "Fecha:"
+
+#. module: account_invoice_webkit_report
+#: constraint:res.company:0
+msgid "Error! You can not create recursive companies."
+msgstr "¡Error! No puede crear compañías recursivas."
+
+#. module: account_invoice_webkit_report
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:47
+msgid "Payment tems"
+msgstr "Plazo de pago"
+
+#. module: account_invoice_webkit_report
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:81
+msgid "Note"
+msgstr "Nota"
+
+#. module: account_invoice_webkit_report
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:23
+msgid "Supplier Invoice"
+msgstr "Factura de proveedor"
+
+#. module: account_invoice_webkit_report
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:63
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:65
+msgid "Unit Price"
+msgstr "Precio unitario"
+
+#. module: account_invoice_webkit_report
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:63
+msgid "Disc.(%)"
+msgstr "Desc.(%)"
+
+#. module: account_invoice_webkit_report
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:48
+msgid "Email"
+msgstr "Email"
+
+#. module: account_invoice_webkit_report
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:63
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:65
+msgid "Total Price"
+msgstr "Precio total"
+
+#. module: account_invoice_webkit_report
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:17
+msgid "PROFORMA"
+msgstr "PROFORMA"
+
+#. module: account_invoice_webkit_report
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:44
+msgid "Fax"
+msgstr "Fax"
+
+#. module: account_invoice_webkit_report
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:40
+msgid "Phone"
+msgstr "Phone"
+
+#. module: account_invoice_webkit_report
+#: model:ir.actions.report.xml,name:account_invoice_webkit_report.account_invoice_ccorp
+msgid "Invoice HTML"
+msgstr "Facturas"
+
+#. module: account_invoice_webkit_report
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:21
+msgid "Canceled Invoice"
+msgstr "Factura cancelada"
+
+#. module: account_invoice_webkit_report
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:94
+msgid "Discount"
+msgstr "Descuento"
+
+#. module: account_invoice_webkit_report
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:107
+msgid "Invoice Note"
+msgstr "Nota de factura"
+
+#. module: account_invoice_webkit_report
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:63
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:65
+msgid "[Code] Description / (Taxes)"
+msgstr "[Cód.] Descripción / (Imp.)"
+
+#. module: account_invoice_webkit_report
+#: sql_constraint:res.company:0
+msgid "The company name must be unique !"
+msgstr "¡El nombre de la compañía debe ser único!"
+
+#. module: account_invoice_webkit_report
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:19
+msgid "Draft Inovice"
+msgstr "Factura borrador"
+
+#. module: account_invoice_webkit_report
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:36
+msgid "ID Num."
+msgstr "ID Num."
+
+#. module: account_invoice_webkit_report
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:55
+msgid "Address"
+msgstr "Dirección"
+
+#. module: account_invoice_webkit_report
+#: model:ir.model,name:account_invoice_webkit_report.model_res_company
+msgid "Companies"
+msgstr "Compañías"
+
+#. module: account_invoice_webkit_report
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:15
+msgid "Electronic Invoice"
+msgstr "Factura electrónica"
+
+#. module: account_invoice_webkit_report
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:95
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:99
+msgid "Taxes"
+msgstr "Impuestos"
+
+#. module: account_invoice_webkit_report
+#: help:res.company,use_email_invoice:0
+msgid "In the invoice, if it is selected appears the user's mail is logged in. If not selected, do not appear any associated email"
+msgstr "En la factura, si está seleccionado aparece el email del usuario logueado. Si no está seleccionado no aparece ningún email"
+
+#. module: account_invoice_webkit_report
+#: view:res.company:0
+msgid "Configuration Report"
+msgstr "Configuración de reportes"
+
+#. module: account_invoice_webkit_report
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:111
+msgid "Payment Note"
+msgstr "Nota de pago"
+
+#. module: account_invoice_webkit_report
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:25
+msgid "Refund"
+msgstr "Reembolso"
+
+#. module: account_invoice_webkit_report
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:43
+msgid "Due date"
+msgstr "Vence"
+
+#. module: account_invoice_webkit_report
+#: view:res.company:0
+msgid "Invoices"
+msgstr "Facturas"
+
+#. module: account_invoice_webkit_report
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:63
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:65
+msgid "Qty"
+msgstr "Cant."
+
+#. module: account_invoice_webkit_report
+#: view:res.company:0
+msgid "General Information"
+msgstr "Información general"
+
+#. module: account_invoice_webkit_report
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:27
+msgid "Supplier Refund"
+msgstr "Reembolso de proveedor"
+
+#. module: account_invoice_webkit_report
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:96
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:100
+msgid "Total"
+msgstr "Total"
+
+#. module: account_invoice_webkit_report
+#: report:addons/account_invoice_webkit_report/report/invoice.mako:51
+msgid "Salesman"
+msgstr "Vendedor"
+
=== added directory 'account_invoice_webkit_report/report'
=== added file 'account_invoice_webkit_report/report/__init__.py'
--- account_invoice_webkit_report/report/__init__.py 1970-01-01 00:00:00 +0000
+++ account_invoice_webkit_report/report/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,35 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# __init__.py
+# ccorp_account
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2010-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+import invoice
=== added file 'account_invoice_webkit_report/report/invoice.mako'
--- account_invoice_webkit_report/report/invoice.mako 1970-01-01 00:00:00 +0000
+++ account_invoice_webkit_report/report/invoice.mako 2013-01-15 16:49:27 +0000
@@ -0,0 +1,123 @@
+<html>
+<head>
+ <style type="text/css">
+ ${css}
+ </style>
+</head>
+<body class = "data">
+ %for inv in objects :
+ <% setLang(inv.partner_id.lang) %>
+ <div id="wrapper">
+ <table width = "100%" class = "document_data">
+ <tr class = "title">
+ <td class = "document_data">
+ %if inv.type == 'out_invoice' and (inv.state == 'open' or inv.state == 'paid') :
+ <span class="title">${_("Electronic Invoice")} ${inv.number or ''|entity}</span>
+ %elif inv.type == 'out_invoice' and inv.state == 'proforma2' :
+ <span class="title">${_("PROFORMA")} ${inv.number or ''|entity}</span>
+ %elif inv.type == 'out_invoice' and inv.state == 'draft' :
+ <span class="title">${_("Draft Inovice")} ${inv.number or ''|entity}</span>
+ %elif inv.type == 'out_invoice' and inv.state == 'cancel':
+ <span class="title">${_("Canceled Invoice")} ${inv.number or ''|entity}</span>
+ %elif inv.type == 'in_invoice' :
+ <span class="title">${_("Supplier Invoice")} ${inv.number or ''|entity}</span>
+ %elif inv.type == 'out_refund' :
+ <span class="title">${_("Refund")} ${inv.number or ''|entity}</span>
+ %elif inv.type == 'in_refund' :
+ <span class="title">${_("Supplier Refund")} ${inv.number or ''|entity}</span>
+ %endif
+ </td>
+ <td>
+ ${inv.partner_id.name}
+ </td>
+ </tr>
+ <tr>
+ <td>${inv.name or '' |entity}</td>
+ <td>${_("ID Num.")}: ${inv.partner_id.ref or '-'|entity}</td>
+ </tr>
+ <tr>
+ <td>${_("Date:")} ${formatLang(inv.date_invoice, date=True)|entity}</td>
+ <td>${_("Phone")}:${inv.address_invoice_id.phone or '-'|entity}</td>
+ </tr>
+ <tr>
+ <td>${_("Due date")}: ${formatLang(inv.date_due, date=True)|entity}</td>
+ <td>${_("Fax")}: ${inv.address_invoice_id.fax or '-' | entity}</td>
+ </tr>
+ <tr>
+ <td>${_("Payment tems")}: ${inv.payment_term.name or '-' |entity}</td>
+ <td colspan = "2">${_("Email")}: ${inv.address_invoice_id.email or '-'|entity}</td><td> </td>
+ </tr>
+ <tr>
+ <td>${_("Salesman")}: ${inv.partner_id.user_id.name or ' '|entity}</td>
+ <td> </td>
+ </tr>
+ <tr class = "zone_break"><td> </td><td> </td></tr>
+ <tr class = "title"><td>${_("Address")}</td><td> </td></tr>
+ <tr><td>${inv.address_invoice_id.street or ''}</td><td> </td></tr>
+ <tr><td>${inv.address_invoice_id.street2 or ''}</td><td> </td></tr>
+ <tr><td>${(inv.address_invoice_id.zip and format(inv.address_invoice_id.zip) + ((inv.address_invoice_id.city or inv.address_invoice_id.state_id or inv.address_invoice_id.country_id) and ' ' or '') or '') + (inv.address_invoice_id.city and format(inv.address_invoice_id.city) + ((inv.address_invoice_id.state_id or inv.address_invoice_id.country_id) and ', ' or '') or '') + (inv.address_invoice_id.state_id and format(inv.address_invoice_id.state_id.name) + (inv.address_invoice_id.country_id and ', ' or '') or '') + (inv.address_invoice_id.country_id and format(inv.address_invoice_id.country_id.name) or '')}</td><td> </td></tr>
+ <tr><td> </td><td> </td></tr>
+ </table>
+ <table id ="data-table" cellspacing = "3">
+ %if inv.amount_discounted != 0:
+ <thead><th>${_("Qty")}</th><th>${_("[Code] Description / (Taxes)")}</th><th>${_("Disc.(%)")}</th><th>${_("Unit Price")}</th><th>${_("Total Price")}</th></thead>
+ %else:
+ <thead><th>${_("Qty")}</th><th>${_("[Code] Description / (Taxes)")}</th><th>${_("Unit Price")}</th><th>${_("Total Price")}</th></thead>
+ %endif
+ <tbody>
+ <%i = 0 %>
+ %for line in inv.invoice_line :
+ %if i% 2 == 0:
+ <tr class = "even">
+ %else:
+ <tr class = "odd">
+ %endif
+ %if line.uos_id:
+ <td valign = "top">${formatLang(line.quantity)} ${format(line.uos_id.name)}</td>
+ %else:
+ <td valign = "top">${formatLang(line.quantity)}</td>
+ %endif
+ <td valign = "top" id="desc_col">${line.name}
+ %if line.invoice_line_tax_id != []:
+ ${ ', '.join([ tax.name or '' for tax in line.invoice_line_tax_id ])|entity}
+ %endif
+ %if line.note :
+ <br/><span class = "notes"><b>${_("Note")}:</b> ${format(line.note)}</span>
+ %endif
+ </td>
+ %if inv.amount_discounted != 0:
+ <td valign = "top" style="text-align:right;">${line.discount and formatLang(line.discount) + '%' or '-'}</td>
+ %endif
+ <td style="text-align:right;" valign = "top">${inv.currency_id.symbol_prefix or ''|entity } ${formatLang(line.price_unit)} ${inv.currency_id.symbol_suffix or ''|entity }</td>
+ <td style="text-align:right;" valign = "top">${inv.currency_id.symbol_prefix or ''|entity } ${formatLang(line.price_subtotal_not_discounted)} ${inv.currency_id.symbol_suffix or ''|entity }</td>
+ </tr>
+ <%i += 1%>
+ %endfor
+ %if inv.amount_discounted != 0:
+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-top:2px solid"><b>${_("Sub Total")}:</b></td><td style="border-top:2px solid;text-align:right">${inv.currency_id.symbol_prefix or ''|entity} ${formatLang(inv.amount_untaxed_not_discounted)} ${inv.currency_id.symbol_suffix or ''|entity}</td></tr>
+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"><b>${_("Discount")}:</b></td><td style="text-align:right">${inv.currency_id.symbol_prefix or ''|entity} ${formatLang(inv.amount_discounted)} ${inv.currency_id.symbol_suffix or ''|entity}</td></tr>
+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"><b>${_("Taxes")}:</b></td><td style="text-align:right">${inv.currency_id.symbol_prefix or ''|entity} ${formatLang(inv.amount_tax)} ${inv.currency_id.symbol_suffix or ''|entity}</td></tr>
+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-top:2px solid"><b>${_("Total")}:</b></td><td style="border-top:2px solid;text-align:right">${inv.currency_id.symbol_prefix or ''|entity} ${formatLang(inv.amount_total)} ${inv.currency_id.symbol_suffix or ''|entity}</td></tr>
+ %else:
+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-top:2px solid"><b>${_("Sub Total")}:</b></td><td style="border-top:2px solid;text-align:right">${inv.currency_id.symbol_prefix or ''|entity} ${formatLang(inv.amount_untaxed_not_discounted)} ${inv.currency_id.symbol_suffix or ''|entity}</td></tr>
+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"><b>${_("Taxes")}:</b></td><td style="text-align:right">${inv.currency_id.symbol_prefix or ''|entity} ${formatLang(inv.amount_tax)} ${inv.currency_id.symbol_suffix or ''|entity}</td></tr>
+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-top:2px solid"><b>${_("Total")}:</b></td><td style="border-top:2px solid;text-align:right">${inv.currency_id.symbol_prefix or ''|entity} ${formatLang(inv.amount_total)} ${inv.currency_id.symbol_suffix or ''|entity}</td></tr>
+ %endif
+
+ </tbody>
+ </table>
+ <table id = "notes_table">
+ %if inv.comment:
+ <tr><td><b>${_("Invoice Note")}:</b><br />
+ ${format(inv.comment)}</td></tr>
+ %endif
+ %if inv.payment_term and inv.payment_term.note:
+ <tr><td><b>${_("Payment Note")}:</b><br />
+ ${format(inv.payment_term and inv.payment_term.note)}</td></tr>
+ %endif
+ </table>
+ </div>
+ <p style="page-break-after:always"></p>
+ %endfor
+</body>
+</html>
=== added file 'account_invoice_webkit_report/report/invoice.py'
--- account_invoice_webkit_report/report/invoice.py 1970-01-01 00:00:00 +0000
+++ account_invoice_webkit_report/report/invoice.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,54 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# invoice.py
+# ccorp_account
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Second author: Mag Guevara <mag.guevara@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2010-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+import time
+import pooler
+from report import report_sxw
+import locale
+
+class account_invoice_ccorp(report_sxw.rml_parse):
+ def __init__(self, cr, uid, name, context):
+ super(account_invoice_ccorp, self).__init__(cr, uid, name, context=context)
+ self.localcontext.update({
+ 'time': time,
+ 'cr' : cr,
+ 'uid': uid,
+ })
+
+report_sxw.report_sxw(
+ 'report.account.invoice.layout_ccorp',
+ 'account.invoice',
+ 'addons/account_invoice_webkit_report/report/invoice.mako',
+ parser=account_invoice_ccorp)
=== added directory 'account_journal_extended_code'
=== added file 'account_journal_extended_code/__init__.py'
--- account_journal_extended_code/__init__.py 1970-01-01 00:00:00 +0000
+++ account_journal_extended_code/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,35 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# __init__.py
+# account_journal_extended_code
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+import account_journal_extended_code
=== added file 'account_journal_extended_code/__openerp__.py'
--- account_journal_extended_code/__openerp__.py 1970-01-01 00:00:00 +0000
+++ account_journal_extended_code/__openerp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,50 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# __openerp__.py
+# account_journal_extended_code
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+{
+ 'name': 'Journal code extended',
+ 'version': '0.1',
+ 'author': 'ClearCorp S.A.',
+ 'website': 'http://clearcorp.co.cr',
+ 'category': 'General Modules/Accounting',
+ 'description': """Enables up to 64 chars in a journal code
+ """,
+ 'depends': ['account'],
+ 'init_xml': [],
+ 'demo_xml': [],
+ 'update_xml': [],
+ 'license': 'Other OSI approved licence',
+ 'installable': True,
+ 'active': False,
+}
=== added file 'account_journal_extended_code/account_journal_extended_code.py'
--- account_journal_extended_code/account_journal_extended_code.py 1970-01-01 00:00:00 +0000
+++ account_journal_extended_code/account_journal_extended_code.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,47 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# account_journal_extended_code.py
+# account_journal_extended_code
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+from osv import osv,fields
+
+class journal(osv.osv):
+ '''
+ Adds up to 64 chars to a journal code
+ '''
+ _name = 'account.journal'
+ _inherit = 'account.journal'
+
+ _columns = {
+ 'code': fields.char('Code', size=64, required=True, help="The code will be used to generate the numbers of the journal entries of this journal."),
+ }
+journal()
=== added directory 'account_journal_view_extended'
=== added file 'account_journal_view_extended/__init__.py'
--- account_journal_view_extended/__init__.py 1970-01-01 00:00:00 +0000
+++ account_journal_view_extended/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,34 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# __init__.py
+# account_journal_view_extended
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
=== added file 'account_journal_view_extended/__openerp__.py'
--- account_journal_view_extended/__openerp__.py 1970-01-01 00:00:00 +0000
+++ account_journal_view_extended/__openerp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,51 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# __openerp__.py
+# account_journal_view_extended
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+{
+ 'name': 'Journal View extended mode',
+ 'version': '0.1',
+ 'author': 'ClearCorp S.A.',
+ 'website': 'http://clearcorp.co.cr',
+ 'category': 'General Modules/Accounting',
+ 'description': """Enables hidden and read-only fields on account journal views.
+ This allows user to configure all properties of journal views.
+ """,
+ 'depends': ['account'],
+ 'init_xml': [],
+ 'demo_xml': [],
+ 'update_xml': ['account_journal_view_extended_view.xml'],
+ 'license': 'Other OSI approved licence',
+ 'installable': True,
+ 'active': False,
+}
=== added file 'account_journal_view_extended/account_journal_view_extended_view.xml'
--- account_journal_view_extended/account_journal_view_extended_view.xml 1970-01-01 00:00:00 +0000
+++ account_journal_view_extended/account_journal_view_extended_view.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+ <data>
+ <!--
+ Resource: account.journal.column
+ Shows hidden and readonly fields
+ -->
+ <record id="account_journal_view_extended_form" model="ir.ui.view">
+ <field name="name">account.journal.column.form_ccorp1</field>
+ <field name="model">account.journal.column</field>
+ <field name="inherit_id" ref="account.view_journal_column_form"/>
+ <field name="type">form</field>
+ <field name="arch" type="xml">
+ <field name="sequence" position="replace">
+ <field name="sequence" readonly="False"/>
+ <field name="required"/>
+ <field name="readonly"/>
+ </field>
+ </field>
+ </record>
+ <record id="account_journal_view_extended_tree" model="ir.ui.view">
+ <field name="name">account.journal.column.tree_ccorp1</field>
+ <field name="model">account.journal.column</field>
+ <field name="inherit_id" ref="account.view_journal_column_tree"/>
+ <field name="type">tree</field>
+ <field name="arch" type="xml">
+ <field name="name" position="after">
+ <field name="field"/>
+ <field name="required"/>
+ <field name="readonly"/>
+ </field>
+ </field>
+ </record>
+ </data>
+</openerp>
=== added directory 'account_move_reverse'
=== added file 'account_move_reverse/__init__.py'
--- account_move_reverse/__init__.py 1970-01-01 00:00:00 +0000
+++ account_move_reverse/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Addons modules by CLEARCORP S.A.
+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
+#
+# 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_move_reverse
\ No newline at end of file
=== added file 'account_move_reverse/__openerp__.py'
--- account_move_reverse/__openerp__.py 1970-01-01 00:00:00 +0000
+++ account_move_reverse/__openerp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,45 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Addons modules by CLEARCORP S.A.
+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
+#
+# 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 Move Reverse",
+ "version" : '1.0',
+ "author" : 'CLEARCORP S.A.',
+ 'complexity': 'normal',
+ "description": """
+Module for reverse account move
+ """,
+ "category": 'Accounting & Finance',
+ "sequence": 4,
+ "website" : "http://clearcorp.co.cr",
+ "images" : [],
+ "icon" : False,
+ "depends" : ["account_voucher"],
+ "init_xml" : [],
+ "demo_xml" : [],
+ "update_xml" : ['account_move_reverse_view.xml'],
+ "test" : [],
+ "auto_install": False,
+ "application": False,
+ "installable": True,
+ 'license': 'AGPL-3',
+}
=== added file 'account_move_reverse/account_move_reverse.py'
--- account_move_reverse/account_move_reverse.py 1970-01-01 00:00:00 +0000
+++ account_move_reverse/account_move_reverse.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,142 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Addons modules by CLEARCORP S.A.
+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
+#
+# 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 osv import orm, osv, fields
+from tools.translate import _
+
+class AccountMove(orm.Model):
+
+ _inherit = 'account.move'
+
+ _columns = {
+ 'move_reverse_id':fields.many2one('account.move','Move Reverse'),
+ }
+
+ def copy(self, cr, uid, id, default={}, context=None):
+ default.update({
+ 'move_reverse_id':False,
+ })
+
+ def button_cancel(self, cr, uid, ids, context=None):
+ for move in self.browse(cr, uid, ids, context=context):
+ if not move.journal_id.update_posted:
+ raise osv.except_osv(_('Error !'), _('You can not modify a posted entry of this journal !\nYou should set the journal to allow cancelling entries if you want to do that.'))
+
+ if move.move_reverse_id:
+ if not move.journal_id.update_reversed:
+ raise osv.except_osv(_('Error !'), _('You can not modify a posted entry of this journal !\nYou should set the journal to allow cancelling reversed entries if you want to do that.'))
+
+ move_reverse = self.browse(cr, uid, move.move_reverse_id.id, context=context)
+ for line_reverse in move_reverse.line_id:
+ if line_reverse.reconcile_id:
+ self.pool.get('account.move.reconcile').unlink(cr,uid,[line_reverse.reconcile_id.id],context=context)
+ cr.execute('UPDATE account_move '\
+ 'SET state=%s '\
+ 'WHERE id IN %s', ('draft', tuple([move_reverse.id]),))
+ self.unlink(cr,uid,[move_reverse.id],context=context)
+
+ result = super(AccountMove, self).button_cancel(cr, uid, ids, context=context)
+ return True
+
+ def reverse(self, cr, uid, ids, context=None):
+
+ for move_original_id in ids:
+ move_original = self.pool.get('account.move').browse(cr, 1, move_original_id, context=context)
+
+ if move_original.move_reverse_id:
+ continue
+
+ move = {
+ 'name':'Reverse: ' + move_original.name,
+ 'ref':move_original.ref,
+ 'journal_id':move_original.journal_id.id,
+ 'period_id':move_original.period_id.id,
+ 'to_check':False,
+ 'partner_id':move_original.partner_id.id,
+ 'date':move_original.date,
+ 'narration':move_original.narration,
+ 'company_id':move_original.company_id.id,
+ }
+ move_id = self.pool.get('account.move').create(cr, uid, move)
+
+ self.pool.get('account.move').write(cr, uid, [move_original.id], {'move_reverse_id' : move_id})
+
+ move_reconcile_obj = self.pool.get('account.move.reconcile')
+
+ lines = move_original.line_id
+ for line in lines:
+ move_line = {
+ 'name':line.name,
+ 'debit':line.credit,
+ 'credit':line.debit,
+ 'account_id':line.account_id.id,
+ 'move_id': move_id,
+ 'amount_currency':line.amount_currency * -1,
+ 'period_id':line.period_id.id,
+ 'journal_id':line.journal_id.id,
+ 'partner_id':line.partner_id.id,
+ 'currency_id':line.currency_id.id,
+ 'date_maturity':line.date_maturity,
+ 'date':line.date,
+ 'date_created':line.date_created,
+ 'state':'valid',
+ 'company_id':line.company_id.id,
+ }
+
+ line_created_id = self.pool.get('account.move.line').create(cr, uid, move_line)
+
+ if line.reconcile_id:
+ reconcile = line.reconcile_id
+ if len(reconcile.line_id) > 2:
+ reconcile_line_ids = []
+ for line_id in reconcile.line_id:
+ reconcile_line_ids.append(line_id.id)
+ self.pool.get('account.move.line').write(cr,uid,reconcile_line_ids,{'reconcile_id': False, 'reconcile_partial_id':reconcile.id})
+ self.pool.get('account.move.line').write(cr,uid,line.id,{'reconcile_partial_id': False})
+ else:
+ move_reconcile_obj.unlink(cr,uid,[reconcile.id],context=context)
+
+ elif line.reconcile_partial_id:
+ reconcile = line.reconcile_partial_id
+ if len(reconcile.line_partial_ids) > 2:
+ self.pool.get('account.move.line').write(cr,uid,line.id,{'reconcile_partial_id': False })
+ else:
+ move_reconcile_obj.unlink(cr,uid,[reconcile.id],context=context)
+
+ if line.account_id.reconcile:
+ reconcile_id = self.pool.get('account.move.reconcile').create(cr, uid, {'type': 'Account Reverse'})
+ cr.execute('UPDATE account_move_line '\
+ 'SET reconcile_id=%s '\
+ 'WHERE id IN %s', (reconcile_id, tuple([line.id]),))
+ #self.pool.get('account.move.line').write(cr,uid,[line.id],{'reconcile_id': reconcile_id})
+ self.pool.get('account.move.line').write(cr,uid,[line_created_id],{'reconcile_id': reconcile_id})
+
+ #Posted move reverse
+ self.pool.get('account.move').post(cr, 1, [move_id, move_original.id], context={})
+ return True
+
+class AccountJournal(orm.Model):
+ _inherit = 'account.journal'
+
+ _columns = {
+ 'update_reversed' : fields.boolean('Allow Cancelling Reversed Entries', help="Check this box if you want to allow the cancellation of the reversed entries related to this journal or of the invoice related to this journal"),
+ }
=== added file 'account_move_reverse/account_move_reverse_view.xml'
--- account_move_reverse/account_move_reverse_view.xml 1970-01-01 00:00:00 +0000
+++ account_move_reverse/account_move_reverse_view.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<openerp>
+ <data>
+ <record id="view_account_journal_form_inherit" model="ir.ui.view">
+ <field name="name">account.journal.form</field>
+ <field name="model">account.journal</field>
+ <field name="type">form</field>
+ <field name="inherit_id" ref="account.view_account_journal_form"/>
+ <field name="arch" type="xml">
+ <field name="entry_posted" position="after">
+ <field name="update_reversed"/>
+ </field>
+ </field>
+ </record>
+ </data>
+</openerp>
=== added directory 'account_move_reverse/i18n'
=== added file 'account_move_reverse/i18n/account_move_reverse.pot'
--- account_move_reverse/i18n/account_move_reverse.pot 1970-01-01 00:00:00 +0000
+++ account_move_reverse/i18n/account_move_reverse.pot 2013-01-15 16:49:27 +0000
@@ -0,0 +1,83 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * account_move_reverse
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2012-07-19 22:20+0000\n"
+"PO-Revision-Date: 2012-07-19 22:20+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: account_move_reverse
+#: constraint:account.move:0
+msgid "You can not create more than one move per period on centralized journal"
+msgstr ""
+
+#. module: account_move_reverse
+#: code:addons/account_move_reverse/account_move_reverse.py:42
+#: code:addons/account_move_reverse/account_move_reverse.py:46
+#, python-format
+msgid "Error !"
+msgstr ""
+
+#. module: account_move_reverse
+#: model:ir.model,name:account_move_reverse.model_account_journal
+msgid "Journal"
+msgstr ""
+
+#. module: account_move_reverse
+#: field:account.move,move_reverse_id:0
+msgid "Move Reverse"
+msgstr ""
+
+#. module: account_move_reverse
+#: field:account.journal,update_reversed:0
+msgid "Allow Cancelling Reversed Entries"
+msgstr ""
+
+#. module: account_move_reverse
+#: sql_constraint:account.journal:0
+msgid "The name of the journal must be unique per company !"
+msgstr ""
+
+#. module: account_move_reverse
+#: code:addons/account_move_reverse/account_move_reverse.py:46
+#, python-format
+msgid "You can not modify a posted entry of this journal !\n"
+"You should set the journal to allow cancelling reversed entries if you want to do that."
+msgstr ""
+
+#. module: account_move_reverse
+#: constraint:account.journal:0
+msgid "Configuration error! The currency chosen should be shared by the default accounts too."
+msgstr ""
+
+#. module: account_move_reverse
+#: sql_constraint:account.journal:0
+msgid "The code of the journal must be unique per company !"
+msgstr ""
+
+#. module: account_move_reverse
+#: model:ir.model,name:account_move_reverse.model_account_move
+msgid "Account Entry"
+msgstr ""
+
+#. module: account_move_reverse
+#: help:account.journal,update_reversed:0
+msgid "Check this box if you want to allow the cancellation of the reversed entries related to this journal or of the invoice related to this journal"
+msgstr ""
+
+#. module: account_move_reverse
+#: code:addons/account_move_reverse/account_move_reverse.py:42
+#, python-format
+msgid "You can not modify a posted entry of this journal !\n"
+"You should set the journal to allow cancelling entries if you want to do that."
+msgstr ""
+
=== added symlink 'account_move_reverse/i18n/es.po'
=== target is u'es_CR.po'
=== added file 'account_move_reverse/i18n/es_CR.po'
--- account_move_reverse/i18n/es_CR.po 1970-01-01 00:00:00 +0000
+++ account_move_reverse/i18n/es_CR.po 2013-01-15 16:49:27 +0000
@@ -0,0 +1,85 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * account_move_reverse
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2012-07-19 22:20+0000\n"
+"PO-Revision-Date: 2012-07-19 22:20+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: account_move_reverse
+#: constraint:account.move:0
+msgid "You can not create more than one move per period on centralized journal"
+msgstr "No puede crear más de un movimiento por periodo en un diario centralizado"
+
+#. module: account_move_reverse
+#: code:addons/account_move_reverse/account_move_reverse.py:42
+#: code:addons/account_move_reverse/account_move_reverse.py:46
+#, python-format
+msgid "Error !"
+msgstr "Error !"
+
+#. module: account_move_reverse
+#: model:ir.model,name:account_move_reverse.model_account_journal
+msgid "Journal"
+msgstr "Diario"
+
+#. module: account_move_reverse
+#: field:account.move,move_reverse_id:0
+msgid "Move Reverse"
+msgstr "Asiento Reverso"
+
+#. module: account_move_reverse
+#: field:account.journal,update_reversed:0
+msgid "Allow Cancelling Reversed Entries"
+msgstr "Permitir cancelación de los asientos invertidos"
+
+#. module: account_move_reverse
+#: sql_constraint:account.journal:0
+msgid "The name of the journal must be unique per company !"
+msgstr "¡El nombre del diario debe ser único por compañía!"
+
+#. module: account_move_reverse
+#: code:addons/account_move_reverse/account_move_reverse.py:46
+#, python-format
+msgid "You can not modify a posted entry of this journal !\n"
+"You should set the journal to allow cancelling reversed entries if you want to do that."
+msgstr "No se puede modificar un asiento contabilizado de este diario !\n"
+"Debe establecer el diario para permitir cancelar los asientos invertidos si quieres hacer eso."
+
+#. module: account_move_reverse
+#: constraint:account.journal:0
+msgid "Configuration error! The currency chosen should be shared by the default accounts too."
+msgstr "¡Error de configuración! La moneda elegida debería ser también la misma en las cuentas por defecto"
+
+#. module: account_move_reverse
+#: sql_constraint:account.journal:0
+msgid "The code of the journal must be unique per company !"
+msgstr "¡El código del diario debe ser único por compañía!"
+
+#. module: account_move_reverse
+#: model:ir.model,name:account_move_reverse.model_account_move
+msgid "Account Entry"
+msgstr "Asiento contable"
+
+#. module: account_move_reverse
+#: help:account.journal,update_reversed:0
+msgid "Check this box if you want to allow the cancellation of the reversed entries related to this journal or of the invoice related to this journal"
+msgstr "Marque esta casilla si desea permitir la cancelación de los asientos invertidos relacionadas con estediario o de la factura relacionada con este diario"
+
+#. module: account_move_reverse
+#: code:addons/account_move_reverse/account_move_reverse.py:42
+#, python-format
+msgid "You can not modify a posted entry of this journal !\n"
+"You should set the journal to allow cancelling entries if you want to do that."
+msgstr "No se puede modificar un asiento contabilizado de este diario !\n"
+"Debe establecer el diario para permitir cancelar los asientos si quieres hacer eso."
+
=== added directory 'account_multicompany_relation'
=== added file 'account_multicompany_relation/__init__.py'
--- account_multicompany_relation/__init__.py 1970-01-01 00:00:00 +0000
+++ account_multicompany_relation/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,1 @@
+import account_multicompany_relation
=== added file 'account_multicompany_relation/__openerp__.py'
--- account_multicompany_relation/__openerp__.py 1970-01-01 00:00:00 +0000
+++ account_multicompany_relation/__openerp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,34 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Addons modules by CLEARCORP S.A.
+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
+#
+# 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 Multicompany Relation",
+ "author" : "CLEARCORP S.A",
+ "version" : "0.1",
+ "depends" : ["account_voucher_reverse"],
+ "init_xml" : [],
+ "update_xml" : [
+ "account_multicompany_relation.xml"
+ ],
+ "category" : "",
+ "active": False,
+ "installable": True
+}
=== added file 'account_multicompany_relation/account_multicompany_relation.py'
--- account_multicompany_relation/account_multicompany_relation.py 1970-01-01 00:00:00 +0000
+++ account_multicompany_relation/account_multicompany_relation.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,279 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# Author: Mag Guevara. Copyright ClearCorp SA
+#
+# 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 osv import orm, osv, fields
+from copy import copy
+from tools.translate import _
+
+class AccountMulticompanyRelation(orm.Model):
+
+ _name = "account.multicompany.relation"
+ _description = "Account multicompany relation"
+
+ _columns = {
+ 'name':fields.char('Name',size=64,required=True,help='Name for the mirror move relation'),
+ 'origin_account':fields.many2one('account.account','Origin Account',required=True,help='Indicate the origin move line account where the transaction is taking place.'),
+ 'targ_account':fields.many2one('account.account','Target Account',required=True,help='Indicate the target move line account that the mirror move will affect, this account can be in another company.'),
+ 'origin_journal':fields.many2one('account.journal','Original Journal',required=True,help='Indicate the origin journal where the transaction is taking place.'),
+ 'targ_journal':fields.many2one('account.journal','Target Journal',required=True,help='Indicate the target journal where the mirror move will be created, this journal can be in another company.'),
+ 'origin_analytic_account':fields.many2one('account.analytic.account','Origin Analytic Account',required=False,help='Indicate the origin analytic account where the transaction is taking place. Optional.'),
+ 'targ_analytic_account':fields.many2one('account.analytic.account','Target Analytic Account',required=False,help='Indicate the target analytic account that the mirror move line will have, this analytic account can be in another company.'),
+ 'mirror_move_prefix':fields.char('Move prefix',size=32,required=True,help='Prefix for the mirror move name.'),
+ 'inverse_debit_credit':fields.boolean('Inverse debit/credit',help='If set, the debit/credit from the origin move line will be inverted in the target move line. For example, a debit line affecting the origin account in the origin move, will result in a target move with a credit line affecting the target account on the target move.'),
+ 'notes':fields.text('Notes'),
+ }
+
+ _sql_constraints = [
+ (
+ 'unique_name',
+ 'unique(name)',
+ 'The name must be unique'
+ ),
+ ]
+
+ def _check_unique_mirror_relation(self, cr, uid, ids, context=None):
+ for relation in self.browse(cr, uid, ids, context=context):
+ relation_ids = self.search(cr, uid, [('origin_account','=',relation.origin_account.id),
+ ('origin_journal','=',relation.origin_journal.id),
+ ('origin_analytic_account','=',relation.origin_analytic_account.id)], context=context)
+ if len(relation_ids) >= 2:
+ return False
+ elif len(relation_ids) == 1 and not relation_ids[0] == relation.id:
+ return False
+ return True
+
+ _constraints = [
+ (
+ _check_unique_mirror_relation,
+ 'The same relation already exists', ['origin_account','origin_journal','origin_analytic_account']
+ )
+ ]
+
+class AccountMoveLine(orm.Model):
+
+ _inherit = 'account.move.line'
+
+ _columns = {
+ 'move_mirror_rel_id':fields.many2one('account.move','Move Multicompany Relation'),
+ }
+
+ def copy(self, cr, uid, id, default={}, context=None):
+ default.update({
+ 'move_mirror_rel_id':False,
+ })
+
+class AccountMove(orm.Model):
+
+ _inherit = 'account.move'
+
+ def button_cancel(self, cr, uid, ids, context=None):
+ self.pool.get('account.move.reconcile')
+ for move in self.browse(cr, uid, ids, context=context):
+ if not move.journal_id.update_posted:
+ raise osv.except_osv(_('Error !'), _('You can not modify a posted entry of this journal !\nYou should set the journal to allow cancelling entries if you want to do that.'))
+
+ #Set user administrator to run this portion of code
+ uid = 1
+ for line in move.line_id:
+ if line.move_mirror_rel_id:
+ move_mirror = self.browse(cr, uid, line.move_mirror_rel_id.id, context=context)
+ if not move_mirror.journal_id.update_posted:
+ raise osv.except_osv(_('Error !'), _('You can not modify a posted multicompany mirror entry of this journal !\nYou should set the journal to allow cancelling entries if you want to do that.'))
+
+ move_reconcile_obj = self.pool.get('account.move.reconcile')
+
+ for line in move.line_id:
+ if line.move_mirror_rel_id:
+ move_mirror = self.browse(cr, uid, line.move_mirror_rel_id.id, context=context)
+
+ for line_mirror in move_mirror.line_id:
+ if line_mirror.reconcile_id:
+ reconcile = line_mirror.reconcile_id
+ if len(reconcile.line_id) > 2:
+ self.pool.get('account.move.line').write(cr,uid,reconcile.line_id,{'reconcile_id': False, 'reconcile_partial_id':reconcile.id})
+ self.pool.get('account.move.line').write(cr,uid,line_mirror.id,{'reconcile_partial_id': False})
+ else:
+ move_reconcile_obj.unlink(cr,uid,[reconcile.id],context=context)
+
+ elif line_mirror.reconcile_partial_id:
+ reconcile = line_mirror.reconcile_partial_id
+ if len(reconcile.line_partial_ids) > 2:
+ self.pool.get('account.move.line').write(cr,uid,line_mirror.id,{'reconcile_partial_id': False })
+ else:
+ move_reconcile_obj.unlink(cr,uid,[reconcile.id],context=context)
+
+ cr.execute('UPDATE account_move '\
+ 'SET state=%s '\
+ 'WHERE id IN %s', ('draft', tuple([move_mirror.id]),))
+ self.button_cancel(cr,uid,[move_mirror.id],context=context)
+ self.unlink(cr,uid,[move_mirror.id],context=context)
+
+ result = super(AccountMove, self).button_cancel(cr, uid, ids, context=context)
+ return True
+
+ def post(self, cr, uid, ids, context=None):
+ result = super(AccountMove, self).post(cr, uid, ids, context=context)
+
+ for move_id_original in ids:
+ account_move_obj = self.pool.get('account.move')
+ account_move_line_obj = self.pool.get('account.move.line')
+ account_multicompany_relation_obj = self.pool.get('account.multicompany.relation')
+ #Continue if this is a reversion move
+ if account_move_obj.search(cr, 1, [('move_reverse_id', '=', move_id_original)], context=context):
+ continue
+
+ original_move = account_move_obj.browse(cr, 1, move_id_original, context=context)
+ if original_move.line_id:
+ mirror_selected = False
+ for line in original_move.line_id:
+ #Test if the line already has a mirror move associated
+ if line.move_mirror_rel_id:
+ #Reverse the mirror move if the original move is reversed
+ if original_move.move_reverse_id:
+ account_move_obj.reverse(cr, 1, [line.move_mirror_rel_id.id], context={})
+ continue
+
+ #Get parent accounts for line account
+ parent_account_ids = []
+ parent_account = line.account_id
+ while parent_account:
+ parent_account_ids.append(parent_account.id)
+ parent_account = parent_account.parent_id
+ analytic_account_id = line.analytic_account_id and line.analytic_account_id.id or False
+ mirror_selected_list_ids = account_multicompany_relation_obj.search(cr, 1, [('origin_account', 'in', parent_account_ids), ('origin_journal', '=', line.journal_id.id), ('origin_analytic_account', '=', analytic_account_id)], context=context)
+ move_id = False
+ if len(mirror_selected_list_ids) > 0:
+ mirror_selected_list = account_multicompany_relation_obj.browse(cr, 1, mirror_selected_list_ids, context=context)
+
+ mirror_selected = False
+
+ if len(mirror_selected_list) == 1:
+ mirror_selected = mirror_selected_list[0]
+ else:
+ mirror_index = -1
+ for mirror in mirror_selected_list:
+ if mirror_index < 0 or parent_account_ids.index(mirror.origin_account.id) < mirror_index:
+ mirror_index = parent_account_ids.index(mirror.origin_account.id)
+ mirror_selected = mirror
+
+ if mirror_selected:
+ origin_journal = mirror_selected.origin_journal
+ origin_account = mirror_selected.origin_account
+ targ_journal = mirror_selected.targ_journal
+ targ_account = mirror_selected.targ_account
+ inverse_debit_credit = mirror_selected.inverse_debit_credit
+ mirror_move_prefix = mirror_selected.mirror_move_prefix
+ else:
+ continue
+
+ #Set period for target move with the correct company
+ if context == None:
+ context_copy = {'company_id': targ_account.company_id.id}
+ else:
+ context_copy = copy(context)
+ context_copy.update({'company_id': targ_account.company_id.id})
+
+ periods = self.pool.get('account.period').find(cr, 1, dt=original_move.date, context=context_copy)
+ if periods:
+ move_period = periods[0]
+
+ move = {
+ 'name':mirror_move_prefix + original_move.name,
+ 'ref':original_move.ref,
+ 'journal_id':targ_journal.id,
+ 'period_id':move_period or False,
+ 'to_check':False,
+ 'partner_id':original_move.partner_id.id,
+ 'date':original_move.date,
+ 'narration':original_move.narration,
+ 'company_id':targ_account.company_id.id,
+ }
+ move_id = account_move_obj.create(cr, 1, move)
+ self.pool.get('account.move.line').write(cr, 1, [line.id], {'move_mirror_rel_id' : move_id})
+
+ analytic_account_id = ''
+ if line.analytic_account_id and line.analytic_account_id == mirror_selected.origin_analytic_account:
+ analytic_account_id = mirror_selected.targ_analytic_account.id
+
+ if inverse_debit_credit:
+ line_debit = line.credit
+ line_credit = line.debit
+ else:
+ line_debit = line.debit
+ line_credit = line.credit
+ move_line_one = {
+ 'name':line.name,
+ 'debit':line_debit,
+ 'credit':line_credit,
+ 'account_id':targ_account.id,
+ 'move_id': move_id,
+ 'amount_currency':line.amount_currency * -1,
+ 'period_id':move_period or False,
+ 'journal_id':targ_journal.id,
+ 'partner_id':line.partner_id.id,
+ 'currency_id':line.currency_id.id,
+ 'date_maturity':line.date_maturity,
+ 'date':line.date,
+ 'date_created':line.date_created,
+ 'state':'valid',
+ 'analytic_account_id':analytic_account_id,
+ 'company_id':targ_account.company_id.id,
+ }
+
+ account_move_line_obj.create(cr, 1, move_line_one)
+ if line.debit != 0.0:
+ move_line_two_account_id = targ_journal.default_credit_account_id
+ else:
+ move_line_two_account_id = targ_journal.default_debit_account_id
+
+ move_line_two = {
+ 'name':line.name,
+ 'debit':line_credit,
+ 'credit':line_debit,
+ 'account_id':move_line_two_account_id.id,
+ 'move_id': move_id,
+ 'amount_currency':line.amount_currency,
+ 'journal_id':targ_journal.id,
+ 'period_id':move_period or False,
+ 'partner_id':line.partner_id.id,
+ 'currency_id':line.currency_id.id,
+ 'date_maturity':line.date_maturity,
+ 'date':line.date,
+ 'date_created':line.date_created,
+ 'state':'valid',
+ 'analytic_account_id':False,
+ 'company_id':targ_account.company_id.id,
+ }
+ account_move_line_obj.create(cr, 1, move_line_two)
+
+ #Posted mirror
+ account_move_obj.post(cr, 1, [move_id], context={})
+ if move_id and original_move.move_reverse_id:
+ account_move_obj.reverse(cr, 1, [move_id], context={})
+ return result
+
+ def unlink(self, cr, uid, ids, context=None, check=True):
+ for move in self.browse(cr, 1, ids, context=context):
+ for line in move.line_id:
+ if line.move_mirror_rel_id:
+ self.pool.get('account.move').button_cancel(cr, 1, [line.move_mirror_rel_id.id])
+ result = super(AccountMove, self).unlink(cr, 1, [line.move_mirror_rel_id.id], context=context, check=check)
+ result = super(AccountMove, self).unlink(cr, 1, ids, context=context, check=check)
+ return result
=== added file 'account_multicompany_relation/account_multicompany_relation.xml'
--- account_multicompany_relation/account_multicompany_relation.xml 1970-01-01 00:00:00 +0000
+++ account_multicompany_relation/account_multicompany_relation.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,62 @@
+<openerp>
+ <data>
+
+ <!-- Account multicompany relation -->
+
+ <record model="ir.ui.view" id="view_account_multi_relation">
+ <field name="name">account.multicompany.relation.form</field>
+ <field name="model">account.multicompany.relation</field>
+ <field name="type">form</field>
+ <field name="arch" type="xml">
+ <form string = "Account Multicompany Relation">
+ <group col="6" colspan="4">
+ <field name = "name"/>
+ <field name = "mirror_move_prefix"/>
+ <field name = "inverse_debit_credit"/>
+ </group>
+ <group col="2" colspan="2">
+ <separator string="Origin move" colspan="2"/>
+ <field name = "origin_account"/>
+ <field name = "origin_journal"/>
+ <field name = "origin_analytic_account"/>
+ </group>
+ <group col="2" colspan="2">
+ <separator string="Target move" colspan="2"/>
+ <field name = "targ_account"/>
+ <field name = "targ_journal"/>
+ <field name = "targ_analytic_account"/>
+ </group>
+ <separator string="Notes" colspan="4"/>
+ <field nolabel="1" name = "notes" colspan="4"/>
+ </form>
+ </field>
+ </record>
+
+ <record model="ir.ui.view" id="view_account_multi_relation_tree">
+ <field name="name">account.multicompany.relation.tree</field>
+ <field name="model">account.multicompany.relation</field>
+ <field name="type">tree</field>
+ <field name="arch" type="xml">
+ <tree string = "Account Multicompany Relation">
+ <field name = "name"/>
+ <field name = "origin_account"/>
+ <field name = "targ_account"/>
+ <field name = "origin_journal"/>
+ <field name = "targ_journal"/>
+ <field name = "origin_analytic_account"/>
+ <field name = "targ_analytic_account"/>
+ </tree>
+ </field>
+ </record>
+
+ <record id="action_account_multi_relation_fix" model="ir.actions.act_window">
+ <field name="name">Account Multicompany Relation</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">account.multicompany.relation</field>
+ <field name="view_type">form</field>
+ <field name="view_id" ref="view_account_multi_relation_tree"/>
+ </record>
+ <menuitem id = "account_multi_relation_menu" name = "Relation Multicompany" parent="account.menu_configuration_misc" action = "action_account_multi_relation_fix"/>
+
+ </data>
+</openerp>
=== added directory 'account_multicompany_relation/i18n'
=== added file 'account_multicompany_relation/i18n/account_multicompany_relation.pot'
--- account_multicompany_relation/i18n/account_multicompany_relation.pot 1970-01-01 00:00:00 +0000
+++ account_multicompany_relation/i18n/account_multicompany_relation.pot 2013-01-15 16:49:27 +0000
@@ -0,0 +1,233 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * account_multicompany_relation
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2012-07-19 22:21+0000\n"
+"PO-Revision-Date: 2012-07-19 22:21+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: account_multicompany_relation
+#: field:account.multicompany.relation,targ_analytic_account:0
+msgid "Target Analytic Account"
+msgstr ""
+
+#. module: account_multicompany_relation
+#: constraint:account.move:0
+msgid "You can not create more than one move per period on centralized journal"
+msgstr ""
+
+#. module: account_multicompany_relation
+#: constraint:account.multicompany.relation:0
+#: sql_constraint:account.multicompany.relation:0
+msgid "A relation exists already"
+msgstr ""
+#. module: account_multicompany_relation
+#: constraint:account.move.line:0
+msgid "Company must be the same for its related account and period."
+msgstr ""
+
+#. module: account_multicompany_relation
+#: model:ir.model,name:account_multicompany_relation.model_account_multicompany_relation
+msgid "account.multicompany.relation"
+msgstr ""
+
+#. module: account_multicompany_relation
+#: help:account.multicompany.relation,origin_analytic_account:0
+msgid "Indicate the original analytic account where the transaction is taking place"
+msgstr ""
+
+#. module: account_multicompany_relation
+#: sql_constraint:account.account:0
+msgid "The code of the account must be unique per company !"
+msgstr ""
+
+#. module: account_multicompany_relation
+#: help:account.multicompany.relation,name:0
+msgid "Name for the mirror object relation"
+msgstr ""
+
+#. module: account_multicompany_relation
+#: code:addons/account_multicompany_relation/account_multicompany_relation.py:94
+#, python-format
+msgid "You can not modify a posted entry of this journal !\n"
+"You should set the journal to allow cancelling entries if you want to do that."
+msgstr ""
+
+#. module: account_multicompany_relation
+#: field:account.multicompany.relation,targ_journal:0
+msgid "Target Journal"
+msgstr ""
+
+#. module: account_multicompany_relation
+#: code:addons/account_multicompany_relation/account_multicompany_relation.py:94
+#: code:addons/account_multicompany_relation/account_multicompany_relation.py:102
+#, python-format
+msgid "Error !"
+msgstr ""
+
+#. module: account_multicompany_relation
+#: model:ir.model,name:account_multicompany_relation.model_account_journal
+msgid "Journal"
+msgstr ""
+
+#. module: account_multicompany_relation
+#: model:ir.model,name:account_multicompany_relation.model_account_move_line
+msgid "Journal Items"
+msgstr ""
+
+#. module: account_multicompany_relation
+#: constraint:account.move.line:0
+msgid "You can not create journal items on an account of type view."
+msgstr ""
+
+#. module: account_multicompany_relation
+#: model:ir.model,name:account_multicompany_relation.model_account_account
+msgid "Account"
+msgstr ""
+
+#. module: account_multicompany_relation
+#: code:addons/account_multicompany_relation/account_multicompany_relation.py:102
+#, python-format
+msgid "You can not modify a posted multicompany mirror entry of this journal !\n"
+"You should set the journal to allow cancelling entries if you want to do that."
+msgstr ""
+
+
+#. module: account_multicompany_relation
+#: view:account.multicompany.relation:0
+#: model:ir.actions.act_window,name:account_multicompany_relation.action_account_multi_relation_fix
+msgid "Account Multicompany Relation"
+msgstr ""
+
+#. module: account_multicompany_relation
+#: field:account.multicompany.relation,name:0
+msgid "Name"
+msgstr ""
+
+#. module: account_multicompany_relation
+#: help:account.multicompany.relation,targ_analytic_account:0
+msgid "Indicate the target analytic account where the transaction of the original analytic account has to be seen, this is an analytic account from another company"
+msgstr ""
+
+#. module: account_multicompany_relation
+#: constraint:account.move.line:0
+msgid "You can not create journal items on closed account."
+msgstr ""
+
+#. module: account_multicompany_relation
+#: sql_constraint:account.multicompany.relation:0
+msgid "The name must be unique"
+msgstr ""
+
+#. module: account_multicompany_relation
+#: field:account.multicompany.relation,origin_journal:0
+msgid "Original Journal"
+msgstr ""
+
+#. module: account_multicompany_relation
+#: constraint:account.journal:0
+msgid "Configuration error! The currency chosen should be shared by the default accounts too."
+msgstr ""
+
+#. module: account_multicompany_relation
+#: field:account.multicompany.relation,targ_account:0
+msgid "Target Account"
+msgstr ""
+
+#. module: account_multicompany_relation
+#: model:ir.ui.menu,name:account_multicompany_relation.account_multi_relation_menu
+msgid "Relation Multicompany"
+msgstr ""
+
+#. module: account_multicompany_relation
+#: field:account.multicompany.relation,origin_account:0
+msgid "Original Account"
+msgstr ""
+
+#. module: account_multicompany_relation
+#: help:account.multicompany.relation,origin_journal:0
+msgid "Indicate the original journal where the transaction is taking place"
+msgstr ""
+
+#. module: account_multicompany_relation
+#: field:account.move.line,move_mirror_rel_id:0
+msgid "Move Multicompany Relation"
+msgstr ""
+
+#. module: account_multicompany_relation
+#: help:account.multicompany.relation,origin_account:0
+#: help:account.multicompany.relation,targ_journal:0
+msgid "Indicate the original account where the transaction is taking place"
+msgstr ""
+
+#. module: account_multicompany_relation
+#: model:ir.model,name:account_multicompany_relation.model_account_move
+msgid "Account Entry"
+msgstr ""
+
+#. module: account_multicompany_relation
+#: constraint:account.account:0
+msgid "Error ! You can not create recursive accounts."
+msgstr ""
+
+#. module: account_multicompany_relation
+#: constraint:account.account:0
+msgid "Configuration Error! \n"
+"You can not select an account type with a deferral method different of \"Unreconciled\" for accounts with internal type \"Payable/Receivable\"! "
+msgstr ""
+
+#. module: account_multicompany_relation
+#: model:ir.model,name:account_multicompany_relation.model_account_voucher
+msgid "Accounting Voucher"
+msgstr ""
+
+#. module: account_multicompany_relation
+#: sql_constraint:account.journal:0
+msgid "The name of the journal must be unique per company !"
+msgstr ""
+
+#. module: account_multicompany_relation
+#: constraint:account.move.line:0
+msgid "The selected account of your Journal Entry forces to provide a secondary currency. You should remove the secondary currency on the account or select a multi-currency view on the journal."
+msgstr ""
+
+#. module: account_multicompany_relation
+#: constraint:account.move.line:0
+msgid "The date of your Journal Entry is not in the defined period! You should change the date or remove this constraint from the journal."
+msgstr ""
+
+#. module: account_multicompany_relation
+#: sql_constraint:account.journal:0
+msgid "The code of the journal must be unique per company !"
+msgstr ""
+
+#. module: account_multicompany_relation
+#: constraint:account.account:0
+msgid "Configuration Error! \n"
+"You can not define children to an account with internal type different of \"View\"! "
+msgstr ""
+
+#. module: account_multicompany_relation
+#: sql_constraint:account.move.line:0
+msgid "Wrong credit or debit value in accounting entry !"
+msgstr ""
+
+#. module: account_multicompany_relation
+#: field:account.multicompany.relation,origin_analytic_account:0
+msgid "Original Analytic Account"
+msgstr ""
+
+#. module: account_multicompany_relation
+#: help:account.multicompany.relation,targ_account:0
+msgid "Indicate the target account where the transaction of the original account has to be seen, this is an account from another company"
+msgstr ""
+
=== added symlink 'account_multicompany_relation/i18n/es.po'
=== target is u'es_CR.po'
=== added file 'account_multicompany_relation/i18n/es_CR.po'
--- account_multicompany_relation/i18n/es_CR.po 1970-01-01 00:00:00 +0000
+++ account_multicompany_relation/i18n/es_CR.po 2013-01-15 16:49:27 +0000
@@ -0,0 +1,237 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * account_multicompany_relation
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2012-07-19 22:21+0000\n"
+"PO-Revision-Date: 2012-07-19 22:21+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: account_multicompany_relation
+#: field:account.multicompany.relation,targ_analytic_account:0
+msgid "Target Analytic Account"
+msgstr "Cuenta analítica destino"
+
+#. module: account_multicompany_relation
+#: constraint:account.move:0
+msgid "You can not create more than one move per period on centralized journal"
+msgstr "No puede crear más de un movimiento por periodo en un diario centralizado"
+
+#. module: account_multicompany_relation
+#: constraint:account.multicompany.relation:0
+#: sql_constraint:account.multicompany.relation:0
+msgid "A relation exists already"
+msgstr "Una relación existe ya"
+
+#. module: account_multicompany_relation
+#: constraint:account.move.line:0
+msgid "Company must be the same for its related account and period."
+msgstr "La compañía debe ser la misma para su cuenta y periodos relacionados"
+
+#. module: account_multicompany_relation
+#: model:ir.model,name:account_multicompany_relation.model_account_multicompany_relation
+msgid "account.multicompany.relation"
+msgstr "account.multicompany.relation"
+
+#. module: account_multicompany_relation
+#: help:account.multicompany.relation,origin_analytic_account:0
+msgid "Indicate the original analytic account where the transaction is taking place"
+msgstr "Indique la cuenta analítica original donde la transacción se lleva a cabo"
+
+#. module: account_multicompany_relation
+#: sql_constraint:account.account:0
+msgid "The code of the account must be unique per company !"
+msgstr "¡El código de la cuenta debe ser único por compañía!"
+
+#. module: account_multicompany_relation
+#: help:account.multicompany.relation,name:0
+msgid "Name for the mirror object relation"
+msgstr "Nombre de la relación de objeto espejo"
+
+#. module: account_multicompany_relation
+#: code:addons/account_multicompany_relation/account_multicompany_relation.py:94
+#, python-format
+msgid "You can not modify a posted entry of this journal !\n"
+"You should set the journal to allow cancelling entries if you want to do that."
+msgstr "No se puede modificar un asiento contabilizado de este diario !\n"
+"Debe establecer el diario para permitir cancelar los asientos si quieres hacer eso."
+
+#. module: account_multicompany_relation
+#: field:account.multicompany.relation,targ_journal:0
+msgid "Target Journal"
+msgstr "Diario Destino"
+
+#. module: account_multicompany_relation
+#: code:addons/account_multicompany_relation/account_multicompany_relation.py:94
+#: code:addons/account_multicompany_relation/account_multicompany_relation.py:102
+#, python-format
+msgid "Error !"
+msgstr "Error !"
+
+#. module: account_multicompany_relation
+#: model:ir.model,name:account_multicompany_relation.model_account_journal
+msgid "Journal"
+msgstr "Diario"
+
+#. module: account_multicompany_relation
+#: model:ir.model,name:account_multicompany_relation.model_account_move_line
+msgid "Journal Items"
+msgstr "Apuntes contables"
+
+#. module: account_multicompany_relation
+#: constraint:account.move.line:0
+msgid "You can not create journal items on an account of type view."
+msgstr "No puede crear asientos en una cuenta de tipo vista"
+
+#. module: account_multicompany_relation
+#: model:ir.model,name:account_multicompany_relation.model_account_account
+msgid "Account"
+msgstr "Cuenta"
+
+#. module: account_multicompany_relation
+#: code:addons/account_multicompany_relation/account_multicompany_relation.py:102
+#, python-format
+msgid "You can not modify a posted multicompany mirror entry of this journal !\n"
+"You should set the journal to allow cancelling entries if you want to do that."
+msgstr "No se puede modificar un asiento espejo contabilizado de este diario !\n"
+"Debe establecer el diario para permitir cancelar los asientos si quieres hacer eso."
+
+
+#. module: account_multicompany_relation
+#: view:account.multicompany.relation:0
+#: model:ir.actions.act_window,name:account_multicompany_relation.action_account_multi_relation_fix
+msgid "Account Multicompany Relation"
+msgstr "Cuenta Relación Multicompañía"
+
+#. module: account_multicompany_relation
+#: field:account.multicompany.relation,name:0
+msgid "Name"
+msgstr "Nombre"
+
+#. module: account_multicompany_relation
+#: help:account.multicompany.relation,targ_analytic_account:0
+msgid "Indicate the target analytic account where the transaction of the original analytic account has to be seen, this is an analytic account from another company"
+msgstr "Indique la cuenta analítica destino, donde la transacción de la cuenta analítica original tiene que ser vista, esta es una cuenta analítica de otra compañía"
+
+#. module: account_multicompany_relation
+#: constraint:account.move.line:0
+msgid "You can not create journal items on closed account."
+msgstr "No puede crear asientos en cuentas cerradas"
+
+#. module: account_multicompany_relation
+#: sql_constraint:account.multicompany.relation:0
+msgid "The name must be unique"
+msgstr "El nombre debe ser único"
+
+#. module: account_multicompany_relation
+#: field:account.multicompany.relation,origin_journal:0
+msgid "Original Journal"
+msgstr "Diario Original"
+
+#. module: account_multicompany_relation
+#: constraint:account.journal:0
+msgid "Configuration error! The currency chosen should be shared by the default accounts too."
+msgstr "¡Error de configuración! La moneda elegida debería ser también la misma en las cuentas por defecto"
+
+#. module: account_multicompany_relation
+#: field:account.multicompany.relation,targ_account:0
+msgid "Target Account"
+msgstr "Cuenta Destino"
+
+#. module: account_multicompany_relation
+#: model:ir.ui.menu,name:account_multicompany_relation.account_multi_relation_menu
+msgid "Relation Multicompany"
+msgstr "Relación Multicompañía"
+
+#. module: account_multicompany_relation
+#: field:account.multicompany.relation,origin_account:0
+msgid "Original Account"
+msgstr "Cuenta Original"
+
+#. module: account_multicompany_relation
+#: help:account.multicompany.relation,origin_journal:0
+msgid "Indicate the original journal where the transaction is taking place"
+msgstr "Indique el diario original, donde la transacción se lleva a cabo"
+
+#. module: account_multicompany_relation
+#: field:account.move.line,move_mirror_rel_id:0
+msgid "Move Multicompany Relation"
+msgstr "Move Multicompany Relation"
+
+#. module: account_multicompany_relation
+#: help:account.multicompany.relation,origin_account:0
+#: help:account.multicompany.relation,targ_journal:0
+msgid "Indicate the original account where the transaction is taking place"
+msgstr "Indique la cuenta original, donde la transacción se lleva a cabo"
+
+#. module: account_multicompany_relation
+#: model:ir.model,name:account_multicompany_relation.model_account_move
+msgid "Account Entry"
+msgstr "Asiento contable"
+
+#. module: account_multicompany_relation
+#: constraint:account.account:0
+msgid "Error ! You can not create recursive accounts."
+msgstr "¡Error! No se pueden crear cuentas recursivas."
+
+#. module: account_multicompany_relation
+#: constraint:account.account:0
+msgid "Configuration Error! \n"
+"You can not select an account type with a deferral method different of \"Unreconciled\" for accounts with internal type \"Payable/Receivable\"! "
+msgstr "¡Error de configuración! \n"
+"¡No se puede seleccionar un tipo de cuenta con un método diferente de aplazamiento \"no reconciliadas\" para las cuentas con el tipo interno \"por pagar / por cobrar\"! "
+
+#. module: account_multicompany_relation
+#: model:ir.model,name:account_multicompany_relation.model_account_voucher
+msgid "Accounting Voucher"
+msgstr "Comprobantes contables"
+
+#. module: account_multicompany_relation
+#: sql_constraint:account.journal:0
+msgid "The name of the journal must be unique per company !"
+msgstr "¡El nombre del diaro debe ser único por compañía!"
+
+#. module: account_multicompany_relation
+#: constraint:account.move.line:0
+msgid "The selected account of your Journal Entry forces to provide a secondary currency. You should remove the secondary currency on the account or select a multi-currency view on the journal."
+msgstr "La cuenta seleccionada en su asiento fuerza a tener una moneda secundaria. Debería eliminar la moneda secundaria de la cuenta o asignar al diario una vista multi-moneda"
+
+#. module: account_multicompany_relation
+#: constraint:account.move.line:0
+msgid "The date of your Journal Entry is not in the defined period! You should change the date or remove this constraint from the journal."
+msgstr "¡La fecha de su asiento no está en el periodo definido! Usted debería cambiar la fecha o borar esta restricción del diario."
+
+#. module: account_multicompany_relation
+#: sql_constraint:account.journal:0
+msgid "The code of the journal must be unique per company !"
+msgstr "¡El código del diario debe ser único por compañía!"
+
+#. module: account_multicompany_relation
+#: constraint:account.account:0
+msgid "Configuration Error! \n"
+"You can not define children to an account with internal type different of \"View\"! "
+msgstr "¡Error de configuración! "
+
+#. module: account_multicompany_relation
+#: sql_constraint:account.move.line:0
+msgid "Wrong credit or debit value in accounting entry !"
+msgstr "¡Valor haber o debe erróneo en el asiento contable!"
+
+#. module: account_multicompany_relation
+#: field:account.multicompany.relation,origin_analytic_account:0
+msgid "Original Analytic Account"
+msgstr "Cuenta analítica original"
+
+#. module: account_multicompany_relation
+#: help:account.multicompany.relation,targ_account:0
+msgid "Indicate the target account where the transaction of the original account has to be seen, this is an account from another company"
+msgstr "Indique la cuenta destino, donde la transacción de la cuenta original tiene que ser visto, se trata de una cuenta de otra compañía"
+
=== added directory 'account_template_chart_name'
=== added file 'account_template_chart_name/__init__.py'
--- account_template_chart_name/__init__.py 1970-01-01 00:00:00 +0000
+++ account_template_chart_name/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,1 @@
+import account_template_chart_name
=== added file 'account_template_chart_name/__openerp__.py'
--- account_template_chart_name/__openerp__.py 1970-01-01 00:00:00 +0000
+++ account_template_chart_name/__openerp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,44 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# account_template_chart_name.py
+# account_template_chart_name
+# First author: Juan Felipe Munoz <juan.munoz@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+{
+ "name" : "Accounting Template Chart Name",
+ "author" : "ClearCorp S.A.",
+ "version" : "1.0",
+ "depends" : ["account"],
+ "init_xml" : [],
+ "update_xml" : ["account_template_chart_name.xml"],
+ "category" : "Accounting",
+ "active" : False,
+ "instalable" : True,
+}
=== added file 'account_template_chart_name/account_template_chart_name.py'
--- account_template_chart_name/account_template_chart_name.py 1970-01-01 00:00:00 +0000
+++ account_template_chart_name/account_template_chart_name.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,45 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# account_rename.py
+# account_rename
+# First author: Mag Guevara <mag.guevara@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2011-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+from osv import osv, fields
+#from tools import debug
+from tools.translate import _
+
+class account_template_chart_name(osv.osv):
+ _name = "account.account.template"
+ _inherit = "account.account.template"
+
+
+ _columns = {
+ 'chart_template': fields.char('Chart Template', size=64, required=True),
+ }
=== added file 'account_template_chart_name/account_template_chart_name.xml'
--- account_template_chart_name/account_template_chart_name.xml 1970-01-01 00:00:00 +0000
+++ account_template_chart_name/account_template_chart_name.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,43 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<openerp>
+ <data>
+
+ <!--
+ ======================================
+ accounts
+ ======================================
+ -->
+
+ <record model = "ir.ui.view" id = "account_account_template_chart_name_view_form">
+ <field name = "name">account.account.template.chart.name.form</field>
+ <field name = "model">account.account.template</field>
+ <field name = "type">form</field>
+ <field name="inherit_id" ref="account.view_account_template_form"/>
+ <field name = "arch" type = "xml">
+ <data>
+ <field name = "chart_template_id" position = "after">
+ <field name = "chart_template"/>
+ </field>
+ </data>
+ </field>
+ </record>
+
+
+ <record model = "ir.ui.view" id = "account_account_template_chart_name_view_tree">
+ <field name = "name">account.account.template.chart.name.tree</field>
+ <field name = "model">account.account.template</field>
+ <field name = "type">tree</field>
+ <field name="inherit_id" ref="account.view_account_template_tree"/>
+ <field name = "arch" type = "xml">
+ <data>
+ <field name = "name" position = "after">
+ <field name = "chart_template"/>
+ </field>
+ </data>
+ </field>
+ </record>
+
+
+ </data>
+</openerp>
+
=== added directory 'account_voucher_payment_method'
=== added file 'account_voucher_payment_method/__init__.py'
--- account_voucher_payment_method/__init__.py 1970-01-01 00:00:00 +0000
+++ account_voucher_payment_method/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,1 @@
+import account_voucher_payment_method
=== added file 'account_voucher_payment_method/__openerp__.py'
--- account_voucher_payment_method/__openerp__.py 1970-01-01 00:00:00 +0000
+++ account_voucher_payment_method/__openerp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,13 @@
+{
+ "name" : "Account Voucher Payment Method",
+ "author" : "CLEARCORP S.A",
+ "version" : "0.1",
+ "depends" : ["account_voucher"],
+ "init_xml" : [],
+ "update_xml" : [
+ "account_voucher_payment_method.xml",
+ ],
+ "category" : "",
+ "active": False,
+ "installable": True
+}
=== added file 'account_voucher_payment_method/account_voucher_payment_method.py'
--- account_voucher_payment_method/account_voucher_payment_method.py 1970-01-01 00:00:00 +0000
+++ account_voucher_payment_method/account_voucher_payment_method.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,203 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# Author: Frank Carvajal. Copyright ClearCorp SA
+#
+# 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 osv import osv, fields
+#from tools import debug
+
+class account_journal(osv.osv):
+ _name = "account.journal"
+ _inherit = "account.journal"
+ _columns = {
+ #'type': fields.selection([('sale', 'Sale'),
+ # ('sale_refund','Sale Refund'),
+ # ('purchase', 'Purchase'),
+ # ('purchase_refund','Purchase Refund'),
+ # ('cash', 'Cash'),
+ # ('bank', 'Bank and Cheques'),
+ # ('general', 'General'),
+ # ('situation', 'Opening/Closing Situation'),
+ # ('payment','Payment method')], 'Type', size=32, required=True,
+ # help="Select 'Sale' for Sale journal to be used at the time of making invoice."\
+ # " Select 'Purchase' for Purchase Journal to be used at the time of approving purchase order."\
+ # " Select 'Cash' to be used at the time of making payment."\
+ # " Select 'General' for miscellaneous operations."\
+ # " Select 'Opening/Closing Situation' to be used at the time of new fiscal year creation or end of year entries generation."),
+ 'payment_method_customer' : fields.boolean('Payment Method Customer'),
+ 'payment_method_supplier' : fields.boolean('Payment Method Supplier'),
+ 'payment_verification' : fields.boolean('Payment Verification'),
+ }
+account_journal()
+
+class account_voucher_journal_payment(osv.osv):
+ _name = 'account.voucher'
+ _inherit = 'account.voucher'
+ _description = 'Accounting Voucher'
+
+ def _compute_writeoff_amount(self, cr, uid, line_dr_ids, line_cr_ids, amount):
+ debit = credit = 0.0
+ for l in line_dr_ids:
+ debit += l['amount']
+ for l in line_cr_ids:
+ credit += l['amount']
+ return abs(amount - abs(credit - debit))
+
+ #def onchange_partner_id(self, cr, uid, ids, partner_id, journal_id, price, currency_id, ttype, date, context=None):
+ #"""price
+ #Returns a dict that contains new values and context
+
+ #@param partner_id: latest value from user input for field partner_id
+ #@param args: other arguments
+ #@param context: context arguments, like lang, time zone
+
+ #@return: Returns a dict which contains new values, and context
+ #"""
+ #if context is None:
+ #context = {}
+ #if not journal_id:
+ #return {}
+ #context_multi_currency = context.copy()
+ #if date:
+ #context_multi_currency.update({'date': date})
+
+ #line_pool = self.pool.get('account.voucher.line')
+ #line_ids = ids and line_pool.search(cr, uid, [('voucher_id', '=', ids[0])]) or False
+ #if line_ids:
+ #line_pool.unlink(cr, uid, line_ids)
+
+ #currency_pool = self.pool.get('res.currency')
+ #move_line_pool = self.pool.get('account.move.line')
+ #partner_pool = self.pool.get('res.partner')
+ #journal_pool = self.pool.get('account.journal')
+
+ #vals = self.onchange_journal(cr, uid, ids, journal_id, [], False, partner_id, False, False, False, False, context)
+ #vals = vals.get('value')
+ #currency_id = vals.get('currency_id', currency_id)
+ #default = {
+ #'value':{'line_ids':[], 'line_dr_ids':[], 'line_cr_ids':[], 'pre_line': False, 'currency_id':currency_id},
+ #}
+
+ #if not partner_id:
+ ##debug("DEFAULT EN EL IF SIN PARTNER")
+ ##debug(default)
+ #return default
+
+ #if not partner_id and ids:
+ #line_ids = line_pool.search(cr, uid, [('voucher_id', '=', ids[0])])
+ #if line_ids:
+ #line_pool.unlink(cr, uid, line_ids)
+ #return default
+
+ #journal = journal_pool.browse(cr, uid, journal_id, context=context)
+ #partner = partner_pool.browse(cr, uid, partner_id, context=context)
+ #account_id = False
+ #if journal.type in ('sale','sale_refund'):
+ #account_id = partner.property_account_receivable.id
+ #elif journal.type in ('purchase', 'purchase_refund','expense'):
+ #account_id = partner.property_account_payable.id
+ #else:
+ #account_id = journal.default_credit_account_id.id or journal.default_debit_account_id.id
+
+ #default['value']['account_id'] = account_id
+
+ #if journal.type not in ('cash', 'bank','payment'):
+ ##debug("DEFAULT EN EL IF journal no de dinero banco o pagos")
+ ##debug(default)
+ #return default
+
+ #total_credit = 0.0
+ #total_debit = 0.0
+ #account_type = 'receivable'
+ #if ttype == 'payment':
+ #account_type = 'payable'
+ #total_debit = price or 0.0
+ #else:
+ #total_credit = price or 0.0
+ #account_type = 'receivable'
+
+ #if not context.get('move_line_ids', False):
+ #domain = [('state','=','valid'), ('account_id.type', '=', account_type), ('reconcile_id', '=', False), ('partner_id', '=', partner_id), ('journal_id.payment_method','=',False)]
+ #if context.get('invoice_id', False):
+ #domain.append(('invoice', '=', context['invoice_id']))
+ #ids = move_line_pool.search(cr, uid, domain, context=context)
+ ##debug("no encuentra movelines en el contexto")
+ ##debug(ids)
+ #else:
+ #ids = context['move_line_ids']
+ ##debug("SI encuentra movelines en el contexto")
+ ##debug(ids)
+ #ids.reverse()
+ #moves = move_line_pool.browse(cr, uid, ids, context=context)
+
+ #company_currency = journal.company_id.currency_id.id
+ #if company_currency != currency_id and ttype == 'payment':
+ #total_debit = currency_pool.compute(cr, uid, currency_id, company_currency, total_debit, context=context_multi_currency)
+ #elif company_currency != currency_id and ttype == 'receipt':
+ #total_credit = currency_pool.compute(cr, uid, currency_id, company_currency, total_credit, context=context_multi_currency)
+
+ #for line in moves:
+ #if line.credit and line.reconcile_partial_id and ttype == 'receipt':
+ #continue
+ #if line.debit and line.reconcile_partial_id and ttype == 'payment':
+ #continue
+ #total_credit += line.credit or 0.0
+ #total_debit += line.debit or 0.0
+ #for line in moves:
+ #if line.credit and line.reconcile_partial_id and ttype == 'receipt':
+ #continue
+ #if line.debit and line.reconcile_partial_id and ttype == 'payment':
+ #continue
+ #original_amount = line.credit or line.debit or 0.0
+ #amount_unreconciled = currency_pool.compute(cr, uid, line.currency_id and line.currency_id.id or company_currency, currency_id, abs(line.amount_residual_currency), context=context_multi_currency)
+ #rs = {
+ #'name':line.move_id.name,
+ #'type': line.credit and 'dr' or 'cr',
+ #'move_line_id':line.id,
+ #'account_id':line.account_id.id,
+ #'amount_original': currency_pool.compute(cr, uid, line.currency_id and line.currency_id.id or company_currency, currency_id, line.currency_id and abs(line.amount_currency) or original_amount, context=context_multi_currency),
+ #'date_original':line.date,
+ #'date_due':line.date_maturity,
+ #'amount_unreconciled': amount_unreconciled,
+ #}
+
+ #if line.credit:
+ #amount = min(amount_unreconciled, currency_pool.compute(cr, uid, company_currency, currency_id, abs(total_debit), context=context_multi_currency))
+ #rs['amount'] = amount
+ #total_debit -= amount
+ #else:
+ #amount = min(amount_unreconciled, currency_pool.compute(cr, uid, company_currency, currency_id, abs(total_credit), context=context_multi_currency))
+ #rs['amount'] = amount
+ #total_credit -= amount
+
+ #default['value']['line_ids'].append(rs)
+ #if rs['type'] == 'cr':
+ #default['value']['line_cr_ids'].append(rs)
+ #else:
+ #default['value']['line_dr_ids'].append(rs)
+
+ #if ttype == 'payment' and len(default['value']['line_cr_ids']) > 0:
+ #default['value']['pre_line'] = 1
+ #elif ttype == 'receipt' and len(default['value']['line_dr_ids']) > 0:
+ #default['value']['pre_line'] = 1
+ #default['value']['writeoff_amount'] = self._compute_writeoff_amount(cr, uid, default['value']['line_dr_ids'], default['value']['line_cr_ids'], price)
+ ##debug(price)
+ ##debug(default)
+ #return default
+
+account_voucher_journal_payment()
=== added file 'account_voucher_payment_method/account_voucher_payment_method.xml'
--- account_voucher_payment_method/account_voucher_payment_method.xml 1970-01-01 00:00:00 +0000
+++ account_voucher_payment_method/account_voucher_payment_method.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,169 @@
+<openerp>
+ <data>
+
+ <!-- Account voucher payment and purchase inherit -->
+
+ <record model="ir.ui.view" id="view_customer_receipt_form">
+ <field name="name">account.voucher.receipt.form</field>
+ <field name="model">account.voucher</field>
+ <field name="inherit_id" ref="account_voucher.view_vendor_receipt_form"/>
+ <field name="type">form</field>
+ <field name="arch" type="xml">
+ <data>
+ <field name="journal_id" position="replace">
+ <field name="journal_id"
+ domain="[('payment_method_customer','=','True')]"
+ invisible="context.get('line_type', False)"
+ widget="selection" select="1"
+ on_change="onchange_journal(journal_id, line_cr_ids, False, partner_id, date, amount, type, company_id, context)"
+ string="Payment Method"/>
+ </field>
+ </data>
+ </field>
+ </record>
+
+ <record model="ir.ui.view" id="view_purchase_receipt_form">
+ <field name="name">account.voucher.purchase.form</field>
+ <field name="model">account.voucher</field>
+ <field name="inherit_id" ref="account_voucher.view_vendor_payment_form"/>
+ <field name="type">form</field>
+ <field name="arch" type="xml">
+ <data>
+ <field name="journal_id" position="replace">
+ <field name="journal_id"
+ domain="[('payment_method_supplier','=','True')]"
+ invisible="context.get('line_type', False)"
+ widget="selection" select="1"
+ on_change="onchange_journal(journal_id, line_cr_ids, False, partner_id, date, amount, type, company_id, context)"
+ string="Payment Method"/>
+ </field>
+ </data>
+ </field>
+ </record>
+
+ <record id="action_vendor_reciept2" model="ir.actions.act_window">
+ <field name="name">Customer Payment</field>
+ <field name="res_model">account.voucher</field>
+ <field name="view_type">form</field>
+ <field name="domain">[('journal_id.payment_method_customer', '=', 'True'), ('type','=','receipt')]</field>
+ <field name="context">{'type' : 'receipt','payment_method':'True'}</field>
+ <field name="view_id" eval="False"/>
+ <field name="search_view_id" ref="account_voucher.view_voucher_filter_vendor_pay"/>
+ <field name="target">current</field>
+ <field name="help">Sales payment allows you to register the payments you receive from your customers. In order to record a payment, you must enter the customer, the payment method (=the journal) and the payment amount. OpenERP will propose to you automatically the reconciliation of this payment with the open invoices or sales receipts.</field>
+ </record>
+ <record id="action_vendor_reciept_tree" model="ir.actions.act_window.view">
+ <field eval="1" name="sequence"/>
+ <field name="view_mode">tree</field>
+ <field name="act_window_id" ref="action_vendor_reciept2"/>
+ </record>
+ <record id="action_vendor_reciept_form" model="ir.actions.act_window.view">
+ <field eval="2" name="sequence"/>
+ <field name="view_mode">form</field>
+ <field name="view_id" ref="account_voucher.view_vendor_receipt_form"/>
+ <field name="act_window_id" ref="action_vendor_reciept2"/>
+ </record>
+
+ <record id="account_voucher.menu_action_vendor_receipt" model="ir.ui.menu">
+ <field name="action" ref="action_vendor_reciept2"/>
+ </record>
+
+
+ <record id="action_vendor_payment2" model="ir.actions.act_window">
+ <field name="name">Supplier Payment</field>
+ <field name="res_model">account.voucher</field>
+ <field name="view_type">form</field>
+ <field name="domain">[('journal_id.payment_method_supplier', '=', 'True'), ('type','=','payment')]</field>
+ <field name="context">{'type':'payment','payment_method':'True'}</field>
+ <field name="view_id" eval="False"/>
+ <field name="search_view_id" ref="account_voucher.view_voucher_filter_vendor_pay"/>
+ <field name="target">current</field>
+ <field name="help">The supplier payment form allows you to track the payment you do to your suppliers. When you select a supplier, the payment method and an amount for the payment, OpenERP will propose to reconcile your payment with the open supplier invoices or bills.</field>
+ </record>
+ <record id="action_vendor_payment_tree" model="ir.actions.act_window.view">
+ <field eval="1" name="sequence"/>
+ <field name="view_mode">tree</field>
+ <field name="act_window_id" ref="action_vendor_payment2"/>
+ </record>
+ <record id="action_vendor_payment_form" model="ir.actions.act_window.view">
+ <field eval="2" name="sequence"/>
+ <field name="view_mode">form</field>
+ <field name="view_id" ref="account_voucher.view_vendor_payment_form"/>
+ <field name="act_window_id" ref="action_vendor_payment2"/>
+ </record>
+
+ <record id="account_voucher.menu_action_vendor_payment" model="ir.ui.menu" >
+ <field name="action" ref="action_vendor_payment2"/>
+ </record>
+
+ <!--
+
+ ACCOUNT.VOUCHER.LINE MODIFICATION
+
+ -->
+ <record model = "ir.ui.view" id = "view_account_voucher_line_mod">
+ <field name = "name">account.voucher.line.mod</field>
+ <field name = "model">account.voucher</field>
+ <field name = "type">tree</field>
+ <field name = "inherit_id" ref = "account_voucher.view_vendor_receipt_form"/>
+ <field name = "arch" type = "xml">
+ <data>
+ <xpath expr = "//field[@name='line_cr_ids']//field[@name='amount_original']" position = "after">
+ <field name = "currency_id"/>
+ </xpath>
+ <xpath expr = "//field[@name='line_dr_ids']//field[@name='amount_original']" position = "after">
+ <field name = "currency_id"/>
+ </xpath>
+ </data>
+ </field>
+ </record>
+
+ <record model = "ir.ui.view" id = "view_account_voucher_line_mod2">
+ <field name = "name">account.voucher.line.mod2</field>
+ <field name = "model">account.voucher</field>
+ <field name = "type">tree</field>
+ <field name = "inherit_id" ref = "account_voucher.view_vendor_payment_form"/>
+ <field name = "arch" type = "xml">
+ <data>
+ <xpath expr = "//field[@name='line_cr_ids']//field[@name='amount_original']" position = "replace">
+ <field name = "currency_id"/>
+ </xpath>
+ <xpath expr = "//field[@name='line_dr_ids']//field[@name='amount_original']" position = "replace">
+ <field name = "currency_id"/>
+ </xpath>
+ <!--<xpath expr = "//field[@name='line_cr_ids']//field[@name='amount_original']" position = "after">
+ <field name = "currency_id"/>
+ </xpath>
+ <xpath expr = "//field[@name='line_dr_ids']//field[@name='amount_original']" position = "after">
+ <field name = "currency_id"/>
+ </xpath>-->
+ </data>
+ </field>
+ </record>
+
+ <!--
+
+ ACCOUNT JOURNAL MODIFICATION
+
+ -->
+ <record model="ir.ui.view" id="view_account_journal_method_ext">
+ <field name="name">account.journal.relation.form</field>
+ <field name="model">account.journal</field>
+ <field name="type">form</field>
+ <field name="inherit_id" ref = "account.view_account_journal_form"/>
+ <field name="arch" type="xml">
+ <data>
+ <field name = "type" position = "after">
+ <group colspan = "2" col = "4">
+ <separator string = "Payment Options"/>
+ <newline/>
+ <field name = "payment_method_customer"/>
+ <field name = "payment_method_supplier"/>
+ <field name = "payment_verification"/>
+ </group>
+ </field>
+ </data>
+ </field>
+ </record>
+ </data>
+</openerp>
=== added directory 'account_voucher_reverse'
=== added file 'account_voucher_reverse/__init__.py'
--- account_voucher_reverse/__init__.py 1970-01-01 00:00:00 +0000
+++ account_voucher_reverse/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Addons modules by CLEARCORP S.A.
+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
+#
+# 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_voucher_reverse
=== added file 'account_voucher_reverse/__openerp__.py'
--- account_voucher_reverse/__openerp__.py 1970-01-01 00:00:00 +0000
+++ account_voucher_reverse/__openerp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,48 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Addons modules by CLEARCORP S.A.
+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
+#
+# 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 Voucher Reverse",
+ "version" : '1.0',
+ "author" : 'CLEARCORP S.A.',
+ 'complexity': 'normal',
+ "description": """
+Module for reverse account vouchers
+ """,
+ "category": 'Accounting & Finance',
+ "sequence": 4,
+ "website" : "http://clearcorp.co.cr",
+ "images" : [],
+ "icon" : False,
+ "depends" : ["account_move_reverse"],
+ "init_xml" : [],
+ "demo_xml" : [],
+ "update_xml" : [
+ "account_voucher_reverse_view.xml",
+ "workflow/account_voucher_reverse_workflow.xml",
+ ],
+ "test" : [],
+ "auto_install": False,
+ "application": False,
+ "installable": True,
+ 'license': 'AGPL-3',
+}
=== added file 'account_voucher_reverse/account_voucher_reverse.py'
--- account_voucher_reverse/account_voucher_reverse.py 1970-01-01 00:00:00 +0000
+++ account_voucher_reverse/account_voucher_reverse.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,64 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Addons modules by CLEARCORP S.A.
+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
+#
+# 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 osv import osv, fields
+
+class AccountVoucherReverse(osv.osv):
+ _name = 'account.voucher'
+ _inherit = 'account.voucher'
+
+ _columns = {
+ 'move_line_reverse_ids' : fields.related('move_id', 'move_reverse_id', 'line_id', type='one2many', relation='account.move.line', string='Journal Items Reverse', readonly=True),
+ 'state':fields.selection(
+ [('draft','Draft'),
+ ('proforma','Pro-forma'),
+ ('posted','Posted'),
+ ('reverse','Reverse'),
+ ('cancel','Cancelled')
+ ], 'State', readonly=True, size=32,
+ help=' * The \'Draft\' state is used when a user is encoding a new and unconfirmed Voucher. \
+ \n* The \'Pro-forma\' when voucher is in Pro-forma state,voucher does not have an voucher number. \
+ \n* The \'Posted\' state is used when user create voucher,a voucher number is generated and voucher entries are created in account \
+ \n* The \'Reverse\' state is used when user reverse voucher \
+ \n* The \'Cancelled\' state is used when user cancel voucher.'),
+ }
+
+ def reverse_voucher(self, cr, uid, ids, context=None):
+ for voucher_id in ids:
+ voucher = self.pool.get('account.voucher').browse(cr, 1, voucher_id, context=context)
+ if voucher.move_id:
+ self.pool.get('account.move').reverse(cr, uid, [voucher.move_id.id], context=context)
+ self.write(cr, uid, [voucher_id], {'state' : 'reverse'}, context=context)
+ return {}
+
+
+
+
+
+
+
+
+
+
+
+
+
=== added file 'account_voucher_reverse/account_voucher_reverse_view.xml'
--- account_voucher_reverse/account_voucher_reverse_view.xml 1970-01-01 00:00:00 +0000
+++ account_voucher_reverse/account_voucher_reverse_view.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<openerp>
+ <data>
+ <record id="view_vendor_receipt_reverse_form" model="ir.ui.view">
+ <field name="name">account.voucher.receipt.reverse.form</field>
+ <field name="model">account.voucher</field>
+ <field name="type">form</field>
+ <field name="inherit_id" ref="account_voucher.view_vendor_receipt_form"/>
+ <field name="arch" type="xml">
+ <data>
+ <xpath expr = "/form/group/field[@name='state']" position = "after">
+ <button name="reverse_voucher" string="Reverse" type="object" states="posted" invisible="context.get('line_type', False)" icon="STOCK_REVERT_TO_SAVED" confirm="Are you sure to reverse this record ?"/>
+ </xpath>
+ <xpath expr = "/form/notebook/page[@string='Journal Items']" position = "attributes">
+ <attribute name="attrs">{'invisible': [('state','in',['draft', 'proforma', 'cancel'])]}</attribute>
+ </xpath>
+ <xpath expr = "/form/notebook/page/field[@name='move_ids']" position = "after">
+ <field name="move_line_reverse_ids" colspan="4" nolabel="1" readonly="1" attrs = "{'invisible' : [('state','!=','reverse')]}" >
+ <tree string="Journal Items Reverse">
+ <field name="move_id"/>
+ <field name="ref"/>
+ <field name="date"/>
+ <field name="statement_id"/>
+ <field name="partner_id"/>
+ <field name="account_id"/>
+ <field name="name"/>
+ <field name="debit"/>
+ <field name="credit"/>
+ <field name="state"/>
+ <field name="reconcile_id"/>
+ <field name="amount_currency"/>
+ <field name="currency_id"/>
+ </tree>
+ </field>
+ </xpath>
+ </data>
+ </field>
+ </record>
+
+ <record id="view_vendor_payment_reverse_form" model="ir.ui.view">
+ <field name="name">account.voucher.payment.reverse.form</field>
+ <field name="model">account.voucher</field>
+ <field name="type">form</field>
+ <field name="inherit_id" ref="account_voucher.view_vendor_payment_form"/>
+ <field name="arch" type="xml">
+ <data>
+ <xpath expr = "/form/group/field[@name='state']" position = "after">
+ <button name="reverse_voucher" string="Reverse" type="object" states="posted" invisible="context.get('line_type', False)" icon="STOCK_REVERT_TO_SAVED" confirm="Are you sure to reverse this record ?"/>
+ </xpath>
+ <xpath expr = "/form/notebook/page[@string='Journal Items']" position="attributes">
+ <attribute name="attrs">{'invisible': [('state','in',['draft', 'proforma', 'cancel'])]}</attribute>
+ </xpath>
+ <xpath expr = "/form/notebook/page/field[@name='move_ids']" position = "after">
+ <field name="move_line_reverse_ids" colspan="4" nolabel="1" readonly="1" attrs = "{'invisible' : [('state','!=','reverse')]}" >
+ <tree string="Journal Items Reverse">
+ <field name="move_id"/>
+ <field name="ref"/>
+ <field name="date"/>
+ <field name="statement_id"/>
+ <field name="partner_id"/>
+ <field name="account_id"/>
+ <field name="name"/>
+ <field name="debit"/>
+ <field name="credit"/>
+ <field name="state"/>
+ <field name="reconcile_id"/>
+ <field name="amount_currency"/>
+ <field name="currency_id"/>
+ </tree>
+ </field>
+ </xpath>
+ </data>
+ </field>
+ </record>
+ </data>
+</openerp>
=== added directory 'account_voucher_reverse/i18n'
=== added file 'account_voucher_reverse/i18n/account_voucher_reverse.pot'
--- account_voucher_reverse/i18n/account_voucher_reverse.pot 1970-01-01 00:00:00 +0000
+++ account_voucher_reverse/i18n/account_voucher_reverse.pot 2013-01-15 16:49:27 +0000
@@ -0,0 +1,37 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * account_voucher_reverse
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2012-07-19 22:18+0000\n"
+"PO-Revision-Date: 2012-07-19 22:18+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: account_voucher_reverse
+#: view:account.voucher:0
+msgid "Journal Items"
+msgstr ""
+
+#. module: account_voucher_reverse
+#: model:ir.model,name:account_voucher_reverse.model_account_voucher
+msgid "Accounting Voucher"
+msgstr ""
+
+#. module: account_voucher_reverse
+#: view:account.voucher:0
+msgid "Reverse"
+msgstr ""
+
+#. module: account_voucher_reverse
+#: view:account.voucher:0
+msgid "Are you sure to reverse this record ?"
+msgstr ""
+
=== added symlink 'account_voucher_reverse/i18n/es.po'
=== target is u'es_CR.po'
=== added file 'account_voucher_reverse/i18n/es_CR.po'
--- account_voucher_reverse/i18n/es_CR.po 1970-01-01 00:00:00 +0000
+++ account_voucher_reverse/i18n/es_CR.po 2013-01-15 16:49:27 +0000
@@ -0,0 +1,43 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * account_voucher_reverse
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2012-08-09 17:42+0000\n"
+"PO-Revision-Date: 2012-08-09 17:42+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: account_voucher_reverse
+#: view:account.voucher:0
+msgid "Journal Items"
+msgstr "Apuntes contables"
+
+#. module: account_voucher_reverse
+#: view:account.voucher:0
+#: field:account.voucher,move_line_reverse_ids:0
+msgid "Journal Items Reverse"
+msgstr "Apuntes contables reversos"
+
+#. module: account_voucher_reverse
+#: model:ir.model,name:account_voucher_reverse.model_account_voucher
+msgid "Accounting Voucher"
+msgstr "Comprobantes contables"
+
+#. module: account_voucher_reverse
+#: view:account.voucher:0
+msgid "Reverse"
+msgstr "Reversar"
+
+#. module: account_voucher_reverse
+#: view:account.voucher:0
+msgid "Are you sure to reverse this record ?"
+msgstr "Está seguro de revertir este registro ?"
+
=== added directory 'account_voucher_reverse/workflow'
=== added file 'account_voucher_reverse/workflow/account_voucher_reverse_workflow.xml'
--- account_voucher_reverse/workflow/account_voucher_reverse_workflow.xml 1970-01-01 00:00:00 +0000
+++ account_voucher_reverse/workflow/account_voucher_reverse_workflow.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<openerp>
+ <data>
+
+ <record id="act_reverse" model="workflow.activity">
+ <field name="wkf_id" ref="account_voucher.wkf"/>
+ <field name="name">reverse</field>
+ <field name="flow_stop">True</field>
+ <field name="action">reverse_voucher()</field>
+ <field name="kind">function</field>
+ </record>
+
+ <record id="account_voucher_done2reverse" model="workflow.transition">
+ <field name="act_from" ref="account_voucher.act_done" />
+ <field name="act_to" ref="act_reverse" />
+ <!-- <field name="group_id" ref="account.Accountant" /> -->
+ <field name="signal">reverse_voucher</field>
+ </record>
+
+ </data>
+</openerp>
=== added directory 'account_webkit_report_library'
=== added file 'account_webkit_report_library/__init__.py'
--- account_webkit_report_library/__init__.py 1970-01-01 00:00:00 +0000
+++ account_webkit_report_library/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Addons modules by CLEARCORP S.A.
+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
+#
+# 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 common_library
+import res_company
=== added file 'account_webkit_report_library/__openerp__.py'
--- account_webkit_report_library/__openerp__.py 1970-01-01 00:00:00 +0000
+++ account_webkit_report_library/__openerp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,46 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Addons modules by CLEARCORP S.A.
+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
+#
+# 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 Webkit Reporting Library',
+ 'description': """
+This a library with methods and templates for easier account reporting using webkit.
+It is ment to be used in other modules, it doesn't do anything on its own.
+ """,
+ 'version': '1.0',
+ 'author': 'CLEARCORP S.A.',
+ 'category': 'Hidden',
+ 'website': "http://clearcorp.co.cr",
+ 'images': [],
+ 'depends': ['account','report_webkit'],
+ 'init_xml': [],
+ 'demo_xml' : [],
+ 'update_xml': [
+ 'res_company_view.xml',
+ 'webkit_headers/webkit_headers.xml',
+ ],
+ 'test': [],
+ 'active': False,
+ 'installable': True,
+ 'license': 'AGPL-3',
+}
=== added file 'account_webkit_report_library/common_library.py'
--- account_webkit_report_library/common_library.py 1970-01-01 00:00:00 +0000
+++ account_webkit_report_library/common_library.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,306 @@
+#-*- coding:utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
+# d$
+#
+# 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 copy
+import netsvc
+from osv import fields, orm
+import tools
+from tools.translate import _
+
+class AccountWebkitReportLibrary(orm.Model):
+ _name = "account.webkit.report.library"
+ _description = "Account Webkit Reporting Library"
+
+ def get_move_lines(self, cr, uid, account_ids, filter_type='', filter_data=None, fiscalyear=None, target_move='all', unreconcile = False, historic_strict=False, context=None):
+ ''' Get the move lines of the accounts provided and filtered.
+ Arguments:
+ 'account_ids': List of accounts ids.
+ 'filter_type': Filter used, possibles values: 'filter_date', 'filter_period' or ''.
+ 'filter_data': If filter is by date then filter_data is a list of strings with the initial date and the ending date, if filter is by period then
+ filter_data is a list of browse record with the initial period and the ending period.
+ 'fiscalyear': Browse record of the fiscal year selected.
+ 'target_move': Target moves of the report, possibles values: 'all' or 'posted'.
+ 'unreconcile': If True then get the move lines unreconciled.
+ 'historic_strict': Used when unreconcile = True, forces to include move lines that where not reconciled at the end date of the filter but are now.
+ Armando was here.
+ '''
+ account_obj = self.pool.get('account.account')
+ move_line_obj = self.pool.get('account.move.line')
+ move_lines_ids = []
+
+ if unreconcile == False:
+ if target_move == 'all':
+ if filter_type == '' and filter_data == None and fiscalyear == None:
+ move_line_ids = move_line_obj.search(cr, uid, [('account_id', 'in', account_ids)], context=context)
+ elif filter_type == 'filter_date':
+ date_stop = filter_data[1]
+ move_line_ids = move_line_obj.search(cr, uid, [('account_id', 'in', account_ids), ('date', '<=', date_stop)], context=context)
+ elif filter_type == 'filter_period':
+ periods_ids = self.pool.get('account.period').search(cr, uid, [('date_stop', '<=', filter_data[1].date_stop)])
+ move_line_ids = move_line_obj.search(cr, uid, [('account_id', 'in', account_ids), ('period_id.id', 'in', periods_ids)], context=context)
+ elif filter_type == '' and fiscalyear != None:
+ date_stop = fiscalyear.date_stop
+ move_line_ids = move_line_obj.search(cr, uid, [('account_id', 'in', account_ids), ('date', '<=', date_stop)], context=context)
+ elif target_move == 'posted':
+ if filter_type == '' and filter_data == None and fiscalyear == None:
+ move_line_ids = move_line_obj.search(cr, uid, [('account_id', 'in', account_ids), ('move_id.state', '=', 'posted')], context=context)
+ elif filter_type == 'filter_date':
+ date_stop = filter_data[1]
+ move_line_ids = move_line_obj.search(cr, uid, [('account_id', 'in', account_ids), ('date', '<=', date_stop), ('move_id.state', '=', 'posted')], context=context)
+ elif filter_type == 'filter_period':
+ periods_ids = self.pool.get('account.period').search(cr, uid, [('date_stop', '<=', filter_data[1].date_stop)])
+ move_line_ids = move_line_obj.search(cr, uid, [('account_id', 'in', account_ids), ('period_id.id', 'in', periods_ids), ('move_id.state', '=', 'posted')], context=context)
+ elif filter_type == '' and fiscalyear != None:
+ date_stop = fiscalyear.date_stop
+ move_line_ids = move_line_obj.search(cr, uid, [('account_id', 'in', account_ids), ('date', '<=', date_stop), ('move_id.state', '=', 'posted')], context=context)
+ else:
+ if target_move == 'all':
+ if filter_type == '' and filter_data == None and fiscalyear == None:
+ move_line_ids = move_line_obj.search(cr, uid, [('account_id', 'in', account_ids), ('reconcile_id', '=', False)], context=context)
+ elif filter_type == 'filter_date':
+ date_stop = filter_data[1]
+ move_line_ids = move_line_obj.search(cr, uid, [('account_id', 'in', account_ids), ('date', '<=', date_stop), ('reconcile_id', '=', False)], context=context)
+ if historic_strict:
+ move_line_ids = move_line_ids + self.get_move_lines_unconciled(cr, uid, account_ids, filter_type=filter_type, filter_data=filter_data, context=context)
+ elif filter_type == 'filter_period':
+ periods_ids = self.pool.get('account.period').search(cr, uid, [('date_stop', '<=', filter_data[1].date_stop)])
+ move_line_ids = move_line_obj.search(cr, uid, [('account_id', 'in', account_ids), ('period_id.id', 'in', periods_ids), ('reconcile_id', '=', False)], context=context)
+ if historic_strict:
+ move_line_ids = move_line_ids + self.get_move_lines_unconciled(cr, uid, account_ids, filter_type=filter_type, filter_data=filter_data, context=context)
+ elif filter_type == '' and fiscalyear != None:
+ date_stop = fiscalyear.date_stop
+ move_line_ids = move_line_obj.search(cr, uid, [('account_id', 'in', account_ids), ('date', '<=', date_stop), ('reconcile_id', '=', False)], context=context)
+ if historic_strict:
+ move_line_ids = move_line_ids + self.get_move_lines_unconciled(cr, uid, account_ids, fiscalyear=fiscalyear, context=context)
+ elif target_move == 'posted':
+ if filter_type == '' and filter_data == None and fiscalyear == None:
+ move_line_ids = move_line_obj.search(cr, uid, [('account_id', 'in', account_ids), ('move_id.state', '=', 'posted'), ('reconcile_id', '=', False)], context=context)
+ elif filter_type == 'filter_date':
+ date_stop = filter_data[1]
+ move_line_ids = move_line_obj.search(cr, uid, [('account_id', 'in', account_ids), ('date', '<=', date_stop), ('move_id.state', '=', 'posted'), ('reconcile_id', '=', False)], context=context)
+ if historic_strict:
+ move_line_ids = move_line_ids + self.get_move_lines_unconciled(cr, uid, account_ids, filter_type=filter_type, filter_data=filter_data, context=context)
+ elif filter_type == 'filter_period':
+ periods_ids = self.pool.get('account.period').search(cr, uid, [('date_stop', '<=', filter_data[1].date_stop)])
+ move_line_ids = move_line_obj.search(cr, uid, [('account_id', 'in', account_ids), ('period_id.id', 'in', periods_ids), ('move_id.state', '=', 'posted'), ('reconcile_id', '=', False)], context=context)
+ if historic_strict:
+ move_line_ids = move_line_ids + self.get_move_lines_unconciled(cr, uid, account_ids, filter_type=filter_type, filter_data=filter_data, context=context)
+ elif filter_type == '' and fiscalyear != None:
+ date_stop = fiscalyear.date_stop
+ move_line_ids = move_line_obj.search(cr, uid, [('account_id', 'in', account_ids), ('date', '<=', date_stop), ('move_id.state', '=', 'posted'), ('reconcile_id', '=', False)], context=context)
+ if historic_strict:
+ move_line_ids = move_line_ids + self.get_move_lines_unconciled(cr, uid, account_ids, fiscalyear=fiscalyear, context=context)
+
+ move_lines = move_line_ids and move_line_obj.browse(cr, uid, move_line_ids) or []
+
+ return move_lines
+
+ def get_move_lines_unconciled(self, cr, uid, account_ids, filter_type='', filter_data=None, fiscalyear=None, context=None):
+ ''' Get the move lines reconciled that their date is greater than the filter given.
+ Arguments:
+ 'account_ids': List of accounts ids.
+ 'filter_type': Filter used, possibles values: 'filter_date', 'filter_period' or ''.
+ 'filter_data': If filter is by date then filter_data is a list of strings with the initial date and the ending date, if filter is by period then
+ filter_data is a list of browse record with the initial period and the ending period.
+ 'fiscalyear': Browse record of the fiscal year selected.
+ '''
+ account_obj = self.pool.get('account.account')
+ move_line_obj = self.pool.get('account.move.line')
+ move_reconcile_obj = self.pool.get('account.move.reconcile')
+ move_lines_conciled_ids = []
+ move_lines_ids = []
+
+ if filter_type == 'filter_date':
+ date_stop = filter_data[1]
+ move_lines_conciled_ids = move_line_obj.search(cr, uid, [('account_id', 'in', account_ids), ('date', '<=', date_stop), ('reconcile_id', '!=', False)], context=context)
+ elif filter_type == 'filter_period':
+ periods_ids = self.pool.get('account.period').search(cr, uid, [('date_stop', '<=', filter_data[1].date_stop)])
+ move_lines_conciled_ids = move_line_obj.search(cr, uid, [('account_id', 'in', account_ids), ('period_id.id', 'in', periods_ids), ('reconcile_id', '!=', False)], context=context)
+ elif filter_type == '' and fiscalyear != None:
+ date_stop = fiscalyear.date_stop
+ move_lines_conciled_ids = move_line_obj.search(cr, uid, [('account_id', 'in', account_ids), ('date', '<=', date_stop), ('reconcile_id', '!=', False)], context=context)
+
+ move_lines_conciled = move_lines_conciled_ids and move_line_obj.browse(cr, uid, move_lines_conciled_ids) or []
+
+ for move_line_conciled in move_lines_conciled:
+ move_reconcile = move_line_conciled.reconcile_id
+ for line in move_reconcile.line_id:
+ if filter_type == 'filter_period':
+ if line.period_id.id not in periods_ids:
+ move_lines_ids.append(move_line_conciled.id)
+ break
+ else:
+ if line.date >= date_stop:
+ move_lines_ids.append(move_line_conciled.id)
+ break
+
+ return move_lines_ids
+
+ def get_account_balance(self, cr, uid,
+ account_ids,
+ field_names,
+ initial_balance=False,
+ company_id=False,
+ fiscal_year_id=False,
+ all_fiscal_years=False,
+ state='all',
+ start_date=False,
+ end_date=False,
+ start_period_id=False,
+ end_period_id=False,
+ period_ids=False,
+ journal_ids=False,
+ chart_account_id=False,
+ context={}):
+ ''' Get the balance for the provided account ids with the provided filters
+ Arguments:
+ account_ids: [int], required, account ids
+ field_names: ['balance', 'debit', 'credit', 'foreign_balance'], the fields to compute
+ initial_balance: bool, True if the return must be the initial balance for the period of time specified, not the ending balance.
+ company_id: int, id for the company
+ fiscal_year_id: int, id for the fiscal year
+ all_fiscal_years: bool, True if all fiscal years must be used, including the closed ones. (usefull for receivable for ex.)
+ state: selection of: draft, posted, all; the state of the move lines used in the calculation
+ start_date: date string, start date
+ end_date: date string, end date
+ start_period_id: int, start period id
+ end_period_id: int, end period id
+ period_ids: list of int, list of periods ids used
+ journal_ids: list of int, list of journal ids used
+ chart_account_id: int, chart of account used
+
+ If there is an end_period without a start_period, all precedent moves for the end period will be used.
+ If there isn't a fiscal year, all open fiscal years will be used. To include all closed fiscal years, the all_fiscal_years must be True.
+ '''
+ account_obj = self.pool.get('account.account')
+ period_obj = self.pool.get('account.period')
+ context_copy = copy.copy(context)
+ context = {}
+
+ if not period_ids and fiscal_year_id and not start_period_id and end_period_id:
+ end_period = period_obj.browse(cr, uid, end_period_id)
+ period_ids = period_obj.search(cr, uid, ['&',('fiscalyear_id','=',fiscal_year_id),('date_stop', '<=', end_period.date_stop)])
+
+ if initial_balance:
+ context.update({'initial_bal':initial_balance})
+ if company_id:
+ context.update({'company_id':company_id})
+ if fiscal_year_id:
+ context.update({'fiscalyear':fiscal_year_id})
+ if all_fiscal_years:
+ context.update({'all_fiscalyear':all_fiscal_years})
+ if state:
+ context.update({'state':state})
+ if start_date:
+ context.update({'date_from':start_date})
+ if end_date:
+ context.update({'date_to':end_date})
+ if start_period_id:
+ context.update({'period_from':start_period_id})
+ if end_period_id:
+ context.update({'period_to':end_period_id})
+ if period_ids:
+ context.update({'periods':period_ids})
+ if journal_ids:
+ context.update({'journal_ids':journal_ids})
+ if chart_account_id:
+ context.update({'chart_account_id':chart_account_id})
+
+ '''
+ Description for the __compute method:
+ Get the balance for the provided account ids with the provided filters
+ Arguments:
+ `account_ids`: list, account ids
+ `field_names`: list, the fields to compute (valid values:
+ 'balance', 'debit', 'credit', foreign_balance)
+ `query`: additional query filter (as a string)
+ `query_params`: parameters for the provided query string
+ (__compute will handle their escaping) as a
+ tuple
+ 'context': The context have the filters for the move lines, to see the proper keys and values that should be used check
+ the method _query_get of account_move_line
+ initial_bal: bool, True if the return must be the initial balance for the period of time specified, not the ending balance.
+ company_id: int, id for the company, if provided only moves for that company will be used
+ fiscalyear: int, id for the fiscal year, if provided only moves for that fiscal year will be used
+ all_fiscalyear: bool, True if all fiscal years must be used, including the closed ones. (usefull for receivable for ex.)
+ state: selection of: draft, posted, all; the state of the move lines used in the calculation
+ date_from: date string, start date
+ date_to: date string, end date
+ period_from: int, start period id
+ period_to: int, end period id
+ periods: list of int, list of periods ids used
+ journal_ids: list of int, list of journal ids used
+ chart_account_id: int, chart of account used
+ '''
+ res = account_obj._account_account__compute(cr, uid, account_ids, field_names, context=context)
+ context = context_copy
+
+ return res
+
+ def get_balance_tmp(self, cr, uid, account_ids, field_names, arg=None, context=None,
+ query='', query_params=()):
+ ''' Get the balance for the provided account ids
+ Arguments:
+ `ids`: account ids
+ `field_names`: the fields to compute (a list of any of
+ 'balance', 'debit' and 'credit')
+ `arg`: unused fields.function stuff
+ `query`: additional query filter (as a string)
+ `query_params`: parameters for the provided query string
+ (__compute will handle their escaping) as a
+ tuple
+ 'context': The context have the filters for the move lines, to see the proper keys and values that should be used check
+ the method _query_get of account_move_line
+ '''
+ account_obj = self.pool.get('account.account')
+
+ res = account_obj._account_account__compute(cr, uid, account_ids, field_names, arg=arg, context=context,
+ query=query, query_params=query_params)
+
+ return res
+
+ def get_account_child_ids(self, cr, uid, account_ids, context={}):
+ print account_ids
+ if isinstance(account_ids, orm.browse_record):
+ account_ids = [account_ids.id]
+ elif isinstance(account_ids, int):
+ account_ids = [account_ids]
+ return self.pool.get('account.account')._get_children_and_consol(cr, uid, account_ids, context=context)
+
+ def get_category_accounts(self, cr, uid, company_id):
+ account_account_obj = self.pool.get('account.account')
+ res_company_obj = self.pool.get('res.company')
+ company = res_company_obj.browse(cr, uid, company_id)
+ if company:
+ asset_category_account_id = company['property_asset_view_account']
+ liability_category_account_id = company['property_liability_view_account']
+ equity_category_account_id = company['property_equity_view_account']
+ income_category_account_id = company['property_income_view_account']
+ expense_category_account_id = company['property_expense_view_account']
+ return {
+ 'asset': asset_category_account_id,
+ 'liability': liability_category_account_id,
+ 'equity': equity_category_account_id,
+ 'income': income_category_account_id,
+ 'expense': expense_category_account_id,
+ }
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
=== added file 'account_webkit_report_library/res_company.py'
--- account_webkit_report_library/res_company.py 1970-01-01 00:00:00 +0000
+++ account_webkit_report_library/res_company.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,39 @@
+#-*- coding:utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
+# d$
+#
+# 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 netsvc
+from osv import fields, orm
+import tools
+from tools.translate import _
+
+class ResCompany(orm.Model):
+ _inherit = "res.company"
+
+ _columns = {
+ 'property_asset_view_account': fields.many2one('account.account','Asset view account'),
+ 'property_liability_view_account': fields.many2one('account.account','Liability view account'),
+ 'property_equity_view_account': fields.many2one('account.account','Equity view account'),
+ 'property_income_view_account': fields.many2one('account.account','Income view account'),
+ 'property_expense_view_account': fields.many2one('account.account','Expense view account'),
+ }
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
=== added file 'account_webkit_report_library/res_company_view.xml'
--- account_webkit_report_library/res_company_view.xml 1970-01-01 00:00:00 +0000
+++ account_webkit_report_library/res_company_view.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<openerp>
+ <data>
+ <record id="view_company_form_inherit" model="ir.ui.view">
+ <field name="name">res.company.form.inherit</field>
+ <field name="model">res.company</field>
+ <field name="type">form</field>
+ <field name="inherit_id" ref="account.view_company_inherit_1_form"/>
+ <field name="arch" type="xml">
+ <data>
+ <field name="property_reserve_and_surplus_account" position="after">
+ <field name="property_asset_view_account"/>
+ <field name="property_liability_view_account"/>
+ <field name="property_equity_view_account"/>
+ <field name="property_income_view_account"/>
+ <field name="property_expense_view_account"/>
+ </field>
+ </data>
+ </field>
+ </record>
+ </data>
+</openerp>
+
=== added directory 'account_webkit_report_library/webkit_headers'
=== added file 'account_webkit_report_library/webkit_headers/main.css'
--- account_webkit_report_library/webkit_headers/main.css 1970-01-01 00:00:00 +0000
+++ account_webkit_report_library/webkit_headers/main.css 2013-01-15 16:49:27 +0000
@@ -0,0 +1,237 @@
+/* Generic styles */
+
+body {
+ font-family: Helvetica, Arial;
+ color: black;
+ margin: 0;
+ padding: 0;
+ background-color: white;
+ width: 11in;
+ height: 8.5in;
+}
+
+/* div table structure */
+
+.table {
+ display: table;
+ width: 100%;
+ table-layout: auto;
+ border-collapse: collapse;
+ text-align: left;
+ font-size: 12px;
+}
+
+.table-row {
+ display: table-row;
+}
+
+.table-cell {
+ display: table-cell;
+ padding-right: 3px;
+ padding-left: 3px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+
+.table-header {
+ display: table-header-group;
+}
+
+.table-body {
+ display: table-row-group;
+}
+
+.table-footer {
+ display: table-footer-group;
+}
+
+.table-caption {
+ display: table-caption;
+}
+
+.table-colgroup {
+ display: table-column-group;
+}
+
+.table-rowgroup {
+ display: table-row-group;
+ page-break-after: avoid;
+}
+
+/* list-table styles */
+
+.table.list-table, .table.list-table .table-row {
+ border-left: 0px;
+ border-right: 0px;
+}
+
+.table.list-table .table-cell {
+ border: 1px solid lightGrey;
+ text-align: center;
+}
+
+.table.list_table .table-cell{
+ padding-left: 5px;
+ padding-right: 5px;
+ border-left: 1px solid lightGrey;
+ border-right: 1px solid lightGrey;
+}
+
+.table.list_table .table-cell.first-column {
+ padding-left: 0px;
+ border-left:0px solid lightGrey;
+}
+
+.table.list_table .table-cell.last-column {
+ padding-right: 0px;
+ border-right:0px solid lightGrey;
+}
+
+/* Header styles */
+
+.table.header {
+ border: 0px;
+ text-align: middle;
+ border-bottom: 1px solid lightGray;
+}
+
+.table.header .table-row {
+ border: 0px;
+}
+
+.table.header .table-cell.logo {
+ padding: 0px 40px 0px 0px;
+}
+
+.table.header .table-cell.logo img {
+ vertical-align: top;
+}
+
+.table.header .table-cell.text {
+ padding: 3px 5px 3px 0px;
+ width: 100%;
+}
+
+.table.header .table-cell p.company {
+ font-size: 14px;
+ font-weight: bold;
+ margin: 4px 0px 4px 0px;
+}
+
+.table.header .table-cell p.title {
+ font-size: 20px;
+ font-weight: bold;
+ margin: 6px 0px 6px 0px;
+}
+
+.table.header .table-cell p.subtitle {
+ font-size: 16px;
+ font-weight: bold;
+ margin: 4px 0px 4px 0px;
+}
+
+/* Footer table styles */
+
+.table.footer {
+ border-top: 1px solid #AAAAAA;
+ width: 100%;
+ font-size: 10px;
+ color: #777777;
+}
+
+.table.footer .table-row {
+ border-collapse:collapse;
+}
+
+/* Table cell styles */
+
+.table .table-row.labels {
+ border-color:gray;
+ border-bottom:1px solid lightGrey;
+ background-color: #555555;
+ color: white;
+ font-weight: bold;
+ font-size: 14px;
+ text-align: center;
+}
+
+.table .table-row.even {
+ background-color: #E0E0E0;
+}
+
+.table .table-row.initial-balance {
+ font-style:italic;
+}
+
+.table .table-row.subtotal {
+ border-color:gray;
+ border-top:2px solid black;
+ border-bottom:2px solid black;
+ background-color: #CCCCCC;
+ font-weight: bold;
+ font-size: 14px;
+}
+
+.table .table-row.total {
+ border-top: 3px ridge black;
+ border-bottom: 3px ridge black;
+ background-color: #777777;
+ color: white;
+ font-weight: bold;
+ font-size: 14px;
+}
+
+.table .table-row.no-break {
+ page-break-after: avoid;
+}
+
+.table .table-row.bold {
+ font-weight: bold;
+}
+
+.table .table-row.spacer {
+ background-color: white;
+ border-width: 0px;
+}
+
+.table .table-row.spacer .table-cell {
+ column-span: all;
+}
+
+/* Text styles */
+
+.overflow-ellipsis {
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+}
+
+.align-left {
+ text-align: left;
+}
+
+.align-center {
+ text-align: center;
+}
+
+.align-right {
+ text-align: right;
+}
+
+.amount {
+ text-align: right;
+ white-space: nowrap;
+}
+
+.no-wrap {
+ white-space: nowrap;
+}
+
+.alert {
+ color: red;
+}
+
+.total .alert {
+ background-color: red;
+ color: white;
+}
=== added file 'account_webkit_report_library/webkit_headers/main.js'
--- account_webkit_report_library/webkit_headers/main.js 1970-01-01 00:00:00 +0000
+++ account_webkit_report_library/webkit_headers/main.js 2013-01-15 16:49:27 +0000
@@ -0,0 +1,15 @@
+function subst() {
+ var vars={};
+ var x=document.location.search.substring(1).split('&');
+ for(var i in x) {
+ var z=x[i].split('=',2);
+ vars[z[0]] = unescape(z[1]);
+ }
+ var x=['frompage','topage','page','webpage','section','subsection','subsubsection'];
+ for(var i in x) {
+ var y = document.getElementsByClassName(x[i]);
+ for(var j=0; j<y.length; ++j){
+ y[j].textContent = vars[x[i]];
+ }
+ }
+}
=== added file 'account_webkit_report_library/webkit_headers/webkit_headers.xml'
--- account_webkit_report_library/webkit_headers/webkit_headers.xml 1970-01-01 00:00:00 +0000
+++ account_webkit_report_library/webkit_headers/webkit_headers.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,109 @@
+<?xml version="1.0"?>
+<openerp>
+ <data>
+ <record id="webkit_header_clearcorp_official_portrait" model="ir.header_webkit">
+ <field name="name">Portrait CLEARCORP official header</field>
+ <field name="orientation">Portrait</field>
+ <field name="format">Letter</field>
+ <field name="margin_top">0</field>
+ <field name="margin_bottom">0</field>
+ <field name="margin_left">0</field>
+ <field name="margin_right">0</field>
+ <field name="css"><![CDATA[
+/* Type here the custom styles
+ See the addons/account_webkit_report_library/webkit_headers/main.css
+ for default styles and overwriting. */
+
+
+ ]]></field>
+ <field name="html"><![CDATA[
+<html>
+ <head>
+ <meta content="text/html; charset=UTF-8" http-equiv="content-type"/>
+ <script type="text/javascript" src="addons/account_webkit_report_library/webkit_headers/main.js"></script>
+ <link rel='stylesheet' href='addons/account_webkit_report_library/webkit_headers/main.css'>
+ <style type="text/css">
+ ${css}
+ </style>
+ </head>
+ <body onload="subst()"></body>
+</html>
+ ]]></field>
+ <field name="footer_html"><![CDATA[
+<html>
+ <head>
+ <meta content="text/html; charset=UTF-8" http-equiv="content-type"/>
+ <script type="text/javascript" src="addons/account_webkit_report_library/webkit_headers/main.js"></script>
+ <link rel='stylesheet' href='addons/account_webkit_report_library/webkit_headers/main.css'>
+ <style type="text/css">
+ ${css}
+ </style>
+ </head>
+ <% import datetime %>
+ <body onload="subst()">
+ <div class="table footer">
+ <div class="table-row">
+ <div class="table-cell align-left" style="width:33%;">OpenERP: ${formatLang( str(datetime.datetime.today()), date_time=True)}</div>
+ <div class="table-cell align-center" style="width:34%;">${user.name} (${user.login})</div>
+ <div class="table-cell align-right" style="width:33%;">Page <span class="page">.</span> of <span class="topage">.</span></div>
+ </div>
+ </div>
+ </body>
+</html>
+ ]]></field>
+ </record>
+
+ <record id="webkit_header_clearcorp_official_landscape" model="ir.header_webkit">
+ <field name="name">Landscape CLEARCORP official header</field>
+ <field name="orientation">Landscape</field>
+ <field name="format">Letter</field>
+ <field name="margin_top">0</field>
+ <field name="margin_bottom">0</field>
+ <field name="margin_left">0</field>
+ <field name="margin_right">0</field>
+ <field name="css"><![CDATA[
+/* Type here the custom styles
+ See the addons/account_webkit_report_library/webkit_headers/main.css
+ for default styles and overwriting. */
+
+
+ ]]></field>
+ <field name="html"><![CDATA[
+<html>
+ <head>
+ <meta content="text/html; charset=UTF-8" http-equiv="content-type"/>
+ <script type="text/javascript" src="addons/account_webkit_report_library/webkit_headers/main.js"></script>
+ <link rel='stylesheet' href='addons/account_webkit_report_library/webkit_headers/main.css'>
+ <style type="text/css">
+ ${css}
+ </style>
+ </head>
+ <body onload="subst()"></body>
+</html>
+ ]]></field>
+ <field name="footer_html"><![CDATA[
+<html>
+ <head>
+ <meta content="text/html; charset=UTF-8" http-equiv="content-type"/>
+ <script type="text/javascript" src="addons/account_webkit_report_library/webkit_headers/main.js"></script>
+ <link rel='stylesheet' href='addons/account_webkit_report_library/webkit_headers/main.css'>
+ <style type="text/css">
+ ${css}
+ </style>
+ </head>
+ <% import datetime %>
+ <body onload="subst()">
+ <div class="table footer">
+ <div class="table-row">
+ <div class="table-cell align-left" style="width:33%;">OpenERP: ${formatLang( str(datetime.datetime.today()), date_time=True)}</div>
+ <div class="table-cell align-center" style="width:34%;">${user.name} (${user.login})</div>
+ <div class="table-cell align-right" style="width:33%;">Page <span class="page">.</span> of <span class="topage">.</span></div>
+ </div>
+ </div>
+ </body>
+</html>
+ ]]></field>
+ </record>
+ </data>
+</openerp>
+
=== added directory 'base_company_prefix'
=== added file 'base_company_prefix/__init__.py'
--- base_company_prefix/__init__.py 1970-01-01 00:00:00 +0000
+++ base_company_prefix/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,1 @@
+import base_company_prefix
=== added file 'base_company_prefix/__openerp__.py'
--- base_company_prefix/__openerp__.py 1970-01-01 00:00:00 +0000
+++ base_company_prefix/__openerp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,13 @@
+{
+ "name" : "Base company prefix",
+ "author" : "ClearCorp S.A",
+ "version" : "0.1",
+ "depends" : ["base"],
+ "init_xml" : [],
+ "update_xml" : [
+ "base_company_prefix.xml"
+ ],
+ "category" : "",
+ "active": False,
+ "installable": True
+}
=== added file 'base_company_prefix/base_company_prefix.py'
--- base_company_prefix/base_company_prefix.py 1970-01-01 00:00:00 +0000
+++ base_company_prefix/base_company_prefix.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,47 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# Author: Frank Carvajal
+#
+# 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 osv import osv
+from osv import fields
+import os
+import tools
+
+class res_company(osv.osv):
+ _name = "res.company"
+ _description = 'Companies'
+ _inherit = 'res.company'
+ _order = 'prefix'
+ _columns = {
+ 'prefix' : fields.char('Prefijo',size=10),
+ }
+
+ def name_get(self, cr, uid, ids, context=None):
+ if not len(ids):
+ return []
+ res = []
+ for obj_company in self.browse(cr, uid, ids, context=context):
+ obj_company_name = obj_company.prefix and obj_company.prefix + ' ' or ''
+ obj_company_name += obj_company.name
+ res.append((obj_company.id,obj_company_name))
+ return res
+
+
+
+res_company()
=== added file 'base_company_prefix/base_company_prefix.xml'
--- base_company_prefix/base_company_prefix.xml 1970-01-01 00:00:00 +0000
+++ base_company_prefix/base_company_prefix.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,42 @@
+<openerp>
+ <data>
+
+ <record id="base_company_prefix.view_company_form" model="ir.ui.view">
+ <field name="name">res.company.form</field>
+ <field name="model">res.company</field>
+ <field name="inherit_id" ref="base.view_company_form"/>
+ <field name="type">form</field>
+ <field name="arch" type="xml">
+
+ <data>
+ <field name="name" position="after" >
+ <field name="prefix"/>
+ </field>
+ </data>
+
+ </field>
+ </record>
+
+
+
+ <record id="base_company_prefix.view_company_tree" model="ir.ui.view">
+ <field name="name">res.company.tree</field>
+ <field name="model">res.company</field>
+ <field name="inherit_id" ref="base.view_company_tree"/>
+ <field name="type">tree</field>
+ <field name="arch" type="xml">
+
+ <data>
+ <field name="name" position="after" >
+ <field name="prefix"/>
+ </field>
+ </data>
+
+ </field>
+ </record>
+
+
+
+ </data>
+</openerp>
+
=== added directory 'base_currency_symbol'
=== added file 'base_currency_symbol/__init__.py'
--- base_currency_symbol/__init__.py 1970-01-01 00:00:00 +0000
+++ base_currency_symbol/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,35 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# __init__.py
+# base_currency_symbol
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2010-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+import base_currency_symbol
=== added file 'base_currency_symbol/__terp__.py'
--- base_currency_symbol/__terp__.py 1970-01-01 00:00:00 +0000
+++ base_currency_symbol/__terp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,55 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# __terp__.py
+# base_currency_symbol
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2010-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+{
+ 'name': 'Base currency symbol',
+ 'version': '0.1',
+ 'url': 'http://launchpad.net/openerp-ccorp-addons',
+ 'author': 'ClearCorp S.A.',
+ 'website': 'http://clearcorp.co.cr',
+ 'category': 'General Modules/Base',
+ 'description': """Adds symbol to currency:
+Use symbol_prefix and symbol_suffix depending on the currency standard.
+ """,
+ 'depends': ['base'],
+ 'init_xml': [],
+ 'demo_xml': [],
+ 'update_xml': [
+ 'base_currency_symbol_data.xml',
+ 'base_currency_symbol_view.xml',
+ ],
+ 'license': 'Other OSI approved licence',
+ 'installable': True,
+ 'active': True,
+}
=== added file 'base_currency_symbol/base_currency_symbol.py'
--- base_currency_symbol/base_currency_symbol.py 1970-01-01 00:00:00 +0000
+++ base_currency_symbol/base_currency_symbol.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,48 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# base_currency_symbol.py
+# base_currency_symbol
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2010-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+from osv import osv,fields
+
+class res_currency(osv.osv):
+ '''
+ Adds symbol fields to currency to provide better reporting.
+ '''
+ _inherit = 'res.currency'
+
+ _columns = {
+ 'symbol_prefix':fields.char('Symbol prefix', size=16, required=False, readonly=False, translate=False, select=2, help="Currency symbol printed BEFORE amount. Include the trailing space if needed."),
+ 'symbol_suffix':fields.char('Symbol suffix', size=16, required=False, readonly=False, translate=False, select=2, help="Currency symbol printed AFTER amount. Include the leading space if needed."),
+ 'currency_name':fields.char('Currency name', size=16, required=False, readonly=False, translate=False, select=2, help="Name of the currency printed AFTER amount. Allowing to use it at amount to text convertions"),
+ }
+res_currency()
=== added file 'base_currency_symbol/base_currency_symbol_data.xml'
--- base_currency_symbol/base_currency_symbol_data.xml 1970-01-01 00:00:00 +0000
+++ base_currency_symbol/base_currency_symbol_data.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+ <data noupdate="1">
+ <!--
+ Resource: res.currency
+ -->
+ <record id="base.USD" model="res.currency">
+ <field name="symbol_prefix">$ </field>
+ </record>
+ <record id="base.EUR" model="res.currency">
+ <field name="symbol_suffix"> €</field>
+ </record>
+ </data>
+</openerp>
=== added file 'base_currency_symbol/base_currency_symbol_view.xml'
--- base_currency_symbol/base_currency_symbol_view.xml 1970-01-01 00:00:00 +0000
+++ base_currency_symbol/base_currency_symbol_view.xml 2013-01-15 16:49:27 +0000
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+ <data>
+ <!--
+ Resource: res.currency
+ -->
+ <record id="view_currency_form_symbol" model="ir.ui.view">
+ <field name="name">res.currency.form_symbol</field>
+ <field name="model">res.currency</field>
+ <field name="type">form</field>
+ <field name="inherit_id" ref="base.view_currency_form"/>
+ <field name="arch" type="xml">
+ <field name="accuracy" position="after">
+ <field name="symbol_prefix"/>
+ <field name="symbol_suffix"/>
+ <field name="currency_name"/>
+ </field>
+ </field>
+ </record>
+ </data>
+</openerp>
=== added directory 'base_import_exchange_rates'
=== added file 'base_import_exchange_rates/__init__.py'
--- base_import_exchange_rates/__init__.py 1970-01-01 00:00:00 +0000
+++ base_import_exchange_rates/__init__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,33 @@
+##############################################################################
+#
+# Copyright (c) 2008 Camtocamp SA
+# @author JB Aubort
+# European Central Bank and Polish National Bank invented by Grzegorz Grzelak
+# $Id: $
+#
+# WARNING: This program as such is intended to be used by professional
+# programmers who take the whole responsability of assessing all potential
+# consequences resulting from its eventual inadequacies and bugs
+# End users who are looking for a ready-to-use solution with commercial
+# garantees and support are strongly adviced to contract a Free Software
+# Service Company
+#
+# This program is Free Software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+##############################################################################
+
+import currency_rate_update
+import company
+import wizard
=== added file 'base_import_exchange_rates/__terp__.py'
--- base_import_exchange_rates/__terp__.py 1970-01-01 00:00:00 +0000
+++ base_import_exchange_rates/__terp__.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,67 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# __terp__.py
+# base_import_exchange_rates
+# First author: Carlos Vásquez <carlos.vasquez@xxxxxxxxxxxxxxx> (ClearCorp S.A.)
+# Copyright (c) 2010-TODAY ClearCorp S.A. (http://clearcorp.co.cr). All rights reserved.
+# Inspired directly from Camp2Camp module c2c_currency_rate_update
+# The module was copied and modified in order to provide enough flexibility to extend it
+# to use as a generic WebService XML data importer into OpenERP.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of ClearCorp S.A..
+#
+##############################################################################
+
+{
+ 'name': 'Import Exchange Rates from XML',
+ 'version': '0.1',
+ 'url': 'http://launchpad.net/openerp-ccorp-addons',
+ 'author': 'ClearCorp S.A.\nOriginally: Camptocamp S.A.\nContributor: Grzegorz Grzelak',
+ 'website': 'http://clearcorp.co.cr',
+ 'category': 'Generic Modules/Base',
+ 'description': """Import exchange rates from XML web service.
+ Configuration:
+ 1) Install the module.
+ 2) Go to Administration > Company, open the company you want to syncronize.
+ 3) in the page ´Currency auto update configuration´ you can configure wich webservice you wan to use
+ the company the currency is related to, and the currecy.
+ 4) You have to go to Administration>Configuration>Planification , and configure the interval you want for the method to syncronize.
+
+
+
+
+ """,
+ 'depends': ['account'],
+ 'init_xml': ['security/security.xml'],
+ 'demo_xml': [],
+ 'update_xml': [
+ 'currency_rate_update.xml',
+ 'company_view.xml',
+ ],
+ 'license': 'Other OSI approved licence',
+ 'installable': True,
+ 'active': False,
+}
=== added file 'base_import_exchange_rates/company.py'
--- base_import_exchange_rates/company.py 1970-01-01 00:00:00 +0000
+++ base_import_exchange_rates/company.py 2013-01-15 16:49:27 +0000
@@ -0,0 +1,174 @@
+# -*- encoding: utf-8 -*-
+# company.py
+# c2c_currency_update
+# @author Nicolas Bessi
+# Copyright (c) 2009 CamptoCamp. All rights reserved.
+##############################################################################
+#
+# WARNING: This program as such is intended to be used by professional
+# programmers who take the whole responsability of assessing all potential
+# consequences resulting from its eventual inadequacies and bugs
+# End users who are looking for a ready-to-use solution with commercial
+# garant
Follow ups