Merge lp:~rr.clearcorp/openerp-ccorp-addons/6.1-rent into lp:openerp-ccorp-addons/7.0

Proposed by Ronald Rubi
Status: Needs review
Proposed branch: lp:~rr.clearcorp/openerp-ccorp-addons/6.1-rent
Merge into: lp:openerp-ccorp-addons/7.0
Diff against target: 4285 lines (+3162/-196) (has conflicts)
51 files modified
TODO-6.1/ccorp_account/i18n/es.po (+2/-2)
TODO-6.1/ccorp_account/i18n/pt_BR.po (+186/-0)
TODO-6.1/ccorp_purchase/i18n/pt_BR.po (+146/-0)
TODO-7.0/account_multicompany_relation/account_multicompany_relation.py (+16/-14)
TODO-7.0/account_multicompany_relation/i18n/pt_BR.po (+287/-0)
TODO-7.0/account_webkit_report_library/common_library.py (+4/-4)
TODO-7.0/base_partner_merge_ccorp/i18n/pt_BR.po (+117/-0)
TODO-7.0/base_partner_sequence_ccorp/i18n/es.po (+2/-2)
TODO-7.0/base_partner_sequence_ccorp/i18n/pt_BR.po (+39/-0)
TODO-7.0/base_partner_sequence_ccorp/i18n/sv.po (+2/-2)
TODO-7.0/product_cost_group/i18n/pt_BR.po (+33/-0)
TODO-7.0/purchase_order_archive/i18n/pt_BR.po (+99/-0)
TODO-7.0/rent/rent.py (+12/-9)
TODO-7.0/rent/rent_view.xml (+1/-0)
account_general_ledger_report/__init__.py (+24/-0)
account_general_ledger_report/__openerp__.py (+45/-0)
account_general_ledger_report/i18n/es_CR.po (+158/-0)
account_general_ledger_report/report/__init__.py (+23/-0)
account_general_ledger_report/report/account_general_ledger_report.mako (+181/-0)
account_general_ledger_report/report/account_general_ledger_report.py (+177/-0)
account_general_ledger_report/report/report.xml (+15/-0)
account_general_ledger_report/report_menus.xml (+13/-0)
account_general_ledger_report/wizard/__init__.py (+23/-0)
account_general_ledger_report/wizard/account_general_ledger_report_wizard.py (+40/-0)
account_general_ledger_report/wizard/account_general_ledger_report_wizard.xml (+28/-0)
account_invoice_global_discount/i18n/ar.po (+2/-2)
account_invoice_global_discount/i18n/es.po (+2/-2)
account_invoice_global_discount/i18n/pt_BR.po (+92/-0)
account_journal_period_report/i18n/es_CR.po (+110/-0)
account_journal_period_report/report/account_journal_period_report.mako (+3/-6)
account_journal_period_report/report/account_journal_period_report.py (+25/-2)
account_move_reverse/account_move_reverse.py (+1/-1)
account_move_reverse/i18n/pt_BR.po (+105/-0)
account_voucher_reverse/i18n/pt_BR.po (+38/-0)
base_import_exchange_rates/__init__.py (+0/-1)
base_import_exchange_rates/__openerp__.py (+19/-6)
base_import_exchange_rates/currency_rate_update.py (+102/-102)
cic_payroll/i18n/pt_BR.po (+35/-0)
hr_payroll_report/report/hr_payroll_report.mako (+14/-2)
purchase_order_report/report/purchase_order_report.mako (+39/-22)
purchase_order_report/report/purchase_order_report.py (+1/-1)
res_currency_sequence/__init__.py (+23/-0)
res_currency_sequence/__openerp__.py (+46/-0)
res_currency_sequence/i18n/es_CR.po (+42/-0)
res_currency_sequence/res_currency_sequence.py (+68/-0)
res_currency_sequence/res_currency_sequence_view.xml (+41/-0)
sale_order_ccorp_report/i18n/es.po.OTHER (+118/-0)
sale_order_ccorp_report/i18n/es_CR.po.OTHER (+192/-0)
sale_order_ccorp_report/i18n/pt_BR.po (+118/-0)
sale_order_ccorp_report/report/sale_order.mako.OTHER (+166/-0)
sale_order_global_discount/sale_order_global_discount.py (+87/-16)
Conflict adding file account_general_ledger_report.  Moved existing file to account_general_ledger_report.moved.
Conflict adding file account_journal_period_report/i18n.  Moved existing file to account_journal_period_report/i18n.moved.
Text conflict in base_import_exchange_rates/__openerp__.py
Text conflict in hr_payroll_report/report/hr_payroll_report.mako
Text conflict in purchase_order_report/report/purchase_order_report.mako
Conflict adding file res_currency_sequence.  Moved existing file to res_currency_sequence.moved.
Conflict adding files to sale_order_ccorp_report.  Created directory.
Conflict because sale_order_ccorp_report is not versioned, but has versioned children.  Versioned directory.
Conflict adding files to sale_order_ccorp_report/i18n.  Created directory.
Conflict because sale_order_ccorp_report/i18n is not versioned, but has versioned children.  Versioned directory.
Contents conflict in sale_order_ccorp_report/i18n/es.po
Contents conflict in sale_order_ccorp_report/i18n/es_CR.po
Conflict adding files to sale_order_ccorp_report/report.  Created directory.
Conflict because sale_order_ccorp_report/report is not versioned, but has versioned children.  Versioned directory.
Contents conflict in sale_order_ccorp_report/report/sale_order.mako
Text conflict in sale_order_global_discount/sale_order_global_discount.py
To merge this branch: bzr merge lp:~rr.clearcorp/openerp-ccorp-addons/6.1-rent
Reviewer Review Type Date Requested Status
ClearCorp drivers Pending
Review via email: mp+183514@code.launchpad.net

Description of the change

[FIX] Fix rent invoicing

To post a comment you must log in.
744. By Ronald Rubi

[MRG] Fix rent invoicing

745. By Launchpad Translations on behalf of clearcorp-drivers

Launchpad automatic translations update.

746. By Ronald Rubi

[MRG] Delete spaces in hr_payroll_report/report/hr_payroll_report.mako

747. By Launchpad Translations on behalf of clearcorp-drivers

Launchpad automatic translations update.

748. By Ronald Rubi

[MRG] Fix duplicate in account_moves

749. By Ronald Rubi

[MRG] Workaround functional fields in sale_order

750. By Launchpad Translations on behalf of clearcorp-drivers

Launchpad automatic translations update.

751. By Ronald Rubi

[MRG] Fix account_move_reverse, bad matching lines

752. By Launchpad Translations on behalf of clearcorp-drivers

Launchpad automatic translations update.

753. By Ronald Rubi

[FIX] Fix invoice_type in account invoice line, rent module

754. By Launchpad Translations on behalf of clearcorp-drivers

Launchpad automatic translations update.

755. By Ronald Rubi

[FIX] Fix account_invoice_line create when invoice_type='product'

Unmerged revisions

755. By Ronald Rubi

[FIX] Fix account_invoice_line create when invoice_type='product'

754. By Launchpad Translations on behalf of clearcorp-drivers

Launchpad automatic translations update.

753. By Ronald Rubi

[FIX] Fix invoice_type in account invoice line, rent module

752. By Launchpad Translations on behalf of clearcorp-drivers

Launchpad automatic translations update.

751. By Ronald Rubi

[MRG] Fix account_move_reverse, bad matching lines

750. By Launchpad Translations on behalf of clearcorp-drivers

Launchpad automatic translations update.

749. By Ronald Rubi

[MRG] Workaround functional fields in sale_order

748. By Ronald Rubi

[MRG] Fix duplicate in account_moves

747. By Launchpad Translations on behalf of clearcorp-drivers

Launchpad automatic translations update.

746. By Ronald Rubi

[MRG] Delete spaces in hr_payroll_report/report/hr_payroll_report.mako

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'TODO-6.1/ccorp_account/i18n/es.po'
2--- TODO-6.1/ccorp_account/i18n/es.po 2013-02-26 05:22:23 +0000
3+++ TODO-6.1/ccorp_account/i18n/es.po 2013-11-20 22:45:57 +0000
4@@ -14,8 +14,8 @@
5 "MIME-Version: 1.0\n"
6 "Content-Type: text/plain; charset=UTF-8\n"
7 "Content-Transfer-Encoding: 8bit\n"
8-"X-Launchpad-Export-Date: 2013-02-26 05:22+0000\n"
9-"X-Generator: Launchpad (build 16506)\n"
10+"X-Launchpad-Export-Date: 2013-11-16 06:20+0000\n"
11+"X-Generator: Launchpad (build 16831)\n"
12
13 #. module: ccorp_account
14 #: model:ir.module.module,description:ccorp_account.module_meta_information
15
16=== added file 'TODO-6.1/ccorp_account/i18n/pt_BR.po'
17--- TODO-6.1/ccorp_account/i18n/pt_BR.po 1970-01-01 00:00:00 +0000
18+++ TODO-6.1/ccorp_account/i18n/pt_BR.po 2013-11-20 22:45:57 +0000
19@@ -0,0 +1,186 @@
20+# Brazilian Portuguese translation for openerp-ccorp-addons
21+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
22+# This file is distributed under the same license as the openerp-ccorp-addons package.
23+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
24+#
25+msgid ""
26+msgstr ""
27+"Project-Id-Version: openerp-ccorp-addons\n"
28+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
29+"POT-Creation-Date: 2010-08-23 20:49+0000\n"
30+"PO-Revision-Date: 2013-07-28 11:25+0000\n"
31+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
32+"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
33+"MIME-Version: 1.0\n"
34+"Content-Type: text/plain; charset=UTF-8\n"
35+"Content-Transfer-Encoding: 8bit\n"
36+"X-Launchpad-Export-Date: 2013-11-16 06:20+0000\n"
37+"X-Generator: Launchpad (build 16831)\n"
38+
39+#. module: ccorp_account
40+#: model:ir.module.module,description:ccorp_account.module_meta_information
41+msgid ""
42+"ClearCorp 'account' modifications:\n"
43+" Reports:\n"
44+" * Invoice\n"
45+" "
46+msgstr ""
47+"'Conta' ClearCorp modificações:\n"
48+" Relatórios:\n"
49+" * Nota Fiscal\n"
50+" "
51+
52+#. module: ccorp_account
53+#: model:ir.module.module,shortdesc:ccorp_account.module_meta_information
54+msgid "ClearCorp account module modifications"
55+msgstr "Conta ClearCorp modificações módulo"
56+
57+#. module: ccorp_account
58+#: rml:account.invoice.layout_ccorp:0
59+msgid "Electronic Invoice"
60+msgstr "Nota Fiscal Eletrônica"
61+
62+#. module: ccorp_account
63+#: rml:account.invoice.layout_ccorp:0
64+msgid "PRO-FORMA"
65+msgstr "Pro-forma"
66+
67+#. module: ccorp_account
68+#: rml:account.invoice.layout_ccorp:0
69+msgid "Draft Invoice"
70+msgstr "Projeto Nota Fiscal"
71+
72+#. module: ccorp_account
73+#: rml:account.invoice.layout_ccorp:0
74+msgid "Cancelled Invoice"
75+msgstr "Fatura Cancelada"
76+
77+#. module: ccorp_account
78+#: rml:account.invoice.layout_ccorp:0
79+msgid "Supplier Refund"
80+msgstr "Reembolso supplier"
81+
82+#. module: ccorp_account
83+#: rml:account.invoice.layout_ccorp:0
84+msgid "Supplier Invoice"
85+msgstr "Fatura Fornecedor"
86+
87+#. module: ccorp_account
88+#: rml:account.invoice.layout_ccorp:0
89+msgid "Num.: "
90+msgstr "Num.: "
91+
92+#. module: ccorp_account
93+#: rml:account.invoice.layout_ccorp:0
94+msgid "Date: "
95+msgstr "Data: "
96+
97+#. module: ccorp_account
98+#: rml:account.invoice.layout_ccorp:0
99+msgid "ID Num.: "
100+msgstr "Num ID.: "
101+
102+#. module: ccorp_account
103+#: rml:account.invoice.layout_ccorp:0
104+msgid "Tel-fax: "
105+msgstr "Tel-fax: "
106+
107+#. module: ccorp_account
108+#: rml:account.invoice.layout_ccorp:0
109+msgid "Email: "
110+msgstr "E-mail: "
111+
112+#. module: ccorp_account
113+#: rml:account.invoice.layout_ccorp:0
114+msgid "Web: "
115+msgstr "Web: "
116+
117+#. module: ccorp_account
118+#: rml:account.invoice.layout_ccorp:0
119+msgid "Address:"
120+msgstr "Endereço:"
121+
122+#. module: ccorp_account
123+#: rml:account.invoice.layout_ccorp:0
124+msgid "Phone: "
125+msgstr "Telefone: "
126+
127+#. module: ccorp_account
128+#: rml:account.invoice.layout_ccorp:0
129+msgid "Fax: "
130+msgstr "Fax: "
131+
132+#. module: ccorp_account
133+#: rml:account.invoice.layout_ccorp:0
134+msgid "Salesman: "
135+msgstr "Vendedor: "
136+
137+#. module: ccorp_account
138+#: rml:account.invoice.layout_ccorp:0
139+msgid "Payment tems: "
140+msgstr "Tems de pagamento: "
141+
142+#. module: ccorp_account
143+#: rml:account.invoice.layout_ccorp:0
144+msgid "Due date: "
145+msgstr "Data de vencimento: "
146+
147+#. module: ccorp_account
148+#: rml:account.invoice.layout_ccorp:0
149+msgid "Exchange rate: "
150+msgstr "Taxa de câmbio: "
151+
152+#. module: ccorp_account
153+#: rml:account.invoice.layout_ccorp:0
154+msgid "Page: "
155+msgstr "Página: "
156+
157+#. module: ccorp_account
158+#: rml:account.invoice.layout_ccorp:0
159+msgid "Thank you for choosing us."
160+msgstr "Obrigado por nos escolher."
161+
162+#. module: ccorp_account
163+#: rml:account.invoice.layout_ccorp:0
164+msgid "Qty."
165+msgstr "Qtde."
166+
167+#. module: ccorp_account
168+#: rml:account.invoice.layout_ccorp:0
169+msgid "Description / (Taxes)"
170+msgstr "Descrição / (Impostos)"
171+
172+#. module: ccorp_account
173+#: rml:account.invoice.layout_ccorp:0
174+msgid "Disc."
175+msgstr "Desc."
176+
177+#. module: ccorp_account
178+#: rml:account.invoice.layout_ccorp:0
179+msgid "Unit Price"
180+msgstr "Preço unitário"
181+
182+#. module: ccorp_account
183+#: rml:account.invoice.layout_ccorp:0
184+msgid "Total Price"
185+msgstr "Preço Total"
186+
187+#. module: ccorp_account
188+#: rml:account.invoice.layout_ccorp:0
189+msgid "Subtotal"
190+msgstr "Subtotal"
191+
192+#. module: ccorp_account
193+#: rml:account.invoice.layout_ccorp:0
194+msgid "Discount"
195+msgstr "Desconto"
196+
197+#. module: ccorp_account
198+#: rml:account.invoice.layout_ccorp:0
199+msgid "Taxes"
200+msgstr "Impostos"
201+
202+#. module: ccorp_account
203+#: rml:account.invoice.layout_ccorp:0
204+msgid "TOTAL"
205+msgstr "TOTAL"
206
207=== added file 'TODO-6.1/ccorp_purchase/i18n/pt_BR.po'
208--- TODO-6.1/ccorp_purchase/i18n/pt_BR.po 1970-01-01 00:00:00 +0000
209+++ TODO-6.1/ccorp_purchase/i18n/pt_BR.po 2013-11-20 22:45:57 +0000
210@@ -0,0 +1,146 @@
211+# Brazilian Portuguese translation for openerp-ccorp-addons
212+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
213+# This file is distributed under the same license as the openerp-ccorp-addons package.
214+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
215+#
216+msgid ""
217+msgstr ""
218+"Project-Id-Version: openerp-ccorp-addons\n"
219+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
220+"POT-Creation-Date: 2011-10-06 19:16+0000\n"
221+"PO-Revision-Date: 2013-07-28 11:41+0000\n"
222+"Last-Translator: Claudio de Araujo Santos <claudioaraujosantos@gmail.com>\n"
223+"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
224+"MIME-Version: 1.0\n"
225+"Content-Type: text/plain; charset=UTF-8\n"
226+"Content-Transfer-Encoding: 8bit\n"
227+"X-Launchpad-Export-Date: 2013-11-16 06:20+0000\n"
228+"X-Generator: Launchpad (build 16831)\n"
229+
230+#. module: ccorp_purchase
231+#: model:ir.module.module,description:ccorp_purchase.module_meta_information
232+msgid ""
233+"ClearCorp 'sale' modifications:\n"
234+" Reports:\n"
235+" * Sale Order / Quotation\n"
236+" "
237+msgstr ""
238+"ClearCorp 'venda' modificações:\n"
239+" Relatórios:\n"
240+" * Ordem de Venda / cotação\n"
241+" "
242+
243+#. module: ccorp_purchase
244+#: report:report.purchase.order.layout_ccorp:87
245+msgid "Sub Total"
246+msgstr "Subtotal"
247+
248+#. module: ccorp_purchase
249+#: report:report.purchase.order.layout_ccorp:32
250+msgid "ID Num."
251+msgstr "Num ID."
252+
253+#. module: ccorp_purchase
254+#: report:report.purchase.order.layout_ccorp:78
255+msgid "Note"
256+msgstr "Nota"
257+
258+#. module: ccorp_purchase
259+#: report:report.purchase.order.layout_ccorp:66
260+msgid "Date Req."
261+msgstr "Data Req."
262+
263+#. module: ccorp_purchase
264+#: report:report.purchase.order.layout_ccorp:18
265+msgid "Order N°"
266+msgstr "Ordem N°"
267+
268+#. module: ccorp_purchase
269+#: report:report.purchase.order.layout_ccorp:47
270+msgid "Email"
271+msgstr "E-mail"
272+
273+#. module: ccorp_purchase
274+#: report:report.purchase.order.layout_ccorp:66
275+msgid "Total Price"
276+msgstr "Preço Total"
277+
278+#. module: ccorp_purchase
279+#: report:report.purchase.order.layout_ccorp:35
280+msgid "Date Ordered:"
281+msgstr "Data do Pedido:"
282+
283+#. module: ccorp_purchase
284+#: report:report.purchase.order.layout_ccorp:42
285+msgid "Validated By."
286+msgstr "Validado por."
287+
288+#. module: ccorp_purchase
289+#: report:report.purchase.order.layout_ccorp:39
290+msgid "Phone"
291+msgstr "Telefone"
292+
293+#. module: ccorp_purchase
294+#: report:report.purchase.order.layout_ccorp:46
295+msgid "TVA"
296+msgstr "TVA"
297+
298+#. module: ccorp_purchase
299+#: report:report.purchase.order.layout_ccorp:66
300+msgid "[Code] Description / (Taxes)"
301+msgstr "[Código] Descrição / (Impostos)"
302+
303+#. module: ccorp_purchase
304+#: report:report.purchase.order.layout_ccorp:94
305+msgid "Order Notes:"
306+msgstr "Encomendar Notas:"
307+
308+#. module: ccorp_purchase
309+#: report:report.purchase.order.layout_ccorp:52
310+msgid "Shipping address"
311+msgstr "Endereço de entrega"
312+
313+#. module: ccorp_purchase
314+#: report:report.purchase.order.layout_ccorp:43
315+msgid "Fax"
316+msgstr "Fax"
317+
318+#. module: ccorp_purchase
319+#: report:report.purchase.order.layout_ccorp:88
320+msgid "Taxes"
321+msgstr "Impostos"
322+
323+#. module: ccorp_purchase
324+#: report:report.purchase.order.layout_ccorp:52
325+msgid "Partner address"
326+msgstr "Endereço parceiro"
327+
328+#. module: ccorp_purchase
329+#: report:report.purchase.order.layout_ccorp:89
330+msgid "Total"
331+msgstr "Total"
332+
333+#. module: ccorp_purchase
334+#: report:report.purchase.order.layout_ccorp:66
335+msgid "Qty"
336+msgstr "Qtde"
337+
338+#. module: ccorp_purchase
339+#: model:ir.module.module,shortdesc:ccorp_purchase.module_meta_information
340+msgid "ClearCorp sale module modifications"
341+msgstr "ClearCorp módulo venda modificações"
342+
343+#. module: ccorp_purchase
344+#: report:report.purchase.order.layout_ccorp:66
345+msgid "Unit Price"
346+msgstr "Preço unitário"
347+
348+#. module: ccorp_purchase
349+#: report:report.purchase.order.layout_ccorp:26
350+msgid "Partnert Order Ref"
351+msgstr "Partnert Ordem Ref"
352+
353+#. module: ccorp_purchase
354+#: report:report.purchase.order.layout_ccorp:15
355+msgid "Order Ref"
356+msgstr "Ref. Ordem"
357
358=== modified file 'TODO-7.0/account_multicompany_relation/account_multicompany_relation.py'
359--- TODO-7.0/account_multicompany_relation/account_multicompany_relation.py 2012-11-05 08:26:08 +0000
360+++ TODO-7.0/account_multicompany_relation/account_multicompany_relation.py 2013-11-20 22:45:57 +0000
361@@ -84,46 +84,48 @@
362 _inherit = 'account.move'
363
364 def button_cancel(self, cr, uid, ids, context=None):
365- self.pool.get('account.move.reconcile')
366+ move_reconcile_obj = self.pool.get('account.move.reconcile')
367+ move_line_obj = self.pool.get('account.move.line')
368 for move in self.browse(cr, uid, ids, context=context):
369 if not move.journal_id.update_posted:
370 raise osv.except_osv(_('Error !'), _('You can not modify a posted entry of this journal !\nYou should set the journal to allow cancelling entries if you want to do that.'))
371
372 #Set user administrator to run this portion of code
373- uid = 1
374+ uid_admin = 1
375 for line in move.line_id:
376 if line.move_mirror_rel_id:
377- move_mirror = self.browse(cr, uid, line.move_mirror_rel_id.id, context=context)
378+ move_mirror = self.browse(cr, uid_admin, line.move_mirror_rel_id.id, context=context)
379 if not move_mirror.journal_id.update_posted:
380 raise osv.except_osv(_('Error !'), _('You can not modify a posted multicompany mirror entry of this journal !\nYou should set the journal to allow cancelling entries if you want to do that.'))
381
382- move_reconcile_obj = self.pool.get('account.move.reconcile')
383+
384
385 for line in move.line_id:
386 if line.move_mirror_rel_id:
387- move_mirror = self.browse(cr, uid, line.move_mirror_rel_id.id, context=context)
388+ move_mirror = self.browse(cr, uid_admin, line.move_mirror_rel_id.id, context=context)
389
390 for line_mirror in move_mirror.line_id:
391 if line_mirror.reconcile_id:
392 reconcile = line_mirror.reconcile_id
393 if len(reconcile.line_id) > 2:
394- self.pool.get('account.move.line').write(cr,uid,reconcile.line_id,{'reconcile_id': False, 'reconcile_partial_id':reconcile.id})
395- self.pool.get('account.move.line').write(cr,uid,line_mirror.id,{'reconcile_partial_id': False})
396+ reconcile_line_ids = move_line_obj.search(cr, uid_admin, [('reconcile_id','=',reconcile.id)])
397+ move_line_obj.write(cr,uid_admin,reconcile_line_ids,{'reconcile_id': False, 'reconcile_partial_id':reconcile.id})
398+ move_line_obj.write(cr,uid_admin,line_mirror.id,{'reconcile_partial_id': False})
399 else:
400- move_reconcile_obj.unlink(cr,uid,[reconcile.id],context=context)
401+ move_reconcile_obj.unlink(cr,uid_admin,[reconcile.id],context=context)
402
403 elif line_mirror.reconcile_partial_id:
404 reconcile = line_mirror.reconcile_partial_id
405 if len(reconcile.line_partial_ids) > 2:
406- self.pool.get('account.move.line').write(cr,uid,line_mirror.id,{'reconcile_partial_id': False })
407+ move_line_obj.write(cr,uid_admin,line_mirror.id,{'reconcile_partial_id': False })
408 else:
409- move_reconcile_obj.unlink(cr,uid,[reconcile.id],context=context)
410+ move_reconcile_obj.unlink(cr,uid_admin,[reconcile.id],context=context)
411
412 cr.execute('UPDATE account_move '\
413 'SET state=%s '\
414 'WHERE id IN %s', ('draft', tuple([move_mirror.id]),))
415- self.button_cancel(cr,uid,[move_mirror.id],context=context)
416- self.unlink(cr,uid,[move_mirror.id],context=context)
417+ self.button_cancel(cr,uid_admin,[move_mirror.id],context=context)
418+ self.unlink(cr,uid_admin,[move_mirror.id],context=context)
419
420 result = super(AccountMove, self).button_cancel(cr, uid, ids, context=context)
421 return True
422@@ -224,7 +226,7 @@
423 'credit':line_credit,
424 'account_id':targ_account.id,
425 'move_id': move_id,
426- 'amount_currency':line.amount_currency * -1,
427+ 'amount_currency':line.amount_currency,
428 'period_id':move_period or False,
429 'journal_id':targ_journal.id,
430 'partner_id':line.partner_id.id,
431@@ -249,7 +251,7 @@
432 'credit':line_debit,
433 'account_id':move_line_two_account_id.id,
434 'move_id': move_id,
435- 'amount_currency':line.amount_currency,
436+ 'amount_currency':line.amount_currency * -1,
437 'journal_id':targ_journal.id,
438 'period_id':move_period or False,
439 'partner_id':line.partner_id.id,
440
441=== added file 'TODO-7.0/account_multicompany_relation/i18n/pt_BR.po'
442--- TODO-7.0/account_multicompany_relation/i18n/pt_BR.po 1970-01-01 00:00:00 +0000
443+++ TODO-7.0/account_multicompany_relation/i18n/pt_BR.po 2013-11-20 22:45:57 +0000
444@@ -0,0 +1,287 @@
445+# Brazilian Portuguese translation for openerp-ccorp-addons
446+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
447+# This file is distributed under the same license as the openerp-ccorp-addons package.
448+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
449+#
450+msgid ""
451+msgstr ""
452+"Project-Id-Version: openerp-ccorp-addons\n"
453+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
454+"POT-Creation-Date: 2012-07-19 22:21+0000\n"
455+"PO-Revision-Date: 2013-07-28 11:43+0000\n"
456+"Last-Translator: Claudio de Araujo Santos <claudioaraujosantos@gmail.com>\n"
457+"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
458+"MIME-Version: 1.0\n"
459+"Content-Type: text/plain; charset=UTF-8\n"
460+"Content-Transfer-Encoding: 8bit\n"
461+"X-Launchpad-Export-Date: 2013-11-16 06:20+0000\n"
462+"X-Generator: Launchpad (build 16831)\n"
463+
464+#. module: account_multicompany_relation
465+#: field:account.multicompany.relation,targ_analytic_account:0
466+msgid "Target Analytic Account"
467+msgstr "Alvo Conta Analitica"
468+
469+#. module: account_multicompany_relation
470+#: constraint:account.move:0
471+msgid ""
472+"You can not create more than one move per period on centralized journal"
473+msgstr ""
474+"Você não pode criar mais do que um movimento por período centralizado em "
475+"revista"
476+
477+#. module: account_multicompany_relation
478+#: constraint:account.multicompany.relation:0
479+#: sql_constraint:account.multicompany.relation:0
480+msgid "A relation exists already"
481+msgstr "Existe uma relação já"
482+
483+#. module: account_multicompany_relation
484+#: constraint:account.move.line:0
485+msgid "Company must be the same for its related account and period."
486+msgstr "Empresa deve ser o mesmo para a sua conta e período relacionado."
487+
488+#. module: account_multicompany_relation
489+#: model:ir.model,name:account_multicompany_relation.model_account_multicompany_relation
490+msgid "account.multicompany.relation"
491+msgstr "account.multicompany.relation"
492+
493+#. module: account_multicompany_relation
494+#: help:account.multicompany.relation,origin_analytic_account:0
495+msgid ""
496+"Indicate the original analytic account where the transaction is taking place"
497+msgstr "Indique a conta analítica original onde a transação está ocorrendo"
498+
499+#. module: account_multicompany_relation
500+#: sql_constraint:account.account:0
501+msgid "The code of the account must be unique per company !"
502+msgstr "O código da conta deve ser única por empresa!"
503+
504+#. module: account_multicompany_relation
505+#: help:account.multicompany.relation,name:0
506+msgid "Name for the mirror object relation"
507+msgstr "Nome para a relação de objeto espelho"
508+
509+#. module: account_multicompany_relation
510+#: code:addons/account_multicompany_relation/account_multicompany_relation.py:94
511+#, python-format
512+msgid ""
513+"You can not modify a posted entry of this journal !\n"
514+"You should set the journal to allow cancelling entries if you want to do "
515+"that."
516+msgstr ""
517+"Você não pode modificar uma entrada postou desta revista! \n"
518+"Você deve definir a revista para permitir o cancelamento entradas se você "
519+"quiser fazer isso."
520+
521+#. module: account_multicompany_relation
522+#: field:account.multicompany.relation,targ_journal:0
523+msgid "Target Journal"
524+msgstr "Relatorio Alvo"
525+
526+#. module: account_multicompany_relation
527+#: code:addons/account_multicompany_relation/account_multicompany_relation.py:94
528+#: code:addons/account_multicompany_relation/account_multicompany_relation.py:102
529+#, python-format
530+msgid "Error !"
531+msgstr "Erro!"
532+
533+#. module: account_multicompany_relation
534+#: model:ir.model,name:account_multicompany_relation.model_account_journal
535+msgid "Journal"
536+msgstr "Diário"
537+
538+#. module: account_multicompany_relation
539+#: model:ir.model,name:account_multicompany_relation.model_account_move_line
540+msgid "Journal Items"
541+msgstr "Itens do Diário"
542+
543+#. module: account_multicompany_relation
544+#: constraint:account.move.line:0
545+msgid "You can not create journal items on an account of type view."
546+msgstr ""
547+"Você não pode criar itens de jornal sobre uma conta do tipo de exibição."
548+
549+#. module: account_multicompany_relation
550+#: model:ir.model,name:account_multicompany_relation.model_account_account
551+msgid "Account"
552+msgstr "Conta"
553+
554+#. module: account_multicompany_relation
555+#: code:addons/account_multicompany_relation/account_multicompany_relation.py:102
556+#, python-format
557+msgid ""
558+"You can not modify a posted multicompany mirror entry of this journal !\n"
559+"You should set the journal to allow cancelling entries if you want to do "
560+"that."
561+msgstr ""
562+"Você não pode modificar uma entrada de espelho multiempresa publicado da "
563+"revista! \n"
564+"Você deve definir a revista para permitir o cancelamento entradas se você "
565+"quiser fazer isso."
566+
567+#. module: account_multicompany_relation
568+#: view:account.multicompany.relation:0
569+#: model:ir.actions.act_window,name:account_multicompany_relation.action_account_multi_relation_fix
570+msgid "Account Multicompany Relation"
571+msgstr "Conta multiempresa Relação"
572+
573+#. module: account_multicompany_relation
574+#: field:account.multicompany.relation,name:0
575+msgid "Name"
576+msgstr "Nome"
577+
578+#. module: account_multicompany_relation
579+#: help:account.multicompany.relation,targ_analytic_account:0
580+msgid ""
581+"Indicate the target analytic account where the transaction of the original "
582+"analytic account has to be seen, this is an analytic account from another "
583+"company"
584+msgstr ""
585+"Indique a conta analítica alvo onde a transação da conta analítica original "
586+"tem de ser visto, este é um relato analítico de outra empresa"
587+
588+#. module: account_multicompany_relation
589+#: constraint:account.move.line:0
590+msgid "You can not create journal items on closed account."
591+msgstr "Você não pode criar itens de jornal por conta fechada."
592+
593+#. module: account_multicompany_relation
594+#: sql_constraint:account.multicompany.relation:0
595+msgid "The name must be unique"
596+msgstr "O nome deve ser único"
597+
598+#. module: account_multicompany_relation
599+#: field:account.multicompany.relation,origin_journal:0
600+msgid "Original Journal"
601+msgstr "Relatório originais"
602+
603+#. module: account_multicompany_relation
604+#: constraint:account.journal:0
605+msgid ""
606+"Configuration error! The currency chosen should be shared by the default "
607+"accounts too."
608+msgstr ""
609+"Erro de configuração! A moeda escolhida deve ser compartilhado pelas contas "
610+"padrão também."
611+
612+#. module: account_multicompany_relation
613+#: field:account.multicompany.relation,targ_account:0
614+msgid "Target Account"
615+msgstr "Conta-Alvo"
616+
617+#. module: account_multicompany_relation
618+#: model:ir.ui.menu,name:account_multicompany_relation.account_multi_relation_menu
619+msgid "Relation Multicompany"
620+msgstr "Multiempresa Relação"
621+
622+#. module: account_multicompany_relation
623+#: field:account.multicompany.relation,origin_account:0
624+msgid "Original Account"
625+msgstr "Conta Original"
626+
627+#. module: account_multicompany_relation
628+#: help:account.multicompany.relation,origin_journal:0
629+msgid "Indicate the original journal where the transaction is taking place"
630+msgstr "Indique a revista original onde a transação está ocorrendo"
631+
632+#. module: account_multicompany_relation
633+#: field:account.move.line,move_mirror_rel_id:0
634+msgid "Move Multicompany Relation"
635+msgstr "Mova Relação multiempresa"
636+
637+#. module: account_multicompany_relation
638+#: help:account.multicompany.relation,origin_account:0
639+#: help:account.multicompany.relation,targ_journal:0
640+msgid "Indicate the original account where the transaction is taking place"
641+msgstr "Indique a conta original onde a transação está ocorrendo"
642+
643+#. module: account_multicompany_relation
644+#: model:ir.model,name:account_multicompany_relation.model_account_move
645+msgid "Account Entry"
646+msgstr "Lançamento Contábil"
647+
648+#. module: account_multicompany_relation
649+#: constraint:account.account:0
650+msgid "Error ! You can not create recursive accounts."
651+msgstr "Error ! You can not create recursive accounts."
652+
653+#. module: account_multicompany_relation
654+#: constraint:account.account:0
655+msgid ""
656+"Configuration Error! \n"
657+"You can not select an account type with a deferral method different of "
658+"\"Unreconciled\" for accounts with internal type \"Payable/Receivable\"! "
659+msgstr ""
660+"Erro de configuração! \n"
661+"Você não pode selecionar um tipo de conta com um método de diferimento "
662+"diferente de \"Unreconciled\" para contas com tipo interno \"Pagar / "
663+"Receber\"! "
664+
665+#. module: account_multicompany_relation
666+#: model:ir.model,name:account_multicompany_relation.model_account_voucher
667+msgid "Accounting Voucher"
668+msgstr "Comprovante de Contabilidade"
669+
670+#. module: account_multicompany_relation
671+#: sql_constraint:account.journal:0
672+msgid "The name of the journal must be unique per company !"
673+msgstr "O nome do periódico deve ser único por empresa!"
674+
675+#. module: account_multicompany_relation
676+#: constraint:account.move.line:0
677+msgid ""
678+"The selected account of your Journal Entry forces to provide a secondary "
679+"currency. You should remove the secondary currency on the account or select "
680+"a multi-currency view on the journal."
681+msgstr ""
682+"A conta selecionada de suas forças de Lançamentos para fornecer uma moeda "
683+"secundária. Você deve remover a moeda secundária na conta ou selecione uma "
684+"visão multi-moeda na revista."
685+
686+#. module: account_multicompany_relation
687+#: constraint:account.move.line:0
688+msgid ""
689+"The date of your Journal Entry is not in the defined period! You should "
690+"change the date or remove this constraint from the journal."
691+msgstr ""
692+"A data de sua entrada de diário não está no período definido! Você deve "
693+"alterar a data ou remover essa restrição da revista."
694+
695+#. module: account_multicompany_relation
696+#: sql_constraint:account.journal:0
697+msgid "The code of the journal must be unique per company !"
698+msgstr "O código da revista deve ser exclusivo para cada empresa!"
699+
700+#. module: account_multicompany_relation
701+#: constraint:account.account:0
702+msgid ""
703+"Configuration Error! \n"
704+"You can not define children to an account with internal type different of "
705+"\"View\"! "
706+msgstr ""
707+"Erro de configuração! \n"
708+"Você não pode definir as crianças a uma conta com tipo interno diferente de "
709+"\"View\"! "
710+
711+#. module: account_multicompany_relation
712+#: sql_constraint:account.move.line:0
713+msgid "Wrong credit or debit value in accounting entry !"
714+msgstr "Valor do crédito errado ou débito na entrada de contabilidade!"
715+
716+#. module: account_multicompany_relation
717+#: field:account.multicompany.relation,origin_analytic_account:0
718+msgid "Original Analytic Account"
719+msgstr "Conta Analitica Original"
720+
721+#. module: account_multicompany_relation
722+#: help:account.multicompany.relation,targ_account:0
723+msgid ""
724+"Indicate the target account where the transaction of the original account "
725+"has to be seen, this is an account from another company"
726+msgstr ""
727+"Indique a conta de destino, onde a transação da conta original tem que ser "
728+"visto, esta é uma conta de outra empresa"
729+
730+#~ msgid "Already exist a relation to this diary and account (origins)"
731+#~ msgstr "Já existe uma relação com este diário e conta (origens)"
732
733=== modified file 'TODO-7.0/account_webkit_report_library/common_library.py'
734--- TODO-7.0/account_webkit_report_library/common_library.py 2013-02-06 22:15:54 +0000
735+++ TODO-7.0/account_webkit_report_library/common_library.py 2013-11-20 22:45:57 +0000
736@@ -80,7 +80,7 @@
737
738 return pevious_period
739
740- def get_move_lines(self, cr, uid, account_ids, filter_type='', filter_data=None, fiscalyear=None, target_move='all', unreconcile = False, historic_strict=False, special_period =False, context=None):
741+ def get_move_lines(self, cr, uid, account_ids, filter_type='', filter_data=None, fiscalyear=None, target_move='all', unreconcile = False, historic_strict=False, special_period =False, order_by=None, context=None):
742 ''' Get the move lines of the accounts provided and filtered.
743 Arguments:
744 'account_ids': List of accounts ids.
745@@ -91,6 +91,7 @@
746 'target_move': Target moves of the report, possibles values: 'all' or 'posted'.
747 'unreconcile': If True then get the move lines unreconciled.
748 'historic_strict': Used when unreconcile = True, forces to include move lines that where not reconciled at the end date of the filter but are now.
749+ 'order_by': Used to the lines return order by specific order. asc or desc are the acepted words.
750
751 '''
752 #TODO: Translate comments to english
753@@ -181,11 +182,11 @@
754 periods_ids = self.pool.get('account.period').search(cr, uid, [('special', '=', False),('fiscalyear_id', '=', fiscalyear.id)], context=context)
755 domain_period = ('period_id.id', 'in', periods_ids)
756 list_tuples.append(domain_period)
757-
758+
759 #**********************************************************************************************#
760
761 if unreconcile == False:
762- move_line_ids = move_line_obj.search(cr, uid, list_tuples, context=context)
763+ move_line_ids = move_line_obj.search(cr, uid, list_tuples,order = order_by,context=context)
764
765 else:
766 #list_tuples + [domain_unreconciled] -> Con esta sintaxis no se altera la variable
767@@ -419,7 +420,6 @@
768 return res
769
770 def get_account_child_ids(self, cr, uid, account_ids, context={}):
771- print account_ids
772 if isinstance(account_ids, orm.browse_record):
773 account_ids = [account_ids.id]
774 elif isinstance(account_ids, int):
775
776=== added file 'TODO-7.0/base_partner_merge_ccorp/i18n/pt_BR.po'
777--- TODO-7.0/base_partner_merge_ccorp/i18n/pt_BR.po 1970-01-01 00:00:00 +0000
778+++ TODO-7.0/base_partner_merge_ccorp/i18n/pt_BR.po 2013-11-20 22:45:57 +0000
779@@ -0,0 +1,117 @@
780+# Brazilian Portuguese translation for openerp-ccorp-addons
781+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
782+# This file is distributed under the same license as the openerp-ccorp-addons package.
783+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
784+#
785+msgid ""
786+msgstr ""
787+"Project-Id-Version: openerp-ccorp-addons\n"
788+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
789+"POT-Creation-Date: 2009-11-25 05:33+0000\n"
790+"PO-Revision-Date: 2013-07-28 11:44+0000\n"
791+"Last-Translator: Claudio de Araujo Santos <claudioaraujosantos@gmail.com>\n"
792+"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
793+"MIME-Version: 1.0\n"
794+"Content-Type: text/plain; charset=UTF-8\n"
795+"Content-Transfer-Encoding: 8bit\n"
796+"X-Launchpad-Export-Date: 2013-11-16 06:20+0000\n"
797+"X-Generator: Launchpad (build 16831)\n"
798+
799+#. module: base_partner_merge
800+#: help:base_partner_address.merge,init,address_id2:0
801+msgid "Select second partner address to merge"
802+msgstr "Selecione segundo endereço parceiro para fusão"
803+
804+#. module: base_partner_merge
805+#: model:ir.module.module,shortdesc:base_partner_merge.module_meta_information
806+msgid "Partner Merger"
807+msgstr "Parceiro de Incorporação"
808+
809+#. module: base_partner_merge
810+#: code:addons/base_partner_merge/wizard/merge_partners.py:0
811+#: model:ir.actions.wizard,name:base_partner_merge.wizard_base_partner_merge
812+#: model:ir.ui.menu,name:base_partner_merge.menu_wizard_base_partner_merge
813+#, python-format
814+msgid "Merge Partners"
815+msgstr "Mesclar Parceiros"
816+
817+#. module: base_partner_merge
818+#: wizard_field:base_partner.merge,init,partner_id2:0
819+msgid "Second partner"
820+msgstr "Segundo Parceiro"
821+
822+#. module: base_partner_merge
823+#: wizard_view:base_partner.merge,init:0
824+msgid "Merge Two Partners"
825+msgstr "Mesclar Dois Parceiros"
826+
827+#. module: base_partner_merge
828+#: code:addons/base_partner_merge/wizard/merge_partners_address.py:0
829+#, python-format
830+msgid "Merge Partner Addresses"
831+msgstr "Mesclar Endereços Parceiros"
832+
833+#. module: base_partner_merge
834+#: wizard_field:base_partner_address.merge,init,address_id1:0
835+msgid "First address"
836+msgstr "Primeiro ENDEREÇO"
837+
838+#. module: base_partner_merge
839+#: wizard_field:base_partner_address.merge,init,address_id2:0
840+msgid "Second address"
841+msgstr "Segundo ENDEREÇO"
842+
843+#. module: base_partner_merge
844+#: wizard_button:base_partner.merge,init,next:0
845+#: wizard_button:base_partner_address.merge,init,next:0
846+msgid "Next"
847+msgstr "Próximo"
848+
849+#. module: base_partner_merge
850+#: wizard_button:base_partner.merge,next,next_1:0
851+msgid "Create And Open Partner"
852+msgstr "Criar e abrir Parceiro"
853+
854+#. module: base_partner_merge
855+#: wizard_field:base_partner.merge,init,partner_id1:0
856+msgid "First partner"
857+msgstr "Primeiro Parceiro"
858+
859+#. module: base_partner_merge
860+#: wizard_button:base_partner_address.merge,next,next_1:0
861+msgid "Create And Open Address"
862+msgstr "CRIAR e abrir endereco"
863+
864+#. module: base_partner_merge
865+#: help:base_partner.merge,init,partner_id2:0
866+msgid "Select second partner to merge"
867+msgstr "Selecione o Segundo Parceiro de Fusão"
868+
869+#. module: base_partner_merge
870+#: help:base_partner.merge,init,partner_id1:0
871+msgid "Select first partner to merge"
872+msgstr "Selecione Primeiro Parceiro de Fusão"
873+
874+#. module: base_partner_merge
875+#: help:base_partner_address.merge,init,address_id1:0
876+msgid "Select first partner address to merge"
877+msgstr "Selecione Primeiro ENDEREÇO ​​Parceiro parágrafo Fusão"
878+
879+#. module: base_partner_merge
880+#: wizard_button:base_partner.merge,init,end:0
881+#: wizard_button:base_partner.merge,next,end:0
882+#: wizard_button:base_partner_address.merge,init,end:0
883+#: wizard_button:base_partner_address.merge,next,end:0
884+msgid "Cancel"
885+msgstr "Cancelar"
886+
887+#. module: base_partner_merge
888+#: wizard_view:base_partner_address.merge,init:0
889+msgid "Merge Two Partner Address"
890+msgstr "Mesclar Dois Parceiro Morada"
891+
892+#. module: base_partner_merge
893+#: model:ir.actions.wizard,name:base_partner_merge.wizard_base_partner_address_merge
894+#: model:ir.ui.menu,name:base_partner_merge.menu_wizard_base_partner_address_merge
895+msgid "Merge Addresses"
896+msgstr "Mesclar Endereços"
897
898=== modified file 'TODO-7.0/base_partner_sequence_ccorp/i18n/es.po'
899--- TODO-7.0/base_partner_sequence_ccorp/i18n/es.po 2013-02-26 05:22:23 +0000
900+++ TODO-7.0/base_partner_sequence_ccorp/i18n/es.po 2013-11-20 22:45:57 +0000
901@@ -14,8 +14,8 @@
902 "MIME-Version: 1.0\n"
903 "Content-Type: text/plain; charset=UTF-8\n"
904 "Content-Transfer-Encoding: 8bit\n"
905-"X-Launchpad-Export-Date: 2013-02-26 05:22+0000\n"
906-"X-Generator: Launchpad (build 16506)\n"
907+"X-Launchpad-Export-Date: 2013-11-16 06:20+0000\n"
908+"X-Generator: Launchpad (build 16831)\n"
909
910 #. module: base_partner_sequence
911 #: model:ir.module.module,description:base_partner_sequence.module_meta_information
912
913=== added file 'TODO-7.0/base_partner_sequence_ccorp/i18n/pt_BR.po'
914--- TODO-7.0/base_partner_sequence_ccorp/i18n/pt_BR.po 1970-01-01 00:00:00 +0000
915+++ TODO-7.0/base_partner_sequence_ccorp/i18n/pt_BR.po 2013-11-20 22:45:57 +0000
916@@ -0,0 +1,39 @@
917+# Brazilian Portuguese translation for openerp-ccorp-addons
918+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
919+# This file is distributed under the same license as the openerp-ccorp-addons package.
920+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
921+#
922+msgid ""
923+msgstr ""
924+"Project-Id-Version: openerp-ccorp-addons\n"
925+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
926+"POT-Creation-Date: 2009-11-25 05:34+0000\n"
927+"PO-Revision-Date: 2013-07-28 11:35+0000\n"
928+"Last-Translator: Claudio de Araujo Santos <claudioaraujosantos@gmail.com>\n"
929+"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
930+"MIME-Version: 1.0\n"
931+"Content-Type: text/plain; charset=UTF-8\n"
932+"Content-Transfer-Encoding: 8bit\n"
933+"X-Launchpad-Export-Date: 2013-11-16 06:20+0000\n"
934+"X-Generator: Launchpad (build 16831)\n"
935+
936+#. module: base_partner_sequence
937+#: model:ir.module.module,description:base_partner_sequence.module_meta_information
938+msgid ""
939+"\n"
940+" This module adds the possibility to define a sequence for\n"
941+" the partner code. This code is then set as default when you\n"
942+" create a new partner, using the defined sequence.\n"
943+" "
944+msgstr ""
945+"\n"
946+" Este módulo adiciona a possibilidade de definir uma sequência de\n"
947+" o código do parceiro. Este código é então definido como padrão "
948+"quando você\n"
949+" criar um novo parceiro, usando a seqüência definida.\n"
950+" "
951+
952+#. module: base_partner_sequence
953+#: model:ir.module.module,shortdesc:base_partner_sequence.module_meta_information
954+msgid "Add an automatic sequence on partners"
955+msgstr "Adicionar uma seqüência automática de parceiros"
956
957=== modified file 'TODO-7.0/base_partner_sequence_ccorp/i18n/sv.po'
958--- TODO-7.0/base_partner_sequence_ccorp/i18n/sv.po 2013-02-26 05:22:23 +0000
959+++ TODO-7.0/base_partner_sequence_ccorp/i18n/sv.po 2013-11-20 22:45:57 +0000
960@@ -13,8 +13,8 @@
961 "MIME-Version: 1.0\n"
962 "Content-Type: text/plain; charset=UTF-8\n"
963 "Content-Transfer-Encoding: 8bit\n"
964-"X-Launchpad-Export-Date: 2013-02-26 05:22+0000\n"
965-"X-Generator: Launchpad (build 16506)\n"
966+"X-Launchpad-Export-Date: 2013-11-16 06:20+0000\n"
967+"X-Generator: Launchpad (build 16831)\n"
968
969 #. module: base_partner_sequence
970 #: model:ir.module.module,description:base_partner_sequence.module_meta_information
971
972=== added file 'TODO-7.0/product_cost_group/i18n/pt_BR.po'
973--- TODO-7.0/product_cost_group/i18n/pt_BR.po 1970-01-01 00:00:00 +0000
974+++ TODO-7.0/product_cost_group/i18n/pt_BR.po 2013-11-20 22:45:57 +0000
975@@ -0,0 +1,33 @@
976+# Brazilian Portuguese translation for openerp-ccorp-addons
977+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
978+# This file is distributed under the same license as the openerp-ccorp-addons package.
979+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
980+#
981+msgid ""
982+msgstr ""
983+"Project-Id-Version: openerp-ccorp-addons\n"
984+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
985+"POT-Creation-Date: 2012-11-29 21:20+0000\n"
986+"PO-Revision-Date: 2013-07-28 11:36+0000\n"
987+"Last-Translator: Claudio de Araujo Santos <claudioaraujosantos@gmail.com>\n"
988+"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
989+"MIME-Version: 1.0\n"
990+"Content-Type: text/plain; charset=UTF-8\n"
991+"Content-Transfer-Encoding: 8bit\n"
992+"X-Launchpad-Export-Date: 2013-11-16 06:20+0000\n"
993+"X-Generator: Launchpad (build 16831)\n"
994+
995+#. module: product_cost_group
996+#: model:res.groups,name:product_cost_group.group_costs_viewer
997+msgid " View Costs"
998+msgstr " Ver Custos"
999+
1000+#. module: product_cost_group
1001+#: view:product.product:0
1002+msgid "Update"
1003+msgstr "Atualizar"
1004+
1005+#. module: product_cost_group
1006+#: view:product.product:0
1007+msgid "Cost Price :"
1008+msgstr "Preço de custo:"
1009
1010=== added file 'TODO-7.0/purchase_order_archive/i18n/pt_BR.po'
1011--- TODO-7.0/purchase_order_archive/i18n/pt_BR.po 1970-01-01 00:00:00 +0000
1012+++ TODO-7.0/purchase_order_archive/i18n/pt_BR.po 2013-11-20 22:45:57 +0000
1013@@ -0,0 +1,99 @@
1014+# Brazilian Portuguese translation for openerp-ccorp-addons
1015+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
1016+# This file is distributed under the same license as the openerp-ccorp-addons package.
1017+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
1018+#
1019+msgid ""
1020+msgstr ""
1021+"Project-Id-Version: openerp-ccorp-addons\n"
1022+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
1023+"POT-Creation-Date: 2013-02-14 20:34+0000\n"
1024+"PO-Revision-Date: 2013-07-28 11:38+0000\n"
1025+"Last-Translator: Claudio de Araujo Santos <claudioaraujosantos@gmail.com>\n"
1026+"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
1027+"MIME-Version: 1.0\n"
1028+"Content-Type: text/plain; charset=UTF-8\n"
1029+"Content-Transfer-Encoding: 8bit\n"
1030+"X-Launchpad-Export-Date: 2013-11-16 06:20+0000\n"
1031+"X-Generator: Launchpad (build 16831)\n"
1032+
1033+#. module: purchase_order_archive
1034+#: sql_constraint:purchase.order:0
1035+msgid "Order Reference must be unique per Company!"
1036+msgstr "Referência à ordem deve ser exclusivo por Empresa!"
1037+
1038+#. module: purchase_order_archive
1039+#: view:purchase.order:0
1040+msgid "Archived"
1041+msgstr "Arquivada"
1042+
1043+#. module: purchase_order_archive
1044+#: code:addons/purchase_order_archive/purchase_order_archive.py:88
1045+#, python-format
1046+msgid "An archived purchase order cannot be deleted!"
1047+msgstr "Uma ordem de compra arquivados não podem ser apagados!"
1048+
1049+#. module: purchase_order_archive
1050+#: code:addons/purchase_order_archive/purchase_order_archive.py:70
1051+#, python-format
1052+msgid "You must first cancel all invoices related to this purchase order."
1053+msgstr ""
1054+"Primeiro, você deve cancelar todas as facturas relacionadas com este pedido "
1055+"de compra."
1056+
1057+#. module: purchase_order_archive
1058+#: code:addons/purchase_order_archive/purchase_order_archive.py:90
1059+#, python-format
1060+msgid "In order to delete a purchase order, it must be cancelled first!"
1061+msgstr ""
1062+"Para excluir uma ordem de compra, ele deve ser cancelado em primeiro lugar!"
1063+
1064+#. module: purchase_order_archive
1065+#: model:ir.model,name:purchase_order_archive.model_purchase_order
1066+msgid "Purchase Order"
1067+msgstr "Ordem de Compra"
1068+
1069+#. module: purchase_order_archive
1070+#: view:purchase.order:0
1071+msgid "Archived purchase order"
1072+msgstr "Ordem de compra arquivados"
1073+
1074+#. module: purchase_order_archive
1075+#: code:addons/purchase_order_archive/purchase_order_archive.py:63
1076+#, python-format
1077+msgid "You must first cancel all receptions related to this purchase order."
1078+msgstr ""
1079+"Primeiro, você deve cancelar todos os eventos relacionados a este pedido de "
1080+"compra."
1081+
1082+#. module: purchase_order_archive
1083+#: code:addons/purchase_order_archive/purchase_order_archive.py:105
1084+#, python-format
1085+msgid "An archived purchase order cannot be edited!"
1086+msgstr "Uma ordem de compra arquivados não podem ser editados!"
1087+
1088+#. module: purchase_order_archive
1089+#: code:addons/purchase_order_archive/purchase_order_archive.py:88
1090+#: code:addons/purchase_order_archive/purchase_order_archive.py:90
1091+#: code:addons/purchase_order_archive/purchase_order_archive.py:105
1092+#, python-format
1093+msgid "Invalid action !"
1094+msgstr "Ação Inválida!"
1095+
1096+#. module: purchase_order_archive
1097+#: code:addons/purchase_order_archive/purchase_order_archive.py:62
1098+#: code:addons/purchase_order_archive/purchase_order_archive.py:69
1099+#, python-format
1100+msgid "Unable to archive this purchase order!"
1101+msgstr "Incapaz de arquivar este pedido de compra!"
1102+
1103+#. module: purchase_order_archive
1104+#: code:addons/purchase_order_archive/purchase_order_archive.py:76
1105+#, python-format
1106+msgid "Purchase order '%s' is archived."
1107+msgstr "ordem de compra '%s' é arquivado."
1108+
1109+#. module: purchase_order_archive
1110+#: view:purchase.order:0
1111+msgid "Archive"
1112+msgstr "Arquivo"
1113
1114=== modified file 'TODO-7.0/rent/rent.py'
1115--- TODO-7.0/rent/rent.py 2012-11-07 23:02:15 +0000
1116+++ TODO-7.0/rent/rent.py 2013-11-20 22:45:57 +0000
1117@@ -851,6 +851,7 @@
1118 'uos_id': False,
1119 'invoice_line_tax_id': [(6, 0, [])],
1120 'account_analytic_id': False,
1121+ 'invoice_type': 'rent',
1122 'invoice_rent_id': obj_rent.id or args.get('rent_id', False),
1123 })
1124
1125@@ -888,7 +889,8 @@
1126 elif type == 'main':
1127 if not first_inv:
1128 date_due = (obj_rent.rent_main_invoiced_day < obj_rent.rent_main_charge_day and date(today.year,today.month,1) or (today.replace(day=1) + timedelta(days=32)).replace(day=1))
1129- date_due = date_due.replace(day=obj_rent.rent_main_charge_day + obj_rent.rent_main_grace_period)
1130+ #It should remove the first day of the month to avoid altering the date (-1)
1131+ date_due = date_due + timedelta(days=(obj_rent.rent_main_charge_day + obj_rent.rent_main_grace_period - 1))
1132 else:
1133 date_due = today + timedelta(days=obj_rent.rent_main_grace_period)
1134
1135@@ -1737,14 +1739,15 @@
1136
1137 def create(self, cr, uid,vals, context=None):
1138 #Check for the area before creating the object
1139- vals2 = vals
1140 #invoice_line = vals['invoice_line']
1141- if 'invoice_type' in vals2 and vals2['invoice_type'] == 'rent':
1142- p_invoice_rent_id = vals['invoice_rent_id'][0]
1143- vals2['invoice_rent_id'] = p_invoice_rent_id
1144- return super(rent_invoice_line,self).create(cr,uid,vals2,context)
1145-
1146-
1147+ if 'invoice_type' in vals and vals['invoice_type'] == 'rent' and 'invoice_rent_id' in vals and vals['invoice_rent_id']:
1148+ if isinstance(vals['invoice_rent_id'], int):
1149+ vals['invoice_rent_id'] = vals['invoice_rent_id']
1150+ else:
1151+ vals['invoice_rent_id'] = vals['invoice_rent_id'][0]
1152+ if 'invoice_type' in vals and vals['invoice_type'] == 'product' and 'invoice_rent_id' in vals and vals['invoice_rent_id']:
1153+ del vals['invoice_rent_id']
1154+
1155 #raise osv.except_osv('Wrong value!', 'The area for the estate has to bee greater than 0')
1156 return super(rent_invoice_line,self).create(cr,uid,vals,context)
1157
1158@@ -1780,7 +1783,7 @@
1159 'log_desc' : fields.char('Description',size=200),
1160 #'log_rent' : fields.many2one('rent.rent','Rent Ref'),
1161 }
1162-
1163+
1164 class rent_contract(osv.osv):
1165 _name = 'rent.contract'
1166
1167
1168=== modified file 'TODO-7.0/rent/rent_view.xml'
1169--- TODO-7.0/rent/rent_view.xml 2012-11-07 22:56:22 +0000
1170+++ TODO-7.0/rent/rent_view.xml 2013-11-20 22:45:57 +0000
1171@@ -1216,6 +1216,7 @@
1172 </tree>
1173 </field>
1174 </record>
1175+
1176 <!--
1177 ======================================
1178 CONTRACTS
1179
1180=== added directory 'account_general_ledger_report'
1181=== renamed directory 'account_general_ledger_report' => 'account_general_ledger_report.moved'
1182=== added file 'account_general_ledger_report/__init__.py'
1183--- account_general_ledger_report/__init__.py 1970-01-01 00:00:00 +0000
1184+++ account_general_ledger_report/__init__.py 2013-11-20 22:45:57 +0000
1185@@ -0,0 +1,24 @@
1186+# -*- coding: utf-8 -*-
1187+##############################################################################
1188+#
1189+# OpenERP, Open Source Management Solution
1190+# Addons modules by CLEARCORP S.A.
1191+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
1192+#
1193+# This program is free software: you can redistribute it and/or modify
1194+# it under the terms of the GNU Affero General Public License as
1195+# published by the Free Software Foundation, either version 3 of the
1196+# License, or (at your option) any later version.
1197+#
1198+# This program is distributed in the hope that it will be useful,
1199+# but WITHOUT ANY WARRANTY; without even the implied warranty of
1200+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1201+# GNU Affero General Public License for more details.
1202+#
1203+# You should have received a copy of the GNU Affero General Public License
1204+# along with this program. If not, see <http://www.gnu.org/licenses/>.
1205+#
1206+##############################################################################
1207+
1208+import report
1209+import wizard
1210\ No newline at end of file
1211
1212=== added file 'account_general_ledger_report/__openerp__.py'
1213--- account_general_ledger_report/__openerp__.py 1970-01-01 00:00:00 +0000
1214+++ account_general_ledger_report/__openerp__.py 2013-11-20 22:45:57 +0000
1215@@ -0,0 +1,45 @@
1216+# -*- coding: utf-8 -*-
1217+##############################################################################
1218+#
1219+# OpenERP, Open Source Management Solution
1220+# Addons modules by CLEARCORP S.A.
1221+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
1222+#
1223+# This program is free software: you can redistribute it and/or modify
1224+# it under the terms of the GNU Affero General Public License as
1225+# published by the Free Software Foundation, either version 3 of the
1226+# License, or (at your option) any later version.
1227+#
1228+# This program is distributed in the hope that it will be useful,
1229+# but WITHOUT ANY WARRANTY; without even the implied warranty of
1230+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1231+# GNU Affero General Public License for more details.
1232+#
1233+# You should have received a copy of the GNU Affero General Public License
1234+# along with this program. If not, see <http://www.gnu.org/licenses/>.
1235+#
1236+##############################################################################
1237+
1238+{
1239+ 'name': 'General Partner Webkit Report',
1240+ 'version': '1.0',
1241+ 'url': 'http://launchpad.net/openerp-ccorp-addons',
1242+ 'author': 'ClearCorp S.A.',
1243+ 'website': 'http://clearcorp.co.cr',
1244+ 'category': 'Accounting & Finance',
1245+ 'complexity': 'normal',
1246+ 'description': """This module modifies the general ledger report""",
1247+ 'depends': [
1248+ 'account',
1249+ 'account_webkit_report_library',
1250+ 'account_financial_report_webkit',
1251+ ],
1252+ 'init_xml': [],
1253+ 'demo_xml': [],
1254+ 'update_xml': ['report/report.xml',
1255+ 'wizard/account_general_ledger_report_wizard.xml',
1256+ 'report_menus.xml',],
1257+ 'license': 'AGPL-3',
1258+ 'installable': True,
1259+ 'active': False,
1260+}
1261\ No newline at end of file
1262
1263=== added directory 'account_general_ledger_report/i18n'
1264=== added file 'account_general_ledger_report/i18n/es_CR.po'
1265--- account_general_ledger_report/i18n/es_CR.po 1970-01-01 00:00:00 +0000
1266+++ account_general_ledger_report/i18n/es_CR.po 2013-11-20 22:45:57 +0000
1267@@ -0,0 +1,158 @@
1268+# Translation of OpenERP Server.
1269+# This file contains the translation of the following modules:
1270+# * account_general_ledger_report
1271+#
1272+msgid ""
1273+msgstr ""
1274+"Project-Id-Version: OpenERP Server 6.1\n"
1275+"Report-Msgid-Bugs-To: \n"
1276+"POT-Creation-Date: 2013-05-17 21:01+0000\n"
1277+"PO-Revision-Date: 2013-05-17 21:01+0000\n"
1278+"Last-Translator: <>\n"
1279+"Language-Team: \n"
1280+"MIME-Version: 1.0\n"
1281+"Content-Type: text/plain; charset=UTF-8\n"
1282+"Content-Transfer-Encoding: \n"
1283+"Plural-Forms: \n"
1284+
1285+#. module: account_general_ledger_report
1286+#: report:addons/account_general_ledger_report/report/account_general_ledger_report.mako:29
1287+msgid "Filter by: "
1288+msgstr "Filtrado por: "
1289+
1290+#. module: account_general_ledger_report
1291+#: report:addons/account_general_ledger_report/report/account_general_ledger_report.mako:99
1292+msgid "Label"
1293+msgstr "Etiqueta"
1294+
1295+#. module: account_general_ledger_report
1296+#: report:addons/account_general_ledger_report/report/account_general_ledger_report.mako:104
1297+msgid "Debit"
1298+msgstr "Débito"
1299+
1300+#. module: account_general_ledger_report
1301+#: report:addons/account_general_ledger_report/report/account_general_ledger_report.mako:97
1302+msgid "Journal"
1303+msgstr "Diario"
1304+
1305+#. module: account_general_ledger_report
1306+#: report:addons/account_general_ledger_report/report/account_general_ledger_report.mako:57
1307+msgid "Target moves: "
1308+msgstr "Movimientos destino: "
1309+
1310+#. module: account_general_ledger_report
1311+#: report:addons/account_general_ledger_report/report/account_general_ledger_report.mako:83
1312+msgid "No move lines for this account"
1313+msgstr "No existen líneas de asiento para esta cuenta"
1314+
1315+#. module: account_general_ledger_report
1316+#: report:addons/account_general_ledger_report/report/account_general_ledger_report.mako:94
1317+msgid "Date"
1318+msgstr "Fecha"
1319+
1320+#. module: account_general_ledger_report
1321+#: report:addons/account_general_ledger_report/report/account_general_ledger_report.mako:157
1322+msgid "TOTAL"
1323+msgstr "TOTAL"
1324+
1325+#. module: account_general_ledger_report
1326+#: report:addons/account_general_ledger_report/report/account_general_ledger_report.mako:109
1327+msgid "Curr. Bal."
1328+msgstr "Bal. M."
1329+
1330+#. module: account_general_ledger_report
1331+#: report:addons/account_general_ledger_report/report/account_general_ledger_report.mako:28
1332+msgid "Fiscal Year: "
1333+msgstr "Año fiscal: "
1334+
1335+#. module: account_general_ledger_report
1336+#: constraint:general.ledger.webkit:0
1337+msgid "When no Fiscal year is selected, you must choose to filter by periods or by date."
1338+msgstr "Cuando no se selecciona ningún año fiscal, se debe elegir para filtrar por períodos o por fecha."
1339+
1340+#. module: account_general_ledger_report
1341+#: report:addons/account_general_ledger_report/report/account_general_ledger_report.mako:48
1342+msgid "Accounts: "
1343+msgstr "Cuentas: "
1344+
1345+#. module: account_general_ledger_report
1346+#: report:addons/account_general_ledger_report/report/account_general_ledger_report.mako:15
1347+msgid "General Ledger Report "
1348+msgstr "Informe del libro mayor"
1349+
1350+#. module: account_general_ledger_report
1351+#: report:addons/account_general_ledger_report/report/account_general_ledger_report.mako:108
1352+msgid "Curr. Am."
1353+msgstr "Mon. M."
1354+
1355+#. module: account_general_ledger_report
1356+#: report:addons/account_general_ledger_report/report/account_general_ledger_report.mako:45
1357+msgid "No filter"
1358+msgstr "Sin filtros"
1359+
1360+#. module: account_general_ledger_report
1361+#: report:addons/account_general_ledger_report/report/account_general_ledger_report.mako:106
1362+msgid "Cumul. Bal."
1363+msgstr "Bal Acumul."
1364+
1365+#. module: account_general_ledger_report
1366+#: report:addons/account_general_ledger_report/report/account_general_ledger_report.mako:105
1367+msgid "Credit"
1368+msgstr "Crédito"
1369+
1370+#. module: account_general_ledger_report
1371+#: report:addons/account_general_ledger_report/report/account_general_ledger_report.mako:42
1372+msgid "Period: "
1373+msgstr "Período: "
1374+
1375+#. module: account_general_ledger_report
1376+#: report:addons/account_general_ledger_report/report/account_general_ledger_report.mako:96
1377+msgid "Entry"
1378+msgstr "Asiento"
1379+
1380+#. module: account_general_ledger_report
1381+#: constraint:general.ledger.webkit:0
1382+msgid "The fiscalyear, periods or chart of account chosen have to belong to the same company."
1383+msgstr "El año fiscal, períodos o plan contable elegidos deben pertenecer a la misma compañía."
1384+
1385+#. module: account_general_ledger_report
1386+#: report:addons/account_general_ledger_report/report/account_general_ledger_report.mako:54
1387+msgid "All"
1388+msgstr "Todo"
1389+
1390+#. module: account_general_ledger_report
1391+#: report:addons/account_general_ledger_report/report/account_general_ledger_report.mako:27
1392+msgid "Chart of Accounts: "
1393+msgstr "Catálogo de cuentas: "
1394+
1395+#. module: account_general_ledger_report
1396+#: report:addons/account_general_ledger_report/report/account_general_ledger_report.mako:102
1397+msgid "Reconcile"
1398+msgstr "Conciliación"
1399+
1400+#. module: account_general_ledger_report
1401+#: report:addons/account_general_ledger_report/report/account_general_ledger_report.mako:35
1402+msgid "Dates: "
1403+msgstr "Fechas: "
1404+
1405+#. module: account_general_ledger_report
1406+#: report:addons/account_general_ledger_report/report/account_general_ledger_report.mako:95
1407+msgid "Period"
1408+msgstr "Períodos"
1409+
1410+#. module: account_general_ledger_report
1411+#: model:ir.actions.act_window,name:account_general_ledger_report.action_general_ledger_report_wizard
1412+#: model:ir.model,name:account_general_ledger_report.model_general_ledger_webkit
1413+msgid "General Ledger Report"
1414+msgstr "Informe del libro mayor"
1415+
1416+#. module: account_general_ledger_report
1417+#: report:addons/account_general_ledger_report/report/account_general_ledger_report.mako:98
1418+msgid "Partner"
1419+msgstr "Empresa"
1420+
1421+#. module: account_general_ledger_report
1422+#: report:addons/account_general_ledger_report/report/account_general_ledger_report.mako:79
1423+msgid "Initial balance:"
1424+msgstr "Balance inicial:"
1425+
1426
1427=== added directory 'account_general_ledger_report/report'
1428=== added file 'account_general_ledger_report/report/__init__.py'
1429--- account_general_ledger_report/report/__init__.py 1970-01-01 00:00:00 +0000
1430+++ account_general_ledger_report/report/__init__.py 2013-11-20 22:45:57 +0000
1431@@ -0,0 +1,23 @@
1432+# -*- coding: utf-8 -*-
1433+##############################################################################
1434+#
1435+# OpenERP, Open Source Management Solution
1436+# Addons modules by CLEARCORP S.A.
1437+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
1438+#
1439+# This program is free software: you can redistribute it and/or modify
1440+# it under the terms of the GNU Affero General Public License as
1441+# published by the Free Software Foundation, either version 3 of the
1442+# License, or (at your option) any later version.
1443+#
1444+# This program is distributed in the hope that it will be useful,
1445+# but WITHOUT ANY WARRANTY; without even the implied warranty of
1446+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1447+# GNU Affero General Public License for more details.
1448+#
1449+# You should have received a copy of the GNU Affero General Public License
1450+# along with this program. If not, see <http://www.gnu.org/licenses/>.
1451+#
1452+##############################################################################
1453+
1454+import account_general_ledger_report
1455
1456=== added file 'account_general_ledger_report/report/account_general_ledger_report.mako'
1457--- account_general_ledger_report/report/account_general_ledger_report.mako 1970-01-01 00:00:00 +0000
1458+++ account_general_ledger_report/report/account_general_ledger_report.mako 2013-11-20 22:45:57 +0000
1459@@ -0,0 +1,181 @@
1460+<!DOCTYPE html SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1461+<html xmlns="http://www.w3.org/1999/xhtml">
1462+ <head>
1463+ <link rel='stylesheet' href='addons/account_webkit_report_library/webkit_headers/main.css' />
1464+ <style>
1465+ ${css}
1466+ </style>
1467+ </head>
1468+ <body>
1469+ <div class="table header">
1470+ <div class="table-row">
1471+ <div class="table-cell logo">${helper.embed_logo_by_name('internal_reports_logo', height=100)|n}</div>
1472+ <br/>
1473+ <div class="table-cell text">
1474+ <p class="title">${_('General Ledger Report ')}</p>
1475+ </div>
1476+ </div>
1477+ </div>
1478+ <%
1479+ chart_account = get_chart_account_id(data)
1480+ fiscalyear = get_fiscalyear(data)
1481+ filter = get_filter(data)
1482+ %>
1483+
1484+ <div class="table list">
1485+ <div class="table-header">
1486+ <div class="table-row labels no-wrap">
1487+ <div class="table-cell first-column" style="width: 70px">${_('Chart of Accounts: ')}<br/>${chart_account.name}</div>
1488+ <div class="table-cell" style="width: 70px">${_('Fiscal Year: ')}<br/>${fiscalyear.name}</div>
1489+ <div class="table-cell" style="width: 70px">${_('Filter by: ')}<br/>
1490+ %if filter == 'filter_date':
1491+ <%
1492+ start_date = get_start_date(data)
1493+ stop_date = get_stop_date(data)
1494+ %>
1495+ ${_('Dates: ')}<br/>
1496+ ${formatLang(start_date, date=True) if start_date else u'' }&nbsp;-&nbsp;${formatLang(stop_date, date=True) if start_date else u'' }
1497+ %elif filter == 'filter_period':
1498+ <%
1499+ start_period = get_start_period(data)
1500+ stop_period = get_end_period(data)
1501+ %>
1502+ ${_('Period: ')}<br/>
1503+ ${start_period.name if start_period else u''}&nbsp;-&nbsp;${stop_period.name if stop_period else u'' }
1504+ %else:
1505+ ${_('No filter')}
1506+ %endif
1507+ </div>
1508+ <div class="table-cell" style="width: 70px">${_('Accounts: ')}<br/>
1509+ %if accounts(data):
1510+ %for account in accounts(data):
1511+ ${(account.code) + ','}<br/>
1512+ %endfor
1513+ %else:
1514+ ${_('All')}
1515+ %endif
1516+ </div>
1517+ <div class="table-cell" style="width: 70px">${_('Target moves: ')}<br/>${ display_target_move(data) }</div>
1518+ </div>
1519+ </div>
1520+ </div>
1521+ <%
1522+ account_list_obj, account_lines, account_conciliation, account_balance = get_data(cr, uid, data)
1523+ cumul_balance_curr = 0.0
1524+ %>
1525+ %for account in account_list_obj:
1526+ <%
1527+ cumul_balance = account_balance[account.id]['balance'] or 0.0
1528+
1529+ if 'foreign_balance' in account_balance[account.id].keys():
1530+ cumul_balance_curr = account_balance[account.id]['foreign_balance']
1531+
1532+ amount_total_debit = amount_total_credit = amount_total_curr = 0.0
1533+ print_column = False
1534+ move_lines = []
1535+ %>
1536+ %if account.type != 'view':
1537+ <br/><br/>
1538+ <div class="table header">
1539+ <div class="table-row">
1540+ <div class="table-cell text">
1541+ <p class="subtitle">${account.code +' - ' +account.name}</p>
1542+ <p class="subtitle">${_('Initial balance:')}&nbsp;&nbsp;${formatLang(cumul_balance)}&nbsp;&nbsp;
1543+ %if account.report_currency_id:
1544+ ${account.report_currency_id.position == 'before' and (account.report_currency_id.symbol+'&nbsp;') or ''}${formatLang(cumul_balance_curr)}${account.report_currency_id.position == 'after' and ('&nbsp;'+account.report_currency_id.symbol) or ''}&nbsp;&nbsp;
1545+ %endif
1546+ ${account.id not in account_lines.keys() and _('No move lines for this account') or ''}
1547+ </p>
1548+ </div>
1549+ </div>
1550+ </div>
1551+ %if account.id in account_lines.keys():
1552+ <% move_lines = account_lines[account.id] %>
1553+
1554+ <div class="table list">
1555+ <div class="table-header">
1556+ <div class="table-row labels no-wrap">
1557+ <div class="table-cell first-column" style="width: 55px">${_('Date')}</div>
1558+ <div class="table-cell" style="width: 70px">${_('Period')}</div>
1559+ <div class="table-cell" style="width: 100px">${_('Entry')}</div>
1560+ <div class="table-cell" style="width: 70px">${_('Journal')}</div>
1561+ <div class="table-cell" style="width: 100px">${_('Partner')}</div>
1562+ <div class="table-cell" style="width: 100px">${_('Label')}</div>
1563+ %if account.reconcile or (account.id in account_conciliation.keys() and account_conciliation[account.id]):
1564+ <% print_column = True %>
1565+ <div class="table-cell" style="width: 75px">${_('Reconcile')}</div>
1566+ %endif
1567+ <div class="table-cell amount" style="width: 60px">${_('Debit')}</div>
1568+ <div class="table-cell amount" style="width: 60px">${_('Credit')}</div>
1569+ <div class="table-cell amount" style="width: 60px">${_('Cumul. Bal.')}</div>
1570+ %if account.report_currency_id:
1571+ <div class="table-cell amount" style="width: 60px">${_('Curr. Am.')}</div>
1572+ <div class="table-cell amount last-column" style="width: 60px">${_('Curr. Bal.')}</div>
1573+ %endif
1574+ </div>
1575+ </div>
1576+ <div class="table-body">
1577+ %for line in move_lines:
1578+ <%
1579+ amount_total_debit += line.debit
1580+ amount_total_credit += line.credit
1581+
1582+ cumul_balance = cumul_balance + line.debit - line.credit
1583+ if line.amount_currency:
1584+ cumul_balance_curr = cumul_balance_curr + line.amount_currency
1585+ amount_total_curr += line.amount_currency
1586+ %>
1587+ <div class="table-row ${row_even and 'even' or 'odd'}">
1588+ <div class="table-cell first-column">${formatLang(line.date, date=True)}</div>
1589+ <div class="table-cell">${line.period_id.name or ''}</div>
1590+ <div class="table-cell">${line.move_id.name or ''}</div>
1591+ <div class="table-cell">${line.journal_id.name}</div>
1592+ <div class="table-cell">${line.partner_id.name or ''}</div>
1593+ <div class="table-cell">${line.name or ''}</div>
1594+ %if print_column:
1595+ <div class="table-cell">
1596+ ${line.id in account_conciliation[account.id].keys() and account_conciliation[account.id][line.id] or ''}
1597+ </div>
1598+ %endif
1599+ <div class="table-cell amount">${formatLang(line.debit)}</div>
1600+ <div class="table-cell amount">&nbsp;${formatLang(line.credit)}</div>
1601+ <div class="table-cell amount last-column">&nbsp;${formatLang(cumul_balance)}</div>
1602+ %if account.report_currency_id:
1603+ <div class="table-cell amount">&nbsp;${line.amount_currency and formatLang(line.amount_currency) or ''}</div>
1604+ <div class="table-cell amount last-column">&nbsp;${formatLang(cumul_balance_curr)}</div>
1605+ %endif
1606+ </div>
1607+ %endfor
1608+ <div class="table-row spacer">
1609+ <div class="table-cell">&nbsp;</div>
1610+ </div>
1611+ <div class="table-row subtotal">
1612+ <div class="table-cell first-column">&nbsp;</div>
1613+ <div class="table-cell">&nbsp;</div>
1614+ <div class="table-cell">&nbsp;</div>
1615+ <div class="table-cell">&nbsp;</div>
1616+ <div class="table-cell">&nbsp;</div>
1617+ %if print_column:
1618+ <div class="table-cell">&nbsp;</div>
1619+ %endif
1620+ <div class="table-cell">${_('TOTAL')}</div>
1621+ <div class="table-cell amount" >${formatLang(amount_total_debit)}</div>
1622+ <div class="table-cell amount" >&nbsp;${formatLang(amount_total_credit)}</div>
1623+ %if account.report_currency_id:
1624+ <div class="table-cell amount">&nbsp;${formatLang(cumul_balance)}</div>
1625+ <div class="table-cell amount">&nbsp;${formatLang(amount_total_curr)}</div>
1626+ <div class="table-cell amount last-column">&nbsp;${formatLang(cumul_balance_curr)}</div>
1627+ %else:
1628+ <div class="table-cell amount last-column">&nbsp;${formatLang(cumul_balance)}</div>
1629+ %endif
1630+ </div>
1631+ <%
1632+ amount_total_debit = amount_total_credit = 0.0
1633+ %>
1634+ </div>
1635+ </div>
1636+ %endif
1637+ %endif
1638+ %endfor
1639+ </body>
1640+</html>
1641
1642=== added file 'account_general_ledger_report/report/account_general_ledger_report.py'
1643--- account_general_ledger_report/report/account_general_ledger_report.py 1970-01-01 00:00:00 +0000
1644+++ account_general_ledger_report/report/account_general_ledger_report.py 2013-11-20 22:45:57 +0000
1645@@ -0,0 +1,177 @@
1646+#-*- coding:utf-8 -*-
1647+##############################################################################
1648+#
1649+# OpenERP, Open Source Management Solution
1650+# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
1651+# d$
1652+#
1653+# This program is free software: you can redistribute it and/or modify
1654+# it under the terms of the GNU Affero General Public License as published by
1655+# the Free Software Foundation, either version 3 of the License, or
1656+# (at your option) any later version.
1657+#
1658+# This program is distributed in the hope that it will be useful,
1659+# but WITHOUT ANY WARRANTY; without even the implied warranty of
1660+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1661+# GNU Affero General Public License for more details.
1662+#
1663+# You should have received a copy of the GNU Affero General Public License
1664+# along with this program. If not, see <http://www.gnu.org/licenses/>.
1665+#
1666+##############################################################################
1667+
1668+from openerp.addons.account_financial_report_webkit.report.common_reports import CommonReportHeaderWebkit
1669+import pooler
1670+from report import report_sxw
1671+
1672+class GeneralLedgerReportWebkit(report_sxw.rml_parse, CommonReportHeaderWebkit):
1673+
1674+ def __init__(self, cursor, uid, name, context):
1675+ super(GeneralLedgerReportWebkit, self).__init__(cursor, uid, name, context=context)
1676+ self.pool = pooler.get_pool(self.cr.dbname)
1677+ self.cursor = self.cr
1678+
1679+ self.localcontext.update({
1680+ 'cr': cursor,
1681+ 'uid': uid,
1682+ 'get_data':self.get_data,
1683+ 'get_chart_account_id':self._get_chart_account_id_br,
1684+ 'get_fiscalyear':self.get_fiscalyear_br,
1685+ 'get_filter': self._get_filter,
1686+ 'get_start_period':self.get_start_period_br,
1687+ 'get_end_period':self.get_end_period_br,
1688+ 'get_start_date':self._get_date_from,
1689+ 'get_stop_date':self._get_date_to,
1690+ 'accounts': self._get_accounts_br,
1691+ 'display_target_move': self._get_display_target_move,
1692+ })
1693+
1694+ def get_data(self, cr, uid, data):
1695+ filter_data = []
1696+ account_list = []
1697+ account_selected = []
1698+
1699+ account_lines = {}
1700+ account_balance = {}
1701+ account_conciliation = {}
1702+
1703+ library_obj = self.pool.get('account.webkit.report.library')
1704+
1705+ filter_type = self._get_form_param('filter', data, default='filter_no')
1706+ chart_account = self._get_chart_account_id_br(data)
1707+
1708+ if filter_type == 'filter_date':
1709+ start_date = self._get_form_param('date_from', data)
1710+ stop_date = self._get_form_param('date_to', data)
1711+
1712+ filter_data.append(start_date)
1713+ filter_data.append(stop_date)
1714+
1715+ elif filter_type == 'filter_period':
1716+
1717+ start_period = self.get_start_period_br(data) #return the period object
1718+ stop_period = self.get_end_period_br(data)
1719+
1720+ filter_data.append(start_period)
1721+ filter_data.append(stop_period)
1722+
1723+ else:
1724+ filter_type = ''
1725+
1726+ fiscalyear = self.get_fiscalyear_br(data)
1727+ target_move = self._get_form_param('target_move', data, default='all')
1728+
1729+ #From the wizard can select specific account, extract this accounts
1730+ account_selected = data['form']['account_ids']
1731+
1732+ if account_selected == []:
1733+ account_selected = [chart_account.id]
1734+
1735+ account_list_ids = library_obj.get_account_child_ids(cr, uid, account_selected) #get all the accounts in the chart_account_id
1736+ account_list_obj = self.pool.get('account.account').browse(cr, uid, account_list_ids)
1737+
1738+ #Get the move_lines for each account.
1739+ move_lines = library_obj.get_move_lines(cr, 1,
1740+ account_list_ids,
1741+ filter_type=filter_type,
1742+ filter_data=filter_data,
1743+ fiscalyear=fiscalyear,
1744+ target_move=target_move,
1745+ order_by='account_id asc, date asc, ref asc')
1746+
1747+
1748+ #Reconcile -> show reconcile in the mako.
1749+ '''
1750+ First, if the account permit reconcile (reconcile == True), add to the dictionary.
1751+ If the account don't allow the reconcile, search if the lines have reconcile_id or partial_reconcile_id
1752+ If the account allow the reconcile or the lines have reconcile_id or partial_reconcile_id, add in the dictionary
1753+ and show in the mako the column "Reconcile"
1754+
1755+ the final result is:
1756+ {account_id: {line.id: [conciliation_name]}}
1757+ '''
1758+ #Search if the move_lines have partial or reconcile id
1759+ for line in move_lines:
1760+ #If the account have reconcile, add to the dictionary
1761+ if line.account_id.id not in account_conciliation:
1762+ account_conciliation[line.account_id.id] = {}
1763+
1764+ if line.reconcile_id and line.reconcile_id.name != '':
1765+ account_conciliation[line.account_id.id][line.id] = line.reconcile_id.name
1766+
1767+ elif line.reconcile_partial_id and line.reconcile_partial_id.name != '':
1768+ str_name = 'P: ' + line.reconcile_partial_id.name
1769+ #conciliation_lines.append(str_name)
1770+ account_conciliation[line.account_id.id][line.id] = str_name
1771+
1772+ if line.account_id.id not in account_lines:
1773+ account_lines[line.account_id.id] = []
1774+
1775+ account_lines[line.account_id.id].append(line)
1776+
1777+ fields = ['balance']
1778+ if self._get_amount_currency(data):
1779+ fields.append('foreign_balance')
1780+
1781+ if filter_type == 'filter_date':
1782+ account_balance = library_obj.get_account_balance(cr, uid,
1783+ account_list_ids,
1784+ fields,
1785+ initial_balance=True,
1786+ company_id=chart_account.company_id.id,
1787+ fiscal_year_id = fiscalyear.id,
1788+ state = target_move,
1789+ start_date = start_date,
1790+ end_date = stop_date,
1791+ chart_account_id = chart_account.id,
1792+ filter_type=filter_type)
1793+ elif filter_type == 'filter_period':
1794+ account_balance = library_obj.get_account_balance(cr, uid,
1795+ account_list_ids,
1796+ fields,
1797+ initial_balance=True,
1798+ company_id=chart_account.company_id.id,
1799+ fiscal_year_id = fiscalyear.id,
1800+ state = target_move,
1801+ start_period_id = start_period.id,
1802+ end_period_id = stop_period.id,
1803+ chart_account_id = chart_account.id,
1804+ filter_type=filter_type)
1805+ else:
1806+ account_balance = library_obj.get_account_balance(cr, uid,
1807+ account_list_ids,
1808+ fields,
1809+ initial_balance=True,
1810+ company_id=chart_account.company_id.id,
1811+ fiscal_year_id = fiscalyear.id,
1812+ state = target_move,
1813+ chart_account_id = chart_account.id,
1814+ filter_type=filter_type)
1815+
1816+
1817+ return account_list_obj, account_lines, account_conciliation, account_balance
1818+
1819+report_sxw.report_sxw('report.account_general_ledger_webkit',
1820+ 'account.account',
1821+ 'addons/account_general_ledger_report/report/account_general_ledger_report.mako',
1822+ parser=GeneralLedgerReportWebkit)
1823\ No newline at end of file
1824
1825=== added file 'account_general_ledger_report/report/report.xml'
1826--- account_general_ledger_report/report/report.xml 1970-01-01 00:00:00 +0000
1827+++ account_general_ledger_report/report/report.xml 2013-11-20 22:45:57 +0000
1828@@ -0,0 +1,15 @@
1829+<?xml version="1.0" encoding="utf-8"?>
1830+<openerp>
1831+ <data>
1832+ <record id="account_financial_report_webkit.account_report_general_ledger_webkit" model="ir.actions.report.xml">
1833+ <field name="report_type">webkit</field>
1834+ <field name="report_name">account_general_ledger_webkit</field>
1835+ <field eval="[(6,0,[])]" name="groups_id"/>
1836+ <field name="model">account.account</field>
1837+ <field name="type">ir.actions.report.xml</field>
1838+ <field name="name">General Ledger Webkit</field>
1839+ <field name="report_rml">account_general_ledger_report/report/account_general_ledger_report.mako</field>
1840+ <field name="report_file">account_general_ledger_report/report/account_general_ledger_report.mako</field>
1841+ </record>
1842+ </data>
1843+</openerp>
1844
1845=== added file 'account_general_ledger_report/report_menus.xml'
1846--- account_general_ledger_report/report_menus.xml 1970-01-01 00:00:00 +0000
1847+++ account_general_ledger_report/report_menus.xml 2013-11-20 22:45:57 +0000
1848@@ -0,0 +1,13 @@
1849+<?xml version="1.0" encoding="utf-8"?>
1850+<openerp>
1851+ <data>
1852+
1853+ <menuitem icon="STOCK_PRINT"
1854+ name="General Ledger"
1855+ parent="account.final_accounting_reports"
1856+ action="action_general_ledger_report_wizard"
1857+ groups="account.group_account_manager,account.group_account_user"
1858+ id="account.menu_general_ledger"/>
1859+
1860+ </data>
1861+</openerp>
1862
1863=== added directory 'account_general_ledger_report/wizard'
1864=== added file 'account_general_ledger_report/wizard/__init__.py'
1865--- account_general_ledger_report/wizard/__init__.py 1970-01-01 00:00:00 +0000
1866+++ account_general_ledger_report/wizard/__init__.py 2013-11-20 22:45:57 +0000
1867@@ -0,0 +1,23 @@
1868+#-*- coding:utf-8 -*-
1869+##############################################################################
1870+#
1871+# OpenERP, Open Source Management Solution
1872+# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
1873+# d$
1874+#
1875+# This program is free software: you can redistribute it and/or modify
1876+# it under the terms of the GNU Affero General Public License as published by
1877+# the Free Software Foundation, either version 3 of the License, or
1878+# (at your option) any later version.
1879+#
1880+# This program is distributed in the hope that it will be useful,
1881+# but WITHOUT ANY WARRANTY; without even the implied warranty of
1882+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1883+# GNU Affero General Public License for more details.
1884+#
1885+# You should have received a copy of the GNU Affero General Public License
1886+# along with this program. If not, see <http://www.gnu.org/licenses/>.
1887+#
1888+##############################################################################
1889+
1890+import account_general_ledger_report_wizard
1891\ No newline at end of file
1892
1893=== added file 'account_general_ledger_report/wizard/account_general_ledger_report_wizard.py'
1894--- account_general_ledger_report/wizard/account_general_ledger_report_wizard.py 1970-01-01 00:00:00 +0000
1895+++ account_general_ledger_report/wizard/account_general_ledger_report_wizard.py 2013-11-20 22:45:57 +0000
1896@@ -0,0 +1,40 @@
1897+# -*- coding: utf-8 -*-
1898+##############################################################################
1899+#
1900+# OpenERP, Open Source Management Solution
1901+# Addons modules by CLEARCORP S.A.
1902+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
1903+#
1904+# This program is free software: you can redistribute it and/or modify
1905+# it under the terms of the GNU Affero General Public License as
1906+# published by the Free Software Foundation, either version 3 of the
1907+# License, or (at your option) any later version.
1908+#
1909+# This program is distributed in the hope that it will be useful,
1910+# but WITHOUT ANY WARRANTY; without even the implied warranty of
1911+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1912+# GNU Affero General Public License for more details.
1913+#
1914+# You should have received a copy of the GNU Affero General Public License
1915+# along with this program. If not, see <http://www.gnu.org/licenses/>.
1916+#
1917+##############################################################################
1918+
1919+from osv import fields, osv
1920+
1921+class AccountReportGeneralLedgerWizard(osv.osv_memory):
1922+
1923+ _inherit = "general.ledger.webkit"
1924+ _name = "general.ledger.webkit"
1925+ _description = "General Ledger Report Wizard"
1926+
1927+ def _print_report(self, cursor, uid, ids, data, context=None):
1928+ context = context or {}
1929+
1930+ # we update form with display account value
1931+ data = self.pre_print_report(cursor, uid, ids, data, context=context)
1932+
1933+ return {'type': 'ir.actions.report.xml',
1934+ 'report_name': 'account_general_ledger_webkit',
1935+ 'datas': data}
1936+
1937\ No newline at end of file
1938
1939=== added file 'account_general_ledger_report/wizard/account_general_ledger_report_wizard.xml'
1940--- account_general_ledger_report/wizard/account_general_ledger_report_wizard.xml 1970-01-01 00:00:00 +0000
1941+++ account_general_ledger_report/wizard/account_general_ledger_report_wizard.xml 2013-11-20 22:45:57 +0000
1942@@ -0,0 +1,28 @@
1943+<?xml version="1.0" encoding="utf-8"?>
1944+<openerp>
1945+ <data>
1946+ <record id ="account_report_general_ledger_report_inherit" model="ir.ui.view">
1947+ <field name="name">General Ledger Report </field>
1948+ <field name="model">general.ledger.webkit</field>
1949+ <field name="type">form</field>
1950+ <field name="inherit_id" ref="account_financial_report_webkit.account_report_general_ledger_view_webkit"/>
1951+ <field name="arch" type="xml">
1952+ <data>
1953+ <field name="fiscalyear_id" position="attributes">
1954+ <attribute name="required">True</attribute>
1955+ </field>
1956+ </data>
1957+ </field>
1958+ </record>
1959+
1960+ <record id="action_general_ledger_report_wizard" model="ir.actions.act_window">
1961+ <field name="name">General Ledger Report</field>
1962+ <field name="type">ir.actions.act_window</field>
1963+ <field name="res_model">general.ledger.webkit</field>
1964+ <field name="view_type">form</field>
1965+ <field name="view_mode">form</field>
1966+ <field name="view_id" ref="account_report_general_ledger_report_inherit"/>
1967+ <field name="target">new</field>
1968+ </record>
1969+ </data>
1970+</openerp>
1971
1972=== modified file 'account_invoice_global_discount/i18n/ar.po'
1973--- account_invoice_global_discount/i18n/ar.po 2013-02-26 05:22:23 +0000
1974+++ account_invoice_global_discount/i18n/ar.po 2013-11-20 22:45:57 +0000
1975@@ -14,8 +14,8 @@
1976 "MIME-Version: 1.0\n"
1977 "Content-Type: text/plain; charset=UTF-8\n"
1978 "Content-Transfer-Encoding: 8bit\n"
1979-"X-Launchpad-Export-Date: 2013-02-26 05:22+0000\n"
1980-"X-Generator: Launchpad (build 16506)\n"
1981+"X-Launchpad-Export-Date: 2013-11-16 06:20+0000\n"
1982+"X-Generator: Launchpad (build 16831)\n"
1983
1984 #. module: account_invoice_global_discount
1985 #: view:account.invoice:0
1986
1987=== modified file 'account_invoice_global_discount/i18n/es.po'
1988--- account_invoice_global_discount/i18n/es.po 2013-02-26 05:22:23 +0000
1989+++ account_invoice_global_discount/i18n/es.po 2013-11-20 22:45:57 +0000
1990@@ -14,8 +14,8 @@
1991 "MIME-Version: 1.0\n"
1992 "Content-Type: text/plain; charset=UTF-8\n"
1993 "Content-Transfer-Encoding: 8bit\n"
1994-"X-Launchpad-Export-Date: 2013-02-26 05:22+0000\n"
1995-"X-Generator: Launchpad (build 16506)\n"
1996+"X-Launchpad-Export-Date: 2013-11-16 06:20+0000\n"
1997+"X-Generator: Launchpad (build 16831)\n"
1998
1999 #. module: account_invoice_global_discount
2000 #: view:account.invoice:0
2001
2002=== added file 'account_invoice_global_discount/i18n/pt_BR.po'
2003--- account_invoice_global_discount/i18n/pt_BR.po 1970-01-01 00:00:00 +0000
2004+++ account_invoice_global_discount/i18n/pt_BR.po 2013-11-20 22:45:57 +0000
2005@@ -0,0 +1,92 @@
2006+# Brazilian Portuguese translation for openerp-ccorp-addons
2007+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
2008+# This file is distributed under the same license as the openerp-ccorp-addons package.
2009+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
2010+#
2011+msgid ""
2012+msgstr ""
2013+"Project-Id-Version: openerp-ccorp-addons\n"
2014+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
2015+"POT-Creation-Date: 2010-08-15 05:20+0000\n"
2016+"PO-Revision-Date: 2013-07-21 01:04+0000\n"
2017+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
2018+"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
2019+"MIME-Version: 1.0\n"
2020+"Content-Type: text/plain; charset=UTF-8\n"
2021+"Content-Transfer-Encoding: 8bit\n"
2022+"X-Launchpad-Export-Date: 2013-11-16 06:20+0000\n"
2023+"X-Generator: Launchpad (build 16831)\n"
2024+
2025+#. module: account_invoice_global_discount
2026+#: view:account.invoice:0
2027+msgid "Compute Totals"
2028+msgstr "Calcule Totais"
2029+
2030+#. module: account_invoice_global_discount
2031+#: view:account.invoice:0
2032+msgid "Discounted amount"
2033+msgstr "Valor descontado"
2034+
2035+#. module: account_invoice_global_discount
2036+#: wizard_field:invoice.discount,init,discount:0
2037+msgid "Discount percentage"
2038+msgstr "Percentual de desconto"
2039+
2040+#. module: account_invoice_global_discount
2041+#: model:ir.module.module,shortdesc:account_invoice_global_discount.module_meta_information
2042+msgid "Global invoice discount"
2043+msgstr "Desconto da fatura global"
2044+
2045+#. module: account_invoice_global_discount
2046+#: model:ir.module.module,description:account_invoice_global_discount.module_meta_information
2047+msgid ""
2048+"Adds a discount feature for invoice.\n"
2049+" With it one can add a discount percent to all invoice lines on an "
2050+"invoice.\n"
2051+" It adds the discounted and undiscounted amounts on the invoice totals.\n"
2052+" "
2053+msgstr ""
2054+"Adiciona um recurso desconto da fatura.\n"
2055+" Com ele pode-se adicionar um por cento de desconto para todas as linhas "
2056+"da fatura em uma fatura.\n"
2057+" Ele adiciona os valores descontados e não descontado sobre o total da "
2058+"fatura.\n"
2059+" "
2060+
2061+#. module: account_invoice_global_discount
2062+#: field:account.invoice,amount_discounted:0
2063+#: model:ir.actions.wizard,name:account_invoice_global_discount.invoice_discount
2064+msgid "Discount"
2065+msgstr "Desconto"
2066+
2067+#. module: account_invoice_global_discount
2068+#: wizard_view:invoice.discount,init:0
2069+msgid "Discount:"
2070+msgstr "Desconto:"
2071+
2072+#. module: account_invoice_global_discount
2073+#: view:account.invoice:0
2074+msgid "Untaxed amount"
2075+msgstr "Montante não tributado"
2076+
2077+#. module: account_invoice_global_discount
2078+#: wizard_button:invoice.discount,init,end:0
2079+msgid "Cancel"
2080+msgstr "Cancel"
2081+
2082+#. module: account_invoice_global_discount
2083+#: view:account.invoice:0
2084+#: wizard_button:invoice.discount,init,apply_discount:0
2085+msgid "Apply Discount"
2086+msgstr "Aplicar desconto"
2087+
2088+#. module: account_invoice_global_discount
2089+#: field:account.invoice,amount_untaxed_not_discounted:0
2090+#: field:account.invoice.line,price_subtotal_not_discounted:0
2091+msgid "Subtotal"
2092+msgstr "Subtotal"
2093+
2094+#. module: account_invoice_global_discount
2095+#: field:account.invoice,invoice_discount:0
2096+msgid "Discount (%)"
2097+msgstr "Desconto (%)"
2098
2099=== added directory 'account_journal_period_report/i18n'
2100=== renamed directory 'account_journal_period_report/i18n' => 'account_journal_period_report/i18n.moved'
2101=== added file 'account_journal_period_report/i18n/es_CR.po'
2102--- account_journal_period_report/i18n/es_CR.po 1970-01-01 00:00:00 +0000
2103+++ account_journal_period_report/i18n/es_CR.po 2013-11-20 22:45:57 +0000
2104@@ -0,0 +1,110 @@
2105+# Translation of OpenERP Server.
2106+# This file contains the translation of the following modules:
2107+# * account_journal_period_report
2108+#
2109+msgid ""
2110+msgstr ""
2111+"Project-Id-Version: OpenERP Server 6.1\n"
2112+"Report-Msgid-Bugs-To: \n"
2113+"POT-Creation-Date: 2013-03-19 21:51+0000\n"
2114+"PO-Revision-Date: 2013-03-19 21:51+0000\n"
2115+"Last-Translator: <>\n"
2116+"Language-Team: \n"
2117+"MIME-Version: 1.0\n"
2118+"Content-Type: text/plain; charset=UTF-8\n"
2119+"Content-Transfer-Encoding: \n"
2120+"Plural-Forms: \n"
2121+
2122+#. module: account_journal_period_report
2123+#: report:addons/account_journal_period_report/report/account_journal_period_report.mako:63
2124+#: report:addons/account_journal_period_report/report/account_journal_period_report.mako:71
2125+msgid "Account"
2126+msgstr "Cuenta"
2127+
2128+#. module: account_journal_period_report
2129+#: report:addons/account_journal_period_report/report/account_journal_period_report.mako:105
2130+#: report:addons/account_journal_period_report/report/account_journal_period_report.mako:115
2131+msgid "TOTAL"
2132+msgstr "TOTAL"
2133+
2134+#. module: account_journal_period_report
2135+#: report:addons/account_journal_period_report/report/account_journal_period_report.mako:31
2136+msgid "Chart of Accounts: "
2137+msgstr "Plan contable: "
2138+
2139+#. module: account_journal_period_report
2140+#: report:addons/account_journal_period_report/report/account_journal_period_report.mako:33
2141+msgid "Selected period: "
2142+msgstr "Período seleccionado: "
2143+
2144+#. module: account_journal_period_report
2145+#: report:addons/account_journal_period_report/report/account_journal_period_report.mako:34
2146+msgid "Entries Sorted By:"
2147+msgstr "Entradas ordenadas por:"
2148+
2149+#. module: account_journal_period_report
2150+#: report:addons/account_journal_period_report/report/account_journal_period_report.mako:61
2151+#: report:addons/account_journal_period_report/report/account_journal_period_report.mako:69
2152+msgid "Move"
2153+msgstr "Asiento"
2154+
2155+#. module: account_journal_period_report
2156+#: constraint:account.print.journal:0
2157+msgid "The fiscalyear, periods or chart of account chosen have to belong to the same company."
2158+msgstr "El año fiscal, periodos y árbol de cuentas escogido deben pertenecer a la misma compañía."
2159+
2160+#. module: account_journal_period_report
2161+#: report:addons/account_journal_period_report/report/account_journal_period_report.mako:62
2162+#: report:addons/account_journal_period_report/report/account_journal_period_report.mako:70
2163+msgid "Date"
2164+msgstr "Fecha"
2165+
2166+#. module: account_journal_period_report
2167+#: report:addons/account_journal_period_report/report/account_journal_period_report.mako:67
2168+#: report:addons/account_journal_period_report/report/account_journal_period_report.mako:75
2169+msgid "Credit"
2170+msgstr "Crédito"
2171+
2172+#. module: account_journal_period_report
2173+#: report:addons/account_journal_period_report/report/account_journal_period_report.mako:76
2174+msgid "Amount Currency"
2175+msgstr "Divisa"
2176+
2177+#. module: account_journal_period_report
2178+#: report:addons/account_journal_period_report/report/account_journal_period_report.mako:24
2179+msgid "Journal Report "
2180+msgstr "Reporte de Diarios "
2181+
2182+#. module: account_journal_period_report
2183+#: report:addons/account_journal_period_report/report/account_journal_period_report.mako:35
2184+msgid "Target Moves: "
2185+msgstr "Movimientos destino: "
2186+
2187+#. module: account_journal_period_report
2188+#: report:addons/account_journal_period_report/report/account_journal_period_report.mako:66
2189+#: report:addons/account_journal_period_report/report/account_journal_period_report.mako:74
2190+msgid "Debit"
2191+msgstr "Débito"
2192+
2193+#. module: account_journal_period_report
2194+#: model:ir.model,name:account_journal_period_report.model_account_print_journal
2195+msgid "Account Print Journal"
2196+msgstr "Contabilidad. Imprimir diario"
2197+
2198+#. module: account_journal_period_report
2199+#: report:addons/account_journal_period_report/report/account_journal_period_report.mako:64
2200+#: report:addons/account_journal_period_report/report/account_journal_period_report.mako:72
2201+msgid "Partner"
2202+msgstr "Empresa"
2203+
2204+#. module: account_journal_period_report
2205+#: report:addons/account_journal_period_report/report/account_journal_period_report.mako:65
2206+#: report:addons/account_journal_period_report/report/account_journal_period_report.mako:73
2207+msgid "Label"
2208+msgstr "Nombre"
2209+
2210+#. module: account_journal_period_report
2211+#: report:addons/account_journal_period_report/report/account_journal_period_report.mako:32
2212+msgid "Fiscal Year: "
2213+msgstr "Año fiscal: "
2214+
2215
2216=== modified file 'account_journal_period_report/report/account_journal_period_report.mako'
2217--- account_journal_period_report/report/account_journal_period_report.mako 2013-05-15 20:03:28 +0000
2218+++ account_journal_period_report/report/account_journal_period_report.mako 2013-11-20 22:45:57 +0000
2219@@ -53,6 +53,7 @@
2220 </div>
2221 <%
2222 journal_move_lines = lines(period_id, journal.id)
2223+ move_names = extract_name_move(cr, uid, journal_move_lines)
2224 %>
2225 <div class="table list">
2226 <div class="table-header">
2227@@ -77,14 +78,10 @@
2228 %endif
2229 </div>
2230 </div>
2231- <div class="table-body">
2232+ <div class="table-body">
2233 %for line in journal_move_lines:
2234 <div class="table-row ${row_even and 'even' or 'odd'}">
2235- %if line.move_id.name:
2236- <div class="table-cell first-column">${line.move_id.name} </div>
2237- %else:
2238- <div class="table-cell first-column">${line.move_id.id} </div>
2239- %endif
2240+ <div class="table-cell first-column">${move_names[line.id]} </div>
2241 <div class="table-cell">${formatLang(line.date,date=True)}</div>
2242 <div class="table-cell">${line.account_id.code}</div>
2243 <div class="table-cell">${line.partner_id.name or ''}</div>
2244
2245=== modified file 'account_journal_period_report/report/account_journal_period_report.py'
2246--- account_journal_period_report/report/account_journal_period_report.py 2013-01-17 19:12:32 +0000
2247+++ account_journal_period_report/report/account_journal_period_report.py 2013-11-20 22:45:57 +0000
2248@@ -25,6 +25,8 @@
2249 from report import report_sxw
2250 import locale
2251 from account.report.account_journal import journal_print
2252+from wadllib.application import Parameter
2253+from symbol import parameters
2254
2255 #la herencia se debe hacer de journal_print (clase original del reporte)
2256 #para que se llame el init y el set context, y se puedan usar las variables y métodos.
2257@@ -39,13 +41,34 @@
2258
2259 self.localcontext.update({
2260 'get_journal_list': self.get_journal_list,
2261- 'get_format_lang_currency': self.pool.get('account.webkit.report.library').format_lang_currency,
2262+ 'get_format_lang_currency': self.pool.get('account.webkit.report.library').format_lang_currency,
2263+ 'extract_name_move':self.extract_name_move,
2264+ 'cr': cr,
2265+ 'uid': uid,
2266 })
2267
2268 #Receive the journal_ids and return the full object
2269 def get_journal_list(self, journal_ids):
2270 return self.pool.get('account.journal').browse(self.cr, self.uid, journal_ids)
2271-
2272+
2273+ ''''
2274+ This method is created to solve the error when extracting the name move_id (line.move_id.name) fails because of read permissions
2275+ parameter move_lines are the move_lines that match with the journal and period. Pass from mako.
2276+ '''
2277+ def extract_name_move(self, cr, uid, move_lines):
2278+ move_temp = self.pool.get('account.move')
2279+ dict_name = {} #dict_name keys is the line id.
2280+
2281+ for line in move_lines:
2282+ move_id = move_temp.search(cr, uid, [('id', '=', line.move_id.id)])
2283+ move_obj = move_temp.browse(cr, uid, move_id)
2284+ if move_obj[0].name:
2285+ dict_name[line.id] = move_obj[0].name
2286+ else:
2287+ dict_name[line.id] = move_obj[0].id
2288+
2289+ return dict_name
2290+
2291 #the parameters are the report name and module name
2292 report_sxw.report_sxw( 'report.account_journal_period_print_inherit',
2293 'account.print.journal',
2294
2295=== modified file 'account_move_reverse/account_move_reverse.py'
2296--- account_move_reverse/account_move_reverse.py 2013-11-01 18:03:56 +0000
2297+++ account_move_reverse/account_move_reverse.py 2013-11-20 22:45:57 +0000
2298@@ -149,7 +149,7 @@
2299 #The move don't support write this line
2300 cr.execute('UPDATE account_move_line '\
2301 'SET reconcile_id=%s '\
2302- 'WHERE id IN %s', (reconcile_id, tuple([line.id]),))
2303+ 'WHERE id IN %s', (reconcile_id, tuple([line.id]),))
2304 #self.pool.get('account.move.line').write(cr,uid,[line.id],{'reconcile_id': reconcile_id})
2305 self.pool.get('account.move.line').write(cr,uid,[line_created_id],{'reconcile_id': reconcile_id})
2306
2307
2308=== added file 'account_move_reverse/i18n/pt_BR.po'
2309--- account_move_reverse/i18n/pt_BR.po 1970-01-01 00:00:00 +0000
2310+++ account_move_reverse/i18n/pt_BR.po 2013-11-20 22:45:57 +0000
2311@@ -0,0 +1,105 @@
2312+# Brazilian Portuguese translation for openerp-ccorp-addons
2313+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
2314+# This file is distributed under the same license as the openerp-ccorp-addons package.
2315+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
2316+#
2317+msgid ""
2318+msgstr ""
2319+"Project-Id-Version: openerp-ccorp-addons\n"
2320+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
2321+"POT-Creation-Date: 2012-07-19 22:20+0000\n"
2322+"PO-Revision-Date: 2013-07-28 11:34+0000\n"
2323+"Last-Translator: Claudio de Araujo Santos <claudioaraujosantos@gmail.com>\n"
2324+"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
2325+"MIME-Version: 1.0\n"
2326+"Content-Type: text/plain; charset=UTF-8\n"
2327+"Content-Transfer-Encoding: 8bit\n"
2328+"X-Launchpad-Export-Date: 2013-11-16 06:20+0000\n"
2329+"X-Generator: Launchpad (build 16831)\n"
2330+
2331+#. module: account_move_reverse
2332+#: constraint:account.move:0
2333+msgid ""
2334+"You can not create more than one move per period on centralized journal"
2335+msgstr ""
2336+"Você não pode criar mais do que um movimento por período centralizado em "
2337+"revista"
2338+
2339+#. module: account_move_reverse
2340+#: code:addons/account_move_reverse/account_move_reverse.py:42
2341+#: code:addons/account_move_reverse/account_move_reverse.py:46
2342+#, python-format
2343+msgid "Error !"
2344+msgstr "Erro!"
2345+
2346+#. module: account_move_reverse
2347+#: model:ir.model,name:account_move_reverse.model_account_journal
2348+msgid "Journal"
2349+msgstr "Diário"
2350+
2351+#. module: account_move_reverse
2352+#: field:account.move,move_reverse_id:0
2353+msgid "Move Reverse"
2354+msgstr "Mova Reverso"
2355+
2356+#. module: account_move_reverse
2357+#: field:account.journal,update_reversed:0
2358+msgid "Allow Cancelling Reversed Entries"
2359+msgstr "Permitir cancelamento de entradas invertidas"
2360+
2361+#. module: account_move_reverse
2362+#: sql_constraint:account.journal:0
2363+msgid "The name of the journal must be unique per company !"
2364+msgstr "O nome do periódico deve ser único por empresa!"
2365+
2366+#. module: account_move_reverse
2367+#: code:addons/account_move_reverse/account_move_reverse.py:46
2368+#, python-format
2369+msgid ""
2370+"You can not modify a posted entry of this journal !\n"
2371+"You should set the journal to allow cancelling reversed entries if you want "
2372+"to do that."
2373+msgstr ""
2374+"Você não pode modificar uma entrada postou desta revista! \n"
2375+"Você deve definir a revista para permitir o cancelamento entradas "
2376+"invertidas, se você quiser fazer isso."
2377+
2378+#. module: account_move_reverse
2379+#: constraint:account.journal:0
2380+msgid ""
2381+"Configuration error! The currency chosen should be shared by the default "
2382+"accounts too."
2383+msgstr ""
2384+"Erro de configuração! A moeda escolhida deve ser compartilhado pelas contas "
2385+"padrão também."
2386+
2387+#. module: account_move_reverse
2388+#: sql_constraint:account.journal:0
2389+msgid "The code of the journal must be unique per company !"
2390+msgstr "O código da revista deve ser exclusivo para cada empresa!"
2391+
2392+#. module: account_move_reverse
2393+#: model:ir.model,name:account_move_reverse.model_account_move
2394+msgid "Account Entry"
2395+msgstr "Conta Lançamento"
2396+
2397+#. module: account_move_reverse
2398+#: help:account.journal,update_reversed:0
2399+msgid ""
2400+"Check this box if you want to allow the cancellation of the reversed entries "
2401+"related to this journal or of the invoice related to this journal"
2402+msgstr ""
2403+"Marque esta caixa se você deseja permitir o cancelamento das entradas "
2404+"invertidas relacionadas a este jornal ou da factura relativa a este jornal"
2405+
2406+#. module: account_move_reverse
2407+#: code:addons/account_move_reverse/account_move_reverse.py:42
2408+#, python-format
2409+msgid ""
2410+"You can not modify a posted entry of this journal !\n"
2411+"You should set the journal to allow cancelling entries if you want to do "
2412+"that."
2413+msgstr ""
2414+"Você não pode modificar uma entrada postou desta revista! \n"
2415+"Você deve definir a revista para permitir o cancelamento entradas se você "
2416+"quiser fazer isso."
2417
2418=== added file 'account_voucher_reverse/i18n/pt_BR.po'
2419--- account_voucher_reverse/i18n/pt_BR.po 1970-01-01 00:00:00 +0000
2420+++ account_voucher_reverse/i18n/pt_BR.po 2013-11-20 22:45:57 +0000
2421@@ -0,0 +1,38 @@
2422+# Brazilian Portuguese translation for openerp-ccorp-addons
2423+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
2424+# This file is distributed under the same license as the openerp-ccorp-addons package.
2425+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
2426+#
2427+msgid ""
2428+msgstr ""
2429+"Project-Id-Version: openerp-ccorp-addons\n"
2430+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
2431+"POT-Creation-Date: 2012-07-19 22:18+0000\n"
2432+"PO-Revision-Date: 2013-07-28 11:35+0000\n"
2433+"Last-Translator: Claudio de Araujo Santos <claudioaraujosantos@gmail.com>\n"
2434+"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
2435+"MIME-Version: 1.0\n"
2436+"Content-Type: text/plain; charset=UTF-8\n"
2437+"Content-Transfer-Encoding: 8bit\n"
2438+"X-Launchpad-Export-Date: 2013-11-16 06:20+0000\n"
2439+"X-Generator: Launchpad (build 16831)\n"
2440+
2441+#. module: account_voucher_reverse
2442+#: view:account.voucher:0
2443+msgid "Journal Items"
2444+msgstr "Itens do Diário"
2445+
2446+#. module: account_voucher_reverse
2447+#: model:ir.model,name:account_voucher_reverse.model_account_voucher
2448+msgid "Accounting Voucher"
2449+msgstr "Comprovante de Contabilidade"
2450+
2451+#. module: account_voucher_reverse
2452+#: view:account.voucher:0
2453+msgid "Reverse"
2454+msgstr "Reverter"
2455+
2456+#. module: account_voucher_reverse
2457+#: view:account.voucher:0
2458+msgid "Are you sure to reverse this record ?"
2459+msgstr "Tem certeza que deseja reverter este registro?"
2460
2461=== modified file 'base_import_exchange_rates/__init__.py'
2462--- base_import_exchange_rates/__init__.py 2013-11-06 20:20:50 +0000
2463+++ base_import_exchange_rates/__init__.py 2013-11-20 22:45:57 +0000
2464@@ -27,7 +27,6 @@
2465 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
2466 #
2467 ##############################################################################
2468-
2469 import currency_rate_update
2470 import company
2471 import wizard
2472
2473=== modified file 'base_import_exchange_rates/__openerp__.py'
2474--- base_import_exchange_rates/__openerp__.py 2013-11-06 20:20:50 +0000
2475+++ base_import_exchange_rates/__openerp__.py 2013-11-20 22:45:57 +0000
2476@@ -8,17 +8,17 @@
2477 # Inspired directly from Camp2Camp module c2c_currency_rate_update
2478 # The module was copied and modified in order to provide enough flexibility to extend it
2479 # to use as a generic WebService XML data importer into OpenERP.
2480-#
2481+#
2482 # Redistribution and use in source and binary forms, with or without modification, are
2483 # permitted provided that the following conditions are met:
2484-#
2485+#
2486 # 1. Redistributions of source code must retain the above copyright notice, this list of
2487 # conditions and the following disclaimer.
2488-#
2489+#
2490 # 2. Redistributions in binary form must reproduce the above copyright notice, this list
2491 # of conditions and the following disclaimer in the documentation and/or other materials
2492 # provided with the distribution.
2493-#
2494+#
2495 # THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
2496 # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
2497 # FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
2498@@ -28,11 +28,11 @@
2499 # ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
2500 # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
2501 # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2502-#
2503+#
2504 # The views and conclusions contained in the software and documentation are those of the
2505 # authors and should not be interpreted as representing official policies, either expressed
2506 # or implied, of ClearCorp S.A..
2507-#
2508+#
2509 ##############################################################################
2510
2511 {
2512@@ -43,6 +43,7 @@
2513 'website': 'http://clearcorp.co.cr',
2514 'category': 'Generic Modules/Base',
2515 'description': """Import exchange rates from XML web service.
2516+<<<<<<< TREE
2517 Configuration:
2518 1) Install the module.
2519 2) Go to Administration > Company, open the company you want to syncronize.
2520@@ -53,6 +54,18 @@
2521
2522
2523
2524+=======
2525+ Configuration:
2526+ 1) Install the module.
2527+ 2) Go to Administration > Company, open the company you want to syncronize.
2528+ 3) in the page ´Currency auto update configuration´ you can configure wich webservice you wan to use
2529+ the company the currency is related to, and the currecy.
2530+ 4) You have to go to Administration>Configuration>Planification , and configure the interval you want for the method to syncronize.
2531+
2532+
2533+
2534+
2535+>>>>>>> MERGE-SOURCE
2536 """,
2537 'depends': [
2538 'account',
2539
2540=== modified file 'base_import_exchange_rates/currency_rate_update.py'
2541--- base_import_exchange_rates/currency_rate_update.py 2013-11-06 20:20:50 +0000
2542+++ base_import_exchange_rates/currency_rate_update.py 2013-11-20 22:45:57 +0000
2543@@ -2,8 +2,8 @@
2544 ##############################################################################
2545 #
2546 # Copyright (c) 2009 Camptocamp SA
2547-# @author Nicolas Bessi
2548-# @source JBA and AWST inpiration
2549+# @author Nicolas Bessi
2550+# @source JBA and AWST inpiration
2551 # @contributor Grzegorz Grzelak (grzegorz.grzelak@birdglobe.com),
2552 # WARNING: This program as such is intended to be used by professional
2553 # programmers who take the whole responsability of assessing all potential
2554@@ -42,17 +42,17 @@
2555
2556
2557 class res_currency_rate_update_service(osv.osv):
2558- """Class thats tell for wich services wich currencies
2559+ """Class thats tell for wich services wich currencies
2560 have to be updated"""
2561 _name = "res.currency.rate.update.service"
2562 _description = "Currency Rate Update"
2563 _columns = {
2564- ##list of webservicies the value sould be a class name
2565- 'service' : fields.selection(
2566+ ##list of webservicies the value sould be a class name
2567+ 'service' : fields.selection(
2568 [
2569 #('Admin_ch_getter','Admin.ch'),
2570 #('ECB_getter','European Central Bank'),
2571- #('NYFB_getter','Federal Reserve Bank of NY'),
2572+ #('NYFB_getter','Federal Reserve Bank of NY'),
2573 #('Google_getter','Google Finance'),
2574 #('Yahoo_getter','Yahoo Finance '),
2575 #('PL_NBP_getter','Narodowy Bank Polski'), # Added for polish rates
2576@@ -61,7 +61,7 @@
2577 "Webservice to use",
2578 required = True
2579 ),
2580- ##list of currency to update
2581+ ##list of currency to update
2582 'currency_to_update' : fields.many2many(
2583 'res.currency',
2584 'res_curreny_auto_udate_rel',
2585@@ -69,7 +69,7 @@
2586 'currency_id',
2587 'currency to update with this service',
2588 ),
2589- #back ref
2590+ #back ref
2591 'company_id' : fields.many2one(
2592 'res.company',
2593 'linked company',
2594@@ -79,8 +79,8 @@
2595 }
2596 _sql_constraints = [
2597 (
2598- 'curr_service_unique',
2599- 'unique (service, company_id)',
2600+ 'curr_service_unique',
2601+ 'unique (service, company_id)',
2602 _('You can use a service one time per company !')
2603 )
2604 ]
2605@@ -88,7 +88,7 @@
2606 res_currency_rate_update_service()
2607
2608 class Currency_rate_update(osv.osv):
2609- """Class that handle an ir cron call who will
2610+ """Class that handle an ir cron call who will
2611 update currencies based on a web url"""
2612 _name = "currency.rate.update"
2613 _description = "Currency Rate Update"
2614@@ -103,7 +103,7 @@
2615 'doall' : True,
2616 'model' : 'currency.rate.update',
2617 'function' : 'run_currency_update',
2618- 'args' : '()',
2619+ 'args' : '()',
2620 }
2621 logger2 = logging.getLogger('currency.rate.update')
2622 logger = netsvc.Logger()
2623@@ -111,45 +111,45 @@
2624 MOD_NAME = 'c2c_currency_rate_update: '
2625 def get_cron_id(self, cr, uid, context):
2626 """return the updater cron's id. Create one if the cron does not exists """
2627-
2628+
2629 cron_id = 0
2630 cron_obj = self.pool.get('ir.cron')
2631- try:
2632+ try:
2633 #find the cron that send messages
2634 cron_id = cron_obj.search(
2635- cr,
2636- uid,
2637+ cr,
2638+ uid,
2639 [
2640- ('function', 'ilike', self.cron['function']),
2641+ ('function', 'ilike', self.cron['function']),
2642 ('model', 'ilike', self.cron['model'])
2643- ],
2644+ ],
2645 context={
2646 'active_test': False
2647- }
2648+ }
2649 )
2650 cron_id = int(cron_id[0])
2651 except Exception,e :
2652 self.logger.notifyChannel(
2653- self.LOG_NAME,
2654- netsvc.LOG_INFO,
2655+ self.LOG_NAME,
2656+ netsvc.LOG_INFO,
2657 'warning cron not found one will be created'
2658 )
2659 print 'warning cron not found one will be created'
2660 pass # ignore if the cron is missing cause we are going to create it in db
2661-
2662+
2663 #the cron does not exists
2664 if not cron_id :
2665 #translate
2666 self.cron['name'] = _('Currency Rate Update')
2667 cron_id = cron_obj.create(cr, uid, self.cron, context)
2668-
2669+
2670 return cron_id
2671-
2672+
2673 def save_cron(self, cr, uid, datas, context={}):
2674 """save the cron config data should be a dict"""
2675 #modify the cron
2676- cron_id = self.get_cron_id(cr, uid, context)
2677- result = self.pool.get('ir.cron').write(cr, uid, [cron_id], datas)
2678+ cron_id = self.get_cron_id(cr, uid, context)
2679+ result = self.pool.get('ir.cron').write(cr, uid, [cron_id], datas)
2680
2681 def run_currency_update(self, cr, uid):
2682 "update currency at the given frequence"
2683@@ -161,7 +161,7 @@
2684 res_currency_base = curr_obj.browse(cr, uid, res_currency_base_id)[0]
2685 companies = self.pool.get('res.company').search(cr, uid, [])
2686 for comp in self.pool.get('res.company').browse(cr, uid, companies):
2687- ##the multi company currency can beset or no so we handle
2688+ ##the multi company currency can beset or no so we handle
2689 ##the two case
2690 if not comp.auto_currency_up :
2691 continue
2692@@ -183,7 +183,7 @@
2693 for curr in service.currency_to_update :
2694 if curr.name not in res:
2695 continue
2696-
2697+
2698 for name, rate in res[curr.name].iteritems():
2699 rate_ids = rate_obj.search(cr, uid, [('currency_id','=',curr.id),('name','=',name)])
2700 if not len(rate_ids):
2701@@ -193,7 +193,7 @@
2702
2703 vals = {'currency_id': curr.id, 'rate': rate, 'name': name}
2704 rate_obj.create(cr, uid, vals)
2705-
2706+
2707 note = note + "\n currency updated at %s "\
2708 %(str(datetime.today()))
2709 note = note + (log_info or '')
2710@@ -203,10 +203,10 @@
2711 %(str(datetime.today()), str(e))
2712 self.logger.notifyChannel(self.LOG_NAME, netsvc.LOG_INFO, str(e))
2713 service.write({'note':error_msg})
2714-
2715+
2716 def get_next_date(self, cr, uid, context=None):
2717 tomorrow=datetime.date.today() + datetime.timedelta(days=1)
2718- pday= tomorrow.day
2719+ pday= tomorrow.day
2720 pmonth = tomorrow.month
2721 pyear = tomorrow.year
2722 phour = "02:00:00"
2723@@ -220,12 +220,12 @@
2724
2725
2726
2727-
2728-
2729+
2730+
2731 Currency_rate_update()
2732
2733 ### Error Definition as specified in python 2.6 PEP
2734-class AbstractClassError(Exception):
2735+class AbstractClassError(Exception):
2736 def __str__(self):
2737 return 'Abstract Class'
2738 def __repr__(self):
2739@@ -237,25 +237,25 @@
2740 def __repr__(self):
2741 return 'Abstract Method'
2742
2743-class UnknowClassError(Exception):
2744+class UnknowClassError(Exception):
2745 def __str__(self):
2746 return 'Unknown Class'
2747 def __repr__(self):
2748 return 'Unknown Class'
2749-class UnsuportedCurrencyError(Exception):
2750+class UnsuportedCurrencyError(Exception):
2751 def __init__(self, value):
2752 self.curr = value
2753 def __str__(self):
2754 return 'Unsupported currency '+self.curr
2755 def __repr__(self):
2756 return 'Unsupported currency '+self.curr
2757-
2758-### end of error definition
2759+
2760+### end of error definition
2761 class Currency_getter_factory():
2762- """Factory pattern class that will return
2763+ """Factory pattern class that will return
2764 a currency getter class base on the name passed
2765 to the register method"""
2766- def register(self, class_name):
2767+ def register(self, class_name):
2768 allowed = [
2769 'Admin_ch_getter',
2770 'PL_NBP_getter',
2771@@ -270,60 +270,60 @@
2772 return class_def()
2773 else :
2774 raise UnknowClassError
2775-
2776+
2777
2778 class Curreny_getter_interface(object) :
2779 "Abstract class of currency getter"
2780-
2781+
2782 #remove in order to have a dryer code
2783 # def __init__(self):
2784- # raise AbstractClassError
2785-
2786+ # raise AbstractClassError
2787+
2788 log_info = " "
2789-
2790+
2791 supported_currency_array = \
2792 ['AFN', 'ALL', 'DZD', 'USD', 'USD', 'USD', 'EUR', 'AOA', 'XCD', 'XCD', 'ARS',
2793-'AMD', 'AWG', 'AUD', 'EUR', 'AZN', 'EUR', 'BSD', 'BHD', 'EUR', 'BDT', 'BBD',
2794-'XCD', 'BYR', 'EUR', 'BZD', 'XOF', 'BMD', 'BTN', 'INR', 'BOB', 'ANG', 'BAM',
2795-'BWP', 'NOK', 'BRL', 'GBP', 'USD', 'USD', 'BND', 'BGN', 'XOF', 'MMK', 'BIF',
2796-'XOF', 'USD', 'KHR', 'XAF', 'CAD', 'EUR', 'CVE', 'KYD', 'XAF', 'XAF', 'CLP',
2797-'CNY', 'AUD', 'AUD', 'COP', 'XAF', 'KMF', 'XPF', 'XAF', 'CDF', 'NZD', 'CRC',
2798-'HRK', 'CUP', 'ANG', 'EUR', 'CYP', 'CZK', 'DKK', 'DJF', 'XCD', 'DOP', 'EUR',
2799-'XCD', 'IDR', 'USD', 'EGP', 'EUR', 'SVC', 'USD', 'GBP', 'XAF', 'ETB', 'ERN',
2800-'EEK', 'ETB', 'EUR', 'FKP', 'DKK', 'FJD', 'EUR', 'EUR', 'EUR', 'XPF', 'XPF',
2801-'EUR', 'XPF', 'XAF', 'GMD', 'GEL', 'EUR', 'GHS', 'GIP', 'XAU', 'GBP', 'EUR',
2802-'DKK', 'XCD', 'XCD', 'EUR', 'USD', 'GTQ', 'GGP', 'GNF', 'XOF', 'GYD', 'HTG',
2803-'USD', 'AUD', 'BAM', 'EUR', 'EUR', 'HNL', 'HKD', 'HUF', 'ISK', 'INR', 'IDR',
2804-'XDR', 'IRR', 'IQD', 'EUR', 'IMP', 'ILS', 'EUR', 'JMD', 'NOK', 'JPY', 'JEP',
2805-'JOD', 'KZT', 'AUD', 'KES', 'AUD', 'KPW', 'KRW', 'KWD', 'KGS', 'LAK', 'LVL',
2806-'LBP', 'LSL', 'ZAR', 'LRD', 'LYD', 'CHF', 'LTL', 'EUR', 'MOP', 'MKD', 'MGA',
2807-'EUR', 'MWK', 'MYR', 'MVR', 'XOF', 'EUR', 'MTL', 'FKP', 'USD', 'USD', 'EUR',
2808-'MRO', 'MUR', 'EUR', 'AUD', 'MXN', 'USD', 'USD', 'EUR', 'MDL', 'EUR', 'MNT',
2809-'EUR', 'XCD', 'MAD', 'MZN', 'MMK', 'NAD', 'ZAR', 'AUD', 'NPR', 'ANG', 'EUR',
2810-'XCD', 'XPF', 'NZD', 'NIO', 'XOF', 'NGN', 'NZD', 'AUD', 'USD', 'NOK', 'OMR',
2811-'PKR', 'USD', 'XPD', 'PAB', 'USD', 'PGK', 'PYG', 'PEN', 'PHP', 'NZD', 'XPT',
2812-'PLN', 'EUR', 'STD', 'USD', 'QAR', 'EUR', 'RON', 'RUB', 'RWF', 'STD', 'ANG',
2813-'MAD', 'XCD', 'SHP', 'XCD', 'XCD', 'EUR', 'XCD', 'EUR', 'USD', 'WST', 'EUR',
2814-'SAR', 'SPL', 'XOF', 'RSD', 'SCR', 'SLL', 'XAG', 'SGD', 'ANG', 'ANG', 'EUR',
2815-'EUR', 'SBD', 'SOS', 'ZAR', 'GBP', 'GBP', 'EUR', 'XDR', 'LKR', 'SDG', 'SRD',
2816-'NOK', 'SZL', 'SEK', 'CHF', 'SYP', 'TWD', 'RUB', 'TJS', 'TZS', 'THB', 'IDR',
2817-'TTD', 'XOF', 'NZD', 'TOP', 'TTD', 'TND', 'TRY', 'TMM', 'USD', 'TVD', 'UGX',
2818-'UAH', 'AED', 'GBP', 'USD', 'USD', 'UYU', 'USD', 'UZS', 'VUV', 'EUR', 'VEB',
2819+'AMD', 'AWG', 'AUD', 'EUR', 'AZN', 'EUR', 'BSD', 'BHD', 'EUR', 'BDT', 'BBD',
2820+'XCD', 'BYR', 'EUR', 'BZD', 'XOF', 'BMD', 'BTN', 'INR', 'BOB', 'ANG', 'BAM',
2821+'BWP', 'NOK', 'BRL', 'GBP', 'USD', 'USD', 'BND', 'BGN', 'XOF', 'MMK', 'BIF',
2822+'XOF', 'USD', 'KHR', 'XAF', 'CAD', 'EUR', 'CVE', 'KYD', 'XAF', 'XAF', 'CLP',
2823+'CNY', 'AUD', 'AUD', 'COP', 'XAF', 'KMF', 'XPF', 'XAF', 'CDF', 'NZD', 'CRC',
2824+'HRK', 'CUP', 'ANG', 'EUR', 'CYP', 'CZK', 'DKK', 'DJF', 'XCD', 'DOP', 'EUR',
2825+'XCD', 'IDR', 'USD', 'EGP', 'EUR', 'SVC', 'USD', 'GBP', 'XAF', 'ETB', 'ERN',
2826+'EEK', 'ETB', 'EUR', 'FKP', 'DKK', 'FJD', 'EUR', 'EUR', 'EUR', 'XPF', 'XPF',
2827+'EUR', 'XPF', 'XAF', 'GMD', 'GEL', 'EUR', 'GHS', 'GIP', 'XAU', 'GBP', 'EUR',
2828+'DKK', 'XCD', 'XCD', 'EUR', 'USD', 'GTQ', 'GGP', 'GNF', 'XOF', 'GYD', 'HTG',
2829+'USD', 'AUD', 'BAM', 'EUR', 'EUR', 'HNL', 'HKD', 'HUF', 'ISK', 'INR', 'IDR',
2830+'XDR', 'IRR', 'IQD', 'EUR', 'IMP', 'ILS', 'EUR', 'JMD', 'NOK', 'JPY', 'JEP',
2831+'JOD', 'KZT', 'AUD', 'KES', 'AUD', 'KPW', 'KRW', 'KWD', 'KGS', 'LAK', 'LVL',
2832+'LBP', 'LSL', 'ZAR', 'LRD', 'LYD', 'CHF', 'LTL', 'EUR', 'MOP', 'MKD', 'MGA',
2833+'EUR', 'MWK', 'MYR', 'MVR', 'XOF', 'EUR', 'MTL', 'FKP', 'USD', 'USD', 'EUR',
2834+'MRO', 'MUR', 'EUR', 'AUD', 'MXN', 'USD', 'USD', 'EUR', 'MDL', 'EUR', 'MNT',
2835+'EUR', 'XCD', 'MAD', 'MZN', 'MMK', 'NAD', 'ZAR', 'AUD', 'NPR', 'ANG', 'EUR',
2836+'XCD', 'XPF', 'NZD', 'NIO', 'XOF', 'NGN', 'NZD', 'AUD', 'USD', 'NOK', 'OMR',
2837+'PKR', 'USD', 'XPD', 'PAB', 'USD', 'PGK', 'PYG', 'PEN', 'PHP', 'NZD', 'XPT',
2838+'PLN', 'EUR', 'STD', 'USD', 'QAR', 'EUR', 'RON', 'RUB', 'RWF', 'STD', 'ANG',
2839+'MAD', 'XCD', 'SHP', 'XCD', 'XCD', 'EUR', 'XCD', 'EUR', 'USD', 'WST', 'EUR',
2840+'SAR', 'SPL', 'XOF', 'RSD', 'SCR', 'SLL', 'XAG', 'SGD', 'ANG', 'ANG', 'EUR',
2841+'EUR', 'SBD', 'SOS', 'ZAR', 'GBP', 'GBP', 'EUR', 'XDR', 'LKR', 'SDG', 'SRD',
2842+'NOK', 'SZL', 'SEK', 'CHF', 'SYP', 'TWD', 'RUB', 'TJS', 'TZS', 'THB', 'IDR',
2843+'TTD', 'XOF', 'NZD', 'TOP', 'TTD', 'TND', 'TRY', 'TMM', 'USD', 'TVD', 'UGX',
2844+'UAH', 'AED', 'GBP', 'USD', 'USD', 'UYU', 'USD', 'UZS', 'VUV', 'EUR', 'VEB',
2845 'VEF', 'VND', 'USD', 'USD', 'USD', 'XPF', 'MAD', 'YER', 'ZMK', 'ZWD']
2846
2847 ##updated currency this arry will contain the final result
2848 updated_currency = {}
2849-
2850+
2851 def get_updated_currency(self, currency_array, main_currency) :
2852 """Interface method that will retriev the currency
2853 This function has to be reinplemented in child"""
2854 raise AbstractMethodError
2855-
2856+
2857 def validate_cur(self, currency) :
2858 """Validate if the currency to update is supported"""
2859 if currency not in self.supported_currency_array :
2860- raise UnsuportedCurrencyError(currency)
2861-
2862+ raise UnsuportedCurrencyError(currency)
2863+
2864 def get_url(self, url):
2865 """Return a string of a get url query"""
2866 try:
2867@@ -336,12 +336,12 @@
2868 raise osv.except_osv('Error !', self.MOD_NAME+'Unable to import urllib !')
2869 except IOError:
2870 raise osv.except_osv('Error !', self.MOD_NAME+'Web Service does not exist !')
2871-
2872-#Yahoo ###################################################################################
2873+
2874+#Yahoo ###################################################################################
2875 class Yahoo_getter(Curreny_getter_interface) :
2876 """Implementation of Currency_getter_factory interface
2877 for Yahoo finance service"""
2878-
2879+
2880 def get_updated_currency(self, currency_array, main_currency):
2881 """implementation of abstract method of Curreny_getter_interface"""
2882 self.validate_cur(main_currency)
2883@@ -356,15 +356,15 @@
2884 self.updated_currency[curr] = val
2885 else :
2886 raise Exception('Could not update the %s'%(curr))
2887-
2888+
2889 return self.updated_currency, self.log_info # empty string added by polish changes
2890-##Admin CH ############################################################################
2891+##Admin CH ############################################################################
2892 class Admin_ch_getter(Curreny_getter_interface) :
2893 """Implementation of Currency_getter_factory interface
2894 for Admin.ch service"""
2895-
2896+
2897 def rate_retrieve(self, node) :
2898- """ Parse a dom node to retrieve
2899+ """ Parse a dom node to retrieve
2900 currencies data"""
2901 res = {}
2902 if isinstance(node, list) :
2903@@ -383,7 +383,7 @@
2904 currency_array.remove(main_currency)
2905 from xml.dom.minidom import parseString
2906 from xml import xpath
2907- rawfile = self.get_url(url)
2908+ rawfile = self.get_url(url)
2909 dom = parseString(rawfile)
2910 #we dynamically update supported currencies
2911 self.supported_currency_array = []
2912@@ -391,7 +391,7 @@
2913 for el in xpath.Evaluate("/wechselkurse/devise/@code", dom):
2914 self.supported_currency_array.append(el.value.upper())
2915 self.validate_cur(main_currency)
2916- #The XML give the value in franc for 1 XX if we are in CHF
2917+ #The XML give the value in franc for 1 XX if we are in CHF
2918 #we want to have the value for 1 xx in chf
2919 #if main currency is not CHF we have to apply a computation on it
2920 if main_currency != 'CHF':
2921@@ -401,7 +401,7 @@
2922 main_rate = tmp_data['rate_currency'] / tmp_data['rate_ref']
2923 for curr in currency_array :
2924 curr_xpath = "/wechselkurse/devise[@code='%s']"%(curr.lower())
2925- for node in xpath.Evaluate(curr_xpath, dom):
2926+ for node in xpath.Evaluate(curr_xpath, dom):
2927 tmp_data = self.rate_retrieve(node)
2928 #Source is in CHF, so we transform it into reference currencies
2929 if main_currency == 'CHF' :
2930@@ -412,13 +412,13 @@
2931 self.updated_currency[curr] = rate
2932 return self.updated_currency, self.log_info # empty string added by polish changes
2933
2934-## ECB getter ############################################################################
2935+## ECB getter ############################################################################
2936 class ECB_getter(Curreny_getter_interface) :
2937 """Implementation of Currency_getter_factory interface
2938 for ECB service"""
2939-
2940+
2941 def rate_retrieve(self, node) :
2942- """ Parse a dom node to retrieve
2943+ """ Parse a dom node to retrieve
2944 currencies data"""
2945 res = {}
2946 if isinstance(node, list) :
2947@@ -435,7 +435,7 @@
2948 currency_array.remove(main_currency)
2949 from xml.dom.minidom import parseString
2950 from xml import xpath
2951- rawfile = self.get_url(url)
2952+ rawfile = self.get_url(url)
2953 dom = parseString(rawfile)
2954 #we dynamically update supported currencies
2955 self.supported_currency_array = []
2956@@ -445,18 +445,18 @@
2957 self.validate_cur(main_currency)
2958 for curr in currency_array :
2959 curr_xpath = "//Cube/Cube/Cube[@currency='%s']"%(curr.upper())
2960- for node in xpath.Evaluate(curr_xpath, dom):
2961+ for node in xpath.Evaluate(curr_xpath, dom):
2962 tmp_data = self.rate_retrieve(node)
2963 self.updated_currency[curr] = tmp_data['rate_currency']
2964 return self.updated_currency, self.log_info # empty string added by polish changes
2965
2966-##PL NBP ############################################################################
2967+##PL NBP ############################################################################
2968 class PL_NBP_getter(Curreny_getter_interface) : # class added according to polish needs = based on class Admin_ch_getter
2969 """Implementation of Currency_getter_factory interface
2970 for PL NBP service"""
2971-
2972+
2973 def rate_retrieve(self, node) :
2974- """ Parse a dom node to retrieve
2975+ """ Parse a dom node to retrieve
2976 currencies data"""
2977 res = {}
2978 if isinstance(node, list) :
2979@@ -477,12 +477,12 @@
2980 currency_array.remove(main_currency)
2981 from xml.dom.minidom import parseString
2982 from xml import xpath
2983- rawfile = self.get_url(url)
2984+ rawfile = self.get_url(url)
2985 dom = parseString(rawfile)
2986 node = xpath.Evaluate("/tabela_kursow", dom) # BEGIN Polish - rates table name
2987 if isinstance(node, list) :
2988 node = node[0]
2989- self.log_info = node.getElementsByTagName('numer_tabeli')[0].childNodes[0].data
2990+ self.log_info = node.getElementsByTagName('numer_tabeli')[0].childNodes[0].data
2991 self.log_info = self.log_info + " " + node.getElementsByTagName('data_publikacji')[0].childNodes[0].data # END Polish - rates table name
2992
2993 #we dynamically update supported currencies
2994@@ -493,19 +493,19 @@
2995 self.validate_cur(main_currency)
2996 for curr in currency_array :
2997 curr_xpath = "/tabela_kursow/pozycja[kod_waluty='%s']"%(curr.upper())
2998- for node in xpath.Evaluate(curr_xpath, dom):
2999+ for node in xpath.Evaluate(curr_xpath, dom):
3000 tmp_data = self.rate_retrieve(node)
3001 #Source is in PLN, so we transform it into reference currencies
3002 rate = 1 / (tmp_data['rate_currency'] / tmp_data['rate_ref'])
3003 self.updated_currency[curr] = rate
3004 return self.updated_currency, self.log_info
3005
3006-##PL NBP ############################################################################
3007+##PL NBP ############################################################################
3008 class bccr_getter(Curreny_getter_interface) : # class added for CR rates
3009 """Implementation of Currency_getter_factory interface
3010 for PL NBP service"""
3011
3012-
3013+
3014 def get_updated_currency(self, cr, uid, currency_array, main_currency):
3015 logger2 = logging.getLogger('bccr_getter')
3016 """implementation of abstract method of Curreny_getter_interface"""
3017@@ -521,12 +521,12 @@
3018 # Get the last rate for the selected currency
3019 currency_obj = pooler.get_pool(cr.dbname).get('res.currency')
3020 currency_rate_obj = pooler.get_pool(cr.dbname).get('res.currency.rate')
3021-
3022+
3023 currency_id = currency_obj.search(cr, uid, [('name','=',curr)])
3024
3025 if not currency_id:
3026 continue
3027-
3028+
3029 last_rate_id = currency_rate_obj.search(cr, uid, [('currency_id','in',currency_id)], order='name DESC', limit=1)
3030 last_rate = currency_rate_obj.browse(cr, uid, last_rate_id)
3031 if len(last_rate):
3032@@ -536,12 +536,12 @@
3033 last_rate_date = today
3034
3035 url = url1 + last_rate_date + url2
3036-
3037+
3038 if curr.upper() == 'CRC':
3039 url = url + '318' #318: indicator number for CRC sale rate
3040 elif curr.upper() == 'EUR':
3041 url = url + '333' #333: indicator number for EUR rate
3042-
3043+
3044 if url:
3045 #debug(url)
3046 logger2.info(url)
3047
3048=== added directory 'cic_payroll'
3049=== added directory 'cic_payroll/i18n'
3050=== added file 'cic_payroll/i18n/pt_BR.po'
3051--- cic_payroll/i18n/pt_BR.po 1970-01-01 00:00:00 +0000
3052+++ cic_payroll/i18n/pt_BR.po 2013-11-20 22:45:57 +0000
3053@@ -0,0 +1,35 @@
3054+# Brazilian Portuguese translation for openerp-ccorp-addons
3055+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
3056+# This file is distributed under the same license as the openerp-ccorp-addons package.
3057+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
3058+#
3059+msgid ""
3060+msgstr ""
3061+"Project-Id-Version: openerp-ccorp-addons\n"
3062+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
3063+"POT-Creation-Date: 2012-09-06 21:19+0000\n"
3064+"PO-Revision-Date: 2013-07-28 11:36+0000\n"
3065+"Last-Translator: Claudio de Araujo Santos <claudioaraujosantos@gmail.com>\n"
3066+"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
3067+"MIME-Version: 1.0\n"
3068+"Content-Type: text/plain; charset=UTF-8\n"
3069+"Content-Transfer-Encoding: 8bit\n"
3070+"X-Launchpad-Export-Date: 2013-11-16 06:20+0000\n"
3071+"X-Generator: Launchpad (build 16831)\n"
3072+
3073+#. module: cic_payroll
3074+#: model:ir.model,name:cic_payroll.model_hr_payslip_run
3075+msgid "Payslip Batches"
3076+msgstr "Lotes holerite"
3077+
3078+#. module: cic_payroll
3079+#: constraint:hr.contract:0
3080+msgid "Error! contract start-date must be lower then contract end-date."
3081+msgstr ""
3082+"Erro! contrato data de início deve ser inferior, em seguida, contrato data "
3083+"final."
3084+
3085+#. module: cic_payroll
3086+#: model:ir.model,name:cic_payroll.model_hr_contract
3087+msgid "Contract"
3088+msgstr "Contrato"
3089
3090=== modified file 'hr_payroll_report/report/hr_payroll_report.mako'
3091--- hr_payroll_report/report/hr_payroll_report.mako 2013-08-27 14:38:30 +0000
3092+++ hr_payroll_report/report/hr_payroll_report.mako 2013-11-20 22:45:57 +0000
3093@@ -50,7 +50,7 @@
3094 </div>
3095 </div>
3096 </div>
3097- <br></br><br></br>
3098+ <br></br>
3099 ##Worked days
3100 <% worked_lines_ids = get_worked_lines(cr,uid,payslip.id,payslip.contract_id.schedule_pay) %>
3101 <div style="font-size: 16px; font-weight: bold; text-align: left;"> ${_('Quantity of hours')} </div>
3102@@ -93,7 +93,7 @@
3103 %endif
3104 </div>
3105 </div>
3106- <br></br><br></br>
3107+ <br></br>
3108 ##Salary Computation
3109 <div style="font-size: 16px; font-weight: bold; text-align: left;">${_('Salary Computation')} </div>
3110 <div class="table list">
3111@@ -121,10 +121,17 @@
3112 %endfor
3113 </div>
3114 </div>
3115+<<<<<<< TREE
3116 <br></br> <br></br> <br></br>
3117 <div class="table list" style="margin-top:30px">
3118 <div class="table-body">
3119 <div class="table-row" style="vertical-align: bottom">
3120+=======
3121+ <br></br> <br></br></br>
3122+ <div class="act_as_table data_table" style="margin-top:30px">
3123+ <div class="act_as_tbody">
3124+ <div class="act_as_row" style="vertical-align: bottom">
3125+>>>>>>> MERGE-SOURCE
3126 <div style="padding-bottom:5px">___________________________________________________________</div>
3127 </div>
3128 <div class="table-row" style="vertical-align: bottom">
3129@@ -133,8 +140,13 @@
3130 <div class="table-row" style="vertical-align: bottom">
3131 <div style="padding-bottom:5px">${_('ID card: ')}${payslip.employee_id.ssnid or ''}</div>
3132 </div>
3133+<<<<<<< TREE
3134 <br></br> <br></br><br></br><br></br>
3135 <div class="table-row" style="text-align:justify;text-justify:inter-word;">
3136+=======
3137+ <br></br> <br></br><br>
3138+ <div class="act_as_row" style="text-align:justify;text-justify:inter-word;">
3139+>>>>>>> MERGE-SOURCE
3140 <div style="padding-bottom:5px">${company.payslip_footer or ''}</div>
3141 </div>
3142 </div>
3143
3144=== modified file 'purchase_order_report/report/purchase_order_report.mako'
3145--- purchase_order_report/report/purchase_order_report.mako 2013-08-26 22:40:10 +0000
3146+++ purchase_order_report/report/purchase_order_report.mako 2013-11-20 22:45:57 +0000
3147@@ -9,43 +9,56 @@
3148 <% setLang(purchase_order.partner_id.lang) %>
3149 <div id="wrapper">
3150 <table width = "100%" class = "document_data">
3151- <tr class = "title">
3152+ <tr class = "title">
3153 <td class = "document_data">
3154 %if purchase_order.state =='draft' :
3155- <span class="title">${_("Quotation N°")} ${purchase_order.name or ''|entity}</span><br/>
3156+ <span class="title">${_("Quotation N° ")} ${purchase_order.name or ''|entity}</span><br/>
3157 %endif
3158 %if purchase_order.state != 'draft' :
3159- <span class="title">${_("Order N°")} ${purchase_order.name or ''|entity}</span><br/>
3160+ <span class="title">${_("Order N° ")} ${purchase_order.name or ''|entity}</span><br/>
3161 %endif
3162- </td>
3163+ </td>
3164+ <td>${_("Purchase Order")}</td>
3165 </tr>
3166- <tr>
3167+ <tr>
3168 <td>${_("Order date: ")}${(purchase_order.date_order and formatLang(purchase_order.date_order,date=True)) or '-'|entity} </td>
3169- </tr>
3170- %if purchase_order.state != 'draft' :
3171- <tr>
3172- <td>${_("Validated by: ")}:${purchase_order.validator.name or ''|entity}</td>
3173- </tr>
3174- %endif
3175- <tr>
3176- <td>${_("Ref.")}: ${purchase_order.partner_ref != "" and purchase_order.partner_ref or '-'|entity}</td>
3177- </tr>
3178- <tr>
3179- <td>${_("Email")}: ${purchase_order.partner_id.email or '-'|entity}</td>
3180- <td>&nbsp;</td><td>&nbsp;</td>
3181- </tr>
3182+ <td>${purchase_order.partner_id.name or ''}</td>
3183+ </tr>
3184+ <tr>
3185+ %if purchase_order.state != 'draft' :
3186+ <td>${_("Validated by: ")}${purchase_order.validator.name or ''|entity}</td>
3187+ <td>${purchase_order.partner_address_id.street or '-'}</td>
3188+ %elif purchase_order.state == 'draft':
3189+ <td></td>
3190+ <td>${purchase_order.partner_address_id.street2 or '-'}</td>
3191+ %endif
3192+ </tr>
3193+ <tr>
3194+ <td>${_("Ref.")}: ${purchase_order.partner_ref != "" and purchase_order.partner_ref or '-'|entity}</td>
3195+ <td>${purchase_order.partner_address_id.city or '-'}</td>
3196+ </tr>
3197+ <tr>
3198+ <td>${_("Email")}: ${purchase_order.validator.user_email or '-'|entity}</td>
3199+ <td>${purchase_order.partner_address_id.country_id.name or '-'}</td>
3200+ </tr>
3201+ <tr>
3202+ <td></td>
3203+ <td>${purchase_order.partner_address_id.email or '-'}</td>
3204+ </tr>
3205 <tr class = "zone_break"><td>&nbsp;</td><td>&nbsp;</td></tr>
3206 <tr class = "title">
3207- <td>${_("Purchase Order")}</td>
3208 <td>${_("Delivery and Invoincing")}</td>
3209- </tr>
3210- <tr>
3211- <td>${purchase_order.partner_id.name or ''}</td>
3212+ </tr>
3213+ <tr>
3214 <td>${_("Expected date: ")}${(purchase_order.minimum_planned_date and formatLang(purchase_order.minimum_planned_date,date=True)) or ''}</td>
3215 </tr>
3216 <tr>
3217+<<<<<<< TREE
3218 <td>${purchase_order.partner_id.street or ''}</td>
3219+=======
3220+>>>>>>> MERGE-SOURCE
3221 <td>${_("Date approved: ")}${(purchase_order.date_approve and formatLang(purchase_order.date_approve,date=True)) or ''}</td>
3222+<<<<<<< TREE
3223 </tr>
3224
3225 <tr>
3226@@ -63,6 +76,10 @@
3227 <td>${(purchase_order.dest_address_id.state_id and format(purchase_order.dest_address_id.state_id.name) + (purchase_order.dest_address_id.country_id and ', ' or '') or '') + (purchase_order.dest_address_id.country_id and format(purchase_order.dest_address_id.country_id.name) or '')}</td>
3228 </tr>
3229 </table>
3230+=======
3231+ </tr>
3232+ </table>
3233+>>>>>>> MERGE-SOURCE
3234 <table id="data-table" cellspacing="3">
3235 %if purchase_order.state =='draft':
3236 <thead><th>${_("Qty")}</th><th>${_("[Code] Description / (Taxes)")}</th><th>${_("Date Order")}</th></thead>
3237
3238=== modified file 'purchase_order_report/report/purchase_order_report.py'
3239--- purchase_order_report/report/purchase_order_report.py 2013-08-27 15:17:28 +0000
3240+++ purchase_order_report/report/purchase_order_report.py 2013-11-20 22:45:57 +0000
3241@@ -31,7 +31,7 @@
3242 self.localcontext.update({
3243 'time': time,
3244 })
3245-
3246+
3247 #the parameters are the report name and module name
3248 report_sxw.report_sxw('report.purchase_order_report_inherit',
3249 'purchase.order',
3250
3251=== added directory 'res_currency_sequence'
3252=== renamed directory 'res_currency_sequence' => 'res_currency_sequence.moved'
3253=== added file 'res_currency_sequence/__init__.py'
3254--- res_currency_sequence/__init__.py 1970-01-01 00:00:00 +0000
3255+++ res_currency_sequence/__init__.py 2013-11-20 22:45:57 +0000
3256@@ -0,0 +1,23 @@
3257+# -*- coding: utf-8 -*-
3258+##############################################################################
3259+#
3260+# OpenERP, Open Source Management Solution
3261+# Addons modules by CLEARCORP S.A.
3262+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
3263+#
3264+# This program is free software: you can redistribute it and/or modify
3265+# it under the terms of the GNU Affero General Public License as
3266+# published by the Free Software Foundation, either version 3 of the
3267+# License, or (at your option) any later version.
3268+#
3269+# This program is distributed in the hope that it will be useful,
3270+# but WITHOUT ANY WARRANTY; without even the implied warranty of
3271+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3272+# GNU Affero General Public License for more details.
3273+#
3274+# You should have received a copy of the GNU Affero General Public License
3275+# along with this program. If not, see <http://www.gnu.org/licenses/>.
3276+#
3277+##############################################################################
3278+
3279+import res_currency_sequence
3280
3281=== added file 'res_currency_sequence/__openerp__.py'
3282--- res_currency_sequence/__openerp__.py 1970-01-01 00:00:00 +0000
3283+++ res_currency_sequence/__openerp__.py 2013-11-20 22:45:57 +0000
3284@@ -0,0 +1,46 @@
3285+# -*- coding: utf-8 -*-
3286+##############################################################################
3287+#
3288+# OpenERP, Open Source Management Solution
3289+# Addons modules by CLEARCORP S.A.
3290+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
3291+#
3292+# This program is free software: you can redistribute it and/or modify
3293+# it under the terms of the GNU Affero General Public License as
3294+# published by the Free Software Foundation, either version 3 of the
3295+# License, or (at your option) any later version.
3296+#
3297+# This program is distributed in the hope that it will be useful,
3298+# but WITHOUT ANY WARRANTY; without even the implied warranty of
3299+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3300+# GNU Affero General Public License for more details.
3301+#
3302+# You should have received a copy of the GNU Affero General Public License
3303+# along with this program. If not, see <http://www.gnu.org/licenses/>.
3304+#
3305+##############################################################################
3306+
3307+
3308+{
3309+ "name" : 'ResCurrencySequence',
3310+ "version" : '1.0',
3311+ "author" : 'CLEARCORP S.A.',
3312+ #easy, normal, expert
3313+ 'complexity': 'normal',
3314+ "description": """
3315+ res_currency_sequence
3316+ """,
3317+ "category": 'Accounting & Finance',
3318+ "sequence": 4,
3319+ "website" : "http://clearcorp.co.cr",
3320+ "images" : [],
3321+ "icon" : False,
3322+ "depends" : ["base",],
3323+ "init_xml" : [],
3324+ "update_xml" : ["res_currency_sequence_view.xml",],
3325+ "test" : [],
3326+ "auto_install": False,
3327+ "application": False,
3328+ "installable": True,
3329+ 'license': 'AGPL-3',
3330+}
3331
3332=== added directory 'res_currency_sequence/i18n'
3333=== added symlink 'res_currency_sequence/i18n/es.po'
3334=== target is u'es_CR.po'
3335=== added file 'res_currency_sequence/i18n/es_CR.po'
3336--- res_currency_sequence/i18n/es_CR.po 1970-01-01 00:00:00 +0000
3337+++ res_currency_sequence/i18n/es_CR.po 2013-11-20 22:45:57 +0000
3338@@ -0,0 +1,42 @@
3339+# Translation of OpenERP Server.
3340+# This file contains the translation of the following modules:
3341+# * res_currency_sequence
3342+#
3343+msgid ""
3344+msgstr ""
3345+"Project-Id-Version: OpenERP Server 6.1\n"
3346+"Report-Msgid-Bugs-To: \n"
3347+"POT-Creation-Date: 2013-07-25 21:04+0000\n"
3348+"PO-Revision-Date: 2013-07-25 21:04+0000\n"
3349+"Last-Translator: <>\n"
3350+"Language-Team: \n"
3351+"MIME-Version: 1.0\n"
3352+"Content-Type: text/plain; charset=UTF-8\n"
3353+"Content-Transfer-Encoding: \n"
3354+"Plural-Forms: \n"
3355+
3356+#. module: res_currency_sequence
3357+#: model:ir.model,name:res_currency_sequence.model_res_currency
3358+msgid "Currency"
3359+msgstr "Moneda"
3360+
3361+#. module: res_currency_sequence
3362+#: sql_constraint:res.currency:0
3363+msgid "Sequence must be unique per currency!"
3364+msgstr "La secuencia debe ser única por moneda!"
3365+
3366+#. module: res_currency_sequence
3367+#: help:res.currency,sequence:0
3368+msgid "Use to arrange calculation sequence"
3369+msgstr "Se utiliza para organizar la secuencia de cálculo"
3370+
3371+#. module: res_currency_sequence
3372+#: sql_constraint:res.currency:0
3373+msgid "The currency code must be unique per company!"
3374+msgstr "¡El código de moneda debe ser único por compañía!"
3375+
3376+#. module: res_currency_sequence
3377+#: field:res.currency,sequence:0
3378+msgid "Sequence"
3379+msgstr "Secuencia"
3380+
3381
3382=== added file 'res_currency_sequence/res_currency_sequence.py'
3383--- res_currency_sequence/res_currency_sequence.py 1970-01-01 00:00:00 +0000
3384+++ res_currency_sequence/res_currency_sequence.py 2013-11-20 22:45:57 +0000
3385@@ -0,0 +1,68 @@
3386+# -*- coding: utf-8 -*-
3387+##############################################################################
3388+#
3389+# OpenERP, Open Source Management Solution
3390+# Addons modules by CLEARCORP S.A.
3391+# Copyright (C) 2009-TODAY CLEARCORP S.A. (<http://clearcorp.co.cr>).
3392+#
3393+# This program is free software: you can redistribute it and/or modify
3394+# it under the terms of the GNU Affero General Public License as
3395+# published by the Free Software Foundation, either version 3 of the
3396+# License, or (at your option) any later version.
3397+#
3398+# This program is distributed in the hope that it will be useful,
3399+# but WITHOUT ANY WARRANTY; without even the implied warranty of
3400+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3401+# GNU Affero General Public License for more details.
3402+#
3403+# You should have received a copy of the GNU Affero General Public License
3404+# along with this program. If not, see <http://www.gnu.org/licenses/>.
3405+#
3406+##############################################################################
3407+
3408+from osv import osv, fields
3409+from tools.translate import _
3410+
3411+class ResCurrency(osv.osv):
3412+ _name = "res.currency"
3413+ _inherit = "res.currency"
3414+
3415+ _columns = {
3416+ 'sequence': fields.integer('Sequence', required=True, help='Use to arrange calculation sequence', select=True),
3417+ }
3418+
3419+ _defaults = {
3420+ 'sequence': 0,
3421+ }
3422+
3423+ _sql_constraints = [
3424+ ('res_currency_sequence', 'unique(sequence)', 'Sequence must be unique per currency!'),
3425+ ]
3426+
3427+ _order = 'sequence'
3428+
3429+ def copy(self, cr, uid, id, default=None, context=None):
3430+ default = default or {}
3431+ default.update({
3432+ 'sequence': None,
3433+ })
3434+ return super(ResCurrency, self).copy(cr, uid, id, default, context)
3435+
3436+ def get_exchange_rate(self, cr, uid, res_currency_initial, res_currency_finally, name, context=None):
3437+ """
3438+ :param name: date of exchange rate
3439+ """
3440+ res_currency_rate_obj = self.pool.get('res.currency.rate')
3441+ result = 0.00
3442+
3443+ res_currency_base_id = self.search(cr, uid, [('base', '=', True)])
3444+ res_currency_base = self.browse(cr, uid, res_currency_base_id)[0]
3445+
3446+ if res_currency_initial.id == res_currency_base.id:
3447+ exchange_rate_dict = self.pool.get('res.currency')._current_rate(cr, uid, [res_currency_finally.id], name, arg=None, context=context)
3448+ result = exchange_rate_dict[res_currency_finally.id]
3449+ else:
3450+ currency_rate_initial = self.pool.get('res.currency')._current_rate(cr, uid, [res_currency_initial.id], name, arg=None, context=context)[res_currency_initial.id]
3451+ currency_rate_finally = self.pool.get('res.currency')._current_rate(cr, uid, [res_currency_finally.id], name, arg=None, context=context)[res_currency_finally.id]
3452+ result = currency_rate_initial * currency_rate_finally
3453+ return result
3454
3455=== added file 'res_currency_sequence/res_currency_sequence_view.xml'
3456--- res_currency_sequence/res_currency_sequence_view.xml 1970-01-01 00:00:00 +0000
3457+++ res_currency_sequence/res_currency_sequence_view.xml 2013-11-20 22:45:57 +0000
3458@@ -0,0 +1,41 @@
3459+<?xml version = "1.0" encoding = "UTF-8"?>
3460+<openerp>
3461+ <data>
3462+
3463+ <!--
3464+ ======================================
3465+ Res Currency
3466+ ======================================
3467+ -->
3468+
3469+ <record model = "ir.ui.view" id = "view_currency_tree_sequence">
3470+ <field name = "name">view.currency.tree.sequence</field>
3471+ <field name = "model">res.currency</field>
3472+ <field name = "type">tree</field>
3473+ <field name="inherit_id" ref="base.view_currency_tree"/>
3474+ <field name = "arch" type = "xml">
3475+ <data>
3476+ <field name = "active" position = "after">
3477+ <field name = "sequence" invisible="1"/>
3478+ </field>
3479+ </data>
3480+ </field>
3481+ </record>
3482+
3483+ <record model = "ir.ui.view" id = "view_currency_form_sequence">
3484+ <field name = "name">view.currency.form.sequence</field>
3485+ <field name = "model">res.currency</field>
3486+ <field name = "type">form</field>
3487+ <field name="inherit_id" ref="base.view_currency_form"/>
3488+ <field name = "arch" type = "xml">
3489+ <data>
3490+ <field name = "active" position = "after">
3491+ <field name = "sequence" />
3492+ </field>
3493+ </data>
3494+ </field>
3495+ </record>
3496+
3497+ </data>
3498+</openerp>
3499+
3500
3501=== added directory 'sale_order_ccorp_report'
3502=== added directory 'sale_order_ccorp_report/i18n'
3503=== added file 'sale_order_ccorp_report/i18n/es.po.OTHER'
3504--- sale_order_ccorp_report/i18n/es.po.OTHER 1970-01-01 00:00:00 +0000
3505+++ sale_order_ccorp_report/i18n/es.po.OTHER 2013-11-20 22:45:57 +0000
3506@@ -0,0 +1,118 @@
3507+# Spanish translation for openerp-ccorp-addons
3508+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
3509+# This file is distributed under the same license as the openerp-ccorp-addons package.
3510+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
3511+#
3512+msgid ""
3513+msgstr ""
3514+"Project-Id-Version: openerp-ccorp-addons\n"
3515+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
3516+"POT-Creation-Date: 2011-03-14 17:23+0000\n"
3517+"PO-Revision-Date: 2012-06-25 08:22+0000\n"
3518+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
3519+"Language-Team: Spanish <es@li.org>\n"
3520+"MIME-Version: 1.0\n"
3521+"Content-Type: text/plain; charset=UTF-8\n"
3522+"Content-Transfer-Encoding: 8bit\n"
3523+"X-Launchpad-Export-Date: 2013-11-16 06:20+0000\n"
3524+"X-Generator: Launchpad (build 16831)\n"
3525+
3526+#. module: ccorp_sale
3527+#: report:sale_order.layout_ccorp:0
3528+msgid "Order Nº "
3529+msgstr ""
3530+
3531+#. module: ccorp_sale
3532+#: report:sale.order.layout_ccorp:0
3533+msgid "Quotation Nº "
3534+msgstr ""
3535+
3536+#. module: ccorp_sale
3537+#: report:sale.order.layout_ccorp:0
3538+msgid "Date: "
3539+msgstr ""
3540+
3541+#. module: ccorp_sale
3542+#: report:sale.order.layout_ccorp:0
3543+msgid "ID Num.: "
3544+msgstr ""
3545+
3546+#. module: ccorp_sale
3547+#: report:sale.order.layout_ccorp:0
3548+msgid "Tel-fax: "
3549+msgstr ""
3550+
3551+#. module: ccorp_sale
3552+#: report:sale.order.layout_ccorp:0
3553+msgid "Email: "
3554+msgstr ""
3555+
3556+#. module: ccorp_sale
3557+#: report:sale.order.layout_ccorp:0
3558+msgid "Web: "
3559+msgstr ""
3560+
3561+#. module: ccorp_sale
3562+#: report:sale.order.layout_ccorp:0
3563+msgid "Address:"
3564+msgstr ""
3565+
3566+#. module: ccorp_sale
3567+#: report:sale.order.layout_ccorp:0
3568+msgid "Phone: "
3569+msgstr ""
3570+
3571+#. module: ccorp_sale
3572+#: report:sale.order.layout_ccorp:0
3573+msgid "Page: "
3574+msgstr ""
3575+
3576+#. module: ccorp_sale
3577+#: report:sale.order.layout_ccorp:0
3578+msgid "Thank you for choosing us."
3579+msgstr ""
3580+
3581+#. module: ccorp_sale
3582+#: report:sale.order.layout_ccorp:0
3583+msgid "Qty."
3584+msgstr ""
3585+
3586+#. module: ccorp_sale
3587+#: report:sale.order.layout_ccorp:0
3588+msgid "[Code] Description / (Taxes)"
3589+msgstr ""
3590+
3591+#. module: ccorp_sale
3592+#: report:sale.order.layout_ccorp:0
3593+msgid "Disc."
3594+msgstr ""
3595+
3596+#. module: ccorp_sale
3597+#: report:sale.order.layout_ccorp:0
3598+msgid "Unit Price"
3599+msgstr ""
3600+
3601+#. module: ccorp_sale
3602+#: report:sale.order.layout_ccorp:0
3603+msgid "Total Price"
3604+msgstr ""
3605+
3606+#. module: ccorp_sale
3607+#: report:sale.order.layout_ccorp:0
3608+msgid "Subtotal"
3609+msgstr ""
3610+
3611+#. module: ccorp_sale
3612+#: report:sale.order.layout_ccorp:0
3613+msgid "Discount"
3614+msgstr ""
3615+
3616+#. module: ccorp_sale
3617+#: report:sale.order.layout_ccorp:0
3618+msgid "Taxes"
3619+msgstr ""
3620+
3621+#. module: ccorp_sale
3622+#: report:sale.order.layout_ccorp:0
3623+msgid "TOTAL"
3624+msgstr ""
3625
3626=== added file 'sale_order_ccorp_report/i18n/es_CR.po.OTHER'
3627--- sale_order_ccorp_report/i18n/es_CR.po.OTHER 1970-01-01 00:00:00 +0000
3628+++ sale_order_ccorp_report/i18n/es_CR.po.OTHER 2013-11-20 22:45:57 +0000
3629@@ -0,0 +1,192 @@
3630+# Translation of OpenERP Server.
3631+# This file contains the translation of the following modules:
3632+# * sale_order_ccorp_report
3633+#
3634+msgid ""
3635+msgstr ""
3636+"Project-Id-Version: OpenERP Server 6.1\n"
3637+"Report-Msgid-Bugs-To: \n"
3638+"POT-Creation-Date: 2013-04-25 21:17+0000\n"
3639+"PO-Revision-Date: 2013-04-25 21:17+0000\n"
3640+"Last-Translator: <>\n"
3641+"Language-Team: \n"
3642+"MIME-Version: 1.0\n"
3643+"Content-Type: text/plain; charset=UTF-8\n"
3644+"Content-Transfer-Encoding: \n"
3645+"Plural-Forms: \n"
3646+
3647+#. module: sale_order_ccorp_report
3648+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:117
3649+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:124
3650+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:132
3651+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:136
3652+msgid "Sub Total"
3653+msgstr "Subtotal"
3654+
3655+#. module: sale_order_ccorp_report
3656+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:58
3657+msgid "Invoice address"
3658+msgstr "Dirección factura"
3659+
3660+#. module: sale_order_ccorp_report
3661+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:32
3662+msgid "Date:"
3663+msgstr "Fecha:"
3664+
3665+#. module: sale_order_ccorp_report
3666+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:109
3667+msgid "Note"
3668+msgstr "Nota"
3669+
3670+#. module: sale_order_ccorp_report
3671+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:74
3672+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:76
3673+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:80
3674+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:82
3675+msgid "Unit Price"
3676+msgstr "Precio unitario"
3677+
3678+#. module: sale_order_ccorp_report
3679+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:19
3680+msgid "Order N°"
3681+msgstr "N° Orden"
3682+
3683+#. module: sale_order_ccorp_report
3684+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:74
3685+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:80
3686+msgid "Disc.(%)"
3687+msgstr "Desc.(%)"
3688+
3689+#. module: sale_order_ccorp_report
3690+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:54
3691+msgid "Email"
3692+msgstr "Correo electrónico"
3693+
3694+#. module: sale_order_ccorp_report
3695+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:40
3696+msgid "Expiration date"
3697+msgstr "Fecha vencimiento"
3698+
3699+#. module: sale_order_ccorp_report
3700+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:50
3701+msgid "Fax"
3702+msgstr "Fax"
3703+
3704+#. module: sale_order_ccorp_report
3705+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:118
3706+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:125
3707+msgid "Discount"
3708+msgstr "Descuento"
3709+
3710+#. module: sale_order_ccorp_report
3711+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:148
3712+msgid "Method of payment"
3713+msgstr "Forma de pago"
3714+
3715+#. module: sale_order_ccorp_report
3716+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:46
3717+msgid "Phone"
3718+msgstr "Tel."
3719+
3720+#. module: sale_order_ccorp_report
3721+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:41
3722+msgid "Job"
3723+msgstr "Puesto"
3724+
3725+#. module: sale_order_ccorp_report
3726+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:119
3727+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:126
3728+msgid "Sub Total with discount"
3729+msgstr "Sub Total con descuento"
3730+
3731+#. module: sale_order_ccorp_report
3732+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:154
3733+msgid "Realized by"
3734+msgstr "Realizado por"
3735+
3736+#. module: sale_order_ccorp_report
3737+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:74
3738+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:76
3739+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:80
3740+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:82
3741+msgid "[Code] Description / (Taxes)"
3742+msgstr "[Cod] Descripción / (Imp.)"
3743+
3744+#. module: sale_order_ccorp_report
3745+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:154
3746+msgid "Authorized by"
3747+msgstr "Autorizado por"
3748+
3749+#. module: sale_order_ccorp_report
3750+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:74
3751+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:76
3752+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:80
3753+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:82
3754+msgid "Total Price"
3755+msgstr "Precio Total"
3756+
3757+#. module: sale_order_ccorp_report
3758+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:58
3759+msgid "Shipping address"
3760+msgstr "Dirección envío"
3761+
3762+#. module: sale_order_ccorp_report
3763+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:28
3764+msgid "Sale Order"
3765+msgstr "Orden de compra"
3766+
3767+#. module: sale_order_ccorp_report
3768+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:120
3769+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:127
3770+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:133
3771+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:137
3772+msgid "Taxes"
3773+msgstr "Impuestos"
3774+
3775+#. module: sale_order_ccorp_report
3776+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:74
3777+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:76
3778+msgid "Delay"
3779+msgstr "Tiempo de entrega."
3780+
3781+#. module: sale_order_ccorp_report
3782+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:29
3783+msgid "Contact name"
3784+msgstr "Nombre del contacto"
3785+
3786+#. module: sale_order_ccorp_report
3787+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:145
3788+msgid "Order Notes"
3789+msgstr "Nota Orden"
3790+
3791+#. module: sale_order_ccorp_report
3792+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:97
3793+msgid "days"
3794+msgstr "día(s)"
3795+
3796+#. module: sale_order_ccorp_report
3797+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:74
3798+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:76
3799+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:80
3800+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:82
3801+msgid "Qty"
3802+msgstr "Cant."
3803+
3804+#. module: sale_order_ccorp_report
3805+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:16
3806+msgid "Quotation N°"
3807+msgstr "N° Cotización"
3808+
3809+#. module: sale_order_ccorp_report
3810+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:121
3811+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:128
3812+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:134
3813+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:138
3814+msgid "Total"
3815+msgstr "Total"
3816+
3817+#. module: sale_order_ccorp_report
3818+#: report:addons/sale_order_ccorp_report/report/sale_order.mako:37
3819+msgid "Client code"
3820+msgstr "Código cliente"
3821+
3822
3823=== added file 'sale_order_ccorp_report/i18n/pt_BR.po'
3824--- sale_order_ccorp_report/i18n/pt_BR.po 1970-01-01 00:00:00 +0000
3825+++ sale_order_ccorp_report/i18n/pt_BR.po 2013-11-20 22:45:57 +0000
3826@@ -0,0 +1,118 @@
3827+# Brazilian Portuguese translation for openerp-ccorp-addons
3828+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
3829+# This file is distributed under the same license as the openerp-ccorp-addons package.
3830+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
3831+#
3832+msgid ""
3833+msgstr ""
3834+"Project-Id-Version: openerp-ccorp-addons\n"
3835+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
3836+"POT-Creation-Date: 2011-03-14 17:23+0000\n"
3837+"PO-Revision-Date: 2013-07-28 11:30+0000\n"
3838+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
3839+"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
3840+"MIME-Version: 1.0\n"
3841+"Content-Type: text/plain; charset=UTF-8\n"
3842+"Content-Transfer-Encoding: 8bit\n"
3843+"X-Launchpad-Export-Date: 2013-11-16 06:20+0000\n"
3844+"X-Generator: Launchpad (build 16831)\n"
3845+
3846+#. module: ccorp_sale
3847+#: report:sale_order.layout_ccorp:0
3848+msgid "Order Nº "
3849+msgstr "Ordem N º "
3850+
3851+#. module: ccorp_sale
3852+#: report:sale.order.layout_ccorp:0
3853+msgid "Quotation Nº "
3854+msgstr "Cotação N º "
3855+
3856+#. module: ccorp_sale
3857+#: report:sale.order.layout_ccorp:0
3858+msgid "Date: "
3859+msgstr "Data: "
3860+
3861+#. module: ccorp_sale
3862+#: report:sale.order.layout_ccorp:0
3863+msgid "ID Num.: "
3864+msgstr "Num ID.: "
3865+
3866+#. module: ccorp_sale
3867+#: report:sale.order.layout_ccorp:0
3868+msgid "Tel-fax: "
3869+msgstr "Tel-fax: "
3870+
3871+#. module: ccorp_sale
3872+#: report:sale.order.layout_ccorp:0
3873+msgid "Email: "
3874+msgstr "E-mail: "
3875+
3876+#. module: ccorp_sale
3877+#: report:sale.order.layout_ccorp:0
3878+msgid "Web: "
3879+msgstr "Web: "
3880+
3881+#. module: ccorp_sale
3882+#: report:sale.order.layout_ccorp:0
3883+msgid "Address:"
3884+msgstr "Endereço:"
3885+
3886+#. module: ccorp_sale
3887+#: report:sale.order.layout_ccorp:0
3888+msgid "Phone: "
3889+msgstr "Telefone: "
3890+
3891+#. module: ccorp_sale
3892+#: report:sale.order.layout_ccorp:0
3893+msgid "Page: "
3894+msgstr "Página: "
3895+
3896+#. module: ccorp_sale
3897+#: report:sale.order.layout_ccorp:0
3898+msgid "Thank you for choosing us."
3899+msgstr "Obrigado por nos escolher."
3900+
3901+#. module: ccorp_sale
3902+#: report:sale.order.layout_ccorp:0
3903+msgid "Qty."
3904+msgstr "Qtde."
3905+
3906+#. module: ccorp_sale
3907+#: report:sale.order.layout_ccorp:0
3908+msgid "[Code] Description / (Taxes)"
3909+msgstr "[Código] Descrição / (Impostos)"
3910+
3911+#. module: ccorp_sale
3912+#: report:sale.order.layout_ccorp:0
3913+msgid "Disc."
3914+msgstr "Desc."
3915+
3916+#. module: ccorp_sale
3917+#: report:sale.order.layout_ccorp:0
3918+msgid "Unit Price"
3919+msgstr "Preço unitário"
3920+
3921+#. module: ccorp_sale
3922+#: report:sale.order.layout_ccorp:0
3923+msgid "Total Price"
3924+msgstr "Preço Total"
3925+
3926+#. module: ccorp_sale
3927+#: report:sale.order.layout_ccorp:0
3928+msgid "Subtotal"
3929+msgstr "Subtotal"
3930+
3931+#. module: ccorp_sale
3932+#: report:sale.order.layout_ccorp:0
3933+msgid "Discount"
3934+msgstr "Desconto"
3935+
3936+#. module: ccorp_sale
3937+#: report:sale.order.layout_ccorp:0
3938+msgid "Taxes"
3939+msgstr "Impostos"
3940+
3941+#. module: ccorp_sale
3942+#: report:sale.order.layout_ccorp:0
3943+msgid "TOTAL"
3944+msgstr "TOTAL"
3945
3946=== added directory 'sale_order_ccorp_report/report'
3947=== added file 'sale_order_ccorp_report/report/sale_order.mako.OTHER'
3948--- sale_order_ccorp_report/report/sale_order.mako.OTHER 1970-01-01 00:00:00 +0000
3949+++ sale_order_ccorp_report/report/sale_order.mako.OTHER 2013-11-20 22:45:57 +0000
3950@@ -0,0 +1,166 @@
3951+<html>
3952+<head>
3953+ <style type="text/css">
3954+ ${css}
3955+ </style>
3956+</head>
3957+<body class = "data">
3958+ %for so in objects :
3959+ <% setLang(so.partner_id.lang) %>
3960+ <br></br>
3961+ <div id="wrapper">
3962+ <table width = "100%" class = "document_data">
3963+ <tr class = "title">
3964+ <td class = "document_data">
3965+ %if so.state =='draft' :
3966+ <span class="title">${_("Quotation N°")} ${so.name or ''|entity}</span><br/>
3967+ %endif
3968+ %if so.state != 'draft' :
3969+ <span class="title">${_("Order N°")} ${so.name or ''|entity}</span><br/>
3970+ %endif
3971+ </td>
3972+ <td>
3973+ ${so.partner_id.name}
3974+ </td>
3975+ </tr>
3976+ <tr>
3977+
3978+ <td>${_("Sale Order")} : ${so.client_order_ref != "" and so.client_order_ref or '-'|entity}</td>
3979+ <td>${_("Contact name")}: ${so.partner_order_id.name or '-'|entity}</td>
3980+ </tr>
3981+ <tr>
3982+ <td>${_("Date:")}
3983+ %if so.date_order:
3984+ ${formatLang(so.date_order, date=True)|entity}
3985+ %endif
3986+ </td>
3987+ <td>${_("Client code")}: ${so.partner_id.ref or '-'|entity}</td>
3988+ </tr>
3989+ <tr>
3990+ <td>${_("Expiration date")}: ${(so.expiration_date and formatLang(so.expiration_date,date=True)) or '-'|entity}</td>
3991+ <td>${_("Job")}: ${so.partner_order_id.function or '-'|entity}</td>
3992+
3993+ </tr>
3994+ <tr>
3995+ <td></td>
3996+ <td>${_("Phone")}:${so.partner_order_id.phone or '-'|entity}</td>
3997+ </tr>
3998+ <tr>
3999+ <td></td>
4000+ <td>${_("Fax")}:${so.partner_order_id.fax or '-'|entity}</td>
4001+ </tr>
4002+ <tr>
4003+ <td></td>
4004+ <td>${_("Email")}: ${so.partner_order_id.email or '-'|entity}</td>
4005+ <td>&nbsp;</td><td>&nbsp;</td>
4006+ </tr>
4007+ <tr class = "zone_break"><td>&nbsp;</td><td>&nbsp;</td></tr>
4008+ <tr class = "title"><td>${_("Invoice address")}</td><td>${_("Shipping address")}</td></tr>
4009+ <tr><td>${so.partner_invoice_id.street or ''}</td><td>${so.partner_shipping_id.street or ''}</td></tr>
4010+ <tr><td>${so.partner_invoice_id.street2 or ''}</td><td>${so.partner_shipping_id.street2 or ''}</td></tr>
4011+ <tr>
4012+ <td>${(so.partner_invoice_id.zip and format(so.partner_invoice_id.zip) + ((so.partner_invoice_id.city or so.partner_invoice_id.state_id or so.partner_invoice_id.country_id) and ' ' or '') or '') + (so.partner_invoice_id.city and format(so.partner_invoice_id.city) or '')}</td>
4013+ <td>${(so.partner_shipping_id.zip and format(so.partner_shipping_id.zip) + ((so.partner_shipping_id.city or so.partner_shipping_id.state_id or so.partner_shipping_id.country_id) and ' ' or '') or '') + (so.partner_shipping_id.city and format(so.partner_shipping_id.city) or '')}</td>
4014+ </tr>
4015+ <tr>
4016+ <td>${(so.partner_invoice_id.state_id and format(so.partner_invoice_id.state_id.name) + (so.partner_invoice_id.country_id and ', ' or '') or '') + (so.partner_invoice_id.country_id and format(so.partner_invoice_id.country_id.name) or '')}</td>
4017+ <td>${(so.partner_shipping_id.state_id and format(so.partner_shipping_id.state_id.name) + (so.partner_shipping_id.country_id and ', ' or '') or '') + (so.partner_shipping_id.country_id and format(so.partner_shipping_id.country_id.name) or '')}</td>
4018+ </tr>
4019+ </table>
4020+
4021+ <table id="data-table" cellspacing="3">
4022+ %if company.show_sale_order_footer :
4023+ %if discount(so) != 0:
4024+ <thead><th>${_("Qty")}</th><th>${_("[Code] Description / (Taxes)")}</th><th>${_("Delay")}</th><th>${_("Disc.(%)")}</th><th>${_("Unit Price")}</th><th>${_("Total Price")}</th></thead>
4025+ %else:
4026+ <thead><th>${_("Qty")}</th><th>${_("[Code] Description / (Taxes)")}</th><th>${_("Delay")}</th><th>${_("Unit Price")}</th><th>${_("Total Price")}</th></thead>
4027+ %endif
4028+ %else:
4029+ %if discount(so) != 0:
4030+ <thead><th>${_("Qty")}</th><th>${_("[Code] Description / (Taxes)")}</th><th>${_("Disc.(%)")}</th><th>${_("Unit Price")}</th><th>${_("Total Price")}</th></thead>
4031+ %else:
4032+ <thead><th>${_("Qty")}</th><th>${_("[Code] Description / (Taxes)")}</th><th>${_("Unit Price")}</th><th>${_("Total Price")}</th></thead>
4033+ %endif
4034+ %endif
4035+
4036+ <tbody>
4037+ <%i = 0%>
4038+ %for line in so.order_line :
4039+ %if i% 2 == 0:
4040+ <tr class = "even">
4041+ %else:
4042+ <tr class = "odd">
4043+ %endif
4044+ <td valign = "top">${formatLang(line.product_uom_qty)}&nbsp;${format(line.product_uom.name)}</td>
4045+ <td valign = "top" id="desc_col">${line.name}&nbsp;${line.tax_id != [] and (' / (' + (', '.join([ lt.description for lt in line.tax_id ])) + ')') or ''|entity}
4046+ %if company.show_sale_order_footer:
4047+ <td valign = "top" style="text-align:right;">${int(line.delay)}&nbsp;${_("days")}</td>
4048+ %endif
4049+ </td>
4050+ %if discount(so) != 0:
4051+ <td valign = "top">${line.discount and formatLang(line.discount) + '%' or '-'}</td>
4052+ %endif
4053+ <td valign = "top" style="text-align:right;">${so.pricelist_id.currency_id.symbol_prefix or ''|entity }&nbsp;${formatLang(line.price_unit)} ${so.pricelist_id.currency_id.symbol_suffix or ''|entity }</td>
4054+ <td valign = "top" style="text-align:right;">${so.pricelist_id.currency_id.symbol_prefix or ''|entity }&nbsp;${formatLang(line.price_subtotal_not_discounted)} ${so.pricelist_id.currency_id.symbol_suffix or ''|entity }</td>
4055+ </tr>
4056+ %if line.notes :
4057+ <tr>
4058+ <td valign = "top"></td>
4059+ <td valign = "top" id="desc_col">${_("Note")}: ${format(line.notes)}</td>
4060+ </tr>
4061+ %endif
4062+ <%i +=1%>
4063+ %endfor
4064+ %if discount(so) != 0:
4065+ %if company.show_sale_order_footer :
4066+ <% amount_discount = (so.amount_untaxed_not_discounted - so.amount_discounted) %>
4067+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-top:2px solid"><b>${_("Sub Total")}:</b></td><td style="border-top:2px solid;text-align:right">${so.pricelist_id.currency_id.symbol_prefix or ''|entity}&nbsp;${formatLang(so.amount_untaxed_not_discounted)} ${so.pricelist_id.currency_id.symbol_suffix or ''|entity}</td></tr>
4068+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"><b>${_("Discount")}:</b></td><td style="text-align:right">${so.pricelist_id.currency_id.symbol_prefix or ''|entity}&nbsp;${formatLang(so.amount_discounted)}&nbsp;${so.pricelist_id.currency_id.symbol_suffix or ''|entity}</td></tr>
4069+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"><b>${_("Sub Total with discount")}:</b></td><td style="text-align:right">${so.pricelist_id.currency_id.symbol_prefix or ''|entity}&nbsp;${formatLang(amount_discount)}&nbsp;${so.pricelist_id.currency_id.symbol_suffix or ''|entity}</td></tr>
4070+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"><b>${_("Taxes")}:</b></td><td style="text-align:right">${so.pricelist_id.currency_id.symbol_prefix or ''|entity}&nbsp;${formatLang(so.amount_tax)}&nbsp;${so.pricelist_id.currency_id.symbol_suffix or ''|entity}</td></tr>
4071+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"><b>${_("Total")}:</b></td><td style="text-align:right">${so.pricelist_id.currency_id.symbol_prefix or ''|entity}&nbsp;${formatLang(so.amount_total)}&nbsp;${so.pricelist_id.currency_id.symbol_suffix or ''|entity}</td></tr>
4072+ %else:
4073+ <% amount_discount = (so.amount_untaxed_not_discounted - so.amount_discounted) %>
4074+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-top:2px solid"><b>${_("Sub Total")}:</b></td><td style="border-top:2px solid;text-align:right">${so.pricelist_id.currency_id.symbol_prefix or ''|entity}&nbsp;${formatLang(so.amount_untaxed_not_discounted)}&nbsp;${so.pricelist_id.currency_id.symbol_suffix or ''|entity}</td></tr>
4075+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"><b>${_("Discount")}:</b></td><td style="text-align:right">${so.pricelist_id.currency_id.symbol_prefix or ''|entity}&nbsp;${formatLang(so.amount_discounted)}&nbsp;${so.pricelist_id.currency_id.symbol_suffix or ''|entity}</td></tr>
4076+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"><b>${_("Sub Total with discount")}:</b></td><td style="text-align:right">${so.pricelist_id.currency_id.symbol_prefix or ''|entity}&nbsp;${formatLang(amount_discount)}&nbsp;${so.pricelist_id.currency_id.symbol_suffix or ''|entity}</td></tr>
4077+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"><b>${_("Taxes")}:</b></td><td style="text-align:right">${so.pricelist_id.currency_id.symbol_prefix or ''|entity}&nbsp;${formatLang(so.amount_tax)}&nbsp;${so.pricelist_id.currency_id.symbol_suffix or ''|entity}</td></tr>
4078+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"><b>${_("Total")}:</b></td><td style="text-align:right">${so.pricelist_id.currency_id.symbol_prefix or ''|entity}&nbsp;${formatLang(so.amount_total)}&nbsp;${so.pricelist_id.currency_id.symbol_suffix or ''|entity}</td></tr>
4079+ %endif
4080+ %else:
4081+ %if company.show_sale_order_footer :
4082+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-top:2px solid"><b>${_("Sub Total")}:</b></td><td style="border-top:2px solid;text-align:right">${so.pricelist_id.currency_id.symbol_prefix or ''|entity}&nbsp;${formatLang(so.amount_untaxed_not_discounted)} ${so.pricelist_id.currency_id.symbol_suffix or ''|entity}</td></tr>
4083+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"><b>${_("Taxes")}:</b></td><td style="text-align:right">${so.pricelist_id.currency_id.symbol_prefix or ''|entity}&nbsp;${formatLang(so.amount_tax)}&nbsp;${so.pricelist_id.currency_id.symbol_suffix or ''|entity}</td></tr>
4084+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"><b>${_("Total")}:</b></td><td style="text-align:right">${so.pricelist_id.currency_id.symbol_prefix or ''|entity}&nbsp;${formatLang(so.amount_total)}&nbsp;${so.pricelist_id.currency_id.symbol_suffix or ''|entity}</td></tr>
4085+ %else:
4086+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-top:2px solid"><b>${_("Sub Total")}:</b></td><td style="border-top:2px solid;text-align:right">${so.pricelist_id.currency_id.symbol_prefix or ''|entity}&nbsp;${formatLang(so.amount_untaxed_not_discounted)}&nbsp;${so.pricelist_id.currency_id.symbol_suffix or ''|entity}</td></tr>
4087+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"><b>${_("Taxes")}:</b></td><td style="text-align:right">${so.pricelist_id.currency_id.symbol_prefix or ''|entity} ${formatLang(so.amount_tax)}&nbsp;${so.pricelist_id.currency_id.symbol_suffix or ''|entity}</td></tr>
4088+ <tr><td style="border-style:none"/><td style="border-style:none"/><td style="border-style:none"><b>${_("Total")}:</b></td><td style="text-align:right">${so.pricelist_id.currency_id.symbol_prefix or ''|entity} ${formatLang(so.amount_total)}&nbsp;${so.pricelist_id.currency_id.symbol_suffix or ''|entity}</td></tr>
4089+ %endif
4090+ %endif
4091+ </tbody>
4092+ </table>
4093+ <table id="notes_table">
4094+ %if so.note:
4095+ <tr><td><b>${_("Order Notes")}:</b>${format(so.note)}</td></tr>
4096+ %endif
4097+ %if so.payment_term and so.payment_term.note:
4098+ <tr><td><b>${_("Method of payment")}:</b>${format(so.payment_term and so.payment_term.note)}</td></tr>
4099+ %endif
4100+ </table>
4101+ <br>
4102+ <br>
4103+ <table id="responsibles_table">
4104+ <tr><td style="border-top:1px solid"><b>${_("Realized by")}:</b> ${so.user_id.name}</td><td style="border-style:none"/><td style="border-top:1px solid"><b>${_("Authorized by")}:_________________</b></td></tr>
4105+ <!--<tr><td style="border-style:none"> ${company.sale_order_footer}</td><td style="border-style:none"/></tr>-->
4106+ </table>
4107+ %if company.show_sale_order_footer :
4108+ <div id="custom_footer">
4109+ <p>${company.sale_order_footer}</p>
4110+ <div/>
4111+ %endif
4112+ </div>
4113+ <p style="page-break-after:always"></p>
4114+%endfor
4115+</body>
4116+</html>
4117
4118=== modified file 'sale_order_global_discount/sale_order_global_discount.py'
4119--- sale_order_global_discount/sale_order_global_discount.py 2013-07-19 17:09:25 +0000
4120+++ sale_order_global_discount/sale_order_global_discount.py 2013-11-20 22:45:57 +0000
4121@@ -30,6 +30,8 @@
4122 import decimal_precision as dp
4123 import netsvc
4124
4125+from openerp.addons.sale.sale import sale_order_line as sale_order_line_parent
4126+
4127 class sale_order_line(osv.osv):
4128 _inherit = 'sale.order.line'
4129 _description = 'Order Line'
4130@@ -46,7 +48,7 @@
4131 cur = line.order_id.pricelist_id.currency_id
4132 res[line.id] = cur_obj.round(cr, uid, cur, taxes['total'])
4133 return res
4134-
4135+
4136 _columns = {
4137 'price_subtotal_not_discounted': fields.function(_amount_line_no_discount, digits_compute= dp.get_precision('Sale Price'), string='Subtotal',
4138 store = {
4139@@ -54,6 +56,7 @@
4140 }),
4141 }
4142
4143+<<<<<<< TREE
4144 def button_dummy(self, cr, uid, ids, context=None):
4145 #To recalculate function fields
4146 for line in self.browse(cr, uid, ids, context=context):
4147@@ -63,25 +66,48 @@
4148 class SaleOrder(osv.osv):
4149 _inherit = 'sale.order'
4150 _description = 'Sales Order'
4151+=======
4152+ def button_dummy(self, cr, uid, ids, context=None):
4153+ #To recalculate function fields
4154+ for line in self.browse(cr, uid, ids, context=context):
4155+ self.write(cr, uid, [line.id], {'id': line.id}, context=context)
4156+ return True
4157+
4158+class sale_order(osv.osv):
4159+ _inherit = "sale.order"
4160+ _description = "Sales Order"
4161+>>>>>>> MERGE-SOURCE
4162
4163 def _amount_line_tax_no_discount(self, cr, uid, line, context=None):
4164 val = 0.0
4165 for c in self.pool.get('account.tax').compute_all(cr, uid, line.tax_id, line.price_unit, line.product_uom_qty, line.order_id.partner_invoice_id.id, line.product_id, line.order_id.partner_id)['taxes']:
4166 val += c.get('amount', 0.0)
4167 return val
4168-
4169- def _amount_all_ccorp(self, cr, uid, ids, field_name, arg, context=None):
4170+
4171+ def _amount_all(self, cr, uid, ids, field_name, arg, context=None):
4172+ ###Workaround, functional fields###
4173+ ###See sale.order###
4174 cur_obj = self.pool.get('res.currency')
4175 res = {}
4176 for order in self.browse(cr, uid, ids, context=context):
4177 res[order.id] = {
4178+ 'amount_untaxed': 0.0,
4179+ 'amount_tax': 0.0,
4180+ 'amount_total': 0.0,
4181 'order_discount': 0.0,
4182 'amount_discounted': 0.0,
4183 'amount_untaxed_not_discounted': 0.0,
4184 }
4185+ val = val1 = 0.0
4186+ cur = order.pricelist_id.currency_id
4187 for line in order.order_line:
4188+ val1 += line.price_subtotal
4189+ val += self._amount_line_tax(cr, uid, line, context=context)
4190 res[order.id]['amount_untaxed_not_discounted'] += line.price_subtotal_not_discounted
4191 res[order.id]['amount_discounted'] += line.price_subtotal_not_discounted - line.price_subtotal
4192+ res[order.id]['amount_tax'] = cur_obj.round(cr, uid, cur, val)
4193+ res[order.id]['amount_untaxed'] = cur_obj.round(cr, uid, cur, val1)
4194+ res[order.id]['amount_total'] = res[order.id]['amount_untaxed'] + res[order.id]['amount_tax']
4195 if res[order.id]['amount_untaxed_not_discounted'] == 0:
4196 res[order.id]['order_discount'] = 0
4197 else:
4198@@ -92,25 +118,44 @@
4199 return self.pool.get('sale.order')._get_order(cr, uid, ids, context)
4200
4201 _columns = {
4202- 'order_discount': fields.function(_amount_all_ccorp, digits_compute= dp.get_precision('Sale Price'), string='Untaxed Amount',
4203- store = {
4204- 'sale.order': (lambda self, cr, uid, ids, c={}: ids, ['order_line'], 10),
4205- 'sale.order.line': (_get_order_ccorp, ['price_unit', 'tax_id', 'discount', 'product_uom_qty'], 10),
4206- },
4207- multi='sums'),
4208- 'amount_discounted': fields.function(_amount_all_ccorp, digits_compute= dp.get_precision('Sale Price'), string='Discount',
4209- store = {
4210- 'sale.order': (lambda self, cr, uid, ids, c={}: ids, ['order_line'], 10),
4211- 'sale.order.line': (_get_order_ccorp, ['price_unit', 'tax_id', 'discount', 'product_uom_qty'], 10),
4212- },
4213- multi='sums'),
4214- 'amount_untaxed_not_discounted': fields.function(_amount_all_ccorp, digits_compute= dp.get_precision('Sale Price'), string='Subtotal',
4215+ 'amount_untaxed': fields.function(_amount_all, digits_compute= dp.get_precision('Sale Price'), string='Untaxed Amount',
4216+ store = {
4217+ 'sale.order': (lambda self, cr, uid, ids, c={}: ids, ['order_line'], 10),
4218+ 'sale.order.line': (_get_order_ccorp, ['price_unit', 'tax_id', 'discount', 'product_uom_qty'], 10),
4219+ },
4220+ multi='sums', help="The amount without tax."),
4221+ 'amount_tax': fields.function(_amount_all, digits_compute= dp.get_precision('Sale Price'), string='Taxes',
4222+ store = {
4223+ 'sale.order': (lambda self, cr, uid, ids, c={}: ids, ['order_line'], 10),
4224+ 'sale.order.line': (_get_order_ccorp, ['price_unit', 'tax_id', 'discount', 'product_uom_qty'], 10),
4225+ },
4226+ multi='sums', help="The tax amount."),
4227+ 'amount_total': fields.function(_amount_all, digits_compute= dp.get_precision('Sale Price'), string='Total',
4228+ store = {
4229+ 'sale.order': (lambda self, cr, uid, ids, c={}: ids, ['order_line'], 10),
4230+ 'sale.order.line': (_get_order_ccorp, ['price_unit', 'tax_id', 'discount', 'product_uom_qty'], 10),
4231+ },
4232+ multi='sums', help="The total amount."),
4233+ 'order_discount': fields.function(_amount_all, digits_compute= dp.get_precision('Sale Price'), required=True, string='Untaxed Amount',
4234+ store = {
4235+ 'sale.order': (lambda self, cr, uid, ids, c={}: ids, ['order_line'], 10),
4236+ 'sale.order.line': (_get_order_ccorp, ['price_unit', 'tax_id', 'discount', 'product_uom_qty'], 10),
4237+ },
4238+ multi='sums'),
4239+ 'amount_discounted': fields.function(_amount_all, digits_compute= dp.get_precision('Sale Price'), required=True, string='Discount',
4240+ store = {
4241+ 'sale.order': (lambda self, cr, uid, ids, c={}: ids, ['order_line'], 10),
4242+ 'sale.order.line': (_get_order_ccorp, ['price_unit', 'tax_id', 'discount', 'product_uom_qty'], 10),
4243+ },
4244+ multi='sums'),
4245+ 'amount_untaxed_not_discounted': fields.function(_amount_all, digits_compute= dp.get_precision('Sale Price'), required=True, string='Subtotal',
4246 store = {
4247 'sale.order': (lambda self, cr, uid, ids, c={}: ids, ['order_line'], 10),
4248 'sale.order.line': (_get_order_ccorp, ['price_unit', 'tax_id', 'discount', 'product_uom_qty'], 10),
4249 },
4250 multi='sums'),
4251 }
4252+<<<<<<< TREE
4253
4254 def button_dummy(self, cr, uid, ids, context={}):
4255 if context is None:
4256@@ -137,3 +182,29 @@
4257 else:
4258 del context['second_time']
4259 return super(SaleOrder, self).write(cr, uid, ids, vals, context=context)
4260+=======
4261+
4262+ def button_dummy(self, cr, uid, ids, context={}):
4263+ if context is None:
4264+ context = {}
4265+ #To recalculate function fields
4266+ if isinstance(ids, int):
4267+ ids = [ids]
4268+ for sale in self.browse(cr, uid, ids, context=context):
4269+ context.update({'second_time': True})
4270+ self.write(cr, uid, [sale.id], {}, context=context)
4271+ super(sale_order, self).button_dummy(cr, uid, ids, context=context)
4272+ return True
4273+
4274+ def create(self, cr, uid, vals, context=None):
4275+ sale_id = super(sale_order, self).create(cr, uid, vals, context=context)
4276+ self.button_dummy(cr, uid, [sale_id], context=context)
4277+ return sale_id
4278+
4279+ def write(self, cr, uid, ids, vals, context={}):
4280+ if 'second_time' not in context:
4281+ self.button_dummy(cr, uid, ids, context=context)
4282+ else:
4283+ del context['second_time']
4284+ return super(sale_order, self).write(cr, uid, ids, vals, context=context)
4285+>>>>>>> MERGE-SOURCE

Subscribers

People subscribed via source and target branches