Merge lp:~gs.clearcorp/openerp-ccorp-addons/7.0_hr_payroll_pay_genarator into lp:openerp-ccorp-addons

Proposed by Glen Sojo
Status: Superseded
Proposed branch: lp:~gs.clearcorp/openerp-ccorp-addons/7.0_hr_payroll_pay_genarator
Merge into: lp:openerp-ccorp-addons
Diff against target: 5970 lines (+5011/-283)
74 files modified
account_invoice_journal_defaults/account_invoice_journal_defaults_view.xml (+2/-2)
account_invoice_limit_discount/__init__.py (+25/-0)
account_invoice_limit_discount/__openerp__.py (+50/-0)
account_invoice_limit_discount/account_config_settings_inherit.py (+53/-0)
account_invoice_limit_discount/account_config_settings_inherit.xml (+22/-0)
account_invoice_limit_discount/account_invoice_inherit.py (+44/-0)
account_invoice_limit_discount/i18n/account_invoice_limit_discount.pot (+56/-0)
account_invoice_limit_discount/i18n/es.po (+56/-0)
account_invoice_limit_discount/res_company_inherit.py (+34/-0)
account_invoice_limit_discount/security/account_invoice_limit_discount.xml (+10/-0)
account_invoice_payment_term_date_due_security/__init__.py (+25/-0)
account_invoice_payment_term_date_due_security/__openerp__.py (+45/-0)
account_invoice_payment_term_date_due_security/account_invoice_inherit.py (+75/-0)
account_invoice_payment_term_date_due_security/account_invoice_inherit.xml (+118/-0)
account_invoice_payment_term_date_due_security/i18n/account_invoice_payment_term_date_due_security.pot (+62/-0)
account_invoice_payment_term_date_due_security/i18n/es.po (+63/-0)
account_invoice_payment_term_date_due_security/purchase_order_inherit.py (+58/-0)
account_invoice_payment_term_date_due_security/purchase_order_inherit.xml (+51/-0)
account_invoice_payment_term_date_due_security/sale_order_inherit.py (+58/-0)
account_invoice_payment_term_date_due_security/sale_order_inherit.xml (+51/-0)
account_invoice_payment_term_date_due_security/security/account_invoice_payment_term_date_due_security.xml (+24/-0)
account_invoice_pricelist/__init__.py (+23/-0)
account_invoice_pricelist/__openerp__.py (+47/-0)
account_invoice_pricelist/account_invoice_pricelist.py (+66/-0)
account_invoice_pricelist/i18n/account_invoice_pricelist.pot (+61/-0)
account_invoice_pricelist/i18n/es.po (+61/-0)
account_invoice_pricelist/view/account_invoice_pricelist_view.xml (+29/-0)
account_invoice_pricelist/wizard/__init__.py (+23/-0)
account_invoice_pricelist/wizard/sale_advance_payment_inv.py (+35/-0)
account_invoice_pricelist/wizard/sale_order_line_make_invoice.py (+43/-0)
account_invoicing_report/__init__.py (+24/-0)
account_invoicing_report/__openerp__.py (+47/-0)
account_invoicing_report/i18n/account_invoicing_report.pot (+231/-0)
account_invoicing_report/i18n/es.po (+231/-0)
account_invoicing_report/report/__init__.py (+23/-0)
account_invoicing_report/report/account_invoicing_report.py (+266/-0)
account_invoicing_report/report/report.xml (+1193/-0)
account_invoicing_report/report_menus.xml (+14/-0)
account_invoicing_report/security/ir.model.access.csv (+3/-0)
account_invoicing_report/wizard/__init__.py (+23/-0)
account_invoicing_report/wizard/account_invoicing_report_wizard.py (+123/-0)
account_invoicing_report/wizard/account_invoicing_report_wizard.xml (+37/-0)
account_withholding_tax_comissions/account_voucher_withholding_tax.py (+10/-4)
budget/account_invoice.py (+7/-1)
budget/security/ir.model.access.csv (+5/-0)
ccorp_project_scrum/ccorp_project_scrum.py (+1/-1)
hr_contract_extended/security/ir.model.access.csv (+5/-5)
hr_payroll_pay_generator/__init__.py (+24/-0)
hr_payroll_pay_generator/__openerp__.py (+50/-0)
hr_payroll_pay_generator/hr_payroll_pay_generator.py (+36/-0)
hr_payroll_pay_generator/i18n/es.po (+90/-0)
hr_payroll_pay_generator/i18n/hr_payroll_pay_generator.pot (+90/-0)
hr_payroll_pay_generator/security/ir.model.access.csv (+3/-0)
hr_payroll_pay_generator/view/hr_payroll_pay_generator_view.xml (+44/-0)
hr_payroll_pay_generator/wizard/__init__.py (+23/-0)
hr_payroll_pay_generator/wizard/generator_wizard.py (+37/-0)
hr_payroll_pay_generator/wizard/wizard.xml (+28/-0)
hr_personnel_actions/hr_personnel_actions.py (+2/-0)
hr_personnel_actions/i18n/es.po (+237/-0)
hr_personnel_actions/i18n/es_CR.po (+0/-228)
hr_personnel_actions/i18n/hr_personnel_actions.pot (+234/-0)
hr_wage_increase/__init__.py (+23/-0)
hr_wage_increase/__openerp__.py (+58/-0)
hr_wage_increase/i18n/es.po (+105/-0)
hr_wage_increase/i18n/hr_wage_increase.pot (+105/-0)
hr_wage_increase/view/hr_wage_increase_menu.xml (+11/-0)
hr_wage_increase/view/hr_wage_increase_view.xml (+13/-0)
hr_wage_increase/wizard/__init__.py (+23/-0)
hr_wage_increase/wizard/increase_wizard.py (+89/-0)
hr_wage_increase/wizard/increase_wizard_view.xml (+40/-0)
payment_receipt_report/data/payment_receipt_report_webkit.xml (+13/-16)
purchase_order_report/data/purchase_order_report_webkit.xml (+7/-11)
report_webkit_lib/data/webkit_headers.xml (+4/-4)
sale_order_report/data/sale_order_report_webkit.xml (+9/-11)
To merge this branch: bzr merge lp:~gs.clearcorp/openerp-ccorp-addons/7.0_hr_payroll_pay_genarator
Reviewer Review Type Date Requested Status
ClearCorp drivers Pending
Review via email: mp+224479@code.launchpad.net

This proposal has been superseded by a proposal from 2014-06-26.

Description of the change

[ADD] - hr_payroll_pay_generator: New base module for bank payment generators.

To post a comment you must log in.
887. By Glen Sojo

[ADD] - hr_payroll_pay_generator: Added es translations and template, module security and a view for pay types.

Unmerged revisions

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'account_invoice_journal_defaults/account_invoice_journal_defaults_view.xml'
2--- account_invoice_journal_defaults/account_invoice_journal_defaults_view.xml 2013-12-17 21:42:20 +0000
3+++ account_invoice_journal_defaults/account_invoice_journal_defaults_view.xml 2014-06-25 22:24:49 +0000
4@@ -2,7 +2,7 @@
5 <openerp>
6 <data>
7
8- <!-- Supplier Invoice -->
9+ <!-- Supplier Invoice -->
10 <record id="account_invoice_journal_defalut_supplier_form" model="ir.ui.view">
11 <field name="name">account.invoice.journal.defalut.supplier.form</field>
12 <field name="model">account.invoice</field>
13@@ -30,7 +30,7 @@
14 </record>
15 <!-- End Supplier Invoice -->
16
17- <!-- Customer Invoice -->
18+ <!-- Customer Invoice -->
19 <record id="account_invoice_journal_defalut_customer_form" model="ir.ui.view">
20 <field name="name">account.invoice.journal.defalut.customer.form</field>
21 <field name="model">account.invoice</field>
22
23=== added directory 'account_invoice_limit_discount'
24=== added file 'account_invoice_limit_discount/__init__.py'
25--- account_invoice_limit_discount/__init__.py 1970-01-01 00:00:00 +0000
26+++ account_invoice_limit_discount/__init__.py 2014-06-25 22:24:49 +0000
27@@ -0,0 +1,25 @@
28+# -*- coding: utf-8 -*-
29+##############################################################################
30+#
31+# OpenERP, Open Source Management Solution
32+# Addons modules by CLEARCORP S.A.
33+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
34+#
35+# This program is free software: you can redistribute it and/or modify
36+# it under the terms of the GNU Affero General Public License as
37+# published by the Free Software Foundation, either version 3 of the
38+# License, or (at your option) any later version.
39+#
40+# This program is distributed in the hope that it will be useful,
41+# but WITHOUT ANY WARRANTY; without even the implied warranty of
42+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
43+# GNU Affero General Public License for more details.
44+#
45+# You should have received a copy of the GNU Affero General Public License
46+# along with this program. If not, see <http://www.gnu.org/licenses/>.
47+#
48+##############################################################################
49+
50+import res_company_inherit
51+import account_config_settings_inherit
52+import account_invoice_inherit
53\ No newline at end of file
54
55=== added file 'account_invoice_limit_discount/__openerp__.py'
56--- account_invoice_limit_discount/__openerp__.py 1970-01-01 00:00:00 +0000
57+++ account_invoice_limit_discount/__openerp__.py 2014-06-25 22:24:49 +0000
58@@ -0,0 +1,50 @@
59+# -*- coding: utf-8 -*-
60+##############################################################################
61+#
62+# OpenERP, Open Source Management Solution
63+# Addons modules by CLEARCORP S.A.
64+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
65+#
66+# This program is free software: you can redistribute it and/or modify
67+# it under the terms of the GNU Affero General Public License as
68+# published by the Free Software Foundation, either version 3 of the
69+# License, or (at your option) any later version.
70+#
71+# This program is distributed in the hope that it will be useful,
72+# but WITHOUT ANY WARRANTY; without even the implied warranty of
73+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
74+# GNU Affero General Public License for more details.
75+#
76+# You should have received a copy of the GNU Affero General Public License
77+# along with this program. If not, see <http://www.gnu.org/licenses/>.
78+#
79+##############################################################################
80+
81+{
82+ 'name' : 'Account Invoice Limit Discount',
83+ 'author' : 'CLEARCORP S.A.',
84+ 'description': """
85+Account Invoice Limit Discount.
86+================================
87+Configuration:
88+---------------
89+For set the maximum discount for each company:
90+Settings -> Accounting -> Accounting -> Maximum Discount
91+
92+This module adds a security group. The users that are not in this group
93+can not add, in each invoice line, a discount greater that the allowed in
94+the company.
95+""",
96+ 'version' : '1.0',
97+ 'category': 'Accounting & Finance',
98+ 'website' : 'http://clearcorp.co.cr',
99+ 'depends' : ['base','account',],
100+ 'data' : [
101+ 'security/account_invoice_limit_discount.xml',
102+ 'account_config_settings_inherit.xml'
103+ ],
104+ 'test': [],
105+ 'active': False,
106+ 'installable': True,
107+ 'license': 'AGPL-3',
108+}
109\ No newline at end of file
110
111=== added file 'account_invoice_limit_discount/account_config_settings_inherit.py'
112--- account_invoice_limit_discount/account_config_settings_inherit.py 1970-01-01 00:00:00 +0000
113+++ account_invoice_limit_discount/account_config_settings_inherit.py 2014-06-25 22:24:49 +0000
114@@ -0,0 +1,53 @@
115+# -*- coding: utf-8 -*-
116+##############################################################################
117+#
118+# OpenERP, Open Source Management Solution
119+# Addons modules by CLEARCORP S.A.
120+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
121+#
122+# This program is free software: you can redistribute it and/or modify
123+# it under the terms of the GNU Affero General Public License as
124+# published by the Free Software Foundation, either version 3 of the
125+# License, or (at your option) any later version.
126+#
127+# This program is distributed in the hope that it will be useful,
128+# but WITHOUT ANY WARRANTY; without even the implied warranty of
129+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
130+# GNU Affero General Public License for more details.
131+#
132+# You should have received a copy of the GNU Affero General Public License
133+# along with this program. If not, see <http://www.gnu.org/licenses/>.
134+#
135+##############################################################################
136+
137+from osv import fields, orm
138+from tools.translate import _
139+
140+class accountConfigsettingsInherit(orm.Model):
141+
142+ _inherit = 'account.config.settings'
143+
144+ _columns = {
145+ 'max_discount': fields.related('company_id', 'max_discount',type='float', string="Max Discount",),
146+ }
147+
148+ """Override onchange_company_id to update max_discount """
149+ def onchange_company_id(self, cr, uid, ids, company_id, context=None):
150+ res = super(accountConfigsettingsInherit, self).onchange_company_id(cr, uid, ids, company_id, context=context)
151+ if company_id:
152+ company = self.pool.get('res.company').browse(cr, uid, company_id, context=context)
153+ res['value'].update({'max_discount':company.max_discount})
154+ return res
155+
156+ """Get the default max_discount"""
157+ def get_default_max_discount(self, cr, uid, fields, context=None):
158+ company_obj = self.pool.get('res.company')
159+ company_id = company_obj._company_default_get(cr, uid, 'account.invoice.limit.discount', context=context) #module name
160+ company = company_obj.browse(cr, uid, company_id, context=context)
161+ return {'max_discount': company.max_discount}
162+
163+ """Set the default max_discount in the selected company"""
164+ def set_attendance_date_format(self, cr, uid, ids, context=None):
165+ config = self.browse(cr, uid, ids[0], context)
166+ config.company_id.write({'max_discount': config.max_discount})
167+
168\ No newline at end of file
169
170=== added file 'account_invoice_limit_discount/account_config_settings_inherit.xml'
171--- account_invoice_limit_discount/account_config_settings_inherit.xml 1970-01-01 00:00:00 +0000
172+++ account_invoice_limit_discount/account_config_settings_inherit.xml 2014-06-25 22:24:49 +0000
173@@ -0,0 +1,22 @@
174+<?xml version="1.0" encoding="utf-8"?>
175+<openerp>
176+ <data>
177+ <record id="view_account_config_settings_inherit" model="ir.ui.view">
178+ <field name="name">view.account.config.settings.inherit</field>
179+ <field name="model">account.config.settings</field>
180+ <field name="type">form</field>
181+ <field name="inherit_id" ref="account.view_account_config_settings"/>
182+ <field name="arch" type="xml">
183+ <data>
184+ <field name="tax_calculation_rounding_method" position="after">
185+ <div>
186+ <label for="max_discount" string="Max Discount"/>
187+ <field name="max_discount" class="oe_inline"/>
188+ <label string="%%" for="max_discount"/>
189+ </div>
190+ </field>
191+ </data>
192+ </field>
193+ </record>
194+ </data>
195+</openerp>
196
197=== added file 'account_invoice_limit_discount/account_invoice_inherit.py'
198--- account_invoice_limit_discount/account_invoice_inherit.py 1970-01-01 00:00:00 +0000
199+++ account_invoice_limit_discount/account_invoice_inherit.py 2014-06-25 22:24:49 +0000
200@@ -0,0 +1,44 @@
201+# -*- coding: utf-8 -*-
202+##############################################################################
203+#
204+# OpenERP, Open Source Management Solution
205+# Addons modules by CLEARCORP S.A.
206+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
207+#
208+# This program is free software: you can redistribute it and/or modify
209+# it under the terms of the GNU Affero General Public License as
210+# published by the Free Software Foundation, either version 3 of the
211+# License, or (at your option) any later version.
212+#
213+# This program is distributed in the hope that it will be useful,
214+# but WITHOUT ANY WARRANTY; without even the implied warranty of
215+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
216+# GNU Affero General Public License for more details.
217+#
218+# You should have received a copy of the GNU Affero General Public License
219+# along with this program. If not, see <http://www.gnu.org/licenses/>.
220+#
221+##############################################################################
222+
223+from openerp.osv import fields, osv, orm
224+from tools.translate import _
225+
226+class accountInvoiceinherit(orm.Model):
227+
228+ _inherit = 'account.invoice'
229+
230+ def invoice_validate(self, cr, uid, ids, context=None):
231+ #Check if user is in group 'group_account_invoice_limit_discount'
232+ is_in_group = self.pool.get('res.users').has_group(cr, uid, 'account_invoice_limit_discount.group_account_invoice_limit_discount')
233+
234+ if not is_in_group:
235+ #Get company for user currently logged
236+ company_user = self.pool.get('res.users').browse(cr, uid, uid).company_id
237+ max_company_discount = company_user.max_discount
238+
239+ for invoice in self.browse(cr, uid, ids, context=context):
240+ for line in invoice.invoice_line:
241+ if line.discount > max_company_discount:
242+ raise osv.except_osv(_("Discount Exceeded!"), _("The discount of invoice exceeds the limit of maximum discount %s of the company") % (str(max_company_discount)))
243+
244+ return super(accountInvoiceinherit, self).invoice_validate(cr, uid, ids, context=context)
245\ No newline at end of file
246
247=== added directory 'account_invoice_limit_discount/i18n'
248=== added file 'account_invoice_limit_discount/i18n/account_invoice_limit_discount.pot'
249--- account_invoice_limit_discount/i18n/account_invoice_limit_discount.pot 1970-01-01 00:00:00 +0000
250+++ account_invoice_limit_discount/i18n/account_invoice_limit_discount.pot 2014-06-25 22:24:49 +0000
251@@ -0,0 +1,56 @@
252+# Translation of OpenERP Server.
253+# This file contains the translation of the following modules:
254+# * account_invoice_limit_discount
255+#
256+msgid ""
257+msgstr ""
258+"Project-Id-Version: OpenERP Server 7.0\n"
259+"Report-Msgid-Bugs-To: \n"
260+"POT-Creation-Date: 2014-06-11 20:22+0000\n"
261+"PO-Revision-Date: 2014-06-11 20:22+0000\n"
262+"Last-Translator: <>\n"
263+"Language-Team: \n"
264+"MIME-Version: 1.0\n"
265+"Content-Type: text/plain; charset=UTF-8\n"
266+"Content-Transfer-Encoding: \n"
267+"Plural-Forms: \n"
268+
269+#. module: account_invoice_limit_discount
270+#: model:ir.model,name:account_invoice_limit_discount.model_account_config_settings
271+msgid "account.config.settings"
272+msgstr ""
273+
274+#. module: account_invoice_limit_discount
275+#: model:res.groups,name:account_invoice_limit_discount.group_account_invoice_limit_discount
276+msgid "Account Invoice Limit Discount"
277+msgstr ""
278+
279+#. module: account_invoice_limit_discount
280+#: model:ir.model,name:account_invoice_limit_discount.model_res_company
281+msgid "Companies"
282+msgstr ""
283+
284+#. module: account_invoice_limit_discount
285+#: code:addons/account_invoice_limit_discount/account_invoice_inherit.py:42
286+#, python-format
287+msgid "The discount of invoice exceeds the limit of maximum discount %s of the company"
288+msgstr ""
289+
290+#. module: account_invoice_limit_discount
291+#: code:addons/account_invoice_limit_discount/account_invoice_inherit.py:42
292+#, python-format
293+msgid "Discount Exceeded!"
294+msgstr ""
295+
296+#. module: account_invoice_limit_discount
297+#: model:ir.model,name:account_invoice_limit_discount.model_account_invoice
298+msgid "Invoice"
299+msgstr ""
300+
301+#. module: account_invoice_limit_discount
302+#: view:account.config.settings:0
303+#: field:account.config.settings,max_discount:0
304+#: field:res.company,max_discount:0
305+msgid "Max Discount"
306+msgstr ""
307+
308
309=== added file 'account_invoice_limit_discount/i18n/es.po'
310--- account_invoice_limit_discount/i18n/es.po 1970-01-01 00:00:00 +0000
311+++ account_invoice_limit_discount/i18n/es.po 2014-06-25 22:24:49 +0000
312@@ -0,0 +1,56 @@
313+# Translation of OpenERP Server.
314+# This file contains the translation of the following modules:
315+# * account_invoice_limit_discount
316+#
317+msgid ""
318+msgstr ""
319+"Project-Id-Version: OpenERP Server 7.0\n"
320+"Report-Msgid-Bugs-To: \n"
321+"POT-Creation-Date: 2014-06-11 20:22+0000\n"
322+"PO-Revision-Date: 2014-06-11 20:22+0000\n"
323+"Last-Translator: <>\n"
324+"Language-Team: \n"
325+"MIME-Version: 1.0\n"
326+"Content-Type: text/plain; charset=UTF-8\n"
327+"Content-Transfer-Encoding: \n"
328+"Plural-Forms: \n"
329+
330+#. module: account_invoice_limit_discount
331+#: model:ir.model,name:account_invoice_limit_discount.model_account_config_settings
332+msgid "account.config.settings"
333+msgstr "Parámetros de configuración contable"
334+
335+#. module: account_invoice_limit_discount
336+#: model:res.groups,name:account_invoice_limit_discount.group_account_invoice_limit_discount
337+msgid "Account Invoice Limit Discount"
338+msgstr "Limite de descuento en la Factura"
339+
340+#. module: account_invoice_limit_discount
341+#: model:ir.model,name:account_invoice_limit_discount.model_res_company
342+msgid "Companies"
343+msgstr "Compañías"
344+
345+#. module: account_invoice_limit_discount
346+#: code:addons/account_invoice_limit_discount/account_invoice_inherit.py:42
347+#, python-format
348+msgid "The discount of invoice exceeds the limit of maximum discount %s of the company"
349+msgstr "El descuento de la factura excede el límite del máximo descuento %s de la compañía"
350+
351+#. module: account_invoice_limit_discount
352+#: code:addons/account_invoice_limit_discount/account_invoice_inherit.py:42
353+#, python-format
354+msgid "Discount Exceeded!"
355+msgstr "Limite de descuento sobrepasado!"
356+
357+#. module: account_invoice_limit_discount
358+#: model:ir.model,name:account_invoice_limit_discount.model_account_invoice
359+msgid "Invoice"
360+msgstr "Factura"
361+
362+#. module: account_invoice_limit_discount
363+#: view:account.config.settings:0
364+#: field:account.config.settings,max_discount:0
365+#: field:res.company,max_discount:0
366+msgid "Max Discount"
367+msgstr "Descuento máximo"
368+
369
370=== added file 'account_invoice_limit_discount/res_company_inherit.py'
371--- account_invoice_limit_discount/res_company_inherit.py 1970-01-01 00:00:00 +0000
372+++ account_invoice_limit_discount/res_company_inherit.py 2014-06-25 22:24:49 +0000
373@@ -0,0 +1,34 @@
374+# -*- coding: utf-8 -*-
375+##############################################################################
376+#
377+# OpenERP, Open Source Management Solution
378+# Addons modules by CLEARCORP S.A.
379+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
380+#
381+# This program is free software: you can redistribute it and/or modify
382+# it under the terms of the GNU Affero General Public License as
383+# published by the Free Software Foundation, either version 3 of the
384+# License, or (at your option) any later version.
385+#
386+# This program is distributed in the hope that it will be useful,
387+# but WITHOUT ANY WARRANTY; without even the implied warranty of
388+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
389+# GNU Affero General Public License for more details.
390+#
391+# You should have received a copy of the GNU Affero General Public License
392+# along with this program. If not, see <http://www.gnu.org/licenses/>.
393+#
394+##############################################################################
395+
396+from osv import fields, orm
397+from tools.translate import _
398+
399+class resCompanyInherit(orm.Model):
400+
401+ _inherit = 'res.company'
402+
403+ _columns = {
404+ 'max_discount': fields.float('Max Discount', digits=(16, 2)),
405+ }
406+
407+
408\ No newline at end of file
409
410=== added directory 'account_invoice_limit_discount/security'
411=== added file 'account_invoice_limit_discount/security/account_invoice_limit_discount.xml'
412--- account_invoice_limit_discount/security/account_invoice_limit_discount.xml 1970-01-01 00:00:00 +0000
413+++ account_invoice_limit_discount/security/account_invoice_limit_discount.xml 2014-06-25 22:24:49 +0000
414@@ -0,0 +1,10 @@
415+<?xml version="1.0" encoding="utf-8"?>
416+<openerp>
417+ <data>
418+ <record id="group_account_invoice_limit_discount" model="res.groups">
419+ <field name="name">Account Invoice Limit Discount</field>
420+ <field name="category_id" ref="base.module_category_accounting_and_finance"/>
421+ <field name="users" eval="[(4, ref('base.user_root'))]"/>
422+ </record>
423+ </data>
424+</openerp>
425\ No newline at end of file
426
427=== added directory 'account_invoice_payment_term_date_due_security'
428=== added file 'account_invoice_payment_term_date_due_security/__init__.py'
429--- account_invoice_payment_term_date_due_security/__init__.py 1970-01-01 00:00:00 +0000
430+++ account_invoice_payment_term_date_due_security/__init__.py 2014-06-25 22:24:49 +0000
431@@ -0,0 +1,25 @@
432+# -*- coding: utf-8 -*-
433+##############################################################################
434+#
435+# OpenERP, Open Source Management Solution
436+# Addons modules by CLEARCORP S.A.
437+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
438+#
439+# This program is free software: you can redistribute it and/or modify
440+# it under the terms of the GNU Affero General Public License as
441+# published by the Free Software Foundation, either version 3 of the
442+# License, or (at your option) any later version.
443+#
444+# This program is distributed in the hope that it will be useful,
445+# but WITHOUT ANY WARRANTY; without even the implied warranty of
446+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
447+# GNU Affero General Public License for more details.
448+#
449+# You should have received a copy of the GNU Affero General Public License
450+# along with this program. If not, see <http://www.gnu.org/licenses/>.
451+#
452+##############################################################################
453+
454+import account_invoice_inherit
455+import sale_order_inherit
456+import purchase_order_inherit
457\ No newline at end of file
458
459=== added file 'account_invoice_payment_term_date_due_security/__openerp__.py'
460--- account_invoice_payment_term_date_due_security/__openerp__.py 1970-01-01 00:00:00 +0000
461+++ account_invoice_payment_term_date_due_security/__openerp__.py 2014-06-25 22:24:49 +0000
462@@ -0,0 +1,45 @@
463+#-*- coding:utf-8 -*-
464+##############################################################################
465+#
466+# OpenERP, Open Source Management Solution
467+# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
468+# d$
469+#
470+# This program is free software: you can redistribute it and/or modify
471+# it under the terms of the GNU Affero General Public License as published by
472+# the Free Software Foundation, either version 3 of the License, or
473+# (at your option) any later version.
474+#
475+# This program is distributed in the hope that it will be useful,
476+# but WITHOUT ANY WARRANTY; without even the implied warranty of
477+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
478+# GNU Affero General Public License for more details.
479+#
480+# You should have received a copy of the GNU Affero General Public License
481+# along with this program. If not, see <http://www.gnu.org/licenses/>.
482+#
483+##############################################################################
484+
485+{
486+ 'name' : 'Account Invoice Payment Term Date Due Security',
487+ 'version' : '1.0',
488+ 'author' : 'CLEARCORP S.A.',
489+ 'category': 'Accounting & Finance',
490+ 'description': """
491+Account Invoice Payment Term Date Due Security
492+=================================================
493+This module adds security to payment term and date due in invoice. Also,
494+it adds security on payment term in sale order
495+""",
496+ 'website' : 'http://clearcorp.co.cr',
497+ 'depends' : ['base','account','sale','purchase'],
498+ 'data' : [
499+ 'security/account_invoice_payment_term_date_due_security.xml',
500+ 'account_invoice_inherit.xml',
501+ 'sale_order_inherit.xml',
502+ 'purchase_order_inherit.xml',
503+ ],
504+ 'installable': True,
505+ 'auto_install': False,
506+ 'license': 'AGPL-3',
507+}
508\ No newline at end of file
509
510=== added file 'account_invoice_payment_term_date_due_security/account_invoice_inherit.py'
511--- account_invoice_payment_term_date_due_security/account_invoice_inherit.py 1970-01-01 00:00:00 +0000
512+++ account_invoice_payment_term_date_due_security/account_invoice_inherit.py 2014-06-25 22:24:49 +0000
513@@ -0,0 +1,75 @@
514+# -*- coding: utf-8 -*-
515+##############################################################################
516+#
517+# OpenERP, Open Source Management Solution
518+# Addons modules by CLEARCORP S.A.
519+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
520+#
521+# This program is free software: you can redistribute it and/or modify
522+# it under the terms of the GNU Affero General Public License as
523+# published by the Free Software Foundation, either version 3 of the
524+# License, or (at your option) any later version.
525+#
526+# This program is distributed in the hope that it will be useful,
527+# but WITHOUT ANY WARRANTY; without even the implied warranty of
528+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
529+# GNU Affero General Public License for more details.
530+#
531+# You should have received a copy of the GNU Affero General Public License
532+# along with this program. If not, see <http://www.gnu.org/licenses/>.
533+#
534+##############################################################################
535+
536+from osv import orm, osv, fields
537+from tools.translate import _
538+
539+class accountInvoiceinherit(orm.Model):
540+
541+ _inherit = 'account.invoice'
542+
543+ def _get_payment_term(self, cr, uid, ids, fields, arg, context=None):
544+ res = {}
545+ for invoice in self.browse(cr, uid, ids, context=context):
546+ if invoice.payment_term:
547+ res[invoice.id] = invoice.payment_term.id
548+ return res
549+
550+ def _get_date_due(self, cr, uid, ids, fields, arg, context=None):
551+ res = {}
552+ for invoice in self.browse(cr, uid, ids, context=context):
553+ if invoice.date_due:
554+ res[invoice.id] = invoice.date_due
555+ return res
556+
557+ _columns = {
558+ 'payment_term_visible': fields.function(_get_payment_term, type='many2one', relation='account.payment.term',
559+ store={'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['payment_term'], 10),}, string="Payment Term", readonly=True, states={'draft':[('readonly',False)]},),
560+
561+ 'date_due_visible': fields.function(_get_date_due, type='date', string='Due Date',
562+ store={'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['date_due'], 11),}, readonly=True, states={'draft':[('readonly',False)]},
563+ help="If you use payment terms, the due date will be computed automatically at the generation "\
564+ "of accounting entries. The payment term may compute several due dates, for example 50% now and 50% in one month, but if you want to force a due date, make sure that the payment term is not set on the invoice. If you keep the payment term and the due date empty, it means direct payment."),
565+ }
566+
567+ def onchange_partner_id(self, cr, uid, ids, type, partner_id, date_invoice=False, payment_term=False, partner_bank_id=False, company_id=False):
568+ res = super(accountInvoiceinherit, self).onchange_partner_id(cr, uid, ids, type, partner_id, date_invoice=date_invoice, payment_term=payment_term, partner_bank_id=partner_bank_id, company_id=company_id)
569+
570+ if 'payment_term' in res['value'].keys():
571+ res['value'].update({'payment_term_visible': res['value']['payment_term']})
572+
573+ if 'date_due' in res['value'].keys():
574+ res['value'].update({'date_due_visible': res['value']['date_due']})
575+
576+ return res
577+
578+ def onchange_payment_term_visible(self, cr, uid, ids, payment_term_visible, date_invoice):
579+
580+ if payment_term_visible:
581+ #Call method to change date_due
582+ res = super(accountInvoiceinherit, self).onchange_payment_term_date_invoice(cr, uid, ids, payment_term_visible, date_invoice)
583+ res['value'].update({'payment_term':payment_term_visible})
584+ res['value'].update({'date_due_visible': res['value']['date_due']})
585+
586+ return res
587+
588+
589\ No newline at end of file
590
591=== added file 'account_invoice_payment_term_date_due_security/account_invoice_inherit.xml'
592--- account_invoice_payment_term_date_due_security/account_invoice_inherit.xml 1970-01-01 00:00:00 +0000
593+++ account_invoice_payment_term_date_due_security/account_invoice_inherit.xml 2014-06-25 22:24:49 +0000
594@@ -0,0 +1,118 @@
595+<?xml version="1.0" encoding="utf-8"?>
596+<openerp>
597+ <data>
598+ <record id="account_invoice_payment_term_date_due_inherit" model="ir.ui.view">
599+ <field name="name">account.invoice.payment.term.date.due.inherit</field>
600+ <field name="model">account.invoice</field>
601+ <field name="type">form</field>
602+ <field name="inherit_id" ref="account.invoice_form"/>
603+ <field name="arch" type="xml">
604+ <data>
605+ <field name = "date_due" position="attributes">
606+ <attribute name="attrs">{'invisible': True}</attribute>
607+ </field>
608+ <xpath expr="/form/sheet/notebook/page[@string='Other Info']/group/group/field[@name='date_due']" position="after" version="7.0">
609+ <field name="date_due_visible" />
610+ </xpath>
611+ <field name = "payment_term" position="attributes">
612+ <attribute name="attrs">{'invisible': True}</attribute>
613+ </field>
614+ <xpath expr="/form/sheet/notebook/page[@string='Invoice Lines']/group[2]" position="inside" version="7.0">
615+ <field name="payment_term_visible" on_change="onchange_payment_term_visible(payment_term_visible, date_invoice)" class="oe_inline"/>
616+ </xpath>
617+ </data>
618+ </field>
619+ </record>
620+
621+ <record id="account_invoice_payment_term_no_group" model="ir.ui.view">
622+ <field name="name">account.invoice.payment.no.group</field>
623+ <field name="model">account.invoice</field>
624+ <field name="type">form</field>
625+ <field name="priority" eval="10"/>
626+ <field name="inherit_id" ref="account_invoice_payment_term_date_due_inherit"/>
627+ <field name="arch" type="xml">
628+ <field name="date_due_visible" position="attributes">
629+ <attribute name="readonly">1</attribute>
630+ </field>
631+ <field name="payment_term_visible" position="attributes">
632+ <attribute name="readonly">1</attribute>
633+ </field>
634+ </field>
635+ </record>
636+
637+ <record id="account_invoice_payment_term_group" model="ir.ui.view">
638+ <field name="name">account.invoice.payment.group</field>
639+ <field name="model">account.invoice</field>
640+ <field name="type">form</field>
641+ <field name="priority" eval="20"/>
642+ <field name="groups_id" eval="[(4, ref('account_invoice_payment_term_date_due_security.group_account_payment_term_date_due_security'))]"/>
643+ <field name="inherit_id" ref="account_invoice_payment_term_date_due_inherit"/>
644+ <field name="arch" type="xml">
645+ <field name="date_due_visible" position="attributes">
646+ <attribute name="readonly">0</attribute>
647+ </field>
648+ <field name="payment_term_visible" position="attributes">
649+ <attribute name="readonly">0</attribute>
650+ </field>
651+ </field>
652+ </record>
653+
654+ <record id="account_invoice_payment_term_date_due_inherit_supplier" model="ir.ui.view">
655+ <field name="name">account.invoice.payment.term.date.due.inherit.supplier</field>
656+ <field name="model">account.invoice</field>
657+ <field name="type">form</field>
658+ <field name="inherit_id" ref="account.invoice_supplier_form"/>
659+ <field name="arch" type="xml">
660+ <data>
661+ <field name = "date_due" position="attributes">
662+ <attribute name="attrs">{'invisible': True}</attribute>
663+ </field>
664+ <field name = "date_due" position="after" version="7.0">
665+ <field name="date_due_visible" />
666+ </field>
667+ <field name = "payment_term" position="attributes">
668+ <attribute name="attrs">{'invisible': True}</attribute>
669+ </field>
670+ <field name = "payment_term" position="after" version="7.0">
671+ <field name="payment_term_visible" on_change="onchange_payment_term_visible(payment_term_visible, date_invoice)" class="oe_inline"/>
672+ </field>
673+ </data>
674+ </field>
675+ </record>
676+
677+ <record id="account_invoice_payment_term_no_group_supplier" model="ir.ui.view">
678+ <field name="name">account.invoice.payment.no.group.supplier</field>
679+ <field name="model">account.invoice</field>
680+ <field name="type">form</field>
681+ <field name="priority" eval="10"/>
682+ <field name="inherit_id" ref="account_invoice_payment_term_date_due_inherit_supplier"/>
683+ <field name="arch" type="xml">
684+ <field name="date_due_visible" position="attributes">
685+ <attribute name="readonly">1</attribute>
686+ </field>
687+ <field name="payment_term_visible" position="attributes">
688+ <attribute name="readonly">1</attribute>
689+ </field>
690+ </field>
691+ </record>
692+
693+ <record id="account_invoice_payment_term_group_supplier" model="ir.ui.view">
694+ <field name="name">account.invoice.payment.group.supplier</field>
695+ <field name="model">account.invoice</field>
696+ <field name="type">form</field>
697+ <field name="priority" eval="20"/>
698+ <field name="groups_id" eval="[(4, ref('account_invoice_payment_term_date_due_security.group_account_payment_term_date_due_security'))]"/>
699+ <field name="inherit_id" ref="account_invoice_payment_term_date_due_inherit_supplier"/>
700+ <field name="arch" type="xml">
701+ <field name="date_due_visible" position="attributes">
702+ <attribute name="readonly">0</attribute>
703+ </field>
704+ <field name="payment_term_visible" position="attributes">
705+ <attribute name="readonly">0</attribute>
706+ </field>
707+ </field>
708+ </record>
709+
710+
711+ </data>
712+</openerp>
713
714=== added directory 'account_invoice_payment_term_date_due_security/i18n'
715=== added file 'account_invoice_payment_term_date_due_security/i18n/account_invoice_payment_term_date_due_security.pot'
716--- account_invoice_payment_term_date_due_security/i18n/account_invoice_payment_term_date_due_security.pot 1970-01-01 00:00:00 +0000
717+++ account_invoice_payment_term_date_due_security/i18n/account_invoice_payment_term_date_due_security.pot 2014-06-25 22:24:49 +0000
718@@ -0,0 +1,62 @@
719+# Translation of OpenERP Server.
720+# This file contains the translation of the following modules:
721+# * account_invoice_payment_term_date_due_security
722+#
723+msgid ""
724+msgstr ""
725+"Project-Id-Version: OpenERP Server 7.0\n"
726+"Report-Msgid-Bugs-To: \n"
727+"POT-Creation-Date: 2014-06-12 17:06+0000\n"
728+"PO-Revision-Date: 2014-06-12 17:06+0000\n"
729+"Last-Translator: <>\n"
730+"Language-Team: \n"
731+"MIME-Version: 1.0\n"
732+"Content-Type: text/plain; charset=UTF-8\n"
733+"Content-Transfer-Encoding: \n"
734+"Plural-Forms: \n"
735+
736+#. module: account_invoice_payment_term_date_due_security
737+#: help:account.invoice,date_due_visible:0
738+msgid "If you use payment terms, the due date will be computed automatically at the generation of accounting entries. The payment term may compute several due dates, for example 50% now and 50% in one month, but if you want to force a due date, make sure that the payment term is not set on the invoice. If you keep the payment term and the due date empty, it means direct payment."
739+msgstr ""
740+
741+#. module: account_invoice_payment_term_date_due_security
742+#: field:account.invoice,date_due_visible:0
743+msgid "Due Date"
744+msgstr ""
745+
746+#. module: account_invoice_payment_term_date_due_security
747+#: model:res.groups,name:account_invoice_payment_term_date_due_security.group_sale_order_payment_term_security
748+msgid "Sale Order Payment Term Security"
749+msgstr ""
750+
751+#. module: account_invoice_payment_term_date_due_security
752+#: field:account.invoice,payment_term_visible:0
753+#: field:sale.order,payment_term_visible:0
754+msgid "Payment Term"
755+msgstr ""
756+
757+#. module: account_invoice_payment_term_date_due_security
758+#: model:ir.model,name:account_invoice_payment_term_date_due_security.model_account_invoice
759+msgid "Invoice"
760+msgstr ""
761+
762+#. module: account_invoice_payment_term_date_due_security
763+#: model:res.groups,name:account_invoice_payment_term_date_due_security.group_account_payment_term_date_due_security
764+msgid "Payment Term Date Due Security"
765+msgstr ""
766+
767+#. module: account_invoice_payment_term_date_due_security
768+#: model:ir.model,name:account_invoice_payment_term_date_due_security.model_sale_order
769+msgid "Sales Order"
770+msgstr ""
771+
772+#. module: account_invoice_payment_term_date_due_security
773+#: model:res.groups,name:account_invoice_payment_term_date_due_security.group_sale_order_payment_term_security
774+msgid "Sale Order Payment Term Security"
775+msgstr ""
776+
777+#. module: account_invoice_payment_term_date_due_security
778+#: model:res.groups,name:account_invoice_payment_term_date_due_security.group_purchase_order_payment_term_security
779+msgid "Purchase Order Payment Term Security"
780+msgstr ""
781
782=== added file 'account_invoice_payment_term_date_due_security/i18n/es.po'
783--- account_invoice_payment_term_date_due_security/i18n/es.po 1970-01-01 00:00:00 +0000
784+++ account_invoice_payment_term_date_due_security/i18n/es.po 2014-06-25 22:24:49 +0000
785@@ -0,0 +1,63 @@
786+# Translation of OpenERP Server.
787+# This file contains the translation of the following modules:
788+# * account_invoice_payment_term_date_due_security
789+#
790+msgid ""
791+msgstr ""
792+"Project-Id-Version: OpenERP Server 7.0\n"
793+"Report-Msgid-Bugs-To: \n"
794+"POT-Creation-Date: 2014-06-12 17:07+0000\n"
795+"PO-Revision-Date: 2014-06-12 17:07+0000\n"
796+"Last-Translator: <>\n"
797+"Language-Team: \n"
798+"MIME-Version: 1.0\n"
799+"Content-Type: text/plain; charset=UTF-8\n"
800+"Content-Transfer-Encoding: \n"
801+"Plural-Forms: \n"
802+
803+#. module: account_invoice_payment_term_date_due_security
804+#: help:account.invoice,date_due_visible:0
805+msgid "If you use payment terms, the due date will be computed automatically at the generation of accounting entries. The payment term may compute several due dates, for example 50% now and 50% in one month, but if you want to force a due date, make sure that the payment term is not set on the invoice. If you keep the payment term and the due date empty, it means direct payment."
806+msgstr "Si utiliza los plazos de pago, la fecha de vencimiento será calculada automáticamente en la generación de los asientos contables. Si se mantiene el plazo de pago y la fecha de vencimiento vacía, significa que es un pago directo. El plazo de pago podrá calcular varias fechas de vencimiento, por ejemplo, 50% ahora, 50% en un mes."
807+
808+#. module: account_invoice_payment_term_date_due_security
809+#: field:account.invoice,date_due_visible:0
810+msgid "Due Date"
811+msgstr "Fecha de vencimiento"
812+
813+#. module: account_invoice_payment_term_date_due_security
814+#: model:res.groups,name:account_invoice_payment_term_date_due_security.group_sale_order_payment_term_security
815+msgid "Sale Order Payment Term Security"
816+msgstr "Seguridad plazo de pago orden de venta"
817+
818+#. module: account_invoice_payment_term_date_due_security
819+#: field:account.invoice,payment_term_visible:0
820+#: field:sale.order,payment_term_visible:0
821+#: field:purchase.order,payment_term_visible:0
822+msgid "Payment Term"
823+msgstr "Plazo de pago"
824+
825+#. module: account_invoice_payment_term_date_due_security
826+#: model:ir.model,name:account_invoice_payment_term_date_due_security.model_account_invoice
827+msgid "Invoice"
828+msgstr "Factura"
829+
830+#. module: account_invoice_payment_term_date_due_security
831+#: model:res.groups,name:account_invoice_payment_term_date_due_security.group_account_payment_term_date_due_security
832+msgid "Payment Term Date Due Security"
833+msgstr "Seguridad Fecha de Vencimiento y Plazo de Pago"
834+
835+#. module: account_invoice_payment_term_date_due_security
836+#: model:ir.model,name:account_invoice_payment_term_date_due_security.model_sale_order
837+msgid "Sales Order"
838+msgstr "Pedido de venta"
839+
840+#. module: account_invoice_payment_term_date_due_security
841+#: model:res.groups,name:account_invoice_payment_term_date_due_security.group_sale_order_payment_term_security
842+msgid "Sale Order Payment Term Security"
843+msgstr "Orden de Venta: Seguridad Plazo de Pago"
844+
845+#. module: account_invoice_payment_term_date_due_security
846+#: model:res.groups,name:account_invoice_payment_term_date_due_security.group_purchase_order_payment_term_security
847+msgid "Purchase Order Payment Term Security"
848+msgstr "Orden de Compra: Seguridad Plazo de Pago"
849
850=== added file 'account_invoice_payment_term_date_due_security/purchase_order_inherit.py'
851--- account_invoice_payment_term_date_due_security/purchase_order_inherit.py 1970-01-01 00:00:00 +0000
852+++ account_invoice_payment_term_date_due_security/purchase_order_inherit.py 2014-06-25 22:24:49 +0000
853@@ -0,0 +1,58 @@
854+# -*- coding: utf-8 -*-
855+##############################################################################
856+#
857+# OpenERP, Open Source Management Solution
858+# Addons modules by CLEARCORP S.A.
859+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
860+#
861+# This program is free software: you can redistribute it and/or modify
862+# it under the terms of the GNU Affero General Public License as
863+# published by the Free Software Foundation, either version 3 of the
864+# License, or (at your option) any later version.
865+#
866+# This program is distributed in the hope that it will be useful,
867+# but WITHOUT ANY WARRANTY; without even the implied warranty of
868+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
869+# GNU Affero General Public License for more details.
870+#
871+# You should have received a copy of the GNU Affero General Public License
872+# along with this program. If not, see <http://www.gnu.org/licenses/>.
873+#
874+##############################################################################
875+
876+from osv import orm, osv, fields
877+from tools.translate import _
878+
879+class purchaseOrderinherit(orm.Model):
880+
881+ _inherit = 'purchase.order'
882+
883+ def _get_payment_term(self, cr, uid, ids, fields, arg, context=None):
884+ res = {}
885+ for purchase in self.browse(cr, uid, ids, context=context):
886+ if purchase.payment_term_id:
887+ res[purchase.id] = purchase.payment_term_id.id
888+ return res
889+
890+ _columns = {
891+ 'payment_term_visible': fields.function(_get_payment_term, type='many2one', relation='account.payment.term',
892+ store={'purchase.order': (lambda self, cr, uid, ids, c={}: ids, ['payment_term_id'], 10),}, string="Payment Term",),
893+ }
894+
895+ def onchange_partner_id(self, cr, uid, ids, partner_id):
896+ res = super(purchaseOrderinherit, self).onchange_partner_id(cr, uid, ids, partner_id)
897+
898+ if 'payment_term_id' in res['value'].keys():
899+ res['value'].update({'payment_term_visible': res['value']['payment_term_id']})
900+
901+ return res
902+
903+ def onchange_payment_term_visible(self, cr, uid, ids, payment_term_visible):
904+ res = {}
905+ res['value'] = {}
906+
907+ if payment_term_visible:
908+ res['value'].update({'payment_term_id':payment_term_visible})
909+
910+ return res
911+
912\ No newline at end of file
913
914=== added file 'account_invoice_payment_term_date_due_security/purchase_order_inherit.xml'
915--- account_invoice_payment_term_date_due_security/purchase_order_inherit.xml 1970-01-01 00:00:00 +0000
916+++ account_invoice_payment_term_date_due_security/purchase_order_inherit.xml 2014-06-25 22:24:49 +0000
917@@ -0,0 +1,51 @@
918+<?xml version="1.0" encoding="utf-8"?>
919+<openerp>
920+ <data>
921+
922+ <record id="view_purchase_order_form_payment_term_inherit" model="ir.ui.view">
923+ <field name="name">view.purchase.order.form.payment.term.inherit</field>
924+ <field name="model">purchase.order</field>
925+ <field name="type">form</field>
926+ <field name="inherit_id" ref="purchase.purchase_order_form"/>
927+ <field name="arch" type="xml">
928+ <data>
929+ <field name = "payment_term_id" position="attributes">
930+ <attribute name="attrs">{'invisible': True}</attribute>
931+ </field>
932+ <field name="payment_term_id" position="after">
933+ <field name="payment_term_visible" on_change="onchange_payment_term_visible(payment_term_visible)"/>
934+ </field>
935+ </data>
936+ </field>
937+ </record>
938+
939+
940+ <record id="purchase_order_payment_term_no_group" model="ir.ui.view">
941+ <field name="name">purchase.order.payment.term.no.group</field>
942+ <field name="model">purchase.order</field>
943+ <field name="type">form</field>
944+ <field name="priority" eval="10"/>
945+ <field name="inherit_id" ref="view_purchase_order_form_payment_term_inherit"/>
946+ <field name="arch" type="xml">
947+ <field name="payment_term_visible" position="attributes">
948+ <attribute name="readonly">1</attribute>
949+ </field>
950+ </field>
951+ </record>
952+
953+ <record id="purchase_order_payment_term_group" model="ir.ui.view">
954+ <field name="name">purchase.order.payment.term.group</field>
955+ <field name="model">purchase.order</field>
956+ <field name="type">form</field>
957+ <field name="priority" eval="20"/>
958+ <field name="groups_id" eval="[(4, ref('account_invoice_payment_term_date_due_security.group_purchase_order_payment_term_security'))]"/>
959+ <field name="inherit_id" ref="view_purchase_order_form_payment_term_inherit"/>
960+ <field name="arch" type="xml">
961+ <field name="payment_term_visible" position="attributes">
962+ <attribute name="readonly">0</attribute>
963+ </field>
964+ </field>
965+ </record>
966+
967+ </data>
968+</openerp>
969
970=== added file 'account_invoice_payment_term_date_due_security/sale_order_inherit.py'
971--- account_invoice_payment_term_date_due_security/sale_order_inherit.py 1970-01-01 00:00:00 +0000
972+++ account_invoice_payment_term_date_due_security/sale_order_inherit.py 2014-06-25 22:24:49 +0000
973@@ -0,0 +1,58 @@
974+# -*- coding: utf-8 -*-
975+##############################################################################
976+#
977+# OpenERP, Open Source Management Solution
978+# Addons modules by CLEARCORP S.A.
979+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
980+#
981+# This program is free software: you can redistribute it and/or modify
982+# it under the terms of the GNU Affero General Public License as
983+# published by the Free Software Foundation, either version 3 of the
984+# License, or (at your option) any later version.
985+#
986+# This program is distributed in the hope that it will be useful,
987+# but WITHOUT ANY WARRANTY; without even the implied warranty of
988+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
989+# GNU Affero General Public License for more details.
990+#
991+# You should have received a copy of the GNU Affero General Public License
992+# along with this program. If not, see <http://www.gnu.org/licenses/>.
993+#
994+##############################################################################
995+
996+from osv import orm, osv, fields
997+from tools.translate import _
998+
999+class saleOrderinherit(orm.Model):
1000+
1001+ _inherit = 'sale.order'
1002+
1003+ def _get_payment_term(self, cr, uid, ids, fields, arg, context=None):
1004+ res = {}
1005+ for sale in self.browse(cr, uid, ids, context=context):
1006+ if sale.payment_term:
1007+ res[sale.id] = sale.payment_term.id
1008+ return res
1009+
1010+ _columns = {
1011+ 'payment_term_visible': fields.function(_get_payment_term, type='many2one', relation='account.payment.term',
1012+ store={'sale.order': (lambda self, cr, uid, ids, c={}: ids, ['payment_term'], 10),}, string="Payment Term",),
1013+ }
1014+
1015+ def onchange_partner_id(self, cr, uid, ids, part, context=None):
1016+ res = super(saleOrderinherit, self).onchange_partner_id(cr, uid, ids, part, context=context)
1017+
1018+ if 'payment_term' in res['value'].keys():
1019+ res['value'].update({'payment_term_visible': res['value']['payment_term']})
1020+
1021+ return res
1022+
1023+ def onchange_payment_term_visible(self, cr, uid, ids, payment_term_visible):
1024+ res = {}
1025+ res['value'] = {}
1026+
1027+ if payment_term_visible:
1028+ res['value'].update({'payment_term':payment_term_visible})
1029+
1030+ return res
1031+
1032\ No newline at end of file
1033
1034=== added file 'account_invoice_payment_term_date_due_security/sale_order_inherit.xml'
1035--- account_invoice_payment_term_date_due_security/sale_order_inherit.xml 1970-01-01 00:00:00 +0000
1036+++ account_invoice_payment_term_date_due_security/sale_order_inherit.xml 2014-06-25 22:24:49 +0000
1037@@ -0,0 +1,51 @@
1038+<?xml version="1.0" encoding="utf-8"?>
1039+<openerp>
1040+ <data>
1041+
1042+ <record id="view_order_form_payment_term_inherit" model="ir.ui.view">
1043+ <field name="name">view.order.form.payment.term.inherit</field>
1044+ <field name="model">sale.order</field>
1045+ <field name="type">form</field>
1046+ <field name="inherit_id" ref="sale.view_order_form"/>
1047+ <field name="arch" type="xml">
1048+ <data>
1049+ <field name = "payment_term" position="attributes">
1050+ <attribute name="attrs">{'invisible': True}</attribute>
1051+ </field>
1052+ <field name="payment_term" position="after">
1053+ <field name="payment_term_visible" on_change="onchange_payment_term_visible(payment_term_visible)"/>
1054+ </field>
1055+ </data>
1056+ </field>
1057+ </record>
1058+
1059+
1060+ <record id="sale_order_payment_term_no_group" model="ir.ui.view">
1061+ <field name="name">sale.order.payment.term.no.group</field>
1062+ <field name="model">sale.order</field>
1063+ <field name="type">form</field>
1064+ <field name="priority" eval="10"/>
1065+ <field name="inherit_id" ref="view_order_form_payment_term_inherit"/>
1066+ <field name="arch" type="xml">
1067+ <field name="payment_term_visible" position="attributes">
1068+ <attribute name="readonly">1</attribute>
1069+ </field>
1070+ </field>
1071+ </record>
1072+
1073+ <record id="sale_order_payment_term_group" model="ir.ui.view">
1074+ <field name="name">sale.order.payment.term.group</field>
1075+ <field name="model">sale.order</field>
1076+ <field name="type">form</field>
1077+ <field name="priority" eval="20"/>
1078+ <field name="groups_id" eval="[(4, ref('account_invoice_payment_term_date_due_security.group_sale_order_payment_term_security'))]"/>
1079+ <field name="inherit_id" ref="view_order_form_payment_term_inherit"/>
1080+ <field name="arch" type="xml">
1081+ <field name="payment_term_visible" position="attributes">
1082+ <attribute name="readonly">0</attribute>
1083+ </field>
1084+ </field>
1085+ </record>
1086+
1087+ </data>
1088+</openerp>
1089
1090=== added directory 'account_invoice_payment_term_date_due_security/security'
1091=== added file 'account_invoice_payment_term_date_due_security/security/account_invoice_payment_term_date_due_security.xml'
1092--- account_invoice_payment_term_date_due_security/security/account_invoice_payment_term_date_due_security.xml 1970-01-01 00:00:00 +0000
1093+++ account_invoice_payment_term_date_due_security/security/account_invoice_payment_term_date_due_security.xml 2014-06-25 22:24:49 +0000
1094@@ -0,0 +1,24 @@
1095+<?xml version="1.0" encoding="utf-8"?>
1096+<openerp>
1097+ <data>
1098+
1099+ <record id="group_account_payment_term_date_due_security" model="res.groups">
1100+ <field name="name">Payment Term Date Due Security</field>
1101+ <field name="category_id" ref="base.module_category_accounting_and_finance"/>
1102+ <field name="users" eval="[(4, ref('base.user_root'))]"/>
1103+ </record>
1104+
1105+ <record id="group_sale_order_payment_term_security" model="res.groups">
1106+ <field name="name">Sale Order Payment Term Security</field>
1107+ <field name="category_id" ref="base.module_category_sales_management"/>
1108+ <field name="users" eval="[(4, ref('base.user_root'))]"/>
1109+ </record>
1110+
1111+ <record id="group_purchase_order_payment_term_security" model="res.groups">
1112+ <field name="name">Purchase Order Payment Term Security</field>
1113+ <field name="category_id" ref="base.module_category_sales_management"/>
1114+ <field name="users" eval="[(4, ref('base.user_root'))]"/>
1115+ </record>
1116+
1117+ </data>
1118+</openerp>
1119\ No newline at end of file
1120
1121=== added directory 'account_invoice_pricelist'
1122=== added file 'account_invoice_pricelist/__init__.py'
1123--- account_invoice_pricelist/__init__.py 1970-01-01 00:00:00 +0000
1124+++ account_invoice_pricelist/__init__.py 2014-06-25 22:24:49 +0000
1125@@ -0,0 +1,23 @@
1126+# -*- coding: utf-8 -*-
1127+##############################################################################
1128+#
1129+# OpenERP, Open Source Management Solution
1130+# Original Module by SIESA (<http://www.siesacr.com>)
1131+# Refactored by CLEARCORP S.A. (<http://clearcorp.co.cr>)
1132+#
1133+# This program is free software: you can redistribute it and/or modify
1134+# it under the terms of the GNU Affero General Public License as
1135+# published by the Free Software Foundation, either version 3 of the
1136+# license, or (at your option) any later version.
1137+#
1138+# This program is distributed in the hope that it will be useful,
1139+# but WITHOUT ANY WARRANTY; without even the implied warranty of
1140+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1141+# GNU Affero General Public License for more details.
1142+#
1143+# You should have received a copy of the GNU Affero General Public License
1144+# along with this program. If not, see <http://www.gnu.org/licenses/>.
1145+##############################################################################
1146+
1147+import account_invoice_pricelist
1148+import wizard
1149\ No newline at end of file
1150
1151=== added file 'account_invoice_pricelist/__openerp__.py'
1152--- account_invoice_pricelist/__openerp__.py 1970-01-01 00:00:00 +0000
1153+++ account_invoice_pricelist/__openerp__.py 2014-06-25 22:24:49 +0000
1154@@ -0,0 +1,47 @@
1155+# -*- coding: utf-8 -*-
1156+##############################################################################
1157+#
1158+# OpenERP, Open Source Management Solution
1159+# Original Module by SIESA (<http://www.siesacr.com>)
1160+# Refactored by CLEARCORP S.A. (<http://clearcorp.co.cr>)
1161+#
1162+# This program is free software: you can redistribute it and/or modify
1163+# it under the terms of the GNU Affero General Public License as
1164+# published by the Free Software Foundation, either version 3 of the
1165+# license, or (at your option) any later version.
1166+#
1167+# This program is distributed in the hope that it will be useful,
1168+# but WITHOUT ANY WARRANTY; without even the implied warranty of
1169+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1170+# GNU Affero General Public License for more details.
1171+#
1172+# You should have received a copy of the GNU Affero General Public License
1173+# along with this program. If not, see <http://www.gnu.org/licenses/>.
1174+##############################################################################
1175+
1176+{
1177+ 'name': 'Invoice Pricelist',
1178+ 'version': '1.0',
1179+ 'category': 'Purchase Management',
1180+ 'sequence': 3,
1181+ 'summary': 'Invoices Pricelist from Sale Orders and Purchase Orders',
1182+ 'description': """
1183+Add Invoice Pricelist
1184+=====================
1185+
1186+This module adds and links the Sale and Purchase Orders Pricelist with the Invoice.""",
1187+ 'author': 'CLEARCORP S.A.',
1188+ 'website': 'http://clearcorp.co.cr',
1189+ 'complexity': 'easy',
1190+ 'images' : [],
1191+ 'depends': ['account','purchase','sale_stock'],
1192+ 'data': [
1193+ 'view/account_invoice_pricelist_view.xml',
1194+ ],
1195+ 'test' : [],
1196+ 'demo': [],
1197+ 'installable': True,
1198+ 'auto_install': False,
1199+ 'application': False,
1200+ 'license': 'AGPL-3',
1201+}
1202\ No newline at end of file
1203
1204=== added file 'account_invoice_pricelist/account_invoice_pricelist.py'
1205--- account_invoice_pricelist/account_invoice_pricelist.py 1970-01-01 00:00:00 +0000
1206+++ account_invoice_pricelist/account_invoice_pricelist.py 2014-06-25 22:24:49 +0000
1207@@ -0,0 +1,66 @@
1208+# -*- coding: utf-8 -*-
1209+##############################################################################
1210+#
1211+# OpenERP, Open Source Management Solution
1212+# Original Module by SIESA (<http://www.siesacr.com>)
1213+# Refactored by CLEARCORP S.A. (<http://clearcorp.co.cr>)
1214+#
1215+# This program is free software: you can redistribute it and/or modify
1216+# it under the terms of the GNU Affero General Public License as
1217+# published by the Free Software Foundation, either version 3 of the
1218+# license, or (at your option) any later version.
1219+#
1220+# This program is distributed in the hope that it will be useful,
1221+# but WITHOUT ANY WARRANTY; without even the implied warranty of
1222+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1223+# GNU Affero General Public License for more details.
1224+#
1225+# You should have received a copy of the GNU Affero General Public License
1226+# along with this program. If not, see <http://www.gnu.org/licenses/>.
1227+##############################################################################
1228+
1229+from openerp.osv import osv, fields
1230+
1231+class Invoice(osv.Model):
1232+
1233+ _inherit = 'account.invoice'
1234+
1235+ _columns = {
1236+ 'pricelist_id': fields.many2one('product.pricelist', string='Pricelist'),
1237+ }
1238+
1239+class StockPicking(osv.Model):
1240+
1241+ _inherit = 'stock.picking'
1242+
1243+ def _invoice_hook(self, cr, uid, picking, invoice_id):
1244+ invoice_obj = self.pool.get('account.invoice')
1245+ if picking.purchase_id:
1246+ if picking.purchase_id.pricelist_id:
1247+ invoice_obj.write(cr, uid, invoice_id, {'pricelist_id': picking.purchase_id.pricelist_id.id})
1248+ elif picking.sale_id:
1249+ if picking.sale_id.pricelist_id:
1250+ invoice_obj.write(cr, uid, invoice_id, {'pricelist_id': picking.sale_id.pricelist_id.id})
1251+ return super(StockPicking, self)._invoice_hook(cr, uid, picking, invoice_id)
1252+
1253+class PurchaseOrder(osv.Model):
1254+
1255+ _inherit = 'purchase.order'
1256+
1257+ def view_invoice(self, cr, uid, ids, context=None):
1258+ res = super(PurchaseOrder, self).view_invoice(cr, uid, ids, context=context)
1259+ for po in self.browse(cr, uid, ids, context=context):
1260+ for invoice in po.invoice_ids:
1261+ invoice.write({'pricelist_id': po.pricelist_id.id}, context=context)
1262+ return res
1263+
1264+class SaleOrder(osv.Model):
1265+
1266+ _inherit = 'sale.order'
1267+
1268+ def _make_invoice(self, cr, uid, order, lines, context=None):
1269+ inv_id = super(SaleOrder, self)._make_invoice(cr, uid, order, lines, context=context)
1270+ if order.pricelist_id:
1271+ invoice_obj = self.pool.get('account.invoice')
1272+ invoice_obj.write(cr, uid, inv_id, {'pricelist_id': order.pricelist_id.id}, context=context)
1273+ return inv_id
1274\ No newline at end of file
1275
1276=== added directory 'account_invoice_pricelist/i18n'
1277=== added file 'account_invoice_pricelist/i18n/account_invoice_pricelist.pot'
1278--- account_invoice_pricelist/i18n/account_invoice_pricelist.pot 1970-01-01 00:00:00 +0000
1279+++ account_invoice_pricelist/i18n/account_invoice_pricelist.pot 2014-06-25 22:24:49 +0000
1280@@ -0,0 +1,61 @@
1281+# Translation of OpenERP Server.
1282+# This file contains the translation of the following modules:
1283+# * account_invoice_pricelist
1284+#
1285+msgid ""
1286+msgstr ""
1287+"Project-Id-Version: OpenERP Server 7.0\n"
1288+"Report-Msgid-Bugs-To: \n"
1289+"POT-Creation-Date: 2014-06-11 21:36+0000\n"
1290+"PO-Revision-Date: 2014-06-11 21:36+0000\n"
1291+"Last-Translator: <>\n"
1292+"Language-Team: \n"
1293+"MIME-Version: 1.0\n"
1294+"Content-Type: text/plain; charset=UTF-8\n"
1295+"Content-Transfer-Encoding: \n"
1296+"Plural-Forms: \n"
1297+
1298+#. module: account_invoice_pricelist
1299+#: model:ir.model,name:account_invoice_pricelist.model_stock_invoice_onshipping
1300+msgid "Stock Invoice Onshipping"
1301+msgstr ""
1302+
1303+#. module: account_invoice_pricelist
1304+#: model:ir.model,name:account_invoice_pricelist.model_purchase_order
1305+msgid "Purchase Order"
1306+msgstr ""
1307+
1308+#. module: account_invoice_pricelist
1309+#: model:ir.model,name:account_invoice_pricelist.model_sale_order_line_make_invoice
1310+msgid "Sale OrderLine Make_invoice"
1311+msgstr ""
1312+
1313+#. module: account_invoice_pricelist
1314+#: model:ir.model,name:account_invoice_pricelist.model_purchase_order_line_invoice
1315+msgid "Purchase Order Line Make Invoice"
1316+msgstr ""
1317+
1318+#. module: account_invoice_pricelist
1319+#: model:ir.model,name:account_invoice_pricelist.model_account_invoice
1320+msgid "Invoice"
1321+msgstr ""
1322+
1323+#. module: account_invoice_pricelist
1324+#: model:ir.model,name:account_invoice_pricelist.model_stock_picking
1325+msgid "Picking List"
1326+msgstr ""
1327+
1328+#. module: account_invoice_pricelist
1329+#: model:ir.model,name:account_invoice_pricelist.model_sale_advance_payment_inv
1330+msgid "Sales Advance Payment Invoice"
1331+msgstr ""
1332+
1333+#. module: account_invoice_pricelist
1334+#: field:account.invoice,pricelist_id:0
1335+msgid "Pricelist"
1336+msgstr ""
1337+
1338+#. module: account_invoice_pricelist
1339+#: model:ir.model,name:account_invoice_pricelist.model_sale_order
1340+msgid "Sales Order"
1341+msgstr ""
1342
1343=== added file 'account_invoice_pricelist/i18n/es.po'
1344--- account_invoice_pricelist/i18n/es.po 1970-01-01 00:00:00 +0000
1345+++ account_invoice_pricelist/i18n/es.po 2014-06-25 22:24:49 +0000
1346@@ -0,0 +1,61 @@
1347+# Translation of OpenERP Server.
1348+# This file contains the translation of the following modules:
1349+# * account_invoice_pricelist
1350+#
1351+msgid ""
1352+msgstr ""
1353+"Project-Id-Version: OpenERP Server 7.0\n"
1354+"Report-Msgid-Bugs-To: \n"
1355+"POT-Creation-Date: 2014-06-11 21:36+0000\n"
1356+"PO-Revision-Date: 2014-06-11 21:36+0000\n"
1357+"Last-Translator: <>\n"
1358+"Language-Team: \n"
1359+"MIME-Version: 1.0\n"
1360+"Content-Type: text/plain; charset=UTF-8\n"
1361+"Content-Transfer-Encoding: \n"
1362+"Plural-Forms: \n"
1363+
1364+#. module: account_invoice_pricelist
1365+#: model:ir.model,name:account_invoice_pricelist.model_stock_invoice_onshipping
1366+msgid "Stock Invoice Onshipping"
1367+msgstr "Stock factura en el envío"
1368+
1369+#. module: account_invoice_pricelist
1370+#: model:ir.model,name:account_invoice_pricelist.model_purchase_order
1371+msgid "Purchase Order"
1372+msgstr "Pedido de compra"
1373+
1374+#. module: account_invoice_pricelist
1375+#: model:ir.model,name:account_invoice_pricelist.model_sale_order_line_make_invoice
1376+msgid "Sale OrderLine Make_invoice"
1377+msgstr "Venta Línea_pedido Realizar_factura"
1378+
1379+#. module: account_invoice_pricelist
1380+#: model:ir.model,name:account_invoice_pricelist.model_purchase_order_line_invoice
1381+msgid "Purchase Order Line Make Invoice"
1382+msgstr "Línea pedido de compra realiza factura"
1383+
1384+#. module: account_invoice_pricelist
1385+#: model:ir.model,name:account_invoice_pricelist.model_account_invoice
1386+msgid "Invoice"
1387+msgstr "Factura"
1388+
1389+#. module: account_invoice_pricelist
1390+#: model:ir.model,name:account_invoice_pricelist.model_stock_picking
1391+msgid "Picking List"
1392+msgstr "Albarán"
1393+
1394+#. module: account_invoice_pricelist
1395+#: model:ir.model,name:account_invoice_pricelist.model_sale_advance_payment_inv
1396+msgid "Sales Advance Payment Invoice"
1397+msgstr "Ventas. Anticipo pago factura"
1398+
1399+#. module: account_invoice_pricelist
1400+#: field:account.invoice,pricelist_id:0
1401+msgid "Pricelist"
1402+msgstr "Tarifa"
1403+
1404+#. module: account_invoice_pricelist
1405+#: model:ir.model,name:account_invoice_pricelist.model_sale_order
1406+msgid "Sales Order"
1407+msgstr "Pedido de venta"
1408
1409=== added directory 'account_invoice_pricelist/view'
1410=== added file 'account_invoice_pricelist/view/account_invoice_pricelist_view.xml'
1411--- account_invoice_pricelist/view/account_invoice_pricelist_view.xml 1970-01-01 00:00:00 +0000
1412+++ account_invoice_pricelist/view/account_invoice_pricelist_view.xml 2014-06-25 22:24:49 +0000
1413@@ -0,0 +1,29 @@
1414+<?xml version="1.0" encoding="UTF-8"?>
1415+<openerp>
1416+ <data>
1417+ <!-- account.invoice -->
1418+ <record id="invoice_customer_view_form" model="ir.ui.view">
1419+ <field name="name">invoice.customer.view.form</field>
1420+ <field name="model">account.invoice</field>
1421+ <field name="inherit_id" ref="account.invoice_form"/>
1422+ <field name="priority" eval="16"/>
1423+ <field name="arch" type="xml">
1424+ <xpath expr="//form/sheet/group/group/field[@name='fiscal_position']" position="after">
1425+ <field name="pricelist_id"/>
1426+ </xpath>
1427+ </field>
1428+ </record>
1429+
1430+ <record id="invoice_supplier_view_form" model="ir.ui.view">
1431+ <field name="name">invoice.supplier.view.form</field>
1432+ <field name="model">account.invoice</field>
1433+ <field name="inherit_id" ref="account.invoice_supplier_form"/>
1434+ <field name="priority" eval="16"/>
1435+ <field name="arch" type="xml">
1436+ <xpath expr="//form/sheet/group/group/div" position="after">
1437+ <field name="pricelist_id"/>
1438+ </xpath>
1439+ </field>
1440+ </record>
1441+ </data>
1442+</openerp>
1443\ No newline at end of file
1444
1445=== added directory 'account_invoice_pricelist/wizard'
1446=== added file 'account_invoice_pricelist/wizard/__init__.py'
1447--- account_invoice_pricelist/wizard/__init__.py 1970-01-01 00:00:00 +0000
1448+++ account_invoice_pricelist/wizard/__init__.py 2014-06-25 22:24:49 +0000
1449@@ -0,0 +1,23 @@
1450+# -*- coding: utf-8 -*-
1451+##############################################################################
1452+#
1453+# OpenERP, Open Source Management Solution
1454+# Original Module by SIESA (<http://www.siesacr.com>)
1455+# Refactored by CLEARCORP S.A. (<http://clearcorp.co.cr>)
1456+#
1457+# This program is free software: you can redistribute it and/or modify
1458+# it under the terms of the GNU Affero General Public License as
1459+# published by the Free Software Foundation, either version 3 of the
1460+# license, or (at your option) any later version.
1461+#
1462+# This program is distributed in the hope that it will be useful,
1463+# but WITHOUT ANY WARRANTY; without even the implied warranty of
1464+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1465+# GNU Affero General Public License for more details.
1466+#
1467+# You should have received a copy of the GNU Affero General Public License
1468+# along with this program. If not, see <http://www.gnu.org/licenses/>.
1469+##############################################################################
1470+
1471+import sale_advance_payment_inv
1472+import sale_order_line_make_invoice
1473\ No newline at end of file
1474
1475=== added file 'account_invoice_pricelist/wizard/sale_advance_payment_inv.py'
1476--- account_invoice_pricelist/wizard/sale_advance_payment_inv.py 1970-01-01 00:00:00 +0000
1477+++ account_invoice_pricelist/wizard/sale_advance_payment_inv.py 2014-06-25 22:24:49 +0000
1478@@ -0,0 +1,35 @@
1479+# -*- coding: utf-8 -*-
1480+##############################################################################
1481+#
1482+# OpenERP, Open Source Management Solution
1483+# Original Module by SIESA (<http://www.siesacr.com>)
1484+# Refactored by CLEARCORP S.A. (<http://clearcorp.co.cr>)
1485+#
1486+# This program is free software: you can redistribute it and/or modify
1487+# it under the terms of the GNU Affero General Public License as
1488+# published by the Free Software Foundation, either version 3 of the
1489+# license, or (at your option) any later version.
1490+#
1491+# This program is distributed in the hope that it will be useful,
1492+# but WITHOUT ANY WARRANTY; without even the implied warranty of
1493+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1494+# GNU Affero General Public License for more details.
1495+#
1496+# You should have received a copy of the GNU Affero General Public License
1497+# along with this program. If not, see <http://www.gnu.org/licenses/>.
1498+##############################################################################
1499+
1500+from openerp.osv import osv
1501+
1502+class SaleAdvancePayment(osv.TransientModel):
1503+
1504+ _inherit = 'sale.advance.payment.inv'
1505+
1506+ def _create_invoices(self, cr, uid, inv_values, sale_id, context=None):
1507+ inv_id = super(SaleAdvancePayment, self)._create_invoices(cr, uid, inv_values, sale_id, context=context)
1508+ order_obj = self.pool.get('sale.order')
1509+ order = order_obj.browse(cr, uid, sale_id, context=context)
1510+ if order.pricelist_id:
1511+ inv_obj = self.pool.get('account.invoice')
1512+ inv_obj.write(cr, uid, inv_id, {'pricelist_id': order.pricelist_id.id}, context=context)
1513+ return inv_id
1514\ No newline at end of file
1515
1516=== added file 'account_invoice_pricelist/wizard/sale_order_line_make_invoice.py'
1517--- account_invoice_pricelist/wizard/sale_order_line_make_invoice.py 1970-01-01 00:00:00 +0000
1518+++ account_invoice_pricelist/wizard/sale_order_line_make_invoice.py 2014-06-25 22:24:49 +0000
1519@@ -0,0 +1,43 @@
1520+# -*- coding: utf-8 -*-
1521+##############################################################################
1522+#
1523+# OpenERP, Open Source Management Solution
1524+# Original Module by SIESA (<http://www.siesacr.com>)
1525+# Refactored by CLEARCORP S.A. (<http://clearcorp.co.cr>)
1526+#
1527+# This program is free software: you can redistribute it and/or modify
1528+# it under the terms of the GNU Affero General Public License as
1529+# published by the Free Software Foundation, either version 3 of the
1530+# license, or (at your option) any later version.
1531+#
1532+# This program is distributed in the hope that it will be useful,
1533+# but WITHOUT ANY WARRANTY; without even the implied warranty of
1534+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1535+# GNU Affero General Public License for more details.
1536+#
1537+# You should have received a copy of the GNU Affero General Public License
1538+# along with this program. If not, see <http://www.gnu.org/licenses/>.
1539+##############################################################################
1540+
1541+from openerp.osv import osv
1542+
1543+class SaleOrderLineMakeInvoice(osv.TransientModel):
1544+
1545+ _inherit = 'sale.order.line.make.invoice'
1546+
1547+ def make_invoices(self, cr, uid, ids, context=None):
1548+ res = super(SaleOrderLineMakeInvoice,self).make_invoices(cr, uid, ids, context=context)
1549+ sale_order_line_obj = self.pool.get('sale.order.line')
1550+ sale_order_ids = []
1551+ for line in sale_order_line_obj.browse(cr, uid, context.get('active_ids', []), context=context):
1552+ if line.order_id:
1553+ sale_order_ids.append(line.order_id.id)
1554+ sale_order_ids = list(set(sale_order_ids))
1555+ if sale_order_ids:
1556+ sale_order_obj = self.pool.get('sale.order')
1557+ for sale_order_id in sale_order_ids:
1558+ sale_order = sale_order_obj.browse(cr, uid, sale_order_id, context=context)
1559+ if sale_order.pricelist_id:
1560+ for invoice in sale_order.invoice_ids:
1561+ invoice.write({'pricelist_id': sale_order.pricelist_id.id}, context=context)
1562+ return res
1563\ No newline at end of file
1564
1565=== added directory 'account_invoicing_report'
1566=== added file 'account_invoicing_report/__init__.py'
1567--- account_invoicing_report/__init__.py 1970-01-01 00:00:00 +0000
1568+++ account_invoicing_report/__init__.py 2014-06-25 22:24:49 +0000
1569@@ -0,0 +1,24 @@
1570+# -*- coding: utf-8 -*-
1571+##############################################################################
1572+#
1573+# OpenERP, Open Source Management Solution
1574+# Addons modules by CLEARCORP S.A.
1575+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
1576+#
1577+# This program is free software: you can redistribute it and/or modify
1578+# it under the terms of the GNU Affero General Public License as
1579+# published by the Free Software Foundation, either version 3 of the
1580+# License, or (at your option) any later version.
1581+#
1582+# This program is distributed in the hope that it will be useful,
1583+# but WITHOUT ANY WARRANTY; without even the implied warranty of
1584+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1585+# GNU Affero General Public License for more details.
1586+#
1587+# You should have received a copy of the GNU Affero General Public License
1588+# along with this program. If not, see <http://www.gnu.org/licenses/>.
1589+#
1590+##############################################################################
1591+
1592+import wizard
1593+import report
1594
1595=== added file 'account_invoicing_report/__openerp__.py'
1596--- account_invoicing_report/__openerp__.py 1970-01-01 00:00:00 +0000
1597+++ account_invoicing_report/__openerp__.py 2014-06-25 22:24:49 +0000
1598@@ -0,0 +1,47 @@
1599+# -*- coding: utf-8 -*-
1600+##############################################################################
1601+#
1602+# OpenERP, Open Source Management Solution
1603+# Addons modules by CLEARCORP S.A.
1604+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
1605+#
1606+# This program is free software: you can redistribute it and/or modify
1607+# it under the terms of the GNU Affero General Public License as
1608+# published by the Free Software Foundation, either version 3 of the
1609+# License, or (at your option) any later version.
1610+#
1611+# This program is distributed in the hope that it will be useful,
1612+# but WITHOUT ANY WARRANTY; without even the implied warranty of
1613+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1614+# GNU Affero General Public License for more details.
1615+#
1616+# You should have received a copy of the GNU Affero General Public License
1617+# along with this program. If not, see <http://www.gnu.org/licenses/>.
1618+#
1619+##############################################################################
1620+{
1621+ 'name': 'Account Invoicing Report',
1622+ 'description': """
1623+Account Invoicing Report
1624+==========================
1625+This module permits print the account invoicing report. This report classifies
1626+invoices by type of taxes.
1627+ """,
1628+ 'version': '1.0',
1629+ 'author': 'CLEARCORP S.A.',
1630+ "category": 'Accounting & Finance',
1631+ 'website': "http://clearcorp.co.cr",
1632+ 'depends': [
1633+ 'account',
1634+ 'account_invoice_global_discount',
1635+ 'account_report_lib'],
1636+ 'data': [
1637+ 'security/ir.model.access.csv',
1638+ 'report/report.xml',
1639+ 'wizard/account_invoicing_report_wizard.xml',
1640+ 'report_menus.xml',
1641+ ],
1642+ 'active': False,
1643+ 'installable': True,
1644+ 'license': 'AGPL-3',
1645+}
1646
1647=== added directory 'account_invoicing_report/i18n'
1648=== added file 'account_invoicing_report/i18n/account_invoicing_report.pot'
1649--- account_invoicing_report/i18n/account_invoicing_report.pot 1970-01-01 00:00:00 +0000
1650+++ account_invoicing_report/i18n/account_invoicing_report.pot 2014-06-25 22:24:49 +0000
1651@@ -0,0 +1,231 @@
1652+# Translation of OpenERP Server.
1653+# This file contains the translation of the following modules:
1654+# * account_invoicing_report
1655+#
1656+msgid ""
1657+msgstr ""
1658+"Project-Id-Version: OpenERP Server 7.0\n"
1659+"Report-Msgid-Bugs-To: \n"
1660+"POT-Creation-Date: 2014-06-18 22:36+0000\n"
1661+"PO-Revision-Date: 2014-06-18 22:36+0000\n"
1662+"Last-Translator: <>\n"
1663+"Language-Team: \n"
1664+"MIME-Version: 1.0\n"
1665+"Content-Type: text/plain; charset=UTF-8\n"
1666+"Content-Transfer-Encoding: \n"
1667+"Plural-Forms: \n"
1668+
1669+#. module: account_invoicing_report
1670+#: field:invoicing.report.wiz,res_partners_ids:0
1671+msgid "Partners"
1672+msgstr ""
1673+
1674+#. module: account_invoicing_report
1675+#: help:invoicing.report.wiz,amount_currency:0
1676+msgid "It adds the currency column on report if the currency differs from the company currency."
1677+msgstr ""
1678+
1679+#. module: account_invoicing_report
1680+#: model:ir.actions.act_window,name:account_invoicing_report.action_account_invoicing_report_wizard
1681+#: model:ir.model,name:account_invoicing_report.model_invoicing_report_wiz
1682+msgid "Account Invoicing Report Wizard"
1683+msgstr ""
1684+
1685+#. module: account_invoicing_report
1686+#: view:invoicing.report.wiz:0
1687+msgid "This report allows to print a account invoincing report by different search criteria."
1688+msgstr ""
1689+
1690+#. module: account_invoicing_report
1691+#: view:invoicing.report.wiz:0
1692+msgid "Print"
1693+msgstr ""
1694+
1695+#. module: account_invoicing_report
1696+#: code:addons/account_invoicing_report/report/account_invoicing_report.py:89
1697+#, python-format
1698+msgid "All taxes"
1699+msgstr ""
1700+
1701+#. module: account_invoicing_report
1702+#: help:invoicing.report.wiz,historic_strict:0
1703+msgid "If selected, will display a historical unreconciled lines, taking into account the end of the period or date selected"
1704+msgstr ""
1705+
1706+#. module: account_invoicing_report
1707+#: code:addons/account_invoicing_report/wizard/account_invoicing_report_wizard.py:88
1708+#, python-format
1709+msgid "Error !"
1710+msgstr ""
1711+
1712+#. module: account_invoicing_report
1713+#: field:invoicing.report.wiz,special_period:0
1714+msgid "Special period"
1715+msgstr ""
1716+
1717+#. module: account_invoicing_report
1718+#: field:invoicing.report.wiz,sort_selection:0
1719+msgid "Entries Sorted by"
1720+msgstr ""
1721+
1722+#. module: account_invoicing_report
1723+#: field:invoicing.report.wiz,company_id:0
1724+msgid "Company"
1725+msgstr ""
1726+
1727+#. module: account_invoicing_report
1728+#: field:invoicing.report.wiz,amount_currency:0
1729+msgid "With Currency"
1730+msgstr ""
1731+
1732+#. module: account_invoicing_report
1733+#: selection:invoicing.report.wiz,filter:0
1734+#: selection:invoicing.report.wiz,sort_selection:0
1735+msgid "Date"
1736+msgstr ""
1737+
1738+#. module: account_invoicing_report
1739+#: field:invoicing.report.wiz,chart_account_id:0
1740+msgid "Chart of Account"
1741+msgstr ""
1742+
1743+#. module: account_invoicing_report
1744+#: field:invoicing.report.wiz,journal_ids:0
1745+msgid "Journals"
1746+msgstr ""
1747+
1748+#. module: account_invoicing_report
1749+#: field:invoicing.report.wiz,target_move:0
1750+msgid "Target Moves"
1751+msgstr ""
1752+
1753+#. module: account_invoicing_report
1754+#: view:invoicing.report.wiz:0
1755+msgid "Report Options"
1756+msgstr ""
1757+
1758+#. module: account_invoicing_report
1759+#: help:invoicing.report.wiz,chart_account_id:0
1760+msgid "Select Charts of Accounts"
1761+msgstr ""
1762+
1763+#. module: account_invoicing_report
1764+#: field:invoicing.report.wiz,date_to:0
1765+msgid "End Date"
1766+msgstr ""
1767+
1768+#. module: account_invoicing_report
1769+#: field:invoicing.report.wiz,period_from:0
1770+msgid "Start Period"
1771+msgstr ""
1772+
1773+#. module: account_invoicing_report
1774+#: selection:invoicing.report.wiz,sort_selection:0
1775+msgid "Name"
1776+msgstr ""
1777+
1778+#. module: account_invoicing_report
1779+#: selection:invoicing.report.wiz,target_move:0
1780+msgid "All Posted Entries"
1781+msgstr ""
1782+
1783+#. module: account_invoicing_report
1784+#: view:invoicing.report.wiz:0
1785+#: field:invoicing.report.wiz,account_tax_ids:0
1786+msgid "Taxes"
1787+msgstr ""
1788+
1789+#. module: account_invoicing_report
1790+#: view:invoicing.report.wiz:0
1791+msgid "General Options"
1792+msgstr ""
1793+
1794+#. module: account_invoicing_report
1795+#: help:invoicing.report.wiz,fiscalyear_id:0
1796+msgid "Keep empty for all open fiscal year"
1797+msgstr ""
1798+
1799+#. module: account_invoicing_report
1800+#: field:invoicing.report.wiz,period_to:0
1801+msgid "End Period"
1802+msgstr ""
1803+
1804+#. module: account_invoicing_report
1805+#: field:invoicing.report.wiz,fiscalyear_id:0
1806+msgid "Fiscal Year"
1807+msgstr ""
1808+
1809+#. module: account_invoicing_report
1810+#: field:invoicing.report.wiz,historic_strict:0
1811+msgid "Strict History"
1812+msgstr ""
1813+
1814+#. module: account_invoicing_report
1815+#: selection:invoicing.report.wiz,filter:0
1816+msgid "No Filters"
1817+msgstr ""
1818+
1819+#. module: account_invoicing_report
1820+#: view:invoicing.report.wiz:0
1821+#: model:ir.actions.report.xml,name:account_invoicing_report.account_invoicing_report_ods
1822+#: model:ir.actions.report.xml,name:account_invoicing_report.account_invoicing_report_odt
1823+#: model:ir.ui.menu,name:account_invoicing_report.account_invoicing_report_menu
1824+msgid "Account Invoicing Report"
1825+msgstr ""
1826+
1827+#. module: account_invoicing_report
1828+#: field:invoicing.report.wiz,out_format:0
1829+msgid "Print Format"
1830+msgstr ""
1831+
1832+#. module: account_invoicing_report
1833+#: field:invoicing.report.wiz,account_base_report:0
1834+msgid "Account Base Report"
1835+msgstr ""
1836+
1837+#. module: account_invoicing_report
1838+#: help:invoicing.report.wiz,special_period:0
1839+msgid "Include special period"
1840+msgstr ""
1841+
1842+#. module: account_invoicing_report
1843+#: field:invoicing.report.wiz,account_ids:0
1844+msgid "Accounts"
1845+msgstr ""
1846+
1847+#. module: account_invoicing_report
1848+#: selection:invoicing.report.wiz,filter:0
1849+msgid "Periods"
1850+msgstr ""
1851+
1852+#. module: account_invoicing_report
1853+#: code:addons/account_invoicing_report/wizard/account_invoicing_report_wizard.py:88
1854+#, python-format
1855+msgid "There is no template defined for the selected format. Check if aeroo report exist."
1856+msgstr ""
1857+
1858+#. module: account_invoicing_report
1859+#: view:invoicing.report.wiz:0
1860+msgid "Cancel"
1861+msgstr ""
1862+
1863+#. module: account_invoicing_report
1864+#: field:invoicing.report.wiz,date_from:0
1865+msgid "Start Date"
1866+msgstr ""
1867+
1868+#. module: account_invoicing_report
1869+#: field:invoicing.report.wiz,filter:0
1870+msgid "Filter by"
1871+msgstr ""
1872+
1873+#. module: account_invoicing_report
1874+#: view:invoicing.report.wiz:0
1875+msgid "or"
1876+msgstr ""
1877+
1878+#. module: account_invoicing_report
1879+#: selection:invoicing.report.wiz,target_move:0
1880+msgid "All Entries"
1881+msgstr ""
1882+
1883
1884=== added file 'account_invoicing_report/i18n/es.po'
1885--- account_invoicing_report/i18n/es.po 1970-01-01 00:00:00 +0000
1886+++ account_invoicing_report/i18n/es.po 2014-06-25 22:24:49 +0000
1887@@ -0,0 +1,231 @@
1888+# Translation of OpenERP Server.
1889+# This file contains the translation of the following modules:
1890+# * account_invoicing_report
1891+#
1892+msgid ""
1893+msgstr ""
1894+"Project-Id-Version: OpenERP Server 7.0\n"
1895+"Report-Msgid-Bugs-To: \n"
1896+"POT-Creation-Date: 2014-06-18 22:36+0000\n"
1897+"PO-Revision-Date: 2014-06-18 22:36+0000\n"
1898+"Last-Translator: <>\n"
1899+"Language-Team: \n"
1900+"MIME-Version: 1.0\n"
1901+"Content-Type: text/plain; charset=UTF-8\n"
1902+"Content-Transfer-Encoding: \n"
1903+"Plural-Forms: \n"
1904+
1905+#. module: account_invoicing_report
1906+#: field:invoicing.report.wiz,res_partners_ids:0
1907+msgid "Partners"
1908+msgstr "Empresas"
1909+
1910+#. module: account_invoicing_report
1911+#: help:invoicing.report.wiz,amount_currency:0
1912+msgid "It adds the currency column on report if the currency differs from the company currency."
1913+msgstr "Añada la columna de moneda en el reporte si la moneda es diferente de la moneda de la compañía."
1914+
1915+#. module: account_invoicing_report
1916+#: model:ir.actions.act_window,name:account_invoicing_report.action_account_invoicing_report_wizard
1917+#: model:ir.model,name:account_invoicing_report.model_invoicing_report_wiz
1918+msgid "Account Invoicing Report Wizard"
1919+msgstr "Asistente para el Reporte de Facturación"
1920+
1921+#. module: account_invoicing_report
1922+#: view:invoicing.report.wiz:0
1923+msgid "This report allows to print a account invoincing report by different search criteria."
1924+msgstr "Este reporte le permite imprmir un reporte de facturación por diferentes criterios de búsqueda."
1925+
1926+#. module: account_invoicing_report
1927+#: view:invoicing.report.wiz:0
1928+msgid "Print"
1929+msgstr "Imprimir"
1930+
1931+#. module: account_invoicing_report
1932+#: code:addons/account_invoicing_report/report/account_invoicing_report.py:89
1933+#, python-format
1934+msgid "All taxes"
1935+msgstr "Todos los impuestos"
1936+
1937+#. module: account_invoicing_report
1938+#: help:invoicing.report.wiz,historic_strict:0
1939+msgid "If selected, will display a historical unreconciled lines, taking into account the end of the period or date selected"
1940+msgstr "Si se selecciona, se mostrará una línea sin conciliar históricos, teniendo en cuenta el final del período o la fecha seleccionada"
1941+
1942+#. module: account_invoicing_report
1943+#: code:addons/account_invoicing_report/wizard/account_invoicing_report_wizard.py:88
1944+#, python-format
1945+msgid "Error !"
1946+msgstr "Error !"
1947+
1948+#. module: account_invoicing_report
1949+#: field:invoicing.report.wiz,special_period:0
1950+msgid "Special period"
1951+msgstr "Período especial"
1952+
1953+#. module: account_invoicing_report
1954+#: field:invoicing.report.wiz,sort_selection:0
1955+msgid "Entries Sorted by"
1956+msgstr "Entradas ordenadas por"
1957+
1958+#. module: account_invoicing_report
1959+#: field:invoicing.report.wiz,company_id:0
1960+msgid "Company"
1961+msgstr "Compañía"
1962+
1963+#. module: account_invoicing_report
1964+#: field:invoicing.report.wiz,amount_currency:0
1965+msgid "With Currency"
1966+msgstr "Con moneda"
1967+
1968+#. module: account_invoicing_report
1969+#: selection:invoicing.report.wiz,filter:0
1970+#: selection:invoicing.report.wiz,sort_selection:0
1971+msgid "Date"
1972+msgstr "Fechas"
1973+
1974+#. module: account_invoicing_report
1975+#: field:invoicing.report.wiz,chart_account_id:0
1976+msgid "Chart of Account"
1977+msgstr "Catálogo contable"
1978+
1979+#. module: account_invoicing_report
1980+#: field:invoicing.report.wiz,journal_ids:0
1981+msgid "Journals"
1982+msgstr "Diarios"
1983+
1984+#. module: account_invoicing_report
1985+#: field:invoicing.report.wiz,target_move:0
1986+msgid "Target Moves"
1987+msgstr "Movimientos destino"
1988+
1989+#. module: account_invoicing_report
1990+#: view:invoicing.report.wiz:0
1991+msgid "Report Options"
1992+msgstr "Opciones de reporte"
1993+
1994+#. module: account_invoicing_report
1995+#: help:invoicing.report.wiz,chart_account_id:0
1996+msgid "Select Charts of Accounts"
1997+msgstr "Selecccione catálogo contable"
1998+
1999+#. module: account_invoicing_report
2000+#: field:invoicing.report.wiz,date_to:0
2001+msgid "End Date"
2002+msgstr "Fecha Final"
2003+
2004+#. module: account_invoicing_report
2005+#: field:invoicing.report.wiz,period_from:0
2006+msgid "Start Period"
2007+msgstr "Período Inicial"
2008+
2009+#. module: account_invoicing_report
2010+#: selection:invoicing.report.wiz,sort_selection:0
2011+msgid "Name"
2012+msgstr "Nombre"
2013+
2014+#. module: account_invoicing_report
2015+#: selection:invoicing.report.wiz,target_move:0
2016+msgid "All Posted Entries"
2017+msgstr "Todos los apuntes publicados"
2018+
2019+#. module: account_invoicing_report
2020+#: view:invoicing.report.wiz:0
2021+#: field:invoicing.report.wiz,account_tax_ids:0
2022+msgid "Taxes"
2023+msgstr "Impuestos"
2024+
2025+#. module: account_invoicing_report
2026+#: view:invoicing.report.wiz:0
2027+msgid "General Options"
2028+msgstr "Opciones Generales"
2029+
2030+#. module: account_invoicing_report
2031+#: help:invoicing.report.wiz,fiscalyear_id:0
2032+msgid "Keep empty for all open fiscal year"
2033+msgstr "Mantener vacío para todo el año fiscal abierto"
2034+
2035+#. module: account_invoicing_report
2036+#: field:invoicing.report.wiz,period_to:0
2037+msgid "End Period"
2038+msgstr "Período Final"
2039+
2040+#. module: account_invoicing_report
2041+#: field:invoicing.report.wiz,fiscalyear_id:0
2042+msgid "Fiscal Year"
2043+msgstr "Año Fiscal"
2044+
2045+#. module: account_invoicing_report
2046+#: field:invoicing.report.wiz,historic_strict:0
2047+msgid "Strict History"
2048+msgstr "Histórico Estricto"
2049+
2050+#. module: account_invoicing_report
2051+#: selection:invoicing.report.wiz,filter:0
2052+msgid "No Filters"
2053+msgstr "Sin Filtros"
2054+
2055+#. module: account_invoicing_report
2056+#: view:invoicing.report.wiz:0
2057+#: model:ir.actions.report.xml,name:account_invoicing_report.account_invoicing_report_ods
2058+#: model:ir.actions.report.xml,name:account_invoicing_report.account_invoicing_report_odt
2059+#: model:ir.ui.menu,name:account_invoicing_report.account_invoicing_report_menu
2060+msgid "Account Invoicing Report"
2061+msgstr "Reporte de Facturación"
2062+
2063+#. module: account_invoicing_report
2064+#: field:invoicing.report.wiz,out_format:0
2065+msgid "Print Format"
2066+msgstr "Formato de impresión"
2067+
2068+#. module: account_invoicing_report
2069+#: field:invoicing.report.wiz,account_base_report:0
2070+msgid "Account Base Report"
2071+msgstr "Informe Financiero Base"
2072+
2073+#. module: account_invoicing_report
2074+#: help:invoicing.report.wiz,special_period:0
2075+msgid "Include special period"
2076+msgstr "Incluir período especial"
2077+
2078+#. module: account_invoicing_report
2079+#: field:invoicing.report.wiz,account_ids:0
2080+msgid "Accounts"
2081+msgstr "Cuentas"
2082+
2083+#. module: account_invoicing_report
2084+#: selection:invoicing.report.wiz,filter:0
2085+msgid "Periods"
2086+msgstr "Períodos"
2087+
2088+#. module: account_invoicing_report
2089+#: code:addons/account_invoicing_report/wizard/account_invoicing_report_wizard.py:88
2090+#, python-format
2091+msgid "There is no template defined for the selected format. Check if aeroo report exist."
2092+msgstr "No existe una plantilla definida para el formato seleccionado. Revise si existe una plantilla de Aeroo creada"
2093+
2094+#. module: account_invoicing_report
2095+#: view:invoicing.report.wiz:0
2096+msgid "Cancel"
2097+msgstr "Cancelar"
2098+
2099+#. module: account_invoicing_report
2100+#: field:invoicing.report.wiz,date_from:0
2101+msgid "Start Date"
2102+msgstr "Fecha Inicial"
2103+
2104+#. module: account_invoicing_report
2105+#: field:invoicing.report.wiz,filter:0
2106+msgid "Filter by"
2107+msgstr "Filtrado por"
2108+
2109+#. module: account_invoicing_report
2110+#: view:invoicing.report.wiz:0
2111+msgid "or"
2112+msgstr "o"
2113+
2114+#. module: account_invoicing_report
2115+#: selection:invoicing.report.wiz,target_move:0
2116+msgid "All Entries"
2117+msgstr "Todos los apuntes"
2118+
2119
2120=== added directory 'account_invoicing_report/report'
2121=== added file 'account_invoicing_report/report/__init__.py'
2122--- account_invoicing_report/report/__init__.py 1970-01-01 00:00:00 +0000
2123+++ account_invoicing_report/report/__init__.py 2014-06-25 22:24:49 +0000
2124@@ -0,0 +1,23 @@
2125+# -*- coding: utf-8 -*-
2126+##############################################################################
2127+#
2128+# OpenERP, Open Source Management Solution
2129+# Addons modules by CLEARCORP S.A.
2130+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
2131+#
2132+# This program is free software: you can redistribute it and/or modify
2133+# it under the terms of the GNU Affero General Public License as
2134+# published by the Free Software Foundation, either version 3 of the
2135+# License, or (at your option) any later version.
2136+#
2137+# This program is distributed in the hope that it will be useful,
2138+# but WITHOUT ANY WARRANTY; without even the implied warranty of
2139+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2140+# GNU Affero General Public License for more details.
2141+#
2142+# You should have received a copy of the GNU Affero General Public License
2143+# along with this program. If not, see <http://www.gnu.org/licenses/>.
2144+#
2145+##############################################################################
2146+
2147+import account_invoicing_report
2148\ No newline at end of file
2149
2150=== added file 'account_invoicing_report/report/account_invoicing_report.ods'
2151Binary files account_invoicing_report/report/account_invoicing_report.ods 1970-01-01 00:00:00 +0000 and account_invoicing_report/report/account_invoicing_report.ods 2014-06-25 22:24:49 +0000 differ
2152=== added file 'account_invoicing_report/report/account_invoicing_report.odt'
2153Binary files account_invoicing_report/report/account_invoicing_report.odt 1970-01-01 00:00:00 +0000 and account_invoicing_report/report/account_invoicing_report.odt 2014-06-25 22:24:49 +0000 differ
2154=== added file 'account_invoicing_report/report/account_invoicing_report.py'
2155--- account_invoicing_report/report/account_invoicing_report.py 1970-01-01 00:00:00 +0000
2156+++ account_invoicing_report/report/account_invoicing_report.py 2014-06-25 22:24:49 +0000
2157@@ -0,0 +1,266 @@
2158+# -*- coding: utf-8 -*-
2159+##############################################################################
2160+#
2161+# OpenERP, Open Source Management Solution
2162+# Addons modules by CLEARCORP S.A.
2163+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
2164+#
2165+# This program is free software: you can redistribute it and/or modify
2166+# it under the terms of the GNU Affero General Public License as
2167+# published by the Free Software Foundation, either version 3 of the
2168+# License, or (at your option) any later version.
2169+#
2170+# This program is distributed in the hope that it will be useful,
2171+# but WITHOUT ANY WARRANTY; without even the implied warranty of
2172+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2173+# GNU Affero General Public License for more details.
2174+#
2175+# You should have received a copy of the GNU Affero General Public License
2176+# along with this program. If not, see <http://www.gnu.org/licenses/>.
2177+#
2178+##############################################################################
2179+
2180+import pooler
2181+from report import report_sxw
2182+from tools.translate import _
2183+from openerp.addons.account_report_lib.account_report_base import accountReportbase
2184+from numpy.ma.core import ids
2185+
2186+class Parser(accountReportbase):
2187+
2188+ def __init__(self, cr, uid, name, context):
2189+ super(Parser, self).__init__(cr, uid, name, context=context)
2190+ self.pool = pooler.get_pool(self.cr.dbname)
2191+ self.cursor = self.cr
2192+
2193+ self.localcontext.update({
2194+ 'cr' : cr,
2195+ 'uid': uid,
2196+ 'storage':{},
2197+ 'display_taxes':self.display_taxes,
2198+ 'get_order_taxes':self.get_order_taxes,
2199+ 'get_tax_name': self.get_tax_name,
2200+ 'get_data_block_tax': self.get_data_block_tax,
2201+ 'get_tax_type': self.get_tax_type,
2202+ })
2203+
2204+ #---------SET AND GET DATA ----------#
2205+ # Get taxes from wizard
2206+ def get_taxes(self, data):
2207+ return self._get_info(data,'account_tax_ids', 'account.tax')
2208+
2209+ #Get taxes order by name
2210+ def get_order_taxes(self, data):
2211+ taxes_ids = []
2212+
2213+ if not self.get_taxes(data):
2214+ taxes_ids = self.pool.get('account.tax').search(self.cr, self.uid, [], order="name ASC")
2215+ return self.pool.get('account.tax').browse(self.cr, self.uid, taxes_ids)
2216+ else:
2217+ return self.get_taxes(data) #browse record list
2218+
2219+ #Extract ids from taxes
2220+ def get_taxes_ids(self, data):
2221+ ids = []
2222+ if self.get_taxes(data):
2223+ for tax in self.get_taxes(data):
2224+ ids.append(tax.id)
2225+ return ids
2226+
2227+ def get_tax_name(self, tax_id):
2228+ return self.pool.get('account.tax').browse(self.cr, self.uid, tax_id).name
2229+
2230+ def get_tax_type(self, tax_id):
2231+ name = ''
2232+ tax = self.pool.get('account.tax').browse(self.cr, self.uid, tax_id)
2233+
2234+ if tax.type == 'percent' or tax.type == 'fixed':
2235+ name = tax.name + ' - ' + str(tax.amount) + '%'
2236+ else:
2237+ name = tax.name
2238+
2239+ return name
2240+
2241+ #================ DISPLAY DATA ===========================#
2242+ def display_taxes(self, data):
2243+ name = ''
2244+
2245+ if not self.get_taxes(data): #It means that non-one was selected
2246+ return _('All taxes')
2247+ else:
2248+ taxes = self.get_taxes(data)
2249+ for tax in taxes:
2250+ name += tax.name + ', '
2251+ return name
2252+
2253+ #========= BUILD DATA
2254+ def get_invoices(self, tax_id, data):
2255+ account_invoice_obj = self.pool.get('account.invoice')
2256+ result={}
2257+ domain = []
2258+
2259+ date_from = self.get_date_from(data)
2260+ date_to = self.get_date_to(data)
2261+ domain.append(('date_invoice', '>=', date_from))
2262+ domain.append(('date_invoice', '<=', date_to))
2263+
2264+ tuple = ('invoice_line.invoice_line_tax_id', 'in', tax_id)
2265+ domain.append(tuple)
2266+
2267+ tuple = ('state', '!=', 'draft')
2268+ domain.append(tuple)
2269+
2270+ invoices_ids = account_invoice_obj.search(self.cr, self.uid, domain, context=None)
2271+ invoices_obj = account_invoice_obj.browse(self.cr, self.uid, invoices_ids, context=None)
2272+
2273+ return invoices_obj
2274+
2275+ """
2276+ 1. Create a structure like this:
2277+ tax_block[tax_id] = {} (invoices)
2278+
2279+ Then invoices is a dictionary, where key is id invoice and each key
2280+ has a list with lines that its tax match with tax_id that is passed
2281+ as a parameter
2282+
2283+ So, iterate dictionary like this
2284+
2285+ for tax_id, invoice in tax_block.iteritems():
2286+ tax_id ...
2287+ for invoices in invoices:
2288+ for line in invoices['lines']:
2289+ (line as a dictionary)
2290+ """
2291+
2292+ def get_invoices_lines_to_process(self, tax_id, data):
2293+ line_info = {}
2294+ invoice_dict = {}
2295+ tax_block = {}
2296+ qty_lines = 0
2297+ list = []
2298+
2299+ add_invoice = False
2300+
2301+ for invoice in self.get_invoices(tax_id, data):
2302+ line_info = {}
2303+ invoice_dict = {}
2304+ qty_lines = 0 #this variable is per invoice
2305+
2306+ for line in invoice.invoice_line:
2307+ added_line = False
2308+ for tax in line.invoice_line_tax_id:
2309+ if tax.id == tax_id:
2310+ qty_lines += 1
2311+ invoice_dict[invoice.id] = {'lines':[],}
2312+ add_invoice = True
2313+
2314+ if len(invoice_dict[invoice.id]['lines']) > 0:
2315+ for dict in invoice_dict['lines']:
2316+ if line.id == dict['id']:
2317+ added_line = True
2318+
2319+ if not added_line:
2320+ #compute taxes
2321+ price = line.price_unit * (1-(line.discount or 0.0)/100.0)
2322+ amount_tax = self.pool.get('account.tax').compute_all(self.cr, self.uid, [tax], price, line.quantity, product=line.product_id, partner=line.invoice_id.partner_id)
2323+
2324+ line_info['id'] = line.id
2325+ line_info['price_sub_not_dis'] = line.price_subtotal_not_discounted
2326+ line_info['price_subtotal'] = line.price_subtotal,
2327+ line_info['taxes'] = amount_tax['total_included'] - line.price_subtotal
2328+
2329+ else:
2330+ #compute taxes
2331+ price = line.price_unit * (1-(line.discount or 0.0)/100.0)
2332+ #amount_tax is a dictionary
2333+ amount_tax = self.pool.get('account.tax').compute_all(self.cr, self.uid, [tax], price, line.quantity, product=line.product_id, partner=line.invoice_id.partner_id)
2334+
2335+ line_info['id'] = line.id
2336+ line_info['price_sub_not_dis'] = line.price_subtotal_not_discounted
2337+ line_info['price_subtotal'] = line.price_subtotal,
2338+ line_info['taxes'] = amount_tax['total_included'] - line.price_subtotal
2339+
2340+ invoice_dict[invoice.id]['lines'].append(line_info)
2341+
2342+
2343+ if add_invoice:
2344+ invoice_dict[invoice.id].update({
2345+ 'number': invoice.number,
2346+ 'client': invoice.partner_id.name or '',
2347+ 'qty_lines': qty_lines,
2348+ 'qty_lines_total': len(invoice.invoice_line)
2349+ })
2350+ list.append(invoice_dict)
2351+ add_invoice = False
2352+
2353+ tax_block[tax_id] = {}
2354+ tax_block[tax_id].update({'invoices': list})
2355+
2356+ return tax_block
2357+
2358+ #========== COMPUTE DATA
2359+ def get_price_subtotal_not_discounted_per_invoice(self, invoice):
2360+ price_subtotal_not_discount = 0.0
2361+
2362+ for line in invoice['lines']:
2363+ price_subtotal_not_discount += line['price_sub_not_dis']
2364+
2365+ return price_subtotal_not_discount
2366+
2367+ def get_price_subtotal_per_invoice(self, invoice):
2368+ price_subtotal = 0.0
2369+
2370+ for line in invoice['lines']:
2371+ price_subtotal += line['price_subtotal'][0]
2372+
2373+ return price_subtotal
2374+
2375+ def get_discount_per_invoice(self, invoice):
2376+ discount = 0.0
2377+ price_subtotal = 0.0
2378+ price_subtotal_not_discount = 0.0
2379+
2380+ price_subtotal_not_discount = self.get_price_subtotal_not_discounted_per_invoice(invoice)
2381+ price_subtotal = self.get_price_subtotal_per_invoice(invoice)
2382+
2383+ discount = price_subtotal_not_discount - price_subtotal
2384+
2385+ return discount
2386+
2387+ def get_taxes_per_invoice(self, invoice):
2388+ taxes = 0.0
2389+
2390+ for line in invoice['lines']:
2391+ taxes += line['taxes']
2392+
2393+ return taxes
2394+
2395+ #============== FINAL FUNCTION
2396+ def set_data_template(self, tax_id, data):
2397+ #Invoices and lines are processing in this function
2398+ tax_block = self.get_invoices_lines_to_process(tax_id, data)
2399+
2400+ dict_update = {'tax_block': tax_block,}
2401+
2402+ self.localcontext['storage'].update(dict_update)
2403+ return False
2404+
2405+ def get_data_block_tax(self, tax_id):
2406+ final_block = {}
2407+ final_list = []
2408+
2409+ for element in self.get_data_template('tax_block')[tax_id]['invoices']:
2410+ for id, invoice in element.iteritems():
2411+ final_block = {}
2412+ final_block['invoice_number'] = invoice['number']
2413+ final_block['client'] = invoice['client']
2414+ final_block['qty_lines'] = str(invoice['qty_lines']) + "/" + str(invoice['qty_lines_total'])
2415+ final_block['subtotal_without_dis'] = self.get_price_subtotal_not_discounted_per_invoice(invoice)
2416+ final_block['discount'] = self.get_discount_per_invoice(invoice)
2417+ final_block['subtotal_dis'] = self.get_price_subtotal_per_invoice(invoice)
2418+ final_block['taxes'] = self.get_taxes_per_invoice(invoice)
2419+ final_block['total'] = final_block['subtotal_dis'] + final_block['taxes']
2420+
2421+ final_list.append(final_block)
2422+
2423+ return final_list
2424\ No newline at end of file
2425
2426=== added file 'account_invoicing_report/report/report.xml'
2427--- account_invoicing_report/report/report.xml 1970-01-01 00:00:00 +0000
2428+++ account_invoicing_report/report/report.xml 2014-06-25 22:24:49 +0000
2429@@ -0,0 +1,1193 @@
2430+<?xml version="1.0" encoding="utf-8"?>
2431+<openerp>
2432+ <data>
2433+
2434+ <record id="account_invoicing_report_odt" model="ir.actions.report.xml">
2435+ <field name="name">Account Invoicing Report</field>
2436+ <field name="type">ir.actions.report.xml</field>
2437+ <field name="model">account.invoice</field>
2438+ <field name="report_name">account_invoicing_report_odt</field>
2439+ <field name="report_type">aeroo</field>
2440+ <field name="in_format">oo-odt</field>
2441+ <field name="out_format">1</field><!--Must be code of mimetypes (report_mimetypes on database)-->
2442+ <field name="parser_loc">account_invoicing_report/report/account_invoicing_report.py</field>
2443+ <field name="report_rml">account_invoicing_report/report/account_invoicing_report.odt</field>
2444+ <field name="parser_state">loc</field>
2445+ <field name="tml_source">database</field>
2446+ <field name="report_sxw_content_data">UEsDBBQAAAgAACCe0kRexjIMJwAAACcAAAAIAAAAbWltZXR5cGVhcHBsaWNhdGlvbi92bmQub2Fz
2447+aXMub3BlbmRvY3VtZW50LnRleHRQSwMEFAAACAAAIJ7SRJOCAD4nHwAAJx8AABgAAABUaHVtYm5h
2448+aWxzL3RodW1ibmFpbC5wbmeJUE5HDQoaCgAAAA1JSERSAAABAAAAAMYIAgAAALLWySwAAB7uSURB
2449+VHic7Z0JXJTV3sefWRhgWIZ932RVQBRRQURFUcSFwqVcUttcS71q99a1Nyvr3pv5lmXZLSvLvNfl
2450+Nc09t9xwSQxRUFARUJBV9m2G2d8f8yBiybCIAj3/r5/PcJ4z55znnMff75z/eZ4ZEGq1WoYguIqw
2451+sztAEJ0JGYDgNGQAgtOQAQhOQwYgOA0ZgOA0ZACC05ABCE5DBiA4TScYoPHZs0aHWq1W6UBaq4Ov
2452+QyAQ4BWZeEVhHo+HBE8HDg0MDNgEQTwKj9cAUDMUrFQqpVJpdXV1bW0tXmUyGUQPNYtEIkNDQ6FQ
2453+CDUjgVdGJ3S8NnoAmXhl89kEawOFQsEmUP2xDoH4c9PB6mEVX1NTU6yjtLQUike+kZGRsQ52+scr
2454+bIBirIKhcqEOWAIlBTrYiZ+5N/ezOawfGu2BKlg62GWB1gSiHXSAAdi4BWq+o+Pu3bsQpbm5uamp
2455+KQQqFovr6urgBBiD1TfAfI801gG5XF5ZWYnyaMFAB6pA3KwrALtKsOWh+EaJsx5gvcFWefSBEBzk
2456+kQwA1SKqyczMvHnzZllZGWRqaWnp4OBQVVWFw/z8fBMTE8z68ICZmRlsgNWgvLwccmfncgiXfZd1
2457+BSTeKHp2pm8MfpgmOwd2w4AQiF0KWKs0BkvkBKJNtNMAkCNm7pSUFKgfWrS1tXVycoLus7KyoELY
2458+wM7ODjpGDooVFBSgiokOR0dHrAyQO6t1Vq+N+2BsFdhNcOPGgDVGozfYSKlx+md09qDIh2g37TEA
2459+NrVXrlxJTk7GpA4hItpB2IOlQCKRuLm5YVLHNJ+dnY35HhO/tbW1u7s7yrAxDBv2YAMAYzC6mznw
2460+A1sM9mCjncaQhpRNPG7abAAIPT4+HrE+pmqomb2xA9F7eXlBzXBCWloa5Ovq6hoUFATdI5MNfkpK
2461+SlAFAQ8bJsEtUDzriscxMIJoDW0zAGbuU6dOIbjH3IyJHEsBtM4GNpjRMetjpwsnICcnJwceQESE
2462++MfT09PGxgb5mOZhgMbo5XfAHufOnbt27RrsNHr0aFTpoDE+AFan8+fP9+7d28XF5XG0T3Qv2mAA
2463+zPeJiYmFhYVQcOO9fHY7m5GRgXAf0cugQYMgXARIt27dgtyvXr0KnfXv39/e3r7FeAaN79ixA7Ww
2464+VsBI06ZNexz3+G/cuHHkyBGsPNi00I6ZaIPCioqKMK9DNNj1supHJtK5ublIQFJ9+/ZFAmZgb4xi
2465+i4xDrAObNm3CogFlz58//4cffoiIiLhw4QLmYJREdUREU6dORWsXL16El+CWs2fPYje8a9euhIQE
2466+tAAnsHeZsMLAToi+sJigOt5FMVhl2bJlO3fuxJ4EHpsxYwZcBwuhV2FhYYivEKT16NEjKSlpzpw5
2467+2FKjOoqht2gZVbZv345Ghg4dGhUV9fnnn6M1rFGjRo1CIzAkis2ePRun64K7EWVViczYxtygs/vR
2468+zWmDAdiJGUpVqVRs4I4Euw+GPrDTxSHUhrSfnx8WAYg7MDAQoRGcg5z09HRMvXl5edA91gdsD1JT
2469+UxHtYMXAegJpQrLYDfv4+EDccNqPP/4I5d2+fRsRC97CXhmmQh9wOjQI1WItQiaMcfr0aeTDflD5
2470+5cuXoV2YChaF1lEYJXE6tiRmfbSMc7Hx1f79+3FGLFxwAnqLAlZWVjgX2kGOv78/9jO//fYbbInR
2471+6a5BzYkZAS9nedpJTZ/bvnORr6iZS1Ubv2Bq0ms/LfFuIs+qg9Oeu7tmz/OO9fNG1eGJvV4t7t3T
2472+fdQH377W20hvxQdbTli1VrFg+RCJ/E5SpkmEjXnr//+Ih9EGA7A7WsT97OMnRrchZp2AfGiOVT9E
2473+FhwcfOjQIdYAly5dwpaAfYbF3vnB5gFSxrvIgdZDQ0NhA4ivpqYGm2M4BDtmW1tblIEcMfezNsNG
2474+ori4GHN5ZmYme98J76JZsQ4UhuXQOEqiPPQNS0DccCwaRJ/RE2y7cWpURFeRRsyGMshHg8iB09BP
2475+CwsLbBLQE3Zvw+ieYaPN+1dB5Dlr/d4p+yJjpg7fZ6e6cjjVY+wA44A33jJdu+KXKrMRK6acmb/B
2476+YVLPtHP7RvTbG+DRb+n3q0cZXXgrdsmvNQWq506+HvN9qkHQ0rVRDI8vEJq4e95YPvaNawr3RRte
2477++G3e345fO326cOLQq5ZL/2m9buY387NHyVcsOlHlPTxq5Gu6Amcqrh2TffzyYvH7zyw+cuvcmRvB
2478+MWFGvqsPrx1i1qGy4A5tMACCGSgYEzkrCPaza5AgXhEqsEECJtqAgAD2+S52xm5ubphloSocQk9Q
2479+NqZbvMIw7EcYMLOiDNQGmeIQmsY+GIWxDqBllGFPzT4cQAFUx9QOUWJed3Z2xg4bUsa+HAWwXFy/
2480+fh29qh+VUIgcuAjngtNQBv6BT7Am4BCNsM/pGN3TCaw/qIt1CT6Ex5ADJ6MwToGT2tnZoVf3r4Ii
2481+c+PL0duyizRCJ/uBkqOM5IMvV6W++PG3Wvd/7Zjx46xd2Ty/OR+92+PvWzbuMnT2MM9LzJUP4x9K
2482+8Ptw46iPZpzYf6zSPsyzPtPQ5+X1P73hU3P645NeRacvXko+es75nR0fX54wh+lvJ9ys1WjU9U/+
2483+RL4vLwszLjjbUGDLqmOh83mK3OO/4nTzn3GIG7/mf64vu16pHmJG99LaRRsMAEViwoa2ICNMn5gm
2484+WZ0xuv0xEhAoRI95F9M2hIigH2m8i1gFh4iCIC94A3MtJAWRQXAowzoHJZFAvIF0z5490SCqYBeB
2485+uRkJGIZdMVjXsesPZm6kEaiw4RYahDGgZuib/agctAsRoxY8hs0DEug5KiIK+vbbbxHoI40FCu5F
2486+AVREP9EIfM7o7ndhu2yvA0a6fxVEXi9s2PXU5sgpR0WlxYwHU/nFS0uM+r69UvL5W1OWi4cs73cx
2487+3URkYO7qaGkoKypmBk5yNRSJRoWkLZuZkKeZ+cGwjK25TD9kXtG1pq66cf4SjCiXWkUMzHl7xkJ5
2488+WblbQvViv8K/zv2oSDk1WlSXm5RsYtVYYMH123UfiVxGDMpZMmV5MWPrachP73Lbk+5E226zQFUe
2489+Hh6lpaVQGCQLdSKKgBMgREzGmJIRnEBnCFSwGUUmJI6tJ3arsArmYKwPiNGxIMBLiJQgOGiLNQCq
2490+TJ8+Hc7BBIySWBkQ2cNmaBPqhGRRMigoCGdE0IIoHz0ZOHAgtAu3hISEwCooANsgiMLsDunDq3AC
2491+uooyvr6+OCnO0q9fPzYSwytmfQwBET8qoiTehZewO0fdyMhI7IAROMEM6ECTC2A6/LsTw/Fz1eWb
2492+q7Aw3d381CuS/+4YL0HWmBFvs2XG1r+8n1T8/v1qgz+MT2hILpvJ/hx5Ykz9D4/ZO+NnN7x1NL6x
2493+woyz98ovXni/mSYFVvx8ekVD8oWf2/R/SDxAm+8zQqCDBg1C/ABRwgaQC+ZITLQQK3LYGyxQIbYB
2494+bIAEDaEMZm5Mz3gXemr8OCck2PQjn1AnJIgcyBGH0dHRWC7QGsyD+bvxuwF4xdlx0j59+sA2bPQF
2495+wzQ2yxbz9vb+9ddfKyoqUAxpdq8CQ2LL0RgmwWk4Bd5C5xF6YXuA0AuOgjnHjRvHBkv6bsXy7J7b
2496+t6OdF57oGrTnRjt7VwQTMwKGPB3QOrtlxPYA0zNUxU6ryIeAIP3Guk3Tv3sGDNUi8r7fMx1NSza+
2497+jh8/HnEUZNrY2h+bxWt4eDhbBm5p+m7jedk9NBLoLVaqoqIiFGafD7DPN9pxcYjuRfufNGHeRUiD
2498+yB6zJvaamP4xMdfqQKiN/SuUxLqiw2GjmhaLQcSY41vZprWOR+sX0f3ogEet0JlEIkFo3qtXL+wH
2499+EGHDDwgqEBch8sauAKE2zaZE16TDPmvAfrfLQgf7OTmEQzKZjH1sTAYguiaP5Qu1rBlMdTyO9gmi
2500+o6BvlBOcRp8BTp069cT6wVmGDRvW2V3gNPoMQP83TwCaZZ4AepRMIVAnQ7NM50IGIDgNGYDgNPoM
2501+sHLlyifWD4J4rLzzzjsPzacVgOA0nWoAnkng1Gd7FNy4deXC1VLdd1945n3GBxX+fKZIzRYQ2Xra
2502+1mblSZk/JLrjXzducbyMgUvU070qEs4m3WkY4O8LdHn4kn5xIYV7j+er9BQSWvu5KW9mVWmeWLea
2503+70onn1+r0WoNe4yc6FOWVyKSiGqr+eZOzrHP8hUqK7ua41vOWwcGO4eGa6RiZ8vSTN8ggayGsTZV
2504++fYRMbzShENJZd1FF/fQP96tFxwcrZydgyP9wjS1AiON0tyWV1pRWNjZvW4bfMsBU6cwKp5aJgn0
2505+rr6Yyvd2yj502X1MsKogJ6fM2t9VmlVqYXWnoEQVFuEqNHNwkWjzf/v54KVO+c/sZANo6wqSz1+2
2506+GTXYolqmsrIQaTRqacGtOx6xEYLCKr6JrncaWf6N2x5+jgI+X8toNNr6j1rUC6nr/aKGlmlhvDxZ
2507+eWVFmZFGo8q/keP9zHDxnUrGRNjN9A800rzbFZYGpYKQ3kKBQCnVOvi5mwuZvIrqmvK6QhdvS0Wl
2508+guHhH6PVaqSFRUa2zhIhBw2grU3dfQQ/7+zf/+Ab8Z9cvJfcsz+5/sfZtZefaNceC60Z777tmQ2p
2509+s6svPbmudRiayqQdO5PYNN+S5+aXfeh8iU7ZhxpKpKScvlf4yM/XnngHf0dnh0AN8EwCxg8oO3iy
2510+gHkwOkRMHGOdeCC5sgtEix1Mc0PuQvFx28GgJo21Sjxw5nb9HkZTfnF/Wp/xEYLf72G60Bi7gAH4
2511+ksDREc5iewfehFnm/BqNOr2wXDB0pKfsxunTdxwcTNR8Scj0yQPMKm7lGnq4awrLNOpajTRp1/E8
2512+ZWd3vb38bsg8M+OQ/tK710+fulKiNvMaOMw90L9Cqu1mmxx2UCb2rja9w5yinGS3Ssys1aVCd9uy
2513+pMFxo33E0uq8rHLjmrOH0+vMvPr3k+bnl/eOifLT3io0cTcvLVI6hfZ2q0nZt2nvEx10FzAAUx8L
2514+8gSmTi6a2+VyWbWM4SHal1VUSRVKKWJilUxjVZuTViEQMSKtNC/rrrlBsdrRsHv/VsMHh6wyMdCN
2515+V41NjrSkXOFuxOh+y0Zn97KN8Bp+obemtqBI6+Ms0SgqhXyGb+LsZqLUKHIL3YItzm2WaRlt/RjF
2516+AuSbKXk8U6FSo+Xzmdq8qkojKyeJkGsG0FReOXjgyv0YUcf+/TyhmaObszb1Wh2v6tKew53Vu8fC
2517+w4asG6+nDU9de2zLj7JueJf3wUElnLEMGeeXffD8oQY1C6z6xRjfqbRy9zTCGE/sy8IYt/3nQid2
2518+WEcXMEAzaFXV+berO7sXT44/23ixAdh3vsmxuizpwIn6REkndejhdF0DEMQTQJ8Bmvv4BEH8aaAV
2519+gOA0ZACC05ABCE7zCAbQ1FXUiSzE3ft+PMFx9Bqg+uwHn/9mZaMoUnpNfWmSr+DO0U1r1p3ShPS0
2520+tIxc/Gr/iqSUqupze7Ish06dOdyR1hKiG6JXtmaDl785uCGtkZUWGw164ZNRsxsP1QP7e5qG9X3c
2521+XSSIx0er522+sbW9cbOHBNE9ocCF4DR6DSBPW/ePwlnvj2j2TxFqKlLiy3wjPY305LQGxa0tS2Zt
2522+dnjjjag+YYNd7//txY5qnyCaoaUVQJ722fPfJ6sM7EZOdjlxoMRvgJOWESiUiqz1q34SzN21WrL5
2523+6IH9tcUOk17oY+gUNcBGeefgD/sTfk485f/G0799FD/qs0/jHATytE/nfZbu89TostfiPrGfMM3T
2524+ceT0Xqe+vBX32Ydjlfs3poa8OG78syNKJe439x47tf63ioDRvctPpNg885J/9o4fC30PnTnU6824
2525+Cx+eQmtjig9u/Gn3YRNtD1/RmcMl/sPdrm/NQTtxzrSWEe2gRdnwTbwGBgm0CqlUrVbI1YbikhO/
2526+qoIDLQKHDMnPvKGdYMPP0jb56KKBtZfk7i83FDKrCiXD02oavtot9gzrKctMTFcxJn7+/gE8aa3G
2527+wtfP2YQvsoib64ESVfca0OIsCpWW0VUUSnpY3byarpBZVqrY1tC+vZ2m7sgl/2HGp3Ql2XY6+LIQ
2528+XEGvAQz9F672b0jLU7+qdV7y+iBTZtqC+uMF9wpFPljHafKnn0xuSEdPlxdcPPlLtVnA82+/UP9n
2529+6JhFTf5y3NNNq5lHrlyEH/78r9b6Las/y0Q2PzB67L0O9PL5NfX0pYDYVTMur6108hNf7fPSqvqS
2530+U9swXIJ4kFYHDoYB819ve/OGjiGRjm0p3/xZmjQVuuTveI1oR38I4kFaYYCmT3zZtJHi98+A6akw
2531+0T3RawDlnXkL//GkekIQj5H169c/NF+vAQxc66vVP/StMbS2NWXL/u6QILozrVAxPQMm/rzoMwCv
2532+2/1aAoJoBq324b9nQJ8BEhMTHzhW5fzfm2t+ySi2fuG1oRmbPj1qOm5CqK1GUZOfqTa+m9/nbyvH
2533+2nfMLliRvvn7mrgXLY+u37Pph/39/vVP95Pr1x4RThljIYz66+JIO0HLTehFnbf385MVhkbyO0e+
2534+PpI7cfUnw659e9Alzivpqqn5qdXHPBe9Fav8JT/mf+Kc9JxJU52y9Ys9JU52wtJd358N/8t7f5vp
2535+b6wu2Lv8L1+Ux0xyLixz7u8rS0ys8O6p3LfxSKHYf/jUV+dP72/VqkuEHn6V7mG1/7tfi1IuCias
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
3005+bWxQSwUGAAAAABIAEgDLBAAArncAAAAA</field>
3006+ </record>
3007+
3008+ <record id="account_invoicing_report_ods" model="ir.actions.report.xml">
3009+ <field name="name">Account Invoicing Report</field>
3010+ <field name="type">ir.actions.report.xml</field>
3011+ <field name="model">account.invoice</field>
3012+ <field name="report_name">account_invoicing_report_ods</field>
3013+ <field name="report_type">aeroo</field>
3014+ <field name="in_format">oo-ods</field>
3015+ <field name="out_format">2</field><!--Must be code of mimetypes (report_mimetypes on database)-->
3016+ <field name="parser_loc">account_invoicing_report/report/account_invoicing_report.py</field>
3017+ <field name="report_rml">account_invoicing_report/report/account_invoicing_report.ods</field>
3018+ <field name="parser_state">loc</field>
3019+ <field name="tml_source">database</field>
3020+ <field name="report_sxw_content_data">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
3065+OhejmAblIgdGBrwJY0J6KBCnYprafyIcWbJkiY4uUWc4GB2CQPUhEyiirnNzITRMgxuMiWHNoMo6
3066+cyRMDYClWicQNHiT+7y4oATon0hz165dO3XqBJuABnCTCYN23QtkZWX169dv9erVulz4TK4z1u8p
3067+Qg4UCoPWNLdr165z587w4Xv27NFFY2QItWvbtm2T1uQ7EQKmlbmTBgYNwiBf64iZP4nGB6CgGaas
3068+v+pkoBnmCKmBZkgTY25kzggcv+InrigIc9vXjh076LdxB7JGrwwDgnqtWLHiyy+/ZJXwa5cuXSZN
3069+moReANdbt26FirCsYcOGQaU+/vhj6hlcwsiRI7ds2QLdxVeQhDxhtSh91qxZ+NVaf2geemheo27c
3070+6GLdjA1F57webABhxIYNG1BVduSI18aOHdu/f398hWYgvhHmDMHll1++aNGib7/9Fm1ETa6//no0
3071+ZP369UiG0u+++26EJmg1btJzoEXIf/ny5SgCtZ0+fXqvXr1YBMSL6AGFIkFomM7NzUWbKVPrLBgj
3072+LM1KHb6RHlWpnyFnNNu3bw8Ro/Z6t4lOAIEiT7IOPcjMzGTO6MURmeNZNGzhwoXayvnU/v37X331
3073+VbCFzvuLL77AcJ/0QNYwOzDNDAcOHIiKQXtAtgjuoYc6ggCujxmWbXgFBQXaoLk5ApnD/YAwjt0h
3074+ei7Ovvnmm4widUcOF/XGG2/gEagg6sPiUMS6devQapYCXwWlxIN8Cu2aP3/+E088AaY/+eQTlosc
3075+GLUAUMfFixdDbriJRs2dOxfdogjVWhbagwZz3srqpelmG5tUqh+jaUA6CMHAGVrI9S6r9lC1IVZo
3076+QJ3H4QPQQvC9atUq6zo3J0fxFfYEBR8wYADbDyAwhsOAQ9Kzp0gM84JJMYF2OQxE0PdzBp43v/76
3077+a10698PgVzhq1ATaj5CCw3dYs6aZESW3LaCSsLnExESrY0C7dP6oP92VvkP3CR+gy0V6FdwbCmCk
3078+B52G9rz88su6mejRQsC03m+rnTaXDSAao5HjQ0jTmLkj7ILJIoRBA7jEa30Q6aEHSAAHtXHjRmuG
3079+GGsxBOP+JN6Hh4QtQi4HDx5kMkh/37590HfWjetgiKqswgX3yERXnmEB+ECVULQuFG20dj0cF3Bi
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</field>
3618+ </record>
3619+
3620+
3621+ </data>
3622+</openerp>
3623
3624=== added file 'account_invoicing_report/report_menus.xml'
3625--- account_invoicing_report/report_menus.xml 1970-01-01 00:00:00 +0000
3626+++ account_invoicing_report/report_menus.xml 2014-06-25 22:24:49 +0000
3627@@ -0,0 +1,14 @@
3628+<?xml version="1.0" encoding="utf-8"?>
3629+<openerp>
3630+ <data>
3631+
3632+ <menuitem
3633+ icon="STOCK_PRINT"
3634+ id="account_invoicing_report_menu"
3635+ name="Account Invoicing Report"
3636+ parent="account.menu_finance_reporting"
3637+ action="action_account_invoicing_report_wizard"
3638+ groups="account.group_account_manager"
3639+ sequence="43" />
3640+ </data>
3641+</openerp>
3642
3643=== added directory 'account_invoicing_report/security'
3644=== added file 'account_invoicing_report/security/ir.model.access.csv'
3645--- account_invoicing_report/security/ir.model.access.csv 1970-01-01 00:00:00 +0000
3646+++ account_invoicing_report/security/ir.model.access.csv 2014-06-25 22:24:49 +0000
3647@@ -0,0 +1,3 @@
3648+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
3649+access_account_invoicing_report,invoicing.report.wiz,model_invoicing_report_wiz,account.group_account_manager,1,1,1,1
3650+
3651
3652=== added directory 'account_invoicing_report/wizard'
3653=== added file 'account_invoicing_report/wizard/__init__.py'
3654--- account_invoicing_report/wizard/__init__.py 1970-01-01 00:00:00 +0000
3655+++ account_invoicing_report/wizard/__init__.py 2014-06-25 22:24:49 +0000
3656@@ -0,0 +1,23 @@
3657+# -*- coding: utf-8 -*-
3658+##############################################################################
3659+#
3660+# OpenERP, Open Source Management Solution
3661+# Addons modules by CLEARCORP S.A.
3662+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
3663+#
3664+# This program is free software: you can redistribute it and/or modify
3665+# it under the terms of the GNU Affero General Public License as
3666+# published by the Free Software Foundation, either version 3 of the
3667+# License, or (at your option) any later version.
3668+#
3669+# This program is distributed in the hope that it will be useful,
3670+# but WITHOUT ANY WARRANTY; without even the implied warranty of
3671+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3672+# GNU Affero General Public License for more details.
3673+#
3674+# You should have received a copy of the GNU Affero General Public License
3675+# along with this program. If not, see <http://www.gnu.org/licenses/>.
3676+#
3677+##############################################################################
3678+
3679+import account_invoicing_report_wizard
3680\ No newline at end of file
3681
3682=== added file 'account_invoicing_report/wizard/account_invoicing_report_wizard.py'
3683--- account_invoicing_report/wizard/account_invoicing_report_wizard.py 1970-01-01 00:00:00 +0000
3684+++ account_invoicing_report/wizard/account_invoicing_report_wizard.py 2014-06-25 22:24:49 +0000
3685@@ -0,0 +1,123 @@
3686+# -*- coding: utf-8 -*-
3687+##############################################################################
3688+#
3689+# OpenERP, Open Source Management Solution
3690+# Addons modules by CLEARCORP S.A.
3691+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
3692+#
3693+# This program is free software: you can redistribute it and/or modify
3694+# it under the terms of the GNU Affero General Public License as
3695+# published by the Free Software Foundation, either version 3 of the
3696+# License, or (at your option) any later version.
3697+#
3698+# This program is distributed in the hope that it will be useful,
3699+# but WITHOUT ANY WARRANTY; without even the implied warranty of
3700+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3701+# GNU Affero General Public License for more details.
3702+#
3703+# You should have received a copy of the GNU Affero General Public License
3704+# along with this program. If not, see <http://www.gnu.org/licenses/>.
3705+#
3706+##############################################################################
3707+
3708+from osv import fields, osv
3709+
3710+class accountSalereportWizard(osv.osv_memory):
3711+ _name = "invoicing.report.wiz"
3712+ _inherit = 'account.report.wiz'
3713+ _description = "Account Invoicing Report Wizard"
3714+
3715+ _columns = {
3716+ 'date_from': fields.date("Start Date"),
3717+ 'date_to': fields.date("End Date"),
3718+ 'account_tax_ids': fields.many2many('account.tax', string='Taxes'),
3719+ }
3720+
3721+ def _build_contexts(self, cr, uid, ids, data, context=None):
3722+ if context is None:
3723+ context = {}
3724+ result = {}
3725+
3726+ result['date_from'] = 'date_from' in data['form'] and data['form']['date_from'] or False
3727+ result['date_to'] = 'date_to' in data['form'] and data['form']['date_to'] or False
3728+
3729+ #m2m, m2o fields
3730+ result['account_tax_ids'] = 'account_tax_ids' in data['form'] and data['form']['account_tax_ids'] or False
3731+
3732+ return result
3733+
3734+ def _print_report(self, cr, uid, ids, data, context=None):
3735+ mimetype = self.pool.get('report.mimetypes')
3736+ report_obj = self.pool.get('ir.actions.report.xml')
3737+ report_name = ''
3738+
3739+ context = context or {}
3740+
3741+ #=======================================================================
3742+ # onchange_in_format method changes variable out_format depending of
3743+ # which in_format is choose.
3744+ # If out_format is pdf -> call record in odt format and if it's choose
3745+ # ods or xls -> call record in ods format.
3746+ # ods and xls format are editable format, because they are arranged
3747+ # to be changed by user and, for example, user can check and change info.
3748+ #=======================================================================
3749+
3750+ #=======================================================================
3751+ # If mimetype is PDF -> out_format = PDF (search odt record)
3752+ # If mimetype is xls or ods -> search ods record.
3753+ # If record doesn't exist, return a error.
3754+ #=======================================================================
3755+
3756+ #=======================================================================
3757+ # Create two differents records for each format, depends of the out_format
3758+ # selected, choose one of this records
3759+ #=======================================================================
3760+
3761+ #1. Find out_format selected
3762+ out_format_obj = mimetype.browse(cr, uid, [int(data['form']['out_format'])], context)[0]
3763+
3764+ #2. Check out_format and set report_name for each format
3765+ if out_format_obj.code == 'oo-pdf':
3766+ report_name = 'account_invoicing_report_odt'
3767+
3768+ elif out_format_obj.code == 'oo-xls' or out_format_obj.code == 'oo-ods':
3769+ report_name = 'account_invoicing_report_ods'
3770+
3771+ # If there not exist name, it's because not exist a record for this format
3772+ if report_name == '':
3773+ raise osv.except_osv(_('Error !'), _('There is no template defined for the selected format. Check if aeroo report exist.'))
3774+
3775+ else:
3776+ #Search record that match with the name, and get some extra information
3777+ report_xml_id = report_obj.search(cr, uid, [('report_name','=', report_name)],context=context)
3778+ report_xml = report_obj.browse(cr, uid, report_xml_id, context=context)[0]
3779+ data.update({'model': report_xml.model, 'report_type':'aeroo', 'id': report_xml.id})
3780+
3781+ #Write out_format choosed in wizard
3782+ report_xml.write({'out_format': out_format_obj.id}, context=context)
3783+
3784+ return {
3785+ 'type': 'ir.actions.report.xml',
3786+ 'report_name': report_name,
3787+ 'datas': data,
3788+ 'context':context
3789+ }
3790+
3791+ def check_report(self, cr, uid, ids, context=None):
3792+ if context is None:
3793+ context = {}
3794+
3795+ data = {}
3796+ data['form'] = self.read(cr, uid, ids, ['date_from','date_to','type','account_tax_ids','out_format'], context=context)[0]
3797+ #Extract ids for m2o and m2m fields
3798+ for field in ['account_tax_ids']:
3799+ if isinstance(data['form'][field], tuple):
3800+ data['form'][field] = data['form'][field][0]
3801+
3802+ #Check if the fields exist, otherwise put false in the field.
3803+ used_context = self._build_contexts(cr, uid, ids, data, context=context)
3804+ data['form']['used_context'] = used_context
3805+
3806+ return self._print_report(cr, uid, ids, data, context=context)
3807+
3808+
3809\ No newline at end of file
3810
3811=== added file 'account_invoicing_report/wizard/account_invoicing_report_wizard.xml'
3812--- account_invoicing_report/wizard/account_invoicing_report_wizard.xml 1970-01-01 00:00:00 +0000
3813+++ account_invoicing_report/wizard/account_invoicing_report_wizard.xml 2014-06-25 22:24:49 +0000
3814@@ -0,0 +1,37 @@
3815+<openerp>
3816+ <data>
3817+ <record id="account_invocing_report_wizard" model="ir.ui.view">
3818+ <field name="name">Account Invoicing Report Wizard</field>
3819+ <field name="model">invoicing.report.wiz</field>
3820+ <field name="arch" type="xml">
3821+ <form string="Report Options" version="7.0">
3822+ <separator string="Account Invoicing Report" colspan="4"/>
3823+ <label string="This report allows to print a account invoincing report by different search criteria."/>
3824+ <group col="4" string="General Options">
3825+ <field name="date_from" attrs="{'required': True}"/>
3826+ <field name="date_to" attrs="{'required': True}"/>
3827+ <field name="out_format" attrs="{'required': True}"/>
3828+ </group>
3829+ <group colspan="4" string="Taxes">
3830+ <field name="account_tax_ids" nolabel="1" />
3831+ </group>
3832+ <footer>
3833+ <button name="check_report" string="Print" type="object" default_focus="1" class="oe_highlight"/>
3834+ or
3835+ <button string="Cancel" class="oe_link" special="cancel" />
3836+ </footer>
3837+ </form>
3838+ </field>
3839+ </record>
3840+
3841+ <record id="action_account_invoicing_report_wizard" model="ir.actions.act_window">
3842+ <field name="name">Account Invoicing Report Wizard</field>
3843+ <field name="res_model">invoicing.report.wiz</field>
3844+ <field name="view_type">form</field>
3845+ <field name="view_mode">form</field>
3846+ <field name="view_id" ref="account_invocing_report_wizard"/>
3847+ <field name="target">new</field>
3848+ </record>
3849+
3850+ </data>
3851+</openerp>
3852
3853=== modified file 'account_withholding_tax_comissions/account_voucher_withholding_tax.py'
3854--- account_withholding_tax_comissions/account_voucher_withholding_tax.py 2013-07-05 21:54:06 +0000
3855+++ account_withholding_tax_comissions/account_voucher_withholding_tax.py 2014-06-25 22:24:49 +0000
3856@@ -30,9 +30,8 @@
3857 #Get move_lines for withholding tax
3858 def _get_withholding_move_lines(self, cr, uid, ids, *a):
3859 res = {}
3860- move_ids = []
3861-
3862 for voucher in self.browse(cr, uid, ids):
3863+ move_ids = []
3864 for move in voucher.withholding_move_ids:
3865 move_ids.append(move.id)
3866
3867@@ -44,9 +43,8 @@
3868 #Get move_lines reverse for withholding tax reverse
3869 def _get_withholding_move_lines_reverse(self, cr, uid, ids, *a):
3870 res = {}
3871- move_ids = []
3872-
3873 for voucher in self.browse(cr, uid, ids):
3874+ move_ids = []
3875 for move in voucher.withholding_move_ids:
3876 if move.move_reverse_id:
3877 move_ids.append(move.move_reverse_id.id)
3878@@ -115,6 +113,14 @@
3879 'withholding_move_line_ids_reverse':fields.function(_get_withholding_move_lines_reverse, string='Account Move Lines Reverse Withholding Tax', type='one2many', relation='account.move.line'),
3880 }
3881
3882+ def copy(self, cr, uid, id, default=None, context=None):
3883+ if default is None:
3884+ default = {}
3885+ default.update({
3886+ 'withholding_move_ids': False,
3887+ })
3888+ return super(accountVoucherinherit, self).copy(cr, uid, id, default, context=context)
3889+
3890 #Check if the required withholding tax are in optional withholding tax
3891 def _check_duplicate_withholding_tax(self, cr, uid, ids, context=None):
3892
3893
3894=== modified file 'budget/account_invoice.py'
3895--- budget/account_invoice.py 2013-11-19 06:17:18 +0000
3896+++ budget/account_invoice.py 2014-06-25 22:24:49 +0000
3897@@ -213,7 +213,13 @@
3898
3899 obj_bud_move._workflow_signal(cr, uid, [move_id], 'button_execute', context=context)
3900
3901- return validate_result
3902+ return validate_result
3903+
3904+ def copy(self, cr, uid, id, default=None, context=None):
3905+ if default is None:
3906+ default = {}
3907+ default.update({'budget_move_id': False})
3908+ return super(account_invoice, self).copy(cr, uid, id, default, context=context)
3909
3910 class account_invoice_line(osv.osv):
3911 _name = 'account.invoice.line'
3912
3913=== modified file 'budget/security/ir.model.access.csv'
3914--- budget/security/ir.model.access.csv 2014-02-19 15:17:19 +0000
3915+++ budget/security/ir.model.access.csv 2014-06-25 22:24:49 +0000
3916@@ -20,3 +20,8 @@
3917 access_budget_move_line_viewer,budget.move.line,model_budget_move_line,budget.group_budget_viewer,1,0,0,0
3918 access_budget_plan_viewer,budget.plan,model_budget_plan,budget.group_budget_viewer,1,0,0,0
3919 access_account_move_line_distribution_viewer,account.move.line.distribution,model_account_move_line_distribution,budget.group_budget_viewer,1,0,0,0
3920+access_budget_move_group_hr_manager,budget.move,model_budget_move,base.group_hr_manager,1,1,1,1
3921+access_program_line_group_hr_manager,budget.program.line,model_budget_program_line,base.group_hr_manager,1,1,1,1
3922+access_program_group_hr_manager,budget.program,model_budget_program,base.group_hr_manager,1,1,1,1
3923+access_plan_group_hr_manager,budget.plan,model_budget_plan,base.group_hr_manager,1,1,1,1
3924+access_move_line_group_hr_manager,budget.move.line,model_budget_move_line,base.group_hr_manager,1,1,1,1
3925
3926=== modified file 'ccorp_project_scrum/ccorp_project_scrum.py'
3927--- ccorp_project_scrum/ccorp_project_scrum.py 2014-06-09 18:43:38 +0000
3928+++ ccorp_project_scrum/ccorp_project_scrum.py 2014-06-25 22:24:49 +0000
3929@@ -674,7 +674,7 @@
3930 return True
3931
3932 _columns = {
3933- 'is_scrum': fields.related('project_id','is_scrum', string='Scrum', type='boolean', store=True),
3934+ 'is_scrum': fields.boolean('Scrum'),
3935 'product_backlog_id': fields.many2one('ccorp.project.scrum.product.backlog', string='Product Backlog',
3936 domain="[('project_id','=',project_id),'|',('state','=','open'),('state','=','pending')]"),
3937 'release_backlog_id': fields.many2one('ccorp.project.scrum.release.backlog', string='Release Backlog',
3938
3939=== modified file 'hr_contract_extended/security/ir.model.access.csv'
3940--- hr_contract_extended/security/ir.model.access.csv 2013-08-27 17:42:04 +0000
3941+++ hr_contract_extended/security/ir.model.access.csv 2014-06-25 22:24:49 +0000
3942@@ -1,5 +1,5 @@
3943-id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
3944-access_hr_contract_emp,hr.contract,model_hr_contract,base.group_user,1,0,0,0
3945-access_hr_salary_rule_emp,hr.salary.rule,model_hr_salary_rule,base.group_user,1,0,0,0
3946-access_hr_contract_academic_achievement_emp,hr.contract.academic.achievement,model_hr_contract_academic_achievement,base.group_user,1,0,0,0
3947-
3948+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
3949+access_hr_contract_emp,hr.contract,model_hr_contract,base.group_user,1,0,0,0
3950+access_hr_salary_rule_emp,hr.salary.rule,model_hr_salary_rule,base.group_user,1,0,0,0
3951+access_hr_contract_academic_achievement_emp,hr.contract.academic.achievement,model_hr_contract_academic_achievement,base.group_user,1,0,0,0
3952+access_hr_contract_academic_achievement_man,hr.contract.academic.achievement.manager,model_hr_contract_academic_achievement,base.group_hr_manager,1,1,1,1
3953
3954=== added directory 'hr_payroll_pay_generator'
3955=== added file 'hr_payroll_pay_generator/__init__.py'
3956--- hr_payroll_pay_generator/__init__.py 1970-01-01 00:00:00 +0000
3957+++ hr_payroll_pay_generator/__init__.py 2014-06-25 22:24:49 +0000
3958@@ -0,0 +1,24 @@
3959+# -*- coding: utf-8 -*-
3960+##############################################################################
3961+#
3962+# OpenERP, Open Source Management Solution
3963+# Addons modules by CLEARCORP S.A.
3964+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
3965+#
3966+# This program is free software: you can redistribute it and/or modify
3967+# it under the terms of the GNU Affero General Public License as
3968+# published by the Free Software Foundation, either version 3 of the
3969+# License, or (at your option) any later version.
3970+#
3971+# This program is distributed in the hope that it will be useful,
3972+# but WITHOUT ANY WARRANTY; without even the implied warranty of
3973+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3974+# GNU Affero General Public License for more details.
3975+#
3976+# You should have received a copy of the GNU Affero General Public License
3977+# along with this program. If not, see <http://www.gnu.org/licenses/>.
3978+#
3979+##############################################################################
3980+
3981+import hr_payroll_pay_generator
3982+import wizard
3983\ No newline at end of file
3984
3985=== added file 'hr_payroll_pay_generator/__openerp__.py'
3986--- hr_payroll_pay_generator/__openerp__.py 1970-01-01 00:00:00 +0000
3987+++ hr_payroll_pay_generator/__openerp__.py 2014-06-25 22:24:49 +0000
3988@@ -0,0 +1,50 @@
3989+# -*- coding: utf-8 -*-
3990+##############################################################################
3991+#
3992+# OpenERP, Open Source Management Solution
3993+# Addons modules by CLEARCORP S.A.
3994+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
3995+#
3996+# This program is free software: you can redistribute it and/or modify
3997+# it under the terms of the GNU Affero General Public License as
3998+# published by the Free Software Foundation, either version 3 of the
3999+# License, or (at your option) any later version.
4000+#
4001+# This program is distributed in the hope that it will be useful,
4002+# but WITHOUT ANY WARRANTY; without even the implied warranty of
4003+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4004+# GNU Affero General Public License for more details.
4005+#
4006+# You should have received a copy of the GNU Affero General Public License
4007+# along with this program. If not, see <http://www.gnu.org/licenses/>.
4008+#
4009+##############################################################################
4010+
4011+{
4012+ 'name': 'Payroll Pay Generator',
4013+ 'version': '1.0',
4014+ 'category': 'Hidden',
4015+ 'sequence': 3,
4016+ 'summary': 'Base for Payroll Generators',
4017+ 'description': """
4018+Base for Payroll Generators
4019+===========================
4020+
4021+Provide a common base for Payroll Generator""",
4022+ 'author': 'CLEARCORP S.A.',
4023+ 'website': 'http://clearcorp.co.cr',
4024+ 'complexity': 'easy',
4025+ 'images' : [],
4026+ 'depends': ['hr_payroll'],
4027+ 'data': [
4028+ 'view/hr_payroll_pay_generator_view.xml',
4029+ 'wizard/wizard.xml',
4030+ 'security/ir.model.access.csv',
4031+ ],
4032+ 'test' : [],
4033+ 'demo': [],
4034+ 'installable': True,
4035+ 'auto_install': False,
4036+ 'application': False,
4037+ 'license': 'AGPL-3',
4038+}
4039\ No newline at end of file
4040
4041=== added file 'hr_payroll_pay_generator/hr_payroll_pay_generator.py'
4042--- hr_payroll_pay_generator/hr_payroll_pay_generator.py 1970-01-01 00:00:00 +0000
4043+++ hr_payroll_pay_generator/hr_payroll_pay_generator.py 2014-06-25 22:24:49 +0000
4044@@ -0,0 +1,36 @@
4045+# -*- coding: utf-8 -*-
4046+##############################################################################
4047+#
4048+# OpenERP, Open Source Management Solution
4049+# Addons modules by CLEARCORP S.A.
4050+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
4051+#
4052+# This program is free software: you can redistribute it and/or modify
4053+# it under the terms of the GNU Affero General Public License as
4054+# published by the Free Software Foundation, either version 3 of the
4055+# License, or (at your option) any later version.
4056+#
4057+# This program is distributed in the hope that it will be useful,
4058+# but WITHOUT ANY WARRANTY; without even the implied warranty of
4059+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4060+# GNU Affero General Public License for more details.
4061+#
4062+# You should have received a copy of the GNU Affero General Public License
4063+# along with this program. If not, see <http://www.gnu.org/licenses/>.
4064+#
4065+##############################################################################
4066+
4067+from openerp.osv import osv, fields
4068+
4069+class PayType(osv.Model):
4070+ """Pay Type"""
4071+
4072+ _name = 'hr.payroll.pay.generator.pay.type'
4073+
4074+ _description = __doc__
4075+
4076+ _columns = {
4077+ 'code': fields.char('Code', size=16, required=True, readonly=True),
4078+ 'name': fields.char('Name', size=64),
4079+ 'description': fields.text('Description'),
4080+ }
4081\ No newline at end of file
4082
4083=== added directory 'hr_payroll_pay_generator/i18n'
4084=== added file 'hr_payroll_pay_generator/i18n/es.po'
4085--- hr_payroll_pay_generator/i18n/es.po 1970-01-01 00:00:00 +0000
4086+++ hr_payroll_pay_generator/i18n/es.po 2014-06-25 22:24:49 +0000
4087@@ -0,0 +1,90 @@
4088+# Translation of OpenERP Server.
4089+# This file contains the translation of the following modules:
4090+# * hr_payroll_pay_generator
4091+#
4092+msgid ""
4093+msgstr ""
4094+"Project-Id-Version: OpenERP Server 7.0\n"
4095+"Report-Msgid-Bugs-To: \n"
4096+"POT-Creation-Date: 2014-06-25 22:16+0000\n"
4097+"PO-Revision-Date: 2014-06-25 22:16+0000\n"
4098+"Last-Translator: <>\n"
4099+"Language-Team: \n"
4100+"MIME-Version: 1.0\n"
4101+"Content-Type: text/plain; charset=UTF-8\n"
4102+"Content-Transfer-Encoding: \n"
4103+"Plural-Forms: \n"
4104+
4105+#. module: hr_payroll_pay_generator
4106+#: view:hr.payroll.pay.generator.pay.type:0
4107+#: model:ir.actions.act_window,name:hr_payroll_pay_generator.action_pay_type
4108+#: model:ir.ui.menu,name:hr_payroll_pay_generator.menu_pay_type
4109+msgid "Pay Types"
4110+msgstr "Tipos de pago"
4111+
4112+#. module: hr_payroll_pay_generator
4113+#: view:hr.payroll.pay.generator.generator.wizard:0
4114+msgid "Execute"
4115+msgstr "Ejecutar"
4116+
4117+#. module: hr_payroll_pay_generator
4118+#: field:hr.payroll.pay.generator.pay.type,code:0
4119+msgid "Code"
4120+msgstr "Código"
4121+
4122+#. module: hr_payroll_pay_generator
4123+#: field:hr.payroll.pay.generator.pay.type,description:0
4124+msgid "Description"
4125+msgstr "Descripción"
4126+
4127+#. module: hr_payroll_pay_generator
4128+#: field:hr.payroll.pay.generator.generator.wizard,employee_ids:0
4129+msgid "Employees"
4130+msgstr "Empleados"
4131+
4132+#. module: hr_payroll_pay_generator
4133+#: field:hr.payroll.pay.generator.generator.wizard,payslip_run_id:0
4134+msgid "Payslip Batch"
4135+msgstr "Lote de Nómina"
4136+
4137+#. module: hr_payroll_pay_generator
4138+#: model:ir.actions.act_window,name:hr_payroll_pay_generator.action_generator_wizard
4139+#: model:ir.ui.menu,name:hr_payroll_pay_generator.menu_generator_wizard
4140+msgid "Pay Generator"
4141+msgstr "Generador de pagos"
4142+
4143+#. module: hr_payroll_pay_generator
4144+#: view:hr.payroll.pay.generator.generator.wizard:0
4145+msgid "Generator Wizard"
4146+msgstr "Asistente de generador"
4147+
4148+#. module: hr_payroll_pay_generator
4149+#: field:hr.payroll.pay.generator.generator.wizard,pay_type_id:0
4150+#: model:ir.model,name:hr_payroll_pay_generator.model_hr_payroll_pay_generator_pay_type
4151+msgid "Pay Type"
4152+msgstr "Tipo de pago"
4153+
4154+#. module: hr_payroll_pay_generator
4155+#: view:hr.payroll.pay.generator.generator.wizard:0
4156+msgid "Cancel"
4157+msgstr "Descartar"
4158+
4159+#. module: hr_payroll_pay_generator
4160+#: field:hr.payroll.pay.generator.generator.wizard,salary_rule_id:0
4161+msgid "Salary Rule"
4162+msgstr "Regla de salario"
4163+
4164+#. module: hr_payroll_pay_generator
4165+#: view:hr.payroll.pay.generator.generator.wizard:0
4166+msgid "or"
4167+msgstr "o"
4168+
4169+#. module: hr_payroll_pay_generator
4170+#: view:hr.payroll.pay.generator.generator.wizard:0
4171+msgid "Are you sure you want to continue?"
4172+msgstr "¿Estás seguro que deseas continuar?"
4173+
4174+#. module: hr_payroll_pay_generator
4175+#: field:hr.payroll.pay.generator.pay.type,name:0
4176+msgid "Name"
4177+msgstr "Nombre"
4178
4179=== added file 'hr_payroll_pay_generator/i18n/hr_payroll_pay_generator.pot'
4180--- hr_payroll_pay_generator/i18n/hr_payroll_pay_generator.pot 1970-01-01 00:00:00 +0000
4181+++ hr_payroll_pay_generator/i18n/hr_payroll_pay_generator.pot 2014-06-25 22:24:49 +0000
4182@@ -0,0 +1,90 @@
4183+# Translation of OpenERP Server.
4184+# This file contains the translation of the following modules:
4185+# * hr_payroll_pay_generator
4186+#
4187+msgid ""
4188+msgstr ""
4189+"Project-Id-Version: OpenERP Server 7.0\n"
4190+"Report-Msgid-Bugs-To: \n"
4191+"POT-Creation-Date: 2014-06-25 22:16+0000\n"
4192+"PO-Revision-Date: 2014-06-25 22:16+0000\n"
4193+"Last-Translator: <>\n"
4194+"Language-Team: \n"
4195+"MIME-Version: 1.0\n"
4196+"Content-Type: text/plain; charset=UTF-8\n"
4197+"Content-Transfer-Encoding: \n"
4198+"Plural-Forms: \n"
4199+
4200+#. module: hr_payroll_pay_generator
4201+#: view:hr.payroll.pay.generator.pay.type:0
4202+#: model:ir.actions.act_window,name:hr_payroll_pay_generator.action_pay_type
4203+#: model:ir.ui.menu,name:hr_payroll_pay_generator.menu_pay_type
4204+msgid "Pay Types"
4205+msgstr ""
4206+
4207+#. module: hr_payroll_pay_generator
4208+#: view:hr.payroll.pay.generator.generator.wizard:0
4209+msgid "Execute"
4210+msgstr ""
4211+
4212+#. module: hr_payroll_pay_generator
4213+#: field:hr.payroll.pay.generator.pay.type,code:0
4214+msgid "Code"
4215+msgstr ""
4216+
4217+#. module: hr_payroll_pay_generator
4218+#: field:hr.payroll.pay.generator.pay.type,description:0
4219+msgid "Description"
4220+msgstr ""
4221+
4222+#. module: hr_payroll_pay_generator
4223+#: field:hr.payroll.pay.generator.generator.wizard,employee_ids:0
4224+msgid "Employees"
4225+msgstr ""
4226+
4227+#. module: hr_payroll_pay_generator
4228+#: field:hr.payroll.pay.generator.generator.wizard,payslip_run_id:0
4229+msgid "Payslip Batch"
4230+msgstr ""
4231+
4232+#. module: hr_payroll_pay_generator
4233+#: model:ir.actions.act_window,name:hr_payroll_pay_generator.action_generator_wizard
4234+#: model:ir.ui.menu,name:hr_payroll_pay_generator.menu_generator_wizard
4235+msgid "Pay Generator"
4236+msgstr ""
4237+
4238+#. module: hr_payroll_pay_generator
4239+#: view:hr.payroll.pay.generator.generator.wizard:0
4240+msgid "Generator Wizard"
4241+msgstr ""
4242+
4243+#. module: hr_payroll_pay_generator
4244+#: field:hr.payroll.pay.generator.generator.wizard,pay_type_id:0
4245+#: model:ir.model,name:hr_payroll_pay_generator.model_hr_payroll_pay_generator_pay_type
4246+msgid "Pay Type"
4247+msgstr ""
4248+
4249+#. module: hr_payroll_pay_generator
4250+#: view:hr.payroll.pay.generator.generator.wizard:0
4251+msgid "Cancel"
4252+msgstr ""
4253+
4254+#. module: hr_payroll_pay_generator
4255+#: field:hr.payroll.pay.generator.generator.wizard,salary_rule_id:0
4256+msgid "Salary Rule"
4257+msgstr ""
4258+
4259+#. module: hr_payroll_pay_generator
4260+#: view:hr.payroll.pay.generator.generator.wizard:0
4261+msgid "or"
4262+msgstr ""
4263+
4264+#. module: hr_payroll_pay_generator
4265+#: view:hr.payroll.pay.generator.generator.wizard:0
4266+msgid "Are you sure you want to continue?"
4267+msgstr ""
4268+
4269+#. module: hr_payroll_pay_generator
4270+#: field:hr.payroll.pay.generator.pay.type,name:0
4271+msgid "Name"
4272+msgstr ""
4273
4274=== added directory 'hr_payroll_pay_generator/security'
4275=== added file 'hr_payroll_pay_generator/security/ir.model.access.csv'
4276--- hr_payroll_pay_generator/security/ir.model.access.csv 1970-01-01 00:00:00 +0000
4277+++ hr_payroll_pay_generator/security/ir.model.access.csv 2014-06-25 22:24:49 +0000
4278@@ -0,0 +1,3 @@
4279+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
4280+access_pay_type_user,access.pay.type.user,model_hr_payroll_pay_generator_pay_type,base.group_user,1,0,0,0
4281+access_pay_type_system,access.pay.type.system,model_hr_payroll_pay_generator_pay_type,base.group_system,1,1,0,0
4282
4283=== added directory 'hr_payroll_pay_generator/view'
4284=== added file 'hr_payroll_pay_generator/view/hr_payroll_pay_generator_view.xml'
4285--- hr_payroll_pay_generator/view/hr_payroll_pay_generator_view.xml 1970-01-01 00:00:00 +0000
4286+++ hr_payroll_pay_generator/view/hr_payroll_pay_generator_view.xml 2014-06-25 22:24:49 +0000
4287@@ -0,0 +1,44 @@
4288+<?xml version="1.0" encoding="UTF-8"?>
4289+<openerp>
4290+ <data>
4291+ <!-- Views -->
4292+ <record id="view_pay_type_tree" model="ir.ui.view">
4293+ <field name="name">view.pay.type.tree</field>
4294+ <field name="model">hr.payroll.pay.generator.pay.type</field>
4295+ <field name="priority" eval="16"/>
4296+ <field name="arch" type="xml">
4297+ <tree string="Pay Types" editable="top">
4298+ <field name="code"/>
4299+ <field name="name"/>
4300+ <field name="description"/>
4301+ </tree>
4302+ </field>
4303+ </record>
4304+ <!-- Actions -->
4305+ <record id="action_generator_wizard" model="ir.actions.act_window">
4306+ <field name="name">Pay Generator</field>
4307+ <field name="res_model">hr.payroll.pay.generator.generator.wizard</field>
4308+ <field name="view_type">form</field>
4309+ <field name="view_mode">form</field>
4310+ <field name="target">new</field>
4311+ </record>
4312+ <record id="action_pay_type" model="ir.actions.act_window">
4313+ <field name="name">Pay Types</field>
4314+ <field name="res_model">hr.payroll.pay.generator.pay.type</field>
4315+ <field name="view_type">form</field>
4316+ <field name="view_mode">tree</field>
4317+ </record>
4318+ <!-- Menu Items -->
4319+ <menuitem id="menu_generator_wizard"
4320+ parent="hr_payroll.menu_hr_root_payroll"
4321+ name="Pay Generator"
4322+ action="action_generator_wizard"
4323+ sequence="15"
4324+ groups="base.group_hr_manager"/>
4325+ <menuitem id="menu_pay_type"
4326+ parent="hr_payroll.payroll_configure"
4327+ name="Pay Types"
4328+ action="action_pay_type"
4329+ sequence="15"/>
4330+ </data>
4331+</openerp>
4332\ No newline at end of file
4333
4334=== added directory 'hr_payroll_pay_generator/wizard'
4335=== added file 'hr_payroll_pay_generator/wizard/__init__.py'
4336--- hr_payroll_pay_generator/wizard/__init__.py 1970-01-01 00:00:00 +0000
4337+++ hr_payroll_pay_generator/wizard/__init__.py 2014-06-25 22:24:49 +0000
4338@@ -0,0 +1,23 @@
4339+# -*- coding: utf-8 -*-
4340+##############################################################################
4341+#
4342+# OpenERP, Open Source Management Solution
4343+# Addons modules by CLEARCORP S.A.
4344+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
4345+#
4346+# This program is free software: you can redistribute it and/or modify
4347+# it under the terms of the GNU Affero General Public License as
4348+# published by the Free Software Foundation, either version 3 of the
4349+# License, or (at your option) any later version.
4350+#
4351+# This program is distributed in the hope that it will be useful,
4352+# but WITHOUT ANY WARRANTY; without even the implied warranty of
4353+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4354+# GNU Affero General Public License for more details.
4355+#
4356+# You should have received a copy of the GNU Affero General Public License
4357+# along with this program. If not, see <http://www.gnu.org/licenses/>.
4358+#
4359+##############################################################################
4360+
4361+import generator_wizard
4362\ No newline at end of file
4363
4364=== added file 'hr_payroll_pay_generator/wizard/generator_wizard.py'
4365--- hr_payroll_pay_generator/wizard/generator_wizard.py 1970-01-01 00:00:00 +0000
4366+++ hr_payroll_pay_generator/wizard/generator_wizard.py 2014-06-25 22:24:49 +0000
4367@@ -0,0 +1,37 @@
4368+# -*- coding: utf-8 -*-
4369+##############################################################################
4370+#
4371+# OpenERP, Open Source Management Solution
4372+# Addons modules by CLEARCORP S.A.
4373+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
4374+#
4375+# This program is free software: you can redistribute it and/or modify
4376+# it under the terms of the GNU Affero General Public License as
4377+# published by the Free Software Foundation, either version 3 of the
4378+# License, or (at your option) any later version.
4379+#
4380+# This program is distributed in the hope that it will be useful,
4381+# but WITHOUT ANY WARRANTY; without even the implied warranty of
4382+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4383+# GNU Affero General Public License for more details.
4384+#
4385+# You should have received a copy of the GNU Affero General Public License
4386+# along with this program. If not, see <http://www.gnu.org/licenses/>.
4387+#
4388+##############################################################################
4389+
4390+from openerp.osv import osv, fields
4391+
4392+class GeneratorWizard(osv.TransientModel):
4393+
4394+ _name = 'hr.payroll.pay.generator.generator.wizard'
4395+
4396+ def generator_exectute(self, cr, uid, ids, context=None):
4397+ return True
4398+
4399+ _columns = {
4400+ 'pay_type_id': fields.many2one('hr.payroll.pay.generator.pay.type', string='Pay Type', required=True),
4401+ 'payslip_run_id': fields.many2one('hr.payslip.run', string='Payslip Batch', required=True),
4402+ 'salary_rule_id': fields.many2one('hr.salary.rule', string='Salary Rule', required=True),
4403+ 'employee_ids': fields.many2many('hr.employee', string='Employees', required=True),
4404+ }
4405\ No newline at end of file
4406
4407=== added file 'hr_payroll_pay_generator/wizard/wizard.xml'
4408--- hr_payroll_pay_generator/wizard/wizard.xml 1970-01-01 00:00:00 +0000
4409+++ hr_payroll_pay_generator/wizard/wizard.xml 2014-06-25 22:24:49 +0000
4410@@ -0,0 +1,28 @@
4411+<?xml version="1.0" encoding='UTF-8'?>
4412+<openerp>
4413+ <data>
4414+ <record id="view_generator_wizard_form" model="ir.ui.view">
4415+ <field name="name">view.generator.wizard.form</field>
4416+ <field name="model">hr.payroll.pay.generator.generator.wizard</field>
4417+ <field name="priority" eval="16"/>
4418+ <field name="arch" type="xml">
4419+ <form string="Generator Wizard" version="7.0">
4420+ <group>
4421+ <group>
4422+ <field name="pay_type_id" widget="selection"/>
4423+ </group>
4424+ <group>
4425+ <field name="payslip_run_id" widget="selection"/>
4426+ <field name="salary_rule_id" widget="selection"/>
4427+ </group>
4428+ <field name="employee_ids" nolabel="1" colspan="2"/>
4429+ </group>
4430+ <footer>
4431+ <button string="Execute" name="generator_exectute" type="object" confirm="Are you sure you want to continue?" class="oe_highlight"/> or
4432+ <button string="Cancel" class="oe_link" special="cancel"/>
4433+ </footer>
4434+ </form>
4435+ </field>
4436+ </record>
4437+ </data>
4438+</openerp>
4439\ No newline at end of file
4440
4441=== modified file 'hr_personnel_actions/hr_personnel_actions.py'
4442--- hr_personnel_actions/hr_personnel_actions.py 2013-10-09 18:11:33 +0000
4443+++ hr_personnel_actions/hr_personnel_actions.py 2014-06-25 22:24:49 +0000
4444@@ -52,6 +52,8 @@
4445 class personnelActionsPersonnelAction(osv.Model):
4446 _name = 'hr.personnel.actions.personnel.action'
4447
4448+ _rec_name = 'title'
4449+
4450 def create(self, cr ,uid, values, context=None):
4451 values['sequence'] = self.pool.get('ir.sequence').get(cr, uid, 'personnel.actions')
4452 return super(personnelActionsPersonnelAction,self).create(cr, uid, values, context=context)
4453
4454=== modified symlink 'hr_personnel_actions/i18n/es.po'
4455=== target was u'es_CR.po'
4456--- hr_personnel_actions/i18n/es.po 1970-01-01 00:00:00 +0000
4457+++ hr_personnel_actions/i18n/es.po 2014-06-25 22:24:49 +0000
4458@@ -0,0 +1,237 @@
4459+# Translation of OpenERP Server.
4460+# This file contains the translation of the following modules:
4461+# * hr_personnel_actions
4462+#
4463+msgid ""
4464+msgstr ""
4465+"Project-Id-Version: OpenERP Server 7.0\n"
4466+"Report-Msgid-Bugs-To: \n"
4467+"POT-Creation-Date: 2014-06-19 15:14+0000\n"
4468+"PO-Revision-Date: 2014-06-19 15:14+0000\n"
4469+"Last-Translator: <>\n"
4470+"Language-Team: \n"
4471+"MIME-Version: 1.0\n"
4472+"Content-Type: text/plain; charset=UTF-8\n"
4473+"Content-Transfer-Encoding: \n"
4474+"Plural-Forms: \n"
4475+
4476+#. module: hr_personnel_actions
4477+#: selection:hr.personnel.actions.configuration,key:0
4478+msgid "Contract Wage"
4479+msgstr "Salario del Contrato"
4480+
4481+#. module: hr_personnel_actions
4482+#: view:hr.personnel.actions.personnel.action:0
4483+#: field:hr.personnel.actions.personnel.action,title:0
4484+msgid "Title"
4485+msgstr "Título"
4486+
4487+#. module: hr_personnel_actions
4488+#: selection:hr.personnel.actions.configuration,key:0
4489+#: model:hr.personnel.actions.type,type:hr_personnel_actions.personnel_type_payroll
4490+msgid "Contract Payroll"
4491+msgstr "Nómina del Contrato"
4492+
4493+#. module: hr_personnel_actions
4494+#: code:addons/hr_personnel_actions/hr_personnel_actions.py:108
4495+#, python-format
4496+msgid "Duration has been modified. The new value for end date is:"
4497+msgstr "La duración ha sido modificada. El nuevo valor para la fecha final es:"
4498+
4499+#. module: hr_personnel_actions
4500+#: model:ir.ui.menu,name:hr_personnel_actions.menu_action_type
4501+msgid "Types of Actions"
4502+msgstr "Tipos de Acciones"
4503+
4504+#. module: hr_personnel_actions
4505+#: view:hr.personnel.actions.personnel.action:0
4506+#: field:hr.personnel.actions.personnel.action,employee_id:0
4507+#: model:ir.model,name:hr_personnel_actions.model_hr_employee
4508+msgid "Employee"
4509+msgstr "Empleado"
4510+
4511+#. module: hr_personnel_actions
4512+#: view:hr.personnel.actions.personnel.action:0
4513+#: field:hr.personnel.actions.personnel.action,type_id:0
4514+#: field:hr.personnel.actions.type,type:0
4515+msgid "Type"
4516+msgstr "Tipo"
4517+
4518+#. module: hr_personnel_actions
4519+#: view:hr.personnel.actions.personnel.action:0
4520+msgid "Title..."
4521+msgstr "Título"
4522+
4523+#. module: hr_personnel_actions
4524+#: view:hr.personnel.actions.personnel.action:0
4525+#: field:hr.personnel.actions.personnel.action,description:0
4526+msgid "Description"
4527+msgstr "Descripción"
4528+
4529+#. module: hr_personnel_actions
4530+#: view:hr.personnel.actions.personnel.action:0
4531+msgid "Group by..."
4532+msgstr "Agrupar por..."
4533+
4534+#. module: hr_personnel_actions
4535+#: model:ir.actions.act_window,name:hr_personnel_actions.action_action_type
4536+msgid "Personnel Action Types"
4537+msgstr "Tipos de Acciones de Personal"
4538+
4539+#. module: hr_personnel_actions
4540+#: model:ir.ui.menu,name:hr_personnel_actions.menu_action_personnel_action
4541+msgid "Personnel Action"
4542+msgstr "Acción de Personal"
4543+
4544+#. module: hr_personnel_actions
4545+#: model:hr.personnel.actions.type,type:hr_personnel_actions.personnel_type_admonishment
4546+msgid "Employee Admonishment"
4547+msgstr "Amonestación al Empleado"
4548+
4549+#. module: hr_personnel_actions
4550+#: field:hr.personnel.actions.configuration,key:0
4551+msgid "Key"
4552+msgstr "Llave"
4553+
4554+#. module: hr_personnel_actions
4555+#: view:hr.personnel.actions.personnel.action:0
4556+#: field:hr.personnel.actions.personnel.action,date:0
4557+#: report:ir.actions.report.xml:hr_personnel_actions.user_personnel_action_report_id
4558+msgid "Date"
4559+msgstr "Fecha"
4560+
4561+#. module: hr_personnel_actions
4562+#: model:ir.actions.report.xml,name:hr_personnel_actions.user_personnel_action_report_id
4563+msgid "User Personnel Actions Report"
4564+msgstr "Reporte de Acciones de Personal"
4565+
4566+#. module: hr_personnel_actions
4567+#: model:ir.actions.act_window,help:hr_personnel_actions.action_action_type
4568+msgid "<p class=\"oe_view_nocontent_create\">Create new personnel action type</p>\n"
4569+" "
4570+msgstr "<p class=\"oe_view_nocontent_create\">Crear nuevo tipo de acción de personal</p>\n"
4571+" "
4572+
4573+#. module: hr_personnel_actions
4574+#: code:addons/hr_personnel_actions/hr_personnel_actions.py:91
4575+#, python-format
4576+msgid "The old value was:"
4577+msgstr "El antiguo valor era"
4578+
4579+#. module: hr_personnel_actions
4580+#: report:ir.actions.report.xml:hr_personnel_actions.user_personnel_action_report_id
4581+#: model:ir.actions.report.xml,name:hr_personnel_actions.personnel_action_report_id
4582+msgid "Personnel Actions Report"
4583+msgstr "Reporte de Acciones de Personal"
4584+
4585+#. module: hr_personnel_actions
4586+#: model:hr.personnel.actions.type,type:hr_personnel_actions.personnel_type_contract
4587+#: model:ir.model,name:hr_personnel_actions.model_hr_contract
4588+msgid "Contract"
4589+msgstr "Contrato"
4590+
4591+#. module: hr_personnel_actions
4592+#: view:hr.personnel.actions.configuration:0
4593+#: model:ir.actions.act_window,name:hr_personnel_actions.action_module_config
4594+#: model:ir.ui.menu,name:hr_personnel_actions.menu_module_config
4595+msgid "Personnel Actions Configuration"
4596+msgstr "Configuración de Acciones de Personal"
4597+
4598+#. module: hr_personnel_actions
4599+#: code:addons/hr_personnel_actions/hr_personnel_actions.py:79
4600+#, python-format
4601+msgid "Contract Modifications"
4602+msgstr "Modificaciones al contrato"
4603+
4604+#. module: hr_personnel_actions
4605+#: model:ir.actions.act_window,help:hr_personnel_actions.action_personnel_action
4606+msgid "<p class=\"oe_view_nocontent_create\">Create new personnel action</p>\n"
4607+" "
4608+msgstr "<p class=\"oe_view_nocontent_create\">Crear nueva acción de personal</p>\n"
4609+" "
4610+
4611+#. module: hr_personnel_actions
4612+#: view:hr.personnel.actions.personnel.action:0
4613+msgid "autogenerated sequence"
4614+msgstr "sequencia autogenerada"
4615+
4616+#. module: hr_personnel_actions
4617+#: view:hr.employee:0
4618+#: field:hr.employee,personnel_action_ids:0
4619+#: view:hr.personnel.actions.personnel.action:0
4620+#: model:ir.actions.act_window,name:hr_personnel_actions.action_personnel_action
4621+msgid "Personnel Actions"
4622+msgstr "Acciones de Personal"
4623+
4624+#. module: hr_personnel_actions
4625+#: model:hr.personnel.actions.type,type:hr_personnel_actions.personnel_type_fines
4626+msgid "Employee Fines"
4627+msgstr "Multas al Empleado"
4628+
4629+#. module: hr_personnel_actions
4630+#: sql_constraint:hr.personnel.actions.configuration:0
4631+msgid "Keys cannot be duplicated"
4632+msgstr "Las llaves no puedes ser duplicadas"
4633+
4634+#. module: hr_personnel_actions
4635+#: model:ir.actions.act_window,help:hr_personnel_actions.action_module_config
4636+msgid "<p class=\"oe_view_nocontent_create\">Create new personnel configuration</p>\n"
4637+" "
4638+msgstr "<p class=\"oe_view_nocontent_create\">Crear nueva configuración de personal</p>\n"
4639+" "
4640+
4641+#. module: hr_personnel_actions
4642+#: field:hr.personnel.actions.personnel.action,sequence:0
4643+msgid "Sequence"
4644+msgstr "Secuencia"
4645+
4646+#. module: hr_personnel_actions
4647+#: report:ir.actions.report.xml:hr_personnel_actions.user_personnel_action_report_id
4648+msgid "of"
4649+msgstr "de"
4650+
4651+#. module: hr_personnel_actions
4652+#: view:hr.personnel.actions.personnel.action:0
4653+msgid "General Information"
4654+msgstr "Información General"
4655+
4656+#. module: hr_personnel_actions
4657+#: code:addons/hr_personnel_actions/hr_personnel_actions.py:87
4658+#, python-format
4659+msgid "Personnel Actions Error"
4660+msgstr "Error Acciones de Personal"
4661+
4662+#. module: hr_personnel_actions
4663+#: field:hr.personnel.actions.configuration,action_type_id:0
4664+#: view:hr.personnel.actions.personnel.action:0
4665+msgid "Action Type"
4666+msgstr "Tipo de Acción"
4667+
4668+#. module: hr_personnel_actions
4669+#: code:addons/hr_personnel_actions/hr_personnel_actions.py:87
4670+#, python-format
4671+msgid "System cannot create the respective personnel action"
4672+msgstr "El sistema no puede crear la acción de personal respectiva"
4673+
4674+#. module: hr_personnel_actions
4675+#: code:addons/hr_personnel_actions/hr_personnel_actions.py:96
4676+#, python-format
4677+msgid "Wage has been modified. The new value for wage is:"
4678+msgstr "El salario ha sido modificado. El nuevo valor para el salario es:"
4679+
4680+#. module: hr_personnel_actions
4681+#: code:addons/hr_personnel_actions/hr_personnel_actions.py:102
4682+#, python-format
4683+msgid "Duration has been modified. The new value for start date is:"
4684+msgstr "La duración ha sido modificada. El nuevo valor para la fecha inicial es:"
4685+
4686+#. module: hr_personnel_actions
4687+#: code:addons/hr_personnel_actions/hr_personnel_actions.py:114
4688+#, python-format
4689+msgid "The salary structure has been modified. The new value is:"
4690+msgstr "La estructura salarial ha sido modificada. El nuevo valor es:"
4691+
4692+#. module: hr_personnel_actions
4693+#: selection:hr.personnel.actions.configuration,key:0
4694+msgid "Contract Duration"
4695+msgstr "Duración del Contrato"
4696
4697=== removed file 'hr_personnel_actions/i18n/es_CR.po'
4698--- hr_personnel_actions/i18n/es_CR.po 2013-10-01 20:13:37 +0000
4699+++ hr_personnel_actions/i18n/es_CR.po 1970-01-01 00:00:00 +0000
4700@@ -1,228 +0,0 @@
4701-# Translation of OpenERP Server.
4702-# This file contains the translation of the following modules:
4703-# * hr_personnel_actions
4704-#
4705-msgid ""
4706-msgstr ""
4707-"Project-Id-Version: OpenERP Server 7.0\n"
4708-"Report-Msgid-Bugs-To: \n"
4709-"POT-Creation-Date: 2013-10-01 20:06+0000\n"
4710-"PO-Revision-Date: 2013-10-01 20:06+0000\n"
4711-"Last-Translator: <>\n"
4712-"Language-Team: \n"
4713-"MIME-Version: 1.0\n"
4714-"Content-Type: text/plain; charset=UTF-8\n"
4715-"Content-Transfer-Encoding: \n"
4716-"Plural-Forms: \n"
4717-
4718-#. module: hr_personnel_actions
4719-#: selection:hr.personnel.actions.configuration,key:0
4720-msgid "Contract Wage"
4721-msgstr "Salario del Contrato"
4722-
4723-#. module: hr_personnel_actions
4724-#: view:hr.personnel.actions.personnel.action:0
4725-#: field:hr.personnel.actions.personnel.action,title:0
4726-msgid "Title"
4727-msgstr "Título"
4728-
4729-#. module: hr_personnel_actions
4730-#: selection:hr.personnel.actions.configuration,key:0
4731-#: model:hr.personnel.actions.type,type:hr_personnel_actions.personnel_type_payroll
4732-msgid "Contract Payroll"
4733-msgstr "Nómina del Contrato"
4734-
4735-#. module: hr_personnel_actions
4736-#: code:addons/hr_personnel_actions/hr_personnel_actions.py:101
4737-#, python-format
4738-msgid "Duration has been modified. The new value for end date is:"
4739-msgstr "La duración ha sido modificada. El nuevo valor para la fecha final es:"
4740-
4741-#. module: hr_personnel_actions
4742-#: model:ir.ui.menu,name:hr_personnel_actions.menu_action_type
4743-msgid "Types of Actions"
4744-msgstr "Tipos de Acciones"
4745-
4746-#. module: hr_personnel_actions
4747-#: view:hr.personnel.actions.personnel.action:0
4748-#: field:hr.personnel.actions.personnel.action,employee_id:0
4749-#: model:ir.model,name:hr_personnel_actions.model_hr_employee
4750-msgid "Employee"
4751-msgstr "Empleado"
4752-
4753-#. module: hr_personnel_actions
4754-#: view:hr.personnel.actions.personnel.action:0
4755-#: field:hr.personnel.actions.personnel.action,type_id:0
4756-#: field:hr.personnel.actions.type,type:0
4757-msgid "Type"
4758-msgstr "Tipo"
4759-
4760-#. module: hr_personnel_actions
4761-#: view:hr.personnel.actions.personnel.action:0
4762-msgid "Title..."
4763-msgstr "Título"
4764-
4765-#. module: hr_personnel_actions
4766-#: view:hr.personnel.actions.personnel.action:0
4767-#: field:hr.personnel.actions.personnel.action,description:0
4768-msgid "Description"
4769-msgstr "Descripción"
4770-
4771-#. module: hr_personnel_actions
4772-#: view:hr.personnel.actions.personnel.action:0
4773-msgid "Group by..."
4774-msgstr "Agrupar por..."
4775-
4776-#. module: hr_personnel_actions
4777-#: model:ir.actions.act_window,name:hr_personnel_actions.action_action_type
4778-msgid "Personnel Action Types"
4779-msgstr "Tipos de Acciones de Personal"
4780-
4781-#. module: hr_personnel_actions
4782-#: model:ir.ui.menu,name:hr_personnel_actions.menu_action_personnel_action
4783-msgid "Personnel Action"
4784-msgstr "Acción de Personal"
4785-
4786-#. module: hr_personnel_actions
4787-#: model:hr.personnel.actions.type,type:hr_personnel_actions.personnel_type_admonishment
4788-msgid "Employee Admonishment"
4789-msgstr "Amonestación al Empleado"
4790-
4791-#. module: hr_personnel_actions
4792-#: field:hr.personnel.actions.configuration,key:0
4793-msgid "Key"
4794-msgstr "Llave"
4795-
4796-#. module: hr_personnel_actions
4797-#: view:hr.personnel.actions.personnel.action:0
4798-#: field:hr.personnel.actions.personnel.action,date:0
4799-#: report:ir.actions.report.xml:hr_personnel_actions.user_personnel_action_report_id
4800-msgid "Date"
4801-msgstr "Fecha"
4802-
4803-#. module: hr_personnel_actions
4804-#: model:ir.actions.report.xml,name:hr_personnel_actions.user_personnel_action_report_id
4805-msgid "User Personnel Actions Report"
4806-msgstr "Reporte de Acciones de Personal"
4807-
4808-#. module: hr_personnel_actions
4809-#: model:ir.actions.act_window,help:hr_personnel_actions.action_action_type
4810-msgid "<p class=\"oe_view_nocontent_create\">Create new personnel action type</p>\n"
4811-" "
4812-msgstr "<p class=\"oe_view_nocontent_create\">Crear nuevo tipo de acción de personal</p>\n"
4813-" "
4814-
4815-#. module: hr_personnel_actions
4816-#: code:addons/hr_personnel_actions/hr_personnel_actions.py:84
4817-#, python-format
4818-msgid "The old value was:"
4819-msgstr "El antiguo valor era"
4820-
4821-#. module: hr_personnel_actions
4822-#: report:ir.actions.report.xml:hr_personnel_actions.user_personnel_action_report_id
4823-#: model:ir.actions.report.xml,name:hr_personnel_actions.personnel_action_report_id
4824-msgid "Personnel Actions Report"
4825-msgstr "Reporte de Acciones de Personal"
4826-
4827-#. module: hr_personnel_actions
4828-#: model:hr.personnel.actions.type,type:hr_personnel_actions.personnel_type_contract
4829-#: model:ir.model,name:hr_personnel_actions.model_hr_contract
4830-msgid "Contract"
4831-msgstr "Contrato"
4832-
4833-#. module: hr_personnel_actions
4834-#: view:hr.personnel.actions.configuration:0
4835-#: model:ir.actions.act_window,name:hr_personnel_actions.action_module_config
4836-#: model:ir.ui.menu,name:hr_personnel_actions.menu_module_config
4837-msgid "Personnel Actions Configuration"
4838-msgstr "Configuración de Acciones de Personal"
4839-
4840-#. module: hr_personnel_actions
4841-#: code:addons/hr_personnel_actions/hr_personnel_actions.py:72
4842-#, python-format
4843-msgid "Contract Modifications"
4844-msgstr "Modificaciones al contrato"
4845-
4846-#. module: hr_personnel_actions
4847-#: model:ir.actions.act_window,help:hr_personnel_actions.action_personnel_action
4848-msgid "<p class=\"oe_view_nocontent_create\">Create new personnel action</p>\n"
4849-" "
4850-msgstr "<p class=\"oe_view_nocontent_create\">Crear nueva acción de personal</p>\n"
4851-" "
4852-
4853-#. module: hr_personnel_actions
4854-#: view:hr.employee:0
4855-#: field:hr.employee,personnel_action_ids:0
4856-#: view:hr.personnel.actions.personnel.action:0
4857-#: model:ir.actions.act_window,name:hr_personnel_actions.action_personnel_action
4858-msgid "Personnel Actions"
4859-msgstr "Acciones de Personal"
4860-
4861-#. module: hr_personnel_actions
4862-#: model:hr.personnel.actions.type,type:hr_personnel_actions.personnel_type_fines
4863-msgid "Employee Fines"
4864-msgstr "Multas al Empleado"
4865-
4866-#. module: hr_personnel_actions
4867-#: sql_constraint:hr.personnel.actions.configuration:0
4868-msgid "Keys cannot be duplicated"
4869-msgstr "Las llaves no puedes ser duplicadas"
4870-
4871-#. module: hr_personnel_actions
4872-#: model:ir.actions.act_window,help:hr_personnel_actions.action_module_config
4873-msgid "<p class=\"oe_view_nocontent_create\">Create new personnel configuration</p>\n"
4874-" "
4875-msgstr "<p class=\"oe_view_nocontent_create\">Crear nueva configuración de personal</p>\n"
4876-" "
4877-
4878-#. module: hr_personnel_actions
4879-#: report:ir.actions.report.xml:hr_personnel_actions.user_personnel_action_report_id
4880-msgid "of"
4881-msgstr "de"
4882-
4883-#. module: hr_personnel_actions
4884-#: view:hr.personnel.actions.personnel.action:0
4885-msgid "General Information"
4886-msgstr "Información General"
4887-
4888-#. module: hr_personnel_actions
4889-#: code:addons/hr_personnel_actions/hr_personnel_actions.py:80
4890-#, python-format
4891-msgid "Personnel Actions Error"
4892-msgstr "Error Acciones de Personal"
4893-
4894-#. module: hr_personnel_actions
4895-#: field:hr.personnel.actions.configuration,action_type_id:0
4896-#: view:hr.personnel.actions.personnel.action:0
4897-msgid "Action Type"
4898-msgstr "Tipo de Acción"
4899-
4900-#. module: hr_personnel_actions
4901-#: code:addons/hr_personnel_actions/hr_personnel_actions.py:80
4902-#, python-format
4903-msgid "System cannot create the respective personnel action"
4904-msgstr "El sistema no puede crear la acción de personal respectiva"
4905-
4906-#. module: hr_personnel_actions
4907-#: code:addons/hr_personnel_actions/hr_personnel_actions.py:89
4908-#, python-format
4909-msgid "Wage has been modified. The new value for wage is:"
4910-msgstr "El salario ha sido modificado. El nuevo valor para el salario es:"
4911-
4912-#. module: hr_personnel_actions
4913-#: code:addons/hr_personnel_actions/hr_personnel_actions.py:95
4914-#, python-format
4915-msgid "Duration has been modified. The new value for start date is:"
4916-msgstr "La duración ha sido modificada. El nuevo valor para la fecha inicial es:"
4917-
4918-#. module: hr_personnel_actions
4919-#: code:addons/hr_personnel_actions/hr_personnel_actions.py:107
4920-#, python-format
4921-msgid "The salary structure has been modified. The new value is:"
4922-msgstr "La estructura salarial ha sido modificada. El nuevo valor es:"
4923-
4924-#. module: hr_personnel_actions
4925-#: selection:hr.personnel.actions.configuration,key:0
4926-msgid "Contract Duration"
4927-msgstr "Duración del Contrato"
4928-
4929
4930=== added file 'hr_personnel_actions/i18n/hr_personnel_actions.pot'
4931--- hr_personnel_actions/i18n/hr_personnel_actions.pot 1970-01-01 00:00:00 +0000
4932+++ hr_personnel_actions/i18n/hr_personnel_actions.pot 2014-06-25 22:24:49 +0000
4933@@ -0,0 +1,234 @@
4934+# Translation of OpenERP Server.
4935+# This file contains the translation of the following modules:
4936+# * hr_personnel_actions
4937+#
4938+msgid ""
4939+msgstr ""
4940+"Project-Id-Version: OpenERP Server 7.0\n"
4941+"Report-Msgid-Bugs-To: \n"
4942+"POT-Creation-Date: 2014-06-19 15:14+0000\n"
4943+"PO-Revision-Date: 2014-06-19 15:14+0000\n"
4944+"Last-Translator: <>\n"
4945+"Language-Team: \n"
4946+"MIME-Version: 1.0\n"
4947+"Content-Type: text/plain; charset=UTF-8\n"
4948+"Content-Transfer-Encoding: \n"
4949+"Plural-Forms: \n"
4950+
4951+#. module: hr_personnel_actions
4952+#: selection:hr.personnel.actions.configuration,key:0
4953+msgid "Contract Wage"
4954+msgstr ""
4955+
4956+#. module: hr_personnel_actions
4957+#: view:hr.personnel.actions.personnel.action:0
4958+#: field:hr.personnel.actions.personnel.action,title:0
4959+msgid "Title"
4960+msgstr ""
4961+
4962+#. module: hr_personnel_actions
4963+#: selection:hr.personnel.actions.configuration,key:0
4964+#: model:hr.personnel.actions.type,type:hr_personnel_actions.personnel_type_payroll
4965+msgid "Contract Payroll"
4966+msgstr ""
4967+
4968+#. module: hr_personnel_actions
4969+#: code:addons/hr_personnel_actions/hr_personnel_actions.py:108
4970+#, python-format
4971+msgid "Duration has been modified. The new value for end date is:"
4972+msgstr ""
4973+
4974+#. module: hr_personnel_actions
4975+#: model:ir.ui.menu,name:hr_personnel_actions.menu_action_type
4976+msgid "Types of Actions"
4977+msgstr ""
4978+
4979+#. module: hr_personnel_actions
4980+#: view:hr.personnel.actions.personnel.action:0
4981+#: field:hr.personnel.actions.personnel.action,employee_id:0
4982+#: model:ir.model,name:hr_personnel_actions.model_hr_employee
4983+msgid "Employee"
4984+msgstr ""
4985+
4986+#. module: hr_personnel_actions
4987+#: view:hr.personnel.actions.personnel.action:0
4988+#: field:hr.personnel.actions.personnel.action,type_id:0
4989+#: field:hr.personnel.actions.type,type:0
4990+msgid "Type"
4991+msgstr ""
4992+
4993+#. module: hr_personnel_actions
4994+#: view:hr.personnel.actions.personnel.action:0
4995+msgid "Title..."
4996+msgstr ""
4997+
4998+#. module: hr_personnel_actions
4999+#: view:hr.personnel.actions.personnel.action:0
5000+#: field:hr.personnel.actions.personnel.action,description:0
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches

to all changes: