[MERGE]: Merge with latest trunk-addons
bzr revid: rpa@tinyerp.com-20111018050447-ua2onimiucrhr5o3
This commit is contained in:
@@ -1213,22 +1213,10 @@ class account_move(osv.osv):
|
||||
return False
|
||||
return True
|
||||
|
||||
def _check_period_journal(self, cursor, user, ids, context=None):
|
||||
for move in self.browse(cursor, user, ids, context=context):
|
||||
for line in move.line_id:
|
||||
if line.period_id.id != move.period_id.id:
|
||||
return False
|
||||
if line.journal_id.id != move.journal_id.id:
|
||||
return False
|
||||
return True
|
||||
|
||||
_constraints = [
|
||||
(_check_centralisation,
|
||||
'You can not create more than one move per period on centralized journal',
|
||||
['journal_id']),
|
||||
(_check_period_journal,
|
||||
'You can not create journal items on different periods/journals in the same journal entry',
|
||||
['line_id']),
|
||||
]
|
||||
|
||||
def post(self, cr, uid, ids, context=None):
|
||||
@@ -1511,8 +1499,6 @@ class account_move(osv.osv):
|
||||
# Update the move lines (set them as valid)
|
||||
|
||||
obj_move_line.write(cr, uid, line_draft_ids, {
|
||||
'journal_id': move.journal_id.id,
|
||||
'period_id': move.period_id.id,
|
||||
'state': 'valid'
|
||||
}, context, check=False)
|
||||
|
||||
@@ -1553,8 +1539,6 @@ class account_move(osv.osv):
|
||||
# We can't validate it (it's unbalanced)
|
||||
# Setting the lines as draft
|
||||
obj_move_line.write(cr, uid, line_ids, {
|
||||
'journal_id': move.journal_id.id,
|
||||
'period_id': move.period_id.id,
|
||||
'state': 'draft'
|
||||
}, context, check=False)
|
||||
# Create analytic lines for the valid moves
|
||||
@@ -1579,11 +1563,15 @@ class account_move_reconcile(osv.osv):
|
||||
_defaults = {
|
||||
'name': lambda self,cr,uid,ctx={}: self.pool.get('ir.sequence').get(cr, uid, 'account.reconcile') or '/',
|
||||
}
|
||||
|
||||
def reconcile_partial_check(self, cr, uid, ids, type='auto', context=None):
|
||||
total = 0.0
|
||||
for rec in self.browse(cr, uid, ids, context=context):
|
||||
for line in rec.line_partial_ids:
|
||||
total += (line.debit or 0.0) - (line.credit or 0.0)
|
||||
if line.account_id.currency_id:
|
||||
total += line.amount_currency
|
||||
else:
|
||||
total += (line.debit or 0.0) - (line.credit or 0.0)
|
||||
if not total:
|
||||
self.pool.get('account.move.line').write(cr, uid,
|
||||
map(lambda x: x.id, rec.line_partial_ids),
|
||||
@@ -2634,7 +2622,8 @@ class account_fiscal_position_template(osv.osv):
|
||||
'name': fields.char('Fiscal Position Template', size=64, required=True),
|
||||
'chart_template_id': fields.many2one('account.chart.template', 'Chart Template', required=True),
|
||||
'account_ids': fields.one2many('account.fiscal.position.account.template', 'position_id', 'Account Mapping'),
|
||||
'tax_ids': fields.one2many('account.fiscal.position.tax.template', 'position_id', 'Tax Mapping')
|
||||
'tax_ids': fields.one2many('account.fiscal.position.tax.template', 'position_id', 'Tax Mapping'),
|
||||
'note': fields.text('Notes', translate=True),
|
||||
}
|
||||
|
||||
account_fiscal_position_template()
|
||||
@@ -2718,7 +2707,7 @@ class account_financial_report(osv.osv):
|
||||
return res
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Report Name', size=128, required=True),
|
||||
'name': fields.char('Report Name', size=128, required=True, translate=True),
|
||||
'parent_id': fields.many2one('account.financial.report', 'Parent'),
|
||||
'children_ids': fields.one2many('account.financial.report', 'parent_id', 'Account Report'),
|
||||
'sequence': fields.integer('Sequence'),
|
||||
|
||||
@@ -880,7 +880,7 @@ class account_invoice(osv.osv):
|
||||
'account_id': acc_id,
|
||||
'date_maturity': t[0],
|
||||
'amount_currency': diff_currency_p \
|
||||
and amount_currency or False,
|
||||
and amount_currency or False,
|
||||
'currency_id': diff_currency_p \
|
||||
and inv.currency_id.id or False,
|
||||
'ref': ref,
|
||||
|
||||
@@ -305,8 +305,8 @@
|
||||
<button name="invoice_cancel" states="draft,proforma2,sale,open" string="Cancel" icon="gtk-cancel"/>
|
||||
<button name="action_cancel_draft" states="cancel" string="Reset to Draft" type="object" icon="terp-stock_effects-object-colorize"/>
|
||||
|
||||
<button name='%(action_account_state_open)d' type='action' string='Re-Open' attrs="{'invisible':['|', ('state','<>','paid'), ('reconciled', '=', True)]}" icon="gtk-convert" help="This button only appears when the state of the invoice is 'paid' (showing that it has been fully reconciled) and auto-computed boolean 'reconciled' is False (depicting that it's not the case anymore). In other words, the invoice has been dereconciled and it does not fit anymore the 'paid' state. You should press this button to re-open it and let it continue its normal process after having resolved the eventual exceptions it may have created."/>
|
||||
<button name="%(action_account_invoice_refund)d" type='action' string='Refund' states='open,paid' icon="gtk-execute"/>
|
||||
<button name='%(action_account_state_open)d' type='action' string='Re-Open' states='paid' icon="gtk-convert" groups="base.group_no_one"/>
|
||||
<button name="invoice_proforma2" states="draft" string="PRO-FORMA" icon="terp-gtk-media-pause" groups="account.group_account_user"/>
|
||||
<button name="invoice_open" states="draft,proforma2" string="Validate" icon="gtk-go-forward"/>
|
||||
<button name="%(account_invoices)d" string="Print Invoice" type="action" icon="gtk-print" states="open,paid,proforma,sale,proforma2"/>
|
||||
|
||||
@@ -494,8 +494,14 @@ class account_move_line(osv.osv):
|
||||
'amount_residual_currency': fields.function(_amount_residual, string='Residual Amount', multi="residual", help="The residual amount on a receivable or payable of a journal entry expressed in its currency (maybe different of the company currency)."),
|
||||
'amount_residual': fields.function(_amount_residual, string='Residual Amount', multi="residual", help="The residual amount on a receivable or payable of a journal entry expressed in the company currency."),
|
||||
'currency_id': fields.many2one('res.currency', 'Currency', help="The optional other currency if it is a multi-currency entry."),
|
||||
'period_id': fields.many2one('account.period', 'Period', required=True, select=2),
|
||||
'journal_id': fields.many2one('account.journal', 'Journal', required=True, select=1),
|
||||
'journal_id': fields.related('move_id', 'journal_id', string='Journal', type='many2one', relation='account.journal', required=True, select=True, readonly=True,
|
||||
store = {
|
||||
'account.move': (_get_move_lines, ['journal_id'], 20)
|
||||
}),
|
||||
'period_id': fields.related('move_id', 'period_id', string='Period', type='many2one', relation='account.period', required=True, select=True, readonly=True,
|
||||
store = {
|
||||
'account.move': (_get_move_lines, ['period_id'], 20)
|
||||
}),
|
||||
'blocked': fields.boolean('Litigation', help="You can check this box to mark this journal item as a litigation with the associated partner"),
|
||||
'partner_id': fields.many2one('res.partner', 'Partner', select=1, ondelete='restrict'),
|
||||
'date_maturity': fields.date('Due date', select=True ,help="This field is used for payable and receivable journal entries. You can put the limit date for the payment of this line."),
|
||||
@@ -597,11 +603,19 @@ class account_move_line(osv.osv):
|
||||
return False
|
||||
return True
|
||||
|
||||
def _check_currency(self, cr, uid, ids, context=None):
|
||||
for l in self.browse(cr, uid, ids, context=context):
|
||||
if l.account_id.currency_id:
|
||||
if not l.currency_id or not l.currency_id.id == l.account_id.currency_id.id:
|
||||
return False
|
||||
return True
|
||||
|
||||
_constraints = [
|
||||
(_check_no_view, 'You can not create move line on view account.', ['account_id']),
|
||||
(_check_no_closed, 'You can not create move line on closed account.', ['account_id']),
|
||||
(_check_company_id, 'Company must be same for its related account and period.',['company_id'] ),
|
||||
(_check_date, 'The date of your Journal Entry is not in the defined period!',['date'] ),
|
||||
(_check_company_id, 'Company must be same for its related account and period.', ['company_id']),
|
||||
(_check_date, 'The date of your Journal Entry is not in the defined period!', ['date']),
|
||||
(_check_currency, 'The selected account of your Journal Entry must receive a value in its secondary currency', ['currency_id']),
|
||||
]
|
||||
|
||||
#TODO: ONCHANGE_ACCOUNT_ID: set account_tax_id
|
||||
@@ -735,7 +749,10 @@ class account_move_line(osv.osv):
|
||||
company_list.append(line.company_id.id)
|
||||
|
||||
for line in self.browse(cr, uid, ids, context=context):
|
||||
company_currency_id = line.company_id.currency_id
|
||||
if line.account_id.currency_id:
|
||||
currency_id = line.account_id.currency_id
|
||||
else:
|
||||
currency_id = line.company_id.currency_id
|
||||
if line.reconcile_id:
|
||||
raise osv.except_osv(_('Warning'), _('Already Reconciled!'))
|
||||
if line.reconcile_partial_id:
|
||||
@@ -743,12 +760,18 @@ class account_move_line(osv.osv):
|
||||
if not line2.reconcile_id:
|
||||
if line2.id not in merges:
|
||||
merges.append(line2.id)
|
||||
total += (line2.debit or 0.0) - (line2.credit or 0.0)
|
||||
if line2.account_id.currency_id:
|
||||
total += line2.amount_currency
|
||||
else:
|
||||
total += (line2.debit or 0.0) - (line2.credit or 0.0)
|
||||
merges_rec.append(line.reconcile_partial_id.id)
|
||||
else:
|
||||
unmerge.append(line.id)
|
||||
total += (line.debit or 0.0) - (line.credit or 0.0)
|
||||
if self.pool.get('res.currency').is_zero(cr, uid, company_currency_id, total):
|
||||
if line.account_id.currency_id:
|
||||
total += line.amount_currency
|
||||
else:
|
||||
total += (line.debit or 0.0) - (line.credit or 0.0)
|
||||
if self.pool.get('res.currency').is_zero(cr, uid, currency_id, total):
|
||||
res = self.reconcile(cr, uid, merges+unmerge, context=context, writeoff_acc_id=writeoff_acc_id, writeoff_period_id=writeoff_period_id, writeoff_journal_id=writeoff_journal_id)
|
||||
return res
|
||||
r_id = move_rec_obj.create(cr, uid, {
|
||||
@@ -1259,7 +1282,7 @@ class account_move_line(osv.osv):
|
||||
break
|
||||
# Automatically convert in the account's secondary currency if there is one and
|
||||
# the provided values were not already multi-currency
|
||||
if account.currency_id and not vals.get('ammount_currency') and account.currency_id.id != account.company_id.currency_id.id:
|
||||
if account.currency_id and (vals.get('amount_currency', False) is False) and account.currency_id.id != account.company_id.currency_id.id:
|
||||
vals['currency_id'] = account.currency_id.id
|
||||
ctx = {}
|
||||
if 'date' in vals:
|
||||
|
||||
@@ -455,9 +455,9 @@
|
||||
<!-- <field name="invoice_sequence_id"/>-->
|
||||
<field name="group_invoice_lines"/>
|
||||
</group>
|
||||
<group colspan="2" col="2" groups="base.group_extended">
|
||||
<group colspan="2" col="2"> <!-- can't set the field as hidden for certain groups as it's required in the object and not in the view, and GTK doesn't handle that correctly -->
|
||||
<separator string="Sequence" colspan="4"/>
|
||||
<field name="sequence_id"/>
|
||||
<field name="sequence_id" required="0"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Entry Controls" groups="base.group_extended">
|
||||
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
|
||||
"PO-Revision-Date: 2011-03-30 13:55+0000\n"
|
||||
"PO-Revision-Date: 2011-10-13 07:32+0000\n"
|
||||
"Last-Translator: Rolv Råen (adEgo) <Unknown>\n"
|
||||
"Language-Team: Norwegian Bokmal <nb@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-17 04:58+0000\n"
|
||||
"X-Generator: Launchpad (build 13955)\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-14 05:34+0000\n"
|
||||
"X-Generator: Launchpad (build 14124)\n"
|
||||
|
||||
#. module: account
|
||||
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
|
||||
@@ -4933,7 +4933,7 @@ msgstr "Analytisk bokføring"
|
||||
#: selection:account.invoice.report,type:0
|
||||
#: selection:report.invoice.created,type:0
|
||||
msgid "Customer Refund"
|
||||
msgstr "Kunderefusjon"
|
||||
msgstr "Kreditnota"
|
||||
|
||||
#. module: account
|
||||
#: view:account.account:0
|
||||
@@ -5489,7 +5489,7 @@ msgstr " 365 dager "
|
||||
#: model:ir.actions.act_window,name:account.action_invoice_tree3
|
||||
#: model:ir.ui.menu,name:account.menu_action_invoice_tree3
|
||||
msgid "Customer Refunds"
|
||||
msgstr "Kunderefusjon"
|
||||
msgstr "Kreditnota"
|
||||
|
||||
#. module: account
|
||||
#: view:account.payment.term.line:0
|
||||
@@ -5945,7 +5945,7 @@ msgstr "Legg inn en startdato !"
|
||||
#: selection:account.invoice.report,type:0
|
||||
#: selection:report.invoice.created,type:0
|
||||
msgid "Supplier Refund"
|
||||
msgstr "Leverandørrefusjon"
|
||||
msgstr "Kreditnota"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.ui.menu,name:account.menu_dashboard_acc
|
||||
@@ -6815,7 +6815,7 @@ msgstr "Kommentar"
|
||||
#: field:account.tax,domain:0
|
||||
#: field:account.tax.template,domain:0
|
||||
msgid "Domain"
|
||||
msgstr "Område"
|
||||
msgstr "Domene"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_account_use_model
|
||||
@@ -9616,7 +9616,7 @@ msgstr "Søk faktura"
|
||||
#: view:account.invoice.report:0
|
||||
#: model:ir.actions.act_window,name:account.action_account_invoice_refund
|
||||
msgid "Refund"
|
||||
msgstr "Refusjon"
|
||||
msgstr "Kreditnota"
|
||||
|
||||
#. module: account
|
||||
#: field:wizard.multi.charts.accounts,bank_accounts_id:0
|
||||
|
||||
@@ -149,7 +149,7 @@ class account_installer(osv.osv_memory):
|
||||
}
|
||||
new_paid_tax_code_temp = obj_tax_code_temp.create(cr, uid, vals_paid_tax_code_temp, context=context)
|
||||
sales_tax_temp = obj_tax_temp.create(cr, uid, {
|
||||
'name': _('TAX %s%%') % (s_tax*100),
|
||||
'name': _('Sale TAX %s%%') % (s_tax*100),
|
||||
'amount': s_tax,
|
||||
'base_code_id': new_tax_code_temp,
|
||||
'tax_code_id': new_paid_tax_code_temp,
|
||||
@@ -178,8 +178,7 @@ class account_installer(osv.osv_memory):
|
||||
}
|
||||
new_paid_tax_code_temp = obj_tax_code_temp.create(cr, uid, vals_paid_tax_code_temp, context=context)
|
||||
purchase_tax_temp = obj_tax_temp.create(cr, uid, {
|
||||
'name': _('TAX %s%%') % (p_tax*100),
|
||||
'description': _('TAX %s%%') % (p_tax*100),
|
||||
'name': _('Purchase TAX %s%%') % (p_tax*100),
|
||||
'amount': p_tax,
|
||||
'base_code_id': new_tax_code_temp,
|
||||
'tax_code_id': new_paid_tax_code_temp,
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
<filter string="Associated Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Parent" icon="terp-folder-orange" domain="[]" context="{'group_by':'parent_id'}"/>
|
||||
<filter string="State" icon="terp-folder-green" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="State" icon="terp-folder-green" domain="[]" context="{'group_by':'state'}" groups="base.group_no_one"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
@@ -65,6 +65,7 @@
|
||||
<field name="debit"/>
|
||||
<field name="credit"/>
|
||||
<field name="balance"/>
|
||||
<field name="state" invisible="1"/>
|
||||
<field name="currency_id" groups="base.group_extended"/>
|
||||
<field name="date" invisible="1"/>
|
||||
<field name="user_id" invisible="1"/>
|
||||
|
||||
@@ -33,11 +33,11 @@
|
||||
-
|
||||
!python {model: account.change.currency}: |
|
||||
self.view_init(cr, uid, [ref("account_change_currency_0")], {"lang": 'en_US',
|
||||
"active_model": "account.invoice", "tz": False, "record_id": 4, "active_ids":
|
||||
"active_model": "account.invoice", "tz": False, "active_ids":
|
||||
[ref("account_invoice_currency")], "type": "out_invoice", "active_id": ref("account_invoice_currency"),
|
||||
})
|
||||
self.change_currency(cr, uid, [ref("account_change_currency_0")], {"lang": 'en_US',
|
||||
"active_model": "account.invoice", "tz": False, "record_id": 4, "active_ids":
|
||||
"active_model": "account.invoice", "tz": False, "active_ids":
|
||||
[ref("account_invoice_currency")], "type": "out_invoice", "active_id": ref("account_invoice_currency"),
|
||||
})
|
||||
-
|
||||
@@ -71,7 +71,7 @@
|
||||
-
|
||||
!python {model: account.change.currency}: |
|
||||
self.change_currency(cr, uid, [ref("account_change_currency_0")], {"lang": 'en_US',
|
||||
"active_model": "account.invoice", "tz": False, "record_id": 4, "active_ids":
|
||||
"active_model": "account.invoice", "tz": False, "active_ids":
|
||||
[ref("account_invoice_currency")], "type": "out_invoice", "active_id": ref("account_invoice_currency"),
|
||||
})
|
||||
-
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="account_automatic_reconcile_view"/>
|
||||
<field name="context">{'record_id':active_id}</field>
|
||||
<field name="context">{}</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="view_account_change_currency"/>
|
||||
<field name="context">{'record_id' : active_id}</field>
|
||||
<field name="context">{}</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
</data>
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="account_partner_reconcile_view"/>
|
||||
<field name="context">{'record_id':active_id}</field>
|
||||
<field name="context">{}</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
<record model="ir.values" id="action_partner_reconcile_actino">
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="account_aged_balance_view"/>
|
||||
<field name="context">{'record_id':active_id}</field>
|
||||
<field name="context">{}</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="account_partner_balance_view"/>
|
||||
<field name="context">{'record_id':active_id}</field>
|
||||
<field name="context">{}</field>
|
||||
<field name="target">new</field>
|
||||
<field name="help">This report is analysis by partner. It is a PDF report containing one line per partner representing the cumulative credit balance.</field>
|
||||
</record>
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="account_partner_ledger_view"/>
|
||||
<field name="context">{'record_id':active_id}</field>
|
||||
<field name="context">{}</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="view_account_state_open"/>
|
||||
<field name="context">{'record_id' : active_id}</field>
|
||||
<field name="context">{}</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="account_unreconcile_reconcile_view"/>
|
||||
<field name="context">{'record_id' : active_id}</field>
|
||||
<field name="context">{}</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="validate_account_move_line_view"/>
|
||||
<field name="context">{'record_id' : active_id}</field>
|
||||
<field name="context">{}</field>
|
||||
<field name="target">new</field>
|
||||
<field name="help">This wizard will validate all journal entries of a particular journal and period. Once journal entries are validated, you can not update them anymore.</field>
|
||||
</record>
|
||||
|
||||
@@ -7,14 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
|
||||
"PO-Revision-Date: 2011-08-17 23:03+0000\n"
|
||||
"PO-Revision-Date: 2011-10-16 23:06+0000\n"
|
||||
"Last-Translator: mgaja (GrupoIsep.com) <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-05 05:11+0000\n"
|
||||
"X-Generator: Launchpad (build 13830)\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-17 04:43+0000\n"
|
||||
"X-Generator: Launchpad (build 14155)\n"
|
||||
|
||||
#. module: account_followup
|
||||
#: code:addons/account_followup/wizard/account_followup_print.py:298
|
||||
@@ -90,6 +90,11 @@ msgid ""
|
||||
"\n"
|
||||
"%s"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"\n"
|
||||
"Correu electrònic enviat a les empreses amb èxit!\n"
|
||||
"\n"
|
||||
"%s"
|
||||
|
||||
#. module: account_followup
|
||||
#: view:account_followup.followup:0
|
||||
|
||||
@@ -59,7 +59,12 @@ Account Voucher module includes all the basic requirements of Voucher Entries fo
|
||||
"test/account_voucher.yml",
|
||||
"test/sales_receipt.yml",
|
||||
"test/sales_payment.yml",
|
||||
"test/account_voucher_report.yml"
|
||||
"test/account_voucher_report.yml",
|
||||
"test/case1_usd_usd.yml",
|
||||
"test/case2_usd_eur_debtor_in_eur.yml",
|
||||
"test/case2_usd_eur_debtor_in_usd.yml",
|
||||
"test/case3_eur_eur.yml",
|
||||
"test/case4_cad_chf.yml",
|
||||
],
|
||||
'certificate': '0037580727101',
|
||||
"active": False,
|
||||
|
||||
@@ -651,13 +651,302 @@ class account_voucher(osv.osv):
|
||||
res['account_id'] = account_id
|
||||
return {'value':res}
|
||||
|
||||
def _sel_context(self, cr, uid, voucher_id,context=None):
|
||||
"""
|
||||
Select the context to use accordingly if it needs to be multicurrency or not.
|
||||
|
||||
:param voucher_id: Id of the actual voucher
|
||||
:return: The returned context will be the same as given in parameter if the voucher currency is the same
|
||||
than the company currency, otherwise it's a copy of the parameter with an extra key 'date' containing
|
||||
the date of the voucher.
|
||||
:rtype: dict
|
||||
"""
|
||||
company_currency = self._get_company_currency(cr, uid, voucher_id, context)
|
||||
current_currency = self._get_current_currency(cr, uid, voucher_id, context)
|
||||
if current_currency <> company_currency:
|
||||
context_multi_currency = context.copy()
|
||||
voucher_brw = self.pool.get('account.voucher').browse(cr, uid, voucher_id, context)
|
||||
context_multi_currency.update({'date': voucher_brw.date})
|
||||
return context_multi_currency
|
||||
return context
|
||||
|
||||
def first_move_line_get(self, cr, uid, voucher_id, move_id, company_currency, current_currency, context=None):
|
||||
'''
|
||||
Return a dict to be use to create the first account move line of given voucher.
|
||||
|
||||
:param voucher_id: Id of voucher what we are creating account_move.
|
||||
:param move_id: Id of account move where this line will be added.
|
||||
:param company_currency: id of currency of the company to which the voucher belong
|
||||
:param current_currency: id of currency of the voucher
|
||||
:return: mapping between fieldname and value of account move line to create
|
||||
:rtype: dict
|
||||
'''
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
currency_obj = self.pool.get('res.currency')
|
||||
voucher_brw = self.pool.get('account.voucher').browse(cr,uid,voucher_id,context)
|
||||
debit = credit = 0.0
|
||||
# TODO: is there any other alternative then the voucher type ??
|
||||
# ANSWER: We can have payment and receipt "In Advance".
|
||||
# TODO: Make this logic available.
|
||||
# -for sale, purchase we have but for the payment and receipt we do not have as based on the bank/cash journal we can not know its payment or receipt
|
||||
if voucher_brw.type in ('purchase', 'payment'):
|
||||
credit = currency_obj.compute(cr, uid, current_currency, company_currency, voucher_brw.amount, context=context)
|
||||
elif voucher_brw.type in ('sale', 'receipt'):
|
||||
debit = currency_obj.compute(cr, uid, current_currency, company_currency, voucher_brw.amount, context=context)
|
||||
if debit < 0: credit = -debit; debit = 0.0
|
||||
if credit < 0: debit = -credit; credit = 0.0
|
||||
sign = debit - credit < 0 and -1 or 1
|
||||
#set the first line of the voucher
|
||||
move_line = {
|
||||
'name': voucher_brw.name or '/',
|
||||
'debit': debit,
|
||||
'credit': credit,
|
||||
'account_id': voucher_brw.account_id.id,
|
||||
'move_id': move_id,
|
||||
'journal_id': voucher_brw.journal_id.id,
|
||||
'period_id': voucher_brw.period_id.id,
|
||||
'partner_id': voucher_brw.partner_id.id,
|
||||
'currency_id': company_currency <> current_currency and current_currency or False,
|
||||
'amount_currency': company_currency <> current_currency and sign * voucher_brw.amount or 0.0,
|
||||
'date': voucher_brw.date,
|
||||
'date_maturity': voucher_brw.date_due
|
||||
}
|
||||
return move_line
|
||||
|
||||
def account_move_get(self, cr, uid, voucher_id, context=None):
|
||||
'''
|
||||
This method prepare the creation of the account move related to the given voucher.
|
||||
|
||||
:param voucher_id: Id of voucher for which we are creating account_move.
|
||||
:return: mapping between fieldname and value of account move to create
|
||||
:rtype: dict
|
||||
'''
|
||||
move_obj = self.pool.get('account.move')
|
||||
seq_obj = self.pool.get('ir.sequence')
|
||||
voucher_brw = self.pool.get('account.voucher').browse(cr,uid,voucher_id,context)
|
||||
if voucher_brw.number:
|
||||
name = voucher_brw.number
|
||||
elif voucher_brw.journal_id.sequence_id:
|
||||
name = seq_obj.next_by_id(cr, uid, voucher_brw.journal_id.sequence_id.id)
|
||||
else:
|
||||
raise osv.except_osv(_('Error !'),
|
||||
_('Please define a sequence on the journal !'))
|
||||
if not voucher_brw.reference:
|
||||
ref = name.replace('/','')
|
||||
else:
|
||||
ref = voucher_brw.reference
|
||||
|
||||
move = {
|
||||
'name': name,
|
||||
'journal_id': voucher_brw.journal_id.id,
|
||||
'narration': voucher_brw.narration,
|
||||
'date': voucher_brw.date,
|
||||
'ref': ref,
|
||||
'period_id': voucher_brw.period_id and voucher_brw.period_id.id or False
|
||||
}
|
||||
return move
|
||||
|
||||
def _get_exchange_lines(self, cr, uid, line, move_id, amount_residual, company_currency, current_currency, context=None):
|
||||
'''
|
||||
Prepare the two lines due to currency rate difference.
|
||||
|
||||
:param line: browse record of the voucher.line for which we want to create currency rate difference accounting entries
|
||||
:param move_id: Account move wher the move lines will be.
|
||||
:param amount_residual: Amount to be posted.
|
||||
:param company_currency: id of currency of the company to which the voucher belong
|
||||
:param current_currency: id of currency of the voucher
|
||||
:return: the account move line and its counterpart to create, depicted as mapping between fieldname and value
|
||||
:rtype: tuple of dict
|
||||
'''
|
||||
if not line.voucher_id.exchange_acc_id.id:
|
||||
raise osv.except_osv(_('Error!'), _('You must provide an account for the exchange difference.'))
|
||||
|
||||
move_line = {
|
||||
'journal_id': line.voucher_id.journal_id.id,
|
||||
'period_id': line.voucher_id.period_id.id,
|
||||
'name': _('change')+': '+(line.name or '/'),
|
||||
'account_id': line.account_id.id,
|
||||
'move_id': move_id,
|
||||
'partner_id': line.voucher_id.partner_id.id,
|
||||
'currency_id': company_currency <> current_currency and current_currency or False,
|
||||
'amount_currency': 0.0,
|
||||
'quantity': 1,
|
||||
'credit': amount_residual > 0 and amount_residual or 0.0,
|
||||
'debit': amount_residual < 0 and -amount_residual or 0.0,
|
||||
'date': line.voucher_id.date,
|
||||
}
|
||||
move_line_counterpart = {
|
||||
'journal_id': line.voucher_id.journal_id.id,
|
||||
'period_id': line.voucher_id.period_id.id,
|
||||
'name': _('change')+': '+(line.name or '/'),
|
||||
'account_id': line.voucher_id.exchange_acc_id.id,
|
||||
'move_id': move_id,
|
||||
'amount_currency': 0.0,
|
||||
'partner_id': line.voucher_id.partner_id.id,
|
||||
'currency_id': company_currency <> current_currency and current_currency or False,
|
||||
'quantity': 1,
|
||||
'debit': amount_residual > 0 and amount_residual or 0.0,
|
||||
'credit': amount_residual < 0 and -amount_residual or 0.0,
|
||||
'date': line.voucher_id.date,
|
||||
}
|
||||
return (move_line, move_line_counterpart)
|
||||
|
||||
def voucher_move_line_create(self, cr, uid, voucher_id, line_total, move_id, company_currency, current_currency, context=None):
|
||||
'''
|
||||
Create one account move line, on the given account move, per voucher line where amount is not 0.0.
|
||||
It returns Tuple with tot_line what is total of difference between debit and credit and
|
||||
a list of lists with ids to be reconciled with this format (total_deb_cred,list_of_lists).
|
||||
|
||||
:param voucher_id: Voucher id what we are working with
|
||||
:param line_total: Amount of the first line, which correspond to the amount we should totally split among all voucher lines.
|
||||
:param move_id: Account move wher those lines will be joined.
|
||||
:param company_currency: id of currency of the company to which the voucher belong
|
||||
:param current_currency: id of currency of the voucher
|
||||
:return: Tuple build as (remaining amount not allocated on voucher lines, list of account_move_line created in this method)
|
||||
:rtype: tuple(int, list of int)
|
||||
'''
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
currency_obj = self.pool.get('res.currency')
|
||||
tot_line = line_total
|
||||
rec_lst_ids = []
|
||||
|
||||
voucher_brw = self.pool.get('account.voucher').browse(cr,uid,voucher_id,context)
|
||||
for line in voucher_brw.line_ids:
|
||||
#create one move line per voucher line where amount is not 0.0
|
||||
if not line.amount:
|
||||
continue
|
||||
#we check if the voucher line is fully paid or not and create a move line to balance the payment and initial invoice if needed
|
||||
if line.amount == line.amount_unreconciled:
|
||||
amount = currency_obj.compute(cr, uid, current_currency, company_currency, line.untax_amount or line.amount, context=context)
|
||||
amount_residual = line.move_line_id.amount_residual - amount #residual amount in company currency
|
||||
else:
|
||||
amount = currency_obj.compute(cr, uid, current_currency, company_currency, line.untax_amount or line.amount, context=context)
|
||||
amount_residual = 0.0
|
||||
move_line = {
|
||||
'journal_id': voucher_brw.journal_id.id,
|
||||
'period_id': voucher_brw.period_id.id,
|
||||
'name': line.name or '/',
|
||||
'account_id': line.account_id.id,
|
||||
'move_id': move_id,
|
||||
'partner_id': voucher_brw.partner_id.id,
|
||||
'currency_id': company_currency <> current_currency and current_currency or False,
|
||||
'analytic_account_id': line.account_analytic_id and line.account_analytic_id.id or False,
|
||||
'quantity': 1,
|
||||
'credit': 0.0,
|
||||
'debit': 0.0,
|
||||
'date': voucher_brw.date
|
||||
}
|
||||
if amount < 0:
|
||||
amount = -amount
|
||||
if line.type == 'dr':
|
||||
line.type = 'cr'
|
||||
else:
|
||||
line.type = 'dr'
|
||||
|
||||
if (line.type=='dr'):
|
||||
tot_line += amount
|
||||
move_line['debit'] = amount
|
||||
else:
|
||||
tot_line -= amount
|
||||
move_line['credit'] = amount
|
||||
|
||||
if voucher_brw.tax_id and voucher_brw.type in ('sale', 'purchase'):
|
||||
move_line.update({
|
||||
'account_tax_id': voucher_brw.tax_id.id,
|
||||
})
|
||||
|
||||
if move_line.get('account_tax_id', False):
|
||||
tax_data = tax_obj.browse(cr, uid, [move_line['account_tax_id']], context=context)[0]
|
||||
if not (tax_data.base_code_id and tax_data.tax_code_id):
|
||||
raise osv.except_osv(_('No Account Base Code and Account Tax Code!'),_("You have to configure account base code and account tax code on the '%s' tax!") % (tax_data.name))
|
||||
|
||||
sign = (move_line['debit'] - move_line['credit']) < 0 and -1 or 1
|
||||
move_line['amount_currency'] = company_currency <> current_currency and sign * line.amount or False
|
||||
voucher_line = move_line_obj.create(cr, uid, move_line)
|
||||
rec_ids = [voucher_line, line.move_line_id.id]
|
||||
|
||||
if amount_residual:
|
||||
# Change difference entry
|
||||
exch_lines = self._get_exchange_lines(cr, uid, line, move_id, amount_residual, company_currency, current_currency, context=context)
|
||||
new_id = move_line_obj.create(cr, uid, exch_lines[0],context)
|
||||
move_line_obj.create(cr, uid, exch_lines[1], context)
|
||||
rec_ids.append(new_id)
|
||||
|
||||
if line.move_line_id.id:
|
||||
rec_lst_ids.append(rec_ids)
|
||||
|
||||
return (tot_line, rec_lst_ids)
|
||||
|
||||
def writeoff_move_line_get(self, cr, uid, voucher_id, line_total, move_id, name, company_currency, current_currency, context=None):
|
||||
'''
|
||||
Set a dict to be use to create the writeoff move line.
|
||||
|
||||
:param voucher_id: Id of voucher what we are creating account_move.
|
||||
:param line_total: Amount remaining to be allocated on lines.
|
||||
:param move_id: Id of account move where this line will be added.
|
||||
:param name: Description of account move line.
|
||||
:param company_currency: id of currency of the company to which the voucher belong
|
||||
:param current_currency: id of currency of the voucher
|
||||
:return: mapping between fieldname and value of account move line to create
|
||||
:rtype: dict
|
||||
'''
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
currency_obj = self.pool.get('res.currency')
|
||||
move_line = {}
|
||||
|
||||
voucher_brw = self.pool.get('account.voucher').browse(cr,uid,voucher_id,context)
|
||||
current_currency_obj = voucher_brw.currency_id or voucher_brw.journal_id.company_id.currency_id
|
||||
|
||||
if not currency_obj.is_zero(cr, uid, current_currency_obj, line_total):
|
||||
diff = line_total
|
||||
account_id = False
|
||||
write_off_name = ''
|
||||
if voucher_brw.payment_option == 'with_writeoff':
|
||||
account_id = voucher_brw.writeoff_acc_id.id
|
||||
write_off_name = voucher_brw.comment
|
||||
elif voucher_brw.type in ('sale', 'receipt'):
|
||||
account_id = voucher_brw.partner_id.property_account_receivable.id
|
||||
else:
|
||||
account_id = voucher_brw.partner_id.property_account_payable.id
|
||||
move_line = {
|
||||
'name': write_off_name or name,
|
||||
'account_id': account_id,
|
||||
'move_id': move_id,
|
||||
'partner_id': voucher_brw.partner_id.id,
|
||||
'date': voucher_brw.date,
|
||||
'credit': diff > 0 and diff or 0.0,
|
||||
'debit': diff < 0 and -diff or 0.0,
|
||||
'amount_currency': company_currency <> current_currency and voucher_brw.writeoff_amount or False,
|
||||
'currency_id': company_currency <> current_currency and current_currency or False,
|
||||
}
|
||||
|
||||
return move_line
|
||||
|
||||
def _get_company_currency(self, cr, uid, voucher_id, context=None):
|
||||
'''
|
||||
Get the currency of the actual company.
|
||||
|
||||
:param voucher_id: Id of the voucher what i want to obtain company currency.
|
||||
:return: currency id of the company of the voucher
|
||||
:rtype: int
|
||||
'''
|
||||
return self.pool.get('account.voucher').browse(cr,uid,voucher_id,context).journal_id.company_id.currency_id.id
|
||||
|
||||
def _get_current_currency(self, cr, uid, voucher_id, context=None):
|
||||
'''
|
||||
Get the currency of the voucher.
|
||||
|
||||
:param voucher_id: Id of the voucher what i want to obtain current currency.
|
||||
:return: currency id of the voucher
|
||||
:rtype: int
|
||||
'''
|
||||
voucher = self.pool.get('account.voucher').browse(cr,uid,voucher_id,context)
|
||||
return voucher.currency_id.id or self._get_company_currency(cr,uid,voucher.id,context)
|
||||
|
||||
def action_move_line_create(self, cr, uid, ids, context=None):
|
||||
def _get_payment_term_lines(term_id, amount):
|
||||
term_pool = self.pool.get('account.payment.term')
|
||||
if term_id and amount:
|
||||
terms = term_pool.compute(cr, uid, term_id, amount)
|
||||
return terms
|
||||
return False
|
||||
'''
|
||||
Confirm the vouchers given in ids and create the journal entries for each of them
|
||||
'''
|
||||
if context is None:
|
||||
context = {}
|
||||
move_pool = self.pool.get('account.move')
|
||||
@@ -665,198 +954,44 @@ class account_voucher(osv.osv):
|
||||
currency_pool = self.pool.get('res.currency')
|
||||
tax_obj = self.pool.get('account.tax')
|
||||
seq_obj = self.pool.get('ir.sequence')
|
||||
for inv in self.browse(cr, uid, ids, context=context):
|
||||
if inv.move_id:
|
||||
for voucher in self.browse(cr, uid, ids, context=context):
|
||||
if voucher.move_id:
|
||||
continue
|
||||
context_multi_currency = context.copy()
|
||||
context_multi_currency.update({'date': inv.date})
|
||||
|
||||
if inv.number:
|
||||
name = inv.number
|
||||
elif inv.journal_id.sequence_id:
|
||||
name = seq_obj.next_by_id(cr, uid, inv.journal_id.sequence_id.id)
|
||||
else:
|
||||
raise osv.except_osv(_('Error !'), _('Please define a sequence on the journal !'))
|
||||
if not inv.reference:
|
||||
ref = name.replace('/','')
|
||||
else:
|
||||
ref = inv.reference
|
||||
|
||||
move = {
|
||||
'name': name,
|
||||
'journal_id': inv.journal_id.id,
|
||||
'narration': inv.narration,
|
||||
'date': inv.date,
|
||||
'ref': ref,
|
||||
'period_id': inv.period_id and inv.period_id.id or False
|
||||
}
|
||||
move_id = move_pool.create(cr, uid, move)
|
||||
|
||||
#create the first line manually
|
||||
company_currency = inv.journal_id.company_id.currency_id.id
|
||||
current_currency = inv.currency_id.id or company_currency
|
||||
current_currency_obj = inv.currency_id or inv.journal_id.company_id.currency_id
|
||||
debit = 0.0
|
||||
credit = 0.0
|
||||
# TODO: is there any other alternative then the voucher type ??
|
||||
# -for sale, purchase we have but for the payment and receipt we do not have as based on the bank/cash journal we can not know its payment or receipt
|
||||
if inv.type in ('purchase', 'payment'):
|
||||
credit = currency_pool.compute(cr, uid, current_currency, company_currency, inv.amount, context=context_multi_currency)
|
||||
elif inv.type in ('sale', 'receipt'):
|
||||
debit = currency_pool.compute(cr, uid, current_currency, company_currency, inv.amount, context=context_multi_currency)
|
||||
if debit < 0:
|
||||
credit = -debit
|
||||
debit = 0.0
|
||||
if credit < 0:
|
||||
debit = -credit
|
||||
credit = 0.0
|
||||
sign = debit - credit < 0 and -1 or 1
|
||||
#create the first line of the voucher, the payment made
|
||||
move_line = {
|
||||
'name': inv.name or '/',
|
||||
'debit': debit,
|
||||
'credit': credit,
|
||||
'account_id': inv.account_id.id,
|
||||
'move_id': move_id,
|
||||
'journal_id': inv.journal_id.id,
|
||||
'period_id': inv.period_id.id,
|
||||
'partner_id': inv.partner_id.id,
|
||||
'currency_id': company_currency <> current_currency and current_currency or False,
|
||||
'amount_currency': company_currency <> current_currency and sign * inv.amount or 0.0,
|
||||
'date': inv.date,
|
||||
'date_maturity': inv.date_due
|
||||
}
|
||||
move_line_pool.create(cr, uid, move_line)
|
||||
company_currency = self._get_company_currency(cr, uid, voucher.id, context)
|
||||
current_currency = self._get_current_currency(cr, uid, voucher.id, context)
|
||||
context = self._sel_context(cr, uid, voucher.id, context)
|
||||
#Create the account move record.
|
||||
move_id = move_pool.create(cr, uid, self.account_move_get(cr, uid, voucher.id, context=context), context=context)
|
||||
# Get the name of the account_move just created
|
||||
name = move_pool.browse(cr, uid, move_id, context=context).name
|
||||
#Create the first line of the voucher
|
||||
move_line_id = move_line_pool.create(cr, uid, self.first_move_line_get(cr,uid,voucher.id, move_id, company_currency, current_currency, context), context)
|
||||
move_line_brw = move_line_pool.browse(cr, uid, move_line_id, context=context)
|
||||
line_total = move_line_brw.debit - move_line_brw.credit
|
||||
rec_list_ids = []
|
||||
line_total = debit - credit
|
||||
if inv.type == 'sale':
|
||||
line_total = line_total - currency_pool.compute(cr, uid, current_currency, company_currency, inv.tax_amount, context=context_multi_currency)
|
||||
elif inv.type == 'purchase':
|
||||
line_total = line_total + currency_pool.compute(cr, uid, current_currency, company_currency, inv.tax_amount, context=context_multi_currency)
|
||||
if voucher.type == 'sale':
|
||||
line_total = line_total - currency_pool.compute(cr, uid, current_currency, company_currency, voucher.tax_amount, context=context)
|
||||
elif voucher.type == 'purchase':
|
||||
line_total = line_total + currency_pool.compute(cr, uid, current_currency, company_currency, voucher.tax_amount, context=context)
|
||||
#create one move line per voucher line where amount is not 0.0
|
||||
line_total, rec_list_ids = self.voucher_move_line_create(cr, uid, voucher.id, line_total, move_id, company_currency, current_currency, context)
|
||||
|
||||
for line in inv.line_ids:
|
||||
#create one move line per voucher line where amount is not 0.0
|
||||
if not line.amount:
|
||||
continue
|
||||
#we check if the voucher line is fully paid or not and create a move line to balance the payment and initial invoice if needed
|
||||
if line.amount == line.amount_unreconciled:
|
||||
amount = currency_pool.compute(cr, uid, current_currency, company_currency, line.untax_amount or line.amount, context=context_multi_currency)
|
||||
amount_residual = line.move_line_id.amount_residual - amount #residual amount in company currency
|
||||
else:
|
||||
amount = currency_pool.compute(cr, uid, current_currency, company_currency, line.untax_amount or line.amount, context=context_multi_currency)
|
||||
amount_residual = 0.0
|
||||
move_line = {
|
||||
'journal_id': inv.journal_id.id,
|
||||
'period_id': inv.period_id.id,
|
||||
'name': line.name or '/',
|
||||
'account_id': line.account_id.id,
|
||||
'move_id': move_id,
|
||||
'partner_id': inv.partner_id.id,
|
||||
'currency_id': company_currency <> current_currency and current_currency or False,
|
||||
'analytic_account_id': line.account_analytic_id and line.account_analytic_id.id or False,
|
||||
'quantity': 1,
|
||||
'credit': 0.0,
|
||||
'debit': 0.0,
|
||||
'date': inv.date
|
||||
}
|
||||
if amount < 0:
|
||||
amount = -amount
|
||||
if line.type == 'dr':
|
||||
line.type = 'cr'
|
||||
else:
|
||||
line.type = 'dr'
|
||||
if (line.type=='dr'):
|
||||
line_total += amount
|
||||
move_line['debit'] = amount
|
||||
else:
|
||||
line_total -= amount
|
||||
move_line['credit'] = amount
|
||||
|
||||
if inv.tax_id and inv.type in ('sale', 'purchase'):
|
||||
move_line.update({
|
||||
'account_tax_id': inv.tax_id.id,
|
||||
})
|
||||
if move_line.get('account_tax_id', False):
|
||||
tax_data = tax_obj.browse(cr, uid, [move_line['account_tax_id']], context=context)[0]
|
||||
if not (tax_data.base_code_id and tax_data.tax_code_id):
|
||||
raise osv.except_osv(_('No Account Base Code and Account Tax Code!'),_("You have to configure account base code and account tax code on the '%s' tax!") % (tax_data.name))
|
||||
sign = (move_line['debit'] - move_line['credit']) < 0 and -1 or 1
|
||||
move_line['amount_currency'] = company_currency <> current_currency and sign * line.amount or 0.0
|
||||
voucher_line = move_line_pool.create(cr, uid, move_line)
|
||||
rec_ids = [voucher_line, line.move_line_id.id]
|
||||
|
||||
# Change difference entry
|
||||
if amount_residual:
|
||||
if not inv.exchange_acc_id.id:
|
||||
raise osv.except_osv(_('Error!'), _('You must provide an account for the exchange difference.'))
|
||||
move_line = {
|
||||
'journal_id': inv.journal_id.id,
|
||||
'period_id': inv.period_id.id,
|
||||
'name': _('change')+': '+(line.name or '/'),
|
||||
'account_id': line.account_id.id,
|
||||
'move_id': move_id,
|
||||
'partner_id': inv.partner_id.id,
|
||||
'currency_id': company_currency <> current_currency and current_currency or False,
|
||||
'amount_currency': 0.0,
|
||||
'quantity': 1,
|
||||
'credit': amount_residual > 0 and amount_residual or 0.0,
|
||||
'debit': amount_residual < 0 and -amount_residual or 0.0,
|
||||
'date': inv.date
|
||||
}
|
||||
new_id = move_line_pool.create(cr, uid, move_line)
|
||||
move_line = {
|
||||
'journal_id': inv.journal_id.id,
|
||||
'period_id': inv.period_id.id,
|
||||
'name': _('change')+': '+(line.name or '/'),
|
||||
'account_id': inv.exchange_acc_id.id,
|
||||
'move_id': move_id,
|
||||
'amount_currency': 0.0,
|
||||
'partner_id': inv.partner_id.id,
|
||||
'currency_id': company_currency <> current_currency and current_currency or False,
|
||||
'quantity': 1,
|
||||
'debit': amount_residual > 0 and amount_residual or 0.0,
|
||||
'credit': amount_residual < 0 and -amount_residual or 0.0,
|
||||
'date': inv.date
|
||||
}
|
||||
move_line_pool.create(cr, uid, move_line)
|
||||
rec_ids.append(new_id)
|
||||
|
||||
if line.move_line_id.id:
|
||||
rec_list_ids.append(rec_ids)
|
||||
|
||||
if not currency_pool.is_zero(cr, uid, current_currency_obj, line_total):
|
||||
diff = line_total
|
||||
account_id = False
|
||||
write_off_name = ''
|
||||
if inv.payment_option == 'with_writeoff':
|
||||
account_id = inv.writeoff_acc_id.id
|
||||
write_off_name = inv.comment
|
||||
elif inv.type in ('sale', 'receipt'):
|
||||
account_id = inv.partner_id.property_account_receivable.id
|
||||
else:
|
||||
account_id = inv.partner_id.property_account_payable.id
|
||||
move_line = {
|
||||
'name': write_off_name or name,
|
||||
'account_id': account_id,
|
||||
'move_id': move_id,
|
||||
'partner_id': inv.partner_id.id,
|
||||
'date': inv.date,
|
||||
'credit': diff > 0 and diff or 0.0,
|
||||
'debit': diff < 0 and -diff or 0.0,
|
||||
#'amount_currency': company_currency <> current_currency and currency_pool.compute(cr, uid, company_currency, current_currency, diff * -1, context=context_multi_currency) or 0.0,
|
||||
#'currency_id': company_currency <> current_currency and current_currency or False,
|
||||
}
|
||||
move_line_pool.create(cr, uid, move_line)
|
||||
self.write(cr, uid, [inv.id], {
|
||||
#create the writeoff line if needed
|
||||
ml_writeoff = self.writeoff_move_line_get(cr, uid, voucher.id, line_total, move_id, name, company_currency, current_currency, context)
|
||||
if ml_writeoff:
|
||||
ml_writeoff_id = move_line_pool.create(cr, uid, ml_writeoff, context)
|
||||
#We post the voucher.
|
||||
self.write(cr, uid, [voucher.id], {
|
||||
'move_id': move_id,
|
||||
'state': 'posted',
|
||||
'number': name,
|
||||
})
|
||||
if inv.journal_id.entry_posted:
|
||||
if voucher.journal_id.entry_posted:
|
||||
move_pool.post(cr, uid, [move_id], context={})
|
||||
#We automatically reconcile the account move lines.
|
||||
for rec_ids in rec_list_ids:
|
||||
if len(rec_ids) >= 2:
|
||||
move_line_pool.reconcile_partial(cr, uid, rec_ids, writeoff_acc_id=inv.exchange_acc_id.id, writeoff_period_id=inv.period_id.id, writeoff_journal_id=inv.journal_id.id)
|
||||
move_line_pool.reconcile_partial(cr, uid, rec_ids, writeoff_acc_id=voucher.exchange_acc_id.id, writeoff_period_id=voucher.period_id.id, writeoff_journal_id=voucher.journal_id.id)
|
||||
return True
|
||||
|
||||
def copy(self, cr, uid, id, default={}, context=None):
|
||||
@@ -1056,7 +1191,7 @@ class account_bank_statement_line(osv.osv):
|
||||
for obj in self.browse(cr, uid, ids, context=context):
|
||||
if obj.voucher_id:
|
||||
diff = abs(obj.amount) - obj.voucher_id.amount
|
||||
if not self.pool.get('res.currency').is_zero(cr, uid, obj.voucher_id.currency_id, diff):
|
||||
if not self.pool.get('res.currency').is_zero(cr, uid, obj.statement_id.currency, diff):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
@@ -0,0 +1,344 @@
|
||||
-
|
||||
In order to check the Account_voucher module with multi-currency in OpenERP,
|
||||
I create 2 Invoices in USD and make 2 Payments in USD based on the currency rating on that particular date
|
||||
-
|
||||
I create currency USD in OpenERP for January of 1.333333 Rate
|
||||
-
|
||||
!python {model: res.currency.rate}: |
|
||||
from datetime import datetime
|
||||
curr_id = self.pool.get('res.currency').search(cr, uid, [('name', '=', 'USD')])[0]
|
||||
date = '%s-01-01' %(datetime.now().year)
|
||||
ids = self.search(cr, uid, [('currency_id','=',curr_id), ('name', '=', date)])
|
||||
self.write(cr, uid, ids, {'rate': 1.333333})
|
||||
-
|
||||
I create currency USD in OpenERP for February of 1.250000 Rate
|
||||
-
|
||||
!record {model: res.currency.rate, id: feb_usd}:
|
||||
currency_id: base.USD
|
||||
name: !eval "'%s-02-01' %(datetime.now().year)"
|
||||
rate: 1.250000
|
||||
|
||||
-
|
||||
I create currency USD in OpenERP for March of 1.111111 Rate
|
||||
-
|
||||
!record {model: res.currency.rate, id: mar_usd}:
|
||||
currency_id: base.USD
|
||||
name: !eval "'%s-03-01' %(datetime.now().year)"
|
||||
rate: 1.111111
|
||||
|
||||
-
|
||||
I create currency USD in OpenERP for April of 1.052632 Rate
|
||||
-
|
||||
!record {model: res.currency.rate, id: apr_usd}:
|
||||
currency_id: base.USD
|
||||
name: !eval "'%s-04-01' %(datetime.now().year)"
|
||||
rate: 1.052632
|
||||
|
||||
-
|
||||
I create a bank journal with USD as currency
|
||||
-
|
||||
!record {model: account.journal, id: bank_journal_USD}:
|
||||
name: Bank Journal(USD)
|
||||
code: BUSD
|
||||
type: bank
|
||||
analytic_journal_id: account.sit
|
||||
sequence_id: account.sequence_bank_journal
|
||||
default_debit_account_id: account.cash
|
||||
default_credit_account_id: account.cash
|
||||
currency: base.USD
|
||||
company_id: base.main_company
|
||||
view_id: account.account_journal_bank_view
|
||||
|
||||
-
|
||||
I create new partner Mark Strauss.
|
||||
-
|
||||
!record {model: res.partner, id: res_partner_strauss0}:
|
||||
address:
|
||||
- city: paris
|
||||
country_id: base.fr
|
||||
name: Mark Strauss
|
||||
street: 1 rue Rockfeller
|
||||
type: invoice
|
||||
zip: '75016'
|
||||
name: Mr. Mark Strauss
|
||||
-
|
||||
I create the first invoice on 1st January for 200 USD
|
||||
-
|
||||
!record {model: account.invoice, id: account_invoice_jan}:
|
||||
account_id: account.a_recv
|
||||
address_contact_id: base.res_partner_address_3000
|
||||
address_invoice_id: base.res_partner_address_3000
|
||||
company_id: base.main_company
|
||||
currency_id: base.USD
|
||||
date_invoice: !eval "'%s-01-01' %(datetime.now().year)"
|
||||
period_id: account.period_1
|
||||
invoice_line:
|
||||
- account_id: account.a_sale
|
||||
name: '[PC1] Basic PC'
|
||||
price_unit: 200.0
|
||||
quantity: 1.0
|
||||
product_id: product.product_product_pc1
|
||||
uos_id: product.product_uom_unit
|
||||
journal_id: account.sales_journal
|
||||
partner_id: res_partner_strauss0
|
||||
reference_type: none
|
||||
-
|
||||
I Validate invoice by clicking on Validate button
|
||||
-
|
||||
!workflow {model: account.invoice, action: invoice_open, ref: account_invoice_jan}
|
||||
-
|
||||
I check that first invoice move is correct for debtor account (debit - credit == 150.0)
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_invoice_jan"))
|
||||
assert invoice_id.move_id, "Move not created for open invoice"
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.debit - move_line.credit == 150.0), "Invoice move is not correct for debtors account"
|
||||
-
|
||||
I create the second invoice on 1st February for 100 USD
|
||||
-
|
||||
!record {model: account.invoice, id: account_invoice_feb}:
|
||||
account_id: account.a_recv
|
||||
address_contact_id: base.res_partner_address_3000
|
||||
address_invoice_id: base.res_partner_address_3000
|
||||
company_id: base.main_company
|
||||
currency_id: base.USD
|
||||
date_invoice: !eval "'%s-02-01' %(datetime.now().year)"
|
||||
period_id: account.period_2
|
||||
invoice_line:
|
||||
- account_id: account.a_sale
|
||||
name: '[PC1] Basic PC'
|
||||
price_unit: 100.0
|
||||
quantity: 1.0
|
||||
product_id: product.product_product_pc1
|
||||
uos_id: product.product_uom_unit
|
||||
journal_id: account.sales_journal
|
||||
partner_id: res_partner_strauss0
|
||||
reference_type: none
|
||||
-
|
||||
I Validate invoice by clicking on Validate button
|
||||
-
|
||||
!workflow {model: account.invoice, action: invoice_open, ref: account_invoice_feb}
|
||||
-
|
||||
I check that second invoice move is correct for debtor account (debit - credit == 80)
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_invoice_feb"))
|
||||
assert invoice_id.move_id, "Move not created for open invoice"
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.debit - move_line.credit == 80), "Invoice move is not correct for debtors account"
|
||||
|
||||
-
|
||||
I create the first voucher of payment
|
||||
<create with values 240 USD, journal USD, and fill amounts 180 for the invoice of 200$ and 70 for the invoice of 100$>
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc, time
|
||||
vals = {}
|
||||
res = self.onchange_partner_id(cr, uid, [], ref("res_partner_strauss0"), ref('bank_journal_USD'), 240.00, 2, ttype='receipt', date=False)
|
||||
vals = {
|
||||
'account_id': ref('account.cash'),
|
||||
'amount': 240.00,
|
||||
'company_id': ref('base.main_company'),
|
||||
'currency_id': ref('base.USD'),
|
||||
'journal_id': ref('bank_journal_USD'),
|
||||
'partner_id': ref('res_partner_strauss0'),
|
||||
'period_id': ref('account.period_3'),
|
||||
'type': 'receipt',
|
||||
'date': time.strftime("%Y-03-01"),
|
||||
'payment_option': 'with_writeoff',
|
||||
'writeoff_acc_id': ref('account.a_expense'),
|
||||
'comment': 'Write Off',
|
||||
'name': 'First payment',
|
||||
}
|
||||
if not res['value']['line_cr_ids']:
|
||||
res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}]
|
||||
for item in res['value']['line_cr_ids']:
|
||||
if item['amount_unreconciled'] == 200.00:
|
||||
item['amount'] = 180.00
|
||||
else:
|
||||
item['amount'] = 70.00
|
||||
vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']]
|
||||
id = self.create(cr, uid, vals)
|
||||
voucher_id = self.browse(cr, uid, id)
|
||||
assert (voucher_id.state=='draft'), "Voucher is not in draft state"
|
||||
-
|
||||
I check that writeoff amount computed is 10.0
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_strauss0'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
assert (voucher_id.writeoff_amount == 10.0), "Writeoff amount is not 10.0"
|
||||
-
|
||||
I confirm the voucher
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_strauss0'))])
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
|
||||
-
|
||||
I check that the move of my first voucher is valid
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_strauss0'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
for move_line in move_line_obj.browse(cr, uid, move_lines):
|
||||
assert move_line.state == 'valid', "Voucher move is not valid"
|
||||
-
|
||||
I check that my debtor account is correct
|
||||
-
|
||||
I check that the debtor account has 2 new lines with -180 and -70 as amount_currency columns and that their credit columns are respectively 162 and 63
|
||||
-
|
||||
I check that my write-off is correct. 9 debit and 10 amount_currency
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_strauss0'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
for move_line in move_line_obj.browse(cr, uid, move_lines):
|
||||
if move_line.amount_currency == -180.00:
|
||||
assert move_line.credit == 162.00, "Debtor account has wrong entry."
|
||||
elif move_line.amount_currency == -70.00:
|
||||
assert move_line.credit == 63.00, "Debtor account has wrong entry."
|
||||
elif move_line.amount_currency == 10.00:
|
||||
assert move_line.debit == 9.00, "Writeoff amount is wrong."
|
||||
-
|
||||
I check the residual amount of Invoice1, should be 20 in amount_currency
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_invoice_jan"))
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.amount_residual_currency == 20.0) , "Residual amount is not correct for first Invoice"
|
||||
-
|
||||
I check the residual amuont of Invoice2, should be 30 in residual currency and 24 in amount_residual
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_invoice_feb"))
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.amount_residual_currency == 30.0) , "Residual amount is not correct for first Invoice"
|
||||
-
|
||||
I create the second voucher of payment
|
||||
<create with values 45 USD, journal USD, and fill amounts 20 for the invoice of 200$ and 30 for the invoice of 100$>
|
||||
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc, time
|
||||
vals = {}
|
||||
res = self.onchange_partner_id(cr, uid, [], ref("res_partner_strauss0"), ref('bank_journal_USD'), 45.00, 2, ttype='receipt', date=False)
|
||||
vals = {
|
||||
'account_id': ref('account.cash'),
|
||||
'amount': 45.00,
|
||||
'exchange_acc_id': ref('account.o_expense'),
|
||||
'company_id': ref('base.main_company'),
|
||||
'currency_id': ref('base.USD'),
|
||||
'journal_id': ref('bank_journal_USD'),
|
||||
'partner_id': ref('res_partner_strauss0'),
|
||||
'period_id': ref('account.period_3'),
|
||||
'type': 'receipt',
|
||||
'date': time.strftime("%Y-04-01"),
|
||||
'payment_option': 'with_writeoff',
|
||||
'writeoff_acc_id': ref('account.a_expense'),
|
||||
'comment': 'Write Off',
|
||||
'name': 'Second payment',
|
||||
}
|
||||
if not res['value']['line_cr_ids']:
|
||||
res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}]
|
||||
for item in res['value']['line_cr_ids']:
|
||||
if item['amount_unreconciled'] == 20.00:
|
||||
item['amount'] = 20.00
|
||||
else:
|
||||
item['amount'] = 30.00
|
||||
vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']]
|
||||
id = self.create(cr, uid, vals)
|
||||
voucher_id = self.browse(cr, uid, id)
|
||||
assert (voucher_id.state=='draft'), "Voucher is not in draft state"
|
||||
-
|
||||
I check that writeoff amount computed is 5.0
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_strauss0'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
assert (voucher_id.writeoff_amount == 5.0), "Writeoff amount is not 5.0"
|
||||
-
|
||||
I confirm the voucher
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_strauss0'))])
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
|
||||
-
|
||||
I check that the move of my second voucher is valid
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_strauss0'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
for move_line in move_line_obj.browse(cr, uid, move_lines):
|
||||
assert move_line.state == 'valid', "Voucher move is not valid"
|
||||
-
|
||||
I check that my debtor account is correct
|
||||
-
|
||||
I check that the debtor account has 2 new lines with -20 and -30 as amount_currency columns and their credit columns are respectively 19 and 28.5
|
||||
-
|
||||
I check that my currency rate difference is correct. 8.5 in credit with no amount_currency
|
||||
-
|
||||
I check that the total reconcilation created entries as expected
|
||||
-
|
||||
I check that my writeoff is correct. 4.75 debit and 5 amount_currency
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_strauss0'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
reconcile_a = reconcile_b = False
|
||||
for move_line in move_line_obj.browse(cr, uid, move_lines):
|
||||
if move_line.amount_currency == -20.00:
|
||||
assert move_line.reconcile_id.id, "The invoice of 200$ is not fully reconciled"
|
||||
reconcile_b = move_line.reconcile_id.id
|
||||
elif move_line.amount_currency == -30.00:
|
||||
assert move_line.reconcile_id.id, "The invoice of 100$ is not fully reconciled"
|
||||
reconcile_a = move_line.reconcile_id.id
|
||||
for move_line in move_line_obj.browse(cr, uid, move_lines):
|
||||
if move_line.amount_currency == -20.00:
|
||||
assert move_line.credit == 19.00, "Debtor account has wrong entry."
|
||||
elif move_line.amount_currency == -30.00:
|
||||
assert move_line.credit == 28.50, "Debtor account has wrong entry."
|
||||
elif move_line.amount_currency == 5.00:
|
||||
assert move_line.debit == 4.75, "Writeoff amount is wrong."
|
||||
elif move_line.debit == 11.5 and move_line.account_id.reconcile:
|
||||
assert move_line.amount_currency == 0.0 and move_line.reconcile_id.id == reconcile_a, "Exchange difference entry for the invoice of 100$ is wrong"
|
||||
elif move_line.debit == 31.0 and move_line.account_id.reconcile:
|
||||
assert move_line.amount_currency == 0.0 and move_line.reconcile_id.id == reconcile_b, "Exchange difference entry for the invoice of 200$ is wrong"
|
||||
-
|
||||
I check the residual amount of Invoice1, should be 0 in residual currency and 0 in amount_residual and paid
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_invoice_jan"))
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.amount_residual_currency == 0.0 and move_line.amount_residual == 0.0 and invoice_id.state == 'paid') , "Residual amount is not correct for first Invoice"
|
||||
-
|
||||
I check the residual amuont of Invoice2, should be 0 in residual currency and 0 in amount_residual and paid
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_invoice_feb"))
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.amount_residual_currency == 0.0 and move_line.amount_residual == 0.0 and invoice_id.state == 'paid') , "Residual amount is not correct for second Invoice"
|
||||
@@ -0,0 +1,328 @@
|
||||
-
|
||||
In order to check the Account_voucher module with multi-currency in OpenERP,
|
||||
I create 2 Invoices in USD and make 2 Payments one in USD and another in EUR, based on the currency rating on that particular date
|
||||
-
|
||||
I create a bank journal with EUR as currency
|
||||
-
|
||||
!record {model: account.journal, id: bank_journal_EUR}:
|
||||
name: Bank Journal(EUR)
|
||||
code: BEUR
|
||||
type: bank
|
||||
analytic_journal_id: account.sit
|
||||
sequence_id: account.sequence_bank_journal
|
||||
default_debit_account_id: account.cash
|
||||
default_credit_account_id: account.cash
|
||||
currency: base.EUR
|
||||
company_id: base.main_company
|
||||
view_id: account.account_journal_bank_view
|
||||
-
|
||||
I create a bank journal with USD as currency
|
||||
-
|
||||
!record {model: account.journal, id: bank_journal_USD}:
|
||||
name: Bank Journal(USD)
|
||||
code: BUSD
|
||||
type: bank
|
||||
analytic_journal_id: account.sit
|
||||
sequence_id: account.sequence_bank_journal
|
||||
default_debit_account_id: account.cash
|
||||
default_credit_account_id: account.cash
|
||||
currency: base.USD
|
||||
company_id: base.main_company
|
||||
view_id: account.account_journal_bank_view
|
||||
-
|
||||
I create a new partner Robert Clements
|
||||
-
|
||||
!record {model: res.partner, id: res_partner_clements0}:
|
||||
address:
|
||||
- city: marseille
|
||||
country_id: base.fr
|
||||
name: Robert
|
||||
street: 1 rue Rockfeller
|
||||
type: invoice
|
||||
zip: '13016'
|
||||
name: Mr.Robert Clements
|
||||
-
|
||||
I create the first invoice on 1st January for 200 USD
|
||||
-
|
||||
!record {model: account.invoice, id: account_first_invoice_jan_suppl}:
|
||||
account_id: account.a_pay
|
||||
type : in_invoice
|
||||
address_contact_id: base.res_partner_address_3000
|
||||
address_invoice_id: base.res_partner_address_3000
|
||||
company_id: base.main_company
|
||||
currency_id: base.USD
|
||||
date_invoice: !eval "'%s-01-01' %(datetime.now().year)"
|
||||
period_id: account.period_1
|
||||
invoice_line:
|
||||
- account_id: account.a_expense
|
||||
name: '[PC1] Basic PC'
|
||||
price_unit: 200.0
|
||||
quantity: 1.0
|
||||
product_id: product.product_product_pc1
|
||||
uos_id: product.product_uom_unit
|
||||
journal_id: account.sales_journal
|
||||
partner_id: res_partner_clements0
|
||||
reference_type: none
|
||||
check_total : 200
|
||||
-
|
||||
I Validate invoice by clicking on Validate button
|
||||
-
|
||||
!workflow {model: account.invoice, action: invoice_open, ref: account_first_invoice_jan_suppl}
|
||||
-
|
||||
I check that first invoice move is correct for debtor account(debit - credit == -150)
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_first_invoice_jan_suppl"))
|
||||
assert invoice_id.move_id, "Move not created for open invoice"
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.debit - move_line.credit == -150.00), "Invoice move is incorrect for debtors account"
|
||||
-
|
||||
I create the second invoice on 1st February for 100 USD
|
||||
-
|
||||
!record {model: account.invoice, id: account_second_invoice_feb_suppl}:
|
||||
account_id: account.a_pay
|
||||
address_contact_id: base.res_partner_address_3000
|
||||
address_invoice_id: base.res_partner_address_3000
|
||||
company_id: base.main_company
|
||||
currency_id: base.USD
|
||||
date_invoice: !eval "'%s-02-01' %(datetime.now().year)"
|
||||
period_id: account.period_2
|
||||
type : in_invoice
|
||||
invoice_line:
|
||||
- account_id: account.a_expense
|
||||
name: '[PC1] Basic PC'
|
||||
price_unit: 100.0
|
||||
quantity: 1.0
|
||||
product_id: product.product_product_pc1
|
||||
uos_id: product.product_uom_unit
|
||||
journal_id: account.sales_journal
|
||||
partner_id: res_partner_clements0
|
||||
reference_type: none
|
||||
check_total : 100.0
|
||||
-
|
||||
I Validate invoice by clicking on Validate button
|
||||
-
|
||||
!workflow {model: account.invoice, action: invoice_open, ref: account_second_invoice_feb_suppl}
|
||||
-
|
||||
I check that second invoice move is correct for debtor account (debit - credit == -80)
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_second_invoice_feb_suppl"))
|
||||
assert invoice_id.move_id, "Move not created for open invoice"
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.debit - move_line.credit == -80), "Invoice move is incorrect for debtors account"
|
||||
-
|
||||
I create the first voucher of payment
|
||||
<create with values 240 EUR, journal EUR, and fills amount 180 for the invoice of 200$ and 70 for the invoice of 100$>
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc, time
|
||||
vals = {}
|
||||
res = self.onchange_partner_id(cr, uid, [], ref("res_partner_clements0"), ref('bank_journal_EUR'), 240.0, 2, ttype='payment', date=False)
|
||||
vals = {
|
||||
'account_id': ref('account.cash'),
|
||||
'amount': 240.0,
|
||||
'company_id': ref('base.main_company'),
|
||||
'currency_id': ref('base.EUR'),
|
||||
'journal_id': ref('bank_journal_EUR'),
|
||||
'partner_id': ref('res_partner_clements0'),
|
||||
'period_id': ref('account.period_3'),
|
||||
'type': 'payment',
|
||||
'date': time.strftime("%Y-03-01"),
|
||||
'payment_option': 'with_writeoff',
|
||||
'writeoff_acc_id': ref('account.a_expense'),
|
||||
'comment': 'Write Off',
|
||||
'name': 'First payment',
|
||||
}
|
||||
if not res['value']['line_dr_ids']:
|
||||
res['value']['line_dr_ids'] = [{'type': 'dr', 'account_id': ref('account.a_pay'),}]
|
||||
for item in res['value']['line_dr_ids']:
|
||||
if item['amount_unreconciled'] == 200.00:
|
||||
item['amount'] = 180.00
|
||||
else:
|
||||
item['amount'] = 70.00
|
||||
vals['line_dr_ids'] = [(0,0,i) for i in res['value']['line_dr_ids']]
|
||||
id = self.create(cr, uid, vals)
|
||||
voucher_id = self.browse(cr, uid, id)
|
||||
assert (voucher_id.state=='draft'), "Voucher is not in draft state"
|
||||
-
|
||||
I check that writeoff amount computed is -15.0
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_clements0'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
assert (voucher_id.writeoff_amount == -15.0), "Writeoff amount is not -15.0"
|
||||
-
|
||||
I check that currency rate difference is 34.0
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_clements0'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
assert (voucher_id.currency_rate_difference == 34.0), "Currency rate difference is not 34.0"
|
||||
-
|
||||
I confirm the voucher
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_clements0'))])
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
|
||||
-
|
||||
I check that the move of my voucher is valid
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_clements0'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
for move_line in move_line_obj.browse(cr, uid, move_lines):
|
||||
assert move_line.state == 'valid', "Voucher move is not valid"
|
||||
-
|
||||
I check that my creditor account is correct
|
||||
-
|
||||
I check that the creditor account has 2 new lines with 180 and 70 in amount_currency columns and their debit columns are respectively 135 and 56 and currency is USD($).
|
||||
-
|
||||
I check that my currency rate difference is correct. -34 in credit with no amount_currency
|
||||
-
|
||||
I check that my writeoff is correct. -15 in credit with no amount_currency
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_clements0'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
for move_line in move_line_obj.browse(cr, uid, move_lines):
|
||||
if move_line.amount_currency == 180.00:
|
||||
assert move_line.debit == 135.00, "Creditor account has wrong entry."
|
||||
elif move_line.amount_currency == 70.00:
|
||||
assert move_line.debit == 56.00, "Debtor account has wrong entry."
|
||||
elif move_line.debit == 34.00:
|
||||
assert move_line.amount_currency == 0.00, "Incorrect Currency Difference."
|
||||
elif move_line.debit == 15.00:
|
||||
assert move_line.amount_currency == 0.00, "Writeoff amount is wrong."
|
||||
-
|
||||
I check the residual amount of Invoice1, should be 20 in residual currency and 15 in amount_residual
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_first_invoice_jan_suppl"))
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.amount_residual_currency == 20.0 and move_line.amount_residual == 15) , "Residual amount is not correct for first Invoice"
|
||||
-
|
||||
I check the residual amuont of Invoice2, should be 30 in residual currency and 24 in amount_residual
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_second_invoice_feb_suppl"))
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.amount_residual_currency == 30 and move_line.amount_residual == 24) , "Residual amount is not correct for second Invoice"
|
||||
-
|
||||
I create the second voucher of payment
|
||||
<create with values 45 USD, journal USD, and fill amounts 20 for the invoice of 200$ and 30 for the invoice of 100$>
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc, time
|
||||
vals = {}
|
||||
res = self.onchange_partner_id(cr, uid, [], ref("res_partner_clements0"), ref('bank_journal_EUR'), 45.0, 2, ttype='payment', date=False)
|
||||
vals = {
|
||||
'account_id': ref('account.cash'),
|
||||
'amount': 45.0,
|
||||
'company_id': ref('base.main_company'),
|
||||
'currency_id': ref('base.USD'),
|
||||
'journal_id': ref('bank_journal_USD'),
|
||||
'partner_id': ref('res_partner_clements0'),
|
||||
'period_id': ref('account.period_3'),
|
||||
'type': 'payment',
|
||||
'date': time.strftime("%Y-04-01"),
|
||||
'payment_option': 'with_writeoff',
|
||||
'writeoff_acc_id': ref('account.a_expense'),
|
||||
'comment': 'Write Off',
|
||||
'name': 'Second payment',
|
||||
}
|
||||
if not res['value']['line_dr_ids']:
|
||||
res['value']['line_dr_ids'] = [{'type': 'dr', 'account_id': ref('account.a_pay'),}]
|
||||
for item in res['value']['line_dr_ids']:
|
||||
if item['amount_unreconciled'] == 20.00:
|
||||
item['amount'] = 20.00
|
||||
else:
|
||||
item['amount'] = 30.00
|
||||
vals['line_dr_ids'] = [(0,0,i) for i in res['value']['line_dr_ids']]
|
||||
id = self.create(cr, uid, vals)
|
||||
voucher_id = self.browse(cr, uid, id)
|
||||
assert (voucher_id.state=='draft'), "Voucher is not in draft state"
|
||||
-
|
||||
I check that writeoff amount computed is -5.0
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_clements0'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
assert (voucher_id.writeoff_amount == 5.0), "Writeoff amount is not 5.0"
|
||||
-
|
||||
I check that currency rate difference is 8.50
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_clements0'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
assert (voucher_id.currency_rate_difference == 8.50), "Currency rate difference is not 8.50"
|
||||
-
|
||||
I confirm the voucher
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_clements0'))])
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
|
||||
-
|
||||
I check that my voucher state is posted
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_clements0'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
assert voucher_id.state == 'posted', "Voucher state is not posted"
|
||||
-
|
||||
I check that my creditor account is correct
|
||||
-
|
||||
I check that the creditor account has 2 new lines with 20 and 30 in amount_currency columns and their debit columns are respectively 15 and 24 and currency is USD($).
|
||||
-
|
||||
I check that my currency rate difference is correct. 8.50 in debit with no amount_currency
|
||||
-
|
||||
I check that my writeoff is correct. 4.75 in credit and 5 in amount_currency
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_clements0'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
for move_line in move_line_obj.browse(cr, uid, move_lines):
|
||||
if move_line.amount_currency == 20.00:
|
||||
assert move_line.debit == 15.00, "Debtor account has wrong entry."
|
||||
elif move_line.amount_currency == 30.00:
|
||||
assert move_line.debit == 24.00, "Debtor account has wrong entry."
|
||||
elif move_line.debit == 8.50:
|
||||
assert move_line.amount_currency == 0.00, "Incorrect Currency Difference."
|
||||
elif move_line.amount_currency == -5.00:
|
||||
assert move_line.credit == 4.75, "Writeoff amount is wrong."
|
||||
-
|
||||
I check the residual amount of invoice 1, should be 0 in residual currency and 0 in amount_residual and paid
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_first_invoice_jan_suppl"))
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.amount_residual_currency == 0.0 and move_line.amount_residual == 0.0 and invoice_id.state == 'paid') , "Residual amount is not correct for first Invoice"
|
||||
-
|
||||
I check the residual amount of invoice 2, should be 0 in residual currency and 0 in amount_residual and paid
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_second_invoice_feb_suppl"))
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.amount_residual_currency == 0.0 and move_line.amount_residual == 0.0 and invoice_id.state == 'paid') , "Residual amount is not correct for second Invoice"
|
||||
@@ -0,0 +1,340 @@
|
||||
-
|
||||
In order to check the Account_voucher module with multi-currency in OpenERP,
|
||||
I create 2 Invoices in USD and make 2 Payments one in USD and another in EUR, based on the currency rating on that particular date
|
||||
-
|
||||
I modify the debtor account in order to make sure there is no currency_id linked
|
||||
-
|
||||
!python {model: account.account}: |
|
||||
from datetime import datetime
|
||||
ids = self.search(cr, uid, [('name', 'ilike', 'debtor')])
|
||||
self.write(cr, uid, ids, {'currency_id': False})
|
||||
-
|
||||
I create currency USD in OpenERP for January of 1.333333 Rate
|
||||
-
|
||||
!python {model: res.currency.rate}: |
|
||||
from datetime import datetime
|
||||
curr_id = self.pool.get('res.currency').search(cr, uid, [('name', '=', 'USD')])[0]
|
||||
date = '%s-01-01' %(datetime.now().year)
|
||||
ids = self.search(cr, uid, [('currency_id', '=', curr_id), ('name', '=', date)])
|
||||
self.write(cr, uid, ids, {'rate': 1.333333})
|
||||
-
|
||||
I create currency USD in OpenERP for February of 1.250000 Rate
|
||||
-
|
||||
!record {model: res.currency.rate, id: febr_usd}:
|
||||
currency_id: base.USD
|
||||
name: !eval "'%s-02-01' %(datetime.now().year)"
|
||||
rate: 1.250000
|
||||
-
|
||||
I create currency USD in OpenERP for March of 1.111111 Rate
|
||||
-
|
||||
!record {model: res.currency.rate, id: marc_usd}:
|
||||
currency_id: base.USD
|
||||
name: !eval "'%s-03-01' %(datetime.now().year)"
|
||||
rate: 1.111111
|
||||
-
|
||||
I create currency USD in OpenERP for April of 1.052632 Rate
|
||||
-
|
||||
!record {model: res.currency.rate, id: apri_usd}:
|
||||
currency_id: base.USD
|
||||
name: !eval "'%s-04-01' %(datetime.now().year)"
|
||||
rate: 1.052632
|
||||
-
|
||||
I create a bank journal with EUR as currency
|
||||
-
|
||||
!record {model: account.journal, id: bank_journal_EUR}:
|
||||
name: Bank Journal(EUR)
|
||||
code: BEUR
|
||||
type: bank
|
||||
analytic_journal_id: account.sit
|
||||
sequence_id: account.sequence_bank_journal
|
||||
default_debit_account_id: account.cash
|
||||
default_credit_account_id: account.cash
|
||||
currency: base.EUR
|
||||
company_id: base.main_company
|
||||
view_id: account.account_journal_bank_view
|
||||
-
|
||||
I create a bank journal with USD as currency
|
||||
-
|
||||
!record {model: account.journal, id: bank_journal_USD}:
|
||||
name: Bank Journal(USD)
|
||||
code: BUSD
|
||||
type: bank
|
||||
analytic_journal_id: account.sit
|
||||
sequence_id: account.sequence_bank_journal
|
||||
default_debit_account_id: account.cash
|
||||
default_credit_account_id: account.cash
|
||||
currency: base.USD
|
||||
company_id: base.main_company
|
||||
view_id: account.account_journal_bank_view
|
||||
-
|
||||
I create a new partner Michael Geller
|
||||
-
|
||||
!record {model: res.partner, id: res_partner_michael0}:
|
||||
address:
|
||||
- city: paris
|
||||
country_id: base.fr
|
||||
name: Michael
|
||||
street: 1 rue Rockfeller
|
||||
type: invoice
|
||||
zip: '75016'
|
||||
name: Mr.Michael Geller
|
||||
-
|
||||
I create the first invoice on 1st January for 200 USD
|
||||
-
|
||||
!record {model: account.invoice, id: account_first_invoice_jan}:
|
||||
account_id: account.a_recv
|
||||
address_contact_id: base.res_partner_address_3000
|
||||
address_invoice_id: base.res_partner_address_3000
|
||||
company_id: base.main_company
|
||||
currency_id: base.USD
|
||||
date_invoice: !eval "'%s-01-01' %(datetime.now().year)"
|
||||
period_id: account.period_1
|
||||
invoice_line:
|
||||
- account_id: account.a_sale
|
||||
name: '[PC1] Basic PC'
|
||||
price_unit: 200.0
|
||||
quantity: 1.0
|
||||
product_id: product.product_product_pc1
|
||||
uos_id: product.product_uom_unit
|
||||
journal_id: account.sales_journal
|
||||
partner_id: res_partner_michael0
|
||||
reference_type: none
|
||||
-
|
||||
I Validate invoice by clicking on Validate button
|
||||
-
|
||||
!workflow {model: account.invoice, action: invoice_open, ref: account_first_invoice_jan}
|
||||
-
|
||||
I check that first invoice move is correct for debtor account(debit - credit == 150)
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_first_invoice_jan"))
|
||||
assert invoice_id.move_id, "Move not created for open invoice"
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.debit - move_line.credit == 150.00), "Invoice move is incorrect for debtors account"
|
||||
-
|
||||
I create the second invoice on 1st February for 100 USD
|
||||
-
|
||||
!record {model: account.invoice, id: account_second_invoice_feb}:
|
||||
account_id: account.a_recv
|
||||
address_contact_id: base.res_partner_address_3000
|
||||
address_invoice_id: base.res_partner_address_3000
|
||||
company_id: base.main_company
|
||||
currency_id: base.USD
|
||||
date_invoice: !eval "'%s-02-01' %(datetime.now().year)"
|
||||
period_id: account.period_2
|
||||
invoice_line:
|
||||
- account_id: account.a_sale
|
||||
name: '[PC1] Basic PC'
|
||||
price_unit: 100.0
|
||||
quantity: 1.0
|
||||
product_id: product.product_product_pc1
|
||||
uos_id: product.product_uom_unit
|
||||
journal_id: account.sales_journal
|
||||
partner_id: res_partner_michael0
|
||||
reference_type: none
|
||||
-
|
||||
I Validate invoice by clicking on Validate button
|
||||
-
|
||||
!workflow {model: account.invoice, action: invoice_open, ref: account_second_invoice_feb}
|
||||
-
|
||||
I check that second invoice move is correct for debtor account (debit - credit == 80)
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_second_invoice_feb"))
|
||||
assert invoice_id.move_id, "Move not created for open invoice"
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.debit - move_line.credit == 80), "Invoice move is incorrect for debtors account"
|
||||
-
|
||||
I create the first voucher of payment
|
||||
<create with values 200 EUR (€), journal EUR, and fills amount 130€ for the invoice of 200$ and 70€ for the invoice of 100$>
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc, time
|
||||
vals = {}
|
||||
res = self.onchange_partner_id(cr, uid, [], ref("res_partner_michael0"), ref('bank_journal_EUR'), 240.0, 2, ttype='receipt', date=False)
|
||||
vals = {
|
||||
'account_id': ref('account.cash'),
|
||||
'amount': 200.0,
|
||||
'company_id': ref('base.main_company'),
|
||||
'currency_id': ref('base.EUR'),
|
||||
'journal_id': ref('bank_journal_EUR'),
|
||||
'partner_id': ref('res_partner_michael0'),
|
||||
'period_id': ref('account.period_3'),
|
||||
'type': 'receipt',
|
||||
'date': time.strftime("%Y-03-01"),
|
||||
'payment_option': 'with_writeoff',
|
||||
'writeoff_acc_id': ref('account.a_expense'),
|
||||
'comment': 'Write Off',
|
||||
'name': 'First payment',
|
||||
}
|
||||
if not res['value']['line_cr_ids']:
|
||||
res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}]
|
||||
for item in res['value']['line_cr_ids']:
|
||||
if item['amount_unreconciled'] == 150.00:
|
||||
item['amount'] = 130.00
|
||||
else:
|
||||
item['amount'] = 70.00
|
||||
vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']]
|
||||
id = self.create(cr, uid, vals)
|
||||
voucher_id = self.browse(cr, uid, id)
|
||||
assert (voucher_id.state=='draft'), "Voucher is not in draft state"
|
||||
-
|
||||
I confirm the voucher
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_michael0'))])
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
|
||||
-
|
||||
I check that the move of my voucher is valid
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_michael0'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
for move_line in move_line_obj.browse(cr, uid, move_lines):
|
||||
assert move_line.state == 'valid', "Voucher move is not valid"
|
||||
-
|
||||
I check that my debtor account is correct
|
||||
-
|
||||
I check that the debtor account has 2 new lines with 0 in amount_currency columns and their credit columns are 130 and 70
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_michael0'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
for move_line in move_line_obj.browse(cr, uid, move_lines):
|
||||
assert move_line.amount_currency == 0.00, "A line has the 'amount_currency' column filled"
|
||||
-
|
||||
I check the residual amount of Invoice1, should be 55.56 in residual currency and 20 in amount_residual
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_first_invoice_jan"))
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.amount_residual_currency == 55.56 and move_line.amount_residual == 20) , "Residual amount is not correct for first Invoice"
|
||||
- toto
|
||||
I check the residual amuont of Invoice2, should be 22.22 in residual currency and 10 in amount_residual
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_second_invoice_feb"))
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.amount_residual_currency == 22.22 and move_line.amount_residual == 10) , "Residual amount is not correct for second Invoice"
|
||||
-
|
||||
I create the second voucher of payment
|
||||
<create with values 80 USD, journal USD, and fully reconcile the 2 invoices>
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc, time
|
||||
vals = {}
|
||||
res = self.onchange_partner_id(cr, uid, [], ref("res_partner_michael0"), ref('bank_journal_USD'), 80.0, 2, ttype='receipt', date=False)
|
||||
vals = {
|
||||
'account_id': ref('account.cash'),
|
||||
'amount': 80.0,
|
||||
'company_id': ref('base.main_company'),
|
||||
'currency_id': ref('base.USD'),
|
||||
'journal_id': ref('bank_journal_USD'),
|
||||
'partner_id': ref('res_partner_michael0'),
|
||||
'period_id': ref('account.period_3'),
|
||||
'type': 'receipt',
|
||||
'date': time.strftime("%Y-04-01"),
|
||||
'payment_option': 'with_writeoff',
|
||||
'writeoff_acc_id': ref('account.a_expense'),
|
||||
'exchange_acc_id': ref('account.o_expense'),
|
||||
'comment': 'Write Off',
|
||||
'name': 'Second payment',
|
||||
}
|
||||
if not res['value']['line_cr_ids']:
|
||||
res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}]
|
||||
for item in res['value']['line_cr_ids']:
|
||||
if item['amount_unreconciled'] == 55.56:
|
||||
item['amount'] = 55.56
|
||||
else:
|
||||
item['amount'] = 22.22
|
||||
vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']]
|
||||
id = self.create(cr, uid, vals)
|
||||
voucher_id = self.browse(cr, uid, id)
|
||||
assert (voucher_id.state=='draft'), "Voucher is not in draft state"
|
||||
-
|
||||
I check that writeoff amount computed is 2.22
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_michael0'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
assert (round(voucher_id.writeoff_amount, 2) == 2.22), "Writeoff amount is not 2.22$"
|
||||
-
|
||||
I confirm the voucher
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_michael0'))])
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
|
||||
-
|
||||
I check that my voucher state is posted
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_michael0'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
assert voucher_id.state == 'posted', "Voucher state is not posted"
|
||||
-
|
||||
I check that my debtor account is correct
|
||||
-
|
||||
I check that the debtor account has 2 new lines with -55.56 and -22.22 in amount_currency columns and their credit columns are respectively 52.78 and 21.11 and currency is USD($).
|
||||
-
|
||||
I check that my currency rate difference is correct.
|
||||
-
|
||||
I check that my writeoff is correct. 2.11 in credit and 2.22 in amount_currency
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_michael0'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
reconcile_a = reconcile_b = False
|
||||
for move_line in move_line_obj.browse(cr, uid, move_lines):
|
||||
if move_line.amount_currency == -22.22:
|
||||
assert move_line.reconcile_id.id, "The invoice of 200$ is not fully reconciled"
|
||||
reconcile_b = move_line.reconcile_id.id
|
||||
elif move_line.amount_currency == -55.56:
|
||||
assert move_line.reconcile_id.id, "The invoice of 100$ is not fully reconciled"
|
||||
reconcile_a = move_line.reconcile_id.id
|
||||
for move_line in move_line_obj.browse(cr, uid, move_lines):
|
||||
if move_line.amount_currency == -55.56:
|
||||
assert move_line.credit == 52.78, "Debtor account has wrong entry."
|
||||
elif move_line.amount_currency == -22.22:
|
||||
assert move_line.credit == 21.11, "Debtor account has wrong entry."
|
||||
elif move_line.credit == 11.11 and move_line.account_id.reconcile:
|
||||
assert move_line.amount_currency == 0.00 and move_line.reconcile_id.id == reconcile_b, "Incorrect Currency Difference."
|
||||
elif move_line.credit == 32.78 and move_line.account_id.reconcile:
|
||||
assert move_line.amount_currency == 0.00 and move_line.reconcile_id.id == reconcile_a, "Incorrect Currency Difference."
|
||||
elif move_line.amount_currency == 2.22:
|
||||
assert move_line.credit == 2.11, "Writeoff amount is wrong."
|
||||
-
|
||||
I check the residual amount of invoice 1, should be 0 in residual currency and 0 in amount_residual and paid
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_first_invoice_jan"))
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.amount_residual_currency == 0.0 and move_line.amount_residual == 0.0 and invoice_id.state == 'paid') , "Residual amount is not correct for first Invoice"
|
||||
-
|
||||
I check the residual amuont of invoice 2, should be 0 in residual currency and 0 in amount_residual and paid
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_second_invoice_feb"))
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.amount_residual_currency == 0.0 and move_line.amount_residual == 0.0 and invoice_id.state == 'paid') , "Residual amount is not correct for second Invoice"
|
||||
@@ -0,0 +1,343 @@
|
||||
-
|
||||
In order to check the Account_voucher module with multi-currency in OpenERP,
|
||||
I create 2 Invoices in USD and make 2 Payments one in USD and another in EUR, based on the currency rating on that particular date
|
||||
-
|
||||
I modify the debtor account in order to set the currency_id = USD
|
||||
-
|
||||
!python {model: account.account}: |
|
||||
from datetime import datetime
|
||||
ids = self.search(cr, uid, [('name', 'ilike', 'debtor')])
|
||||
self.write(cr, uid, ids, {'currency_id': ref('base.USD')})
|
||||
-
|
||||
I create currency USD in OpenERP for January of 1.333333 Rate
|
||||
-
|
||||
!python {model: res.currency.rate}: |
|
||||
from datetime import datetime
|
||||
curr_id = self.pool.get('res.currency').search(cr, uid, [('name', '=', 'USD')])[0]
|
||||
date = '%s-01-01' %(datetime.now().year)
|
||||
ids = self.search(cr, uid, [('currency_id', '=', curr_id), ('name', '=', date)])
|
||||
self.write(cr, uid, ids, {'rate': 1.333333})
|
||||
-
|
||||
I create currency USD in OpenERP for February of 1.250000 Rate
|
||||
-
|
||||
!record {model: res.currency.rate, id: febr_usd}:
|
||||
currency_id: base.USD
|
||||
name: !eval "'%s-02-01' %(datetime.now().year)"
|
||||
rate: 1.250000
|
||||
-
|
||||
I create currency USD in OpenERP for March of 1.111111 Rate
|
||||
-
|
||||
!record {model: res.currency.rate, id: marc_usd}:
|
||||
currency_id: base.USD
|
||||
name: !eval "'%s-03-01' %(datetime.now().year)"
|
||||
rate: 1.111111
|
||||
-
|
||||
I create currency USD in OpenERP for April of 1.052632 Rate
|
||||
-
|
||||
!record {model: res.currency.rate, id: apri_usd}:
|
||||
currency_id: base.USD
|
||||
name: !eval "'%s-04-01' %(datetime.now().year)"
|
||||
rate: 1.052632
|
||||
-
|
||||
I create a bank journal with EUR as currency
|
||||
-
|
||||
!record {model: account.journal, id: bank_journal_EUR}:
|
||||
name: Bank Journal(EUR)
|
||||
code: BEUR
|
||||
type: bank
|
||||
analytic_journal_id: account.sit
|
||||
sequence_id: account.sequence_bank_journal
|
||||
default_debit_account_id: account.cash
|
||||
default_credit_account_id: account.cash
|
||||
currency: base.EUR
|
||||
company_id: base.main_company
|
||||
view_id: account.account_journal_bank_view
|
||||
-
|
||||
I create a bank journal with USD as currency
|
||||
-
|
||||
!record {model: account.journal, id: bank_journal_USD}:
|
||||
name: Bank Journal(USD)
|
||||
code: BUSD
|
||||
type: bank
|
||||
analytic_journal_id: account.sit
|
||||
sequence_id: account.sequence_bank_journal
|
||||
default_debit_account_id: account.cash
|
||||
default_credit_account_id: account.cash
|
||||
currency: base.USD
|
||||
company_id: base.main_company
|
||||
view_id: account.account_journal_bank_view
|
||||
-
|
||||
I create a new partner Michal Gallette
|
||||
-
|
||||
!record {model: res.partner, id: res_partner_michal1}:
|
||||
address:
|
||||
- city: paris
|
||||
country_id: base.fr
|
||||
name: Michal
|
||||
street: 1 rue Rockfeller
|
||||
type: invoice
|
||||
zip: '75016'
|
||||
name: Mr.Michal Gallette
|
||||
-
|
||||
I create the first invoice on 1st January for 200 USD
|
||||
-
|
||||
!record {model: account.invoice, id: account_first_invoice_jan_michal}:
|
||||
account_id: account.a_recv
|
||||
address_contact_id: base.res_partner_address_3000
|
||||
address_invoice_id: base.res_partner_address_3000
|
||||
company_id: base.main_company
|
||||
currency_id: base.USD
|
||||
date_invoice: !eval "'%s-01-01' %(datetime.now().year)"
|
||||
period_id: account.period_1
|
||||
invoice_line:
|
||||
- account_id: account.a_sale
|
||||
name: '[PC1] Basic PC'
|
||||
price_unit: 200.0
|
||||
quantity: 1.0
|
||||
product_id: product.product_product_pc1
|
||||
uos_id: product.product_uom_unit
|
||||
journal_id: account.sales_journal
|
||||
partner_id: res_partner_michal1
|
||||
reference_type: none
|
||||
-
|
||||
I Validate invoice by clicking on Validate button
|
||||
-
|
||||
!workflow {model: account.invoice, action: invoice_open, ref: account_first_invoice_jan_michal}
|
||||
-
|
||||
I check that first invoice move is correct for debtor account(debit - credit == 150)
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_first_invoice_jan_michal"))
|
||||
assert invoice_id.move_id, "Move not created for open invoice"
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.debit - move_line.credit == 150.00), "Invoice move is incorrect for debtors account"
|
||||
-
|
||||
I create the second invoice on 1st February for 100 USD
|
||||
-
|
||||
!record {model: account.invoice, id: account_second_invoice_feb_michal}:
|
||||
account_id: account.a_recv
|
||||
address_contact_id: base.res_partner_address_3000
|
||||
address_invoice_id: base.res_partner_address_3000
|
||||
company_id: base.main_company
|
||||
currency_id: base.USD
|
||||
date_invoice: !eval "'%s-02-01' %(datetime.now().year)"
|
||||
period_id: account.period_2
|
||||
invoice_line:
|
||||
- account_id: account.a_sale
|
||||
name: '[PC1] Basic PC'
|
||||
price_unit: 100.0
|
||||
quantity: 1.0
|
||||
product_id: product.product_product_pc1
|
||||
uos_id: product.product_uom_unit
|
||||
journal_id: account.sales_journal
|
||||
partner_id: res_partner_michal1
|
||||
reference_type: none
|
||||
-
|
||||
I Validate invoice by clicking on Validate button
|
||||
-
|
||||
!workflow {model: account.invoice, action: invoice_open, ref: account_second_invoice_feb_michal}
|
||||
-
|
||||
I check that second invoice move is correct for debtor account (debit - credit == 80)
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_second_invoice_feb_michal"))
|
||||
assert invoice_id.move_id, "Move not created for open invoice"
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.debit - move_line.credit == 80), "Invoice move is incorrect for debtors account"
|
||||
-
|
||||
I create the first voucher of payment
|
||||
<create with values 200 EUR (€), journal EUR, and fills amount 130€ for the invoice of 200$ and 70€ for the invoice of 100$>
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc, time
|
||||
vals = {}
|
||||
res = self.onchange_partner_id(cr, uid, [], ref("res_partner_michal1"), ref('bank_journal_EUR'), 200.0, 2, ttype='receipt', date=False)
|
||||
vals = {
|
||||
'account_id': ref('account.cash'),
|
||||
'amount': 200.0,
|
||||
'company_id': ref('base.main_company'),
|
||||
'currency_id': ref('base.EUR'),
|
||||
'journal_id': ref('bank_journal_EUR'),
|
||||
'partner_id': ref('res_partner_michal1'),
|
||||
'period_id': ref('account.period_3'),
|
||||
'type': 'receipt',
|
||||
'date': time.strftime("%Y-03-01"),
|
||||
'payment_option': 'with_writeoff',
|
||||
'writeoff_acc_id': ref('account.a_expense'),
|
||||
'comment': 'Write Off',
|
||||
'name': 'First payment',
|
||||
}
|
||||
if not res['value']['line_cr_ids']:
|
||||
res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}]
|
||||
for item in res['value']['line_cr_ids']:
|
||||
if item['amount_unreconciled'] == 150.00:
|
||||
item['amount'] = 130.00
|
||||
else:
|
||||
item['amount'] = 70.00
|
||||
vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']]
|
||||
id = self.create(cr, uid, vals)
|
||||
voucher_id = self.browse(cr, uid, id)
|
||||
assert (voucher_id.state=='draft'), "Voucher is not in draft state"
|
||||
-
|
||||
I confirm the voucher
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_michal1'))])
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
|
||||
-
|
||||
I check that the move of my voucher is valid
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_michal1'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
for move_line in move_line_obj.browse(cr, uid, move_lines):
|
||||
assert move_line.state == 'valid', "Voucher move is not valid"
|
||||
-
|
||||
I check that my debtor account is correct
|
||||
-
|
||||
I check that the debtor account has 2 new lines with 144.44 and 77.78 in amount_currency columns and their credit columns are 130 and 70
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_michal1'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
for move_line in move_line_obj.browse(cr, uid, move_lines):
|
||||
if move_line.credit == 70.0:
|
||||
assert move_line.amount_currency == -77.78, "Wrong debtor entry"
|
||||
if move_line.credit == 130.0:
|
||||
assert move_line.amount_currency == -144.44, "Wrong debtor entry"
|
||||
-
|
||||
I check the residual amount of Invoice1, should be 55.56 in residual currency and 20 in amount_residual
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_first_invoice_jan_michal"))
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.amount_residual_currency == 55.56 and move_line.amount_residual == 20) , "Residual amount is not correct for first Invoice"
|
||||
- toto
|
||||
I check the residual amuont of Invoice2, should be 22.22 in residual currency and 10 in amount_residual
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_second_invoice_feb_michal"))
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.amount_residual_currency == 22.22 and move_line.amount_residual == 10) , "Residual amount is not correct for second Invoice"
|
||||
-
|
||||
I create the second voucher of payment
|
||||
<create with values 80 USD, journal USD, and fully reconcile the 2 invoices>
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc, time
|
||||
vals = {}
|
||||
res = self.onchange_partner_id(cr, uid, [], ref("res_partner_michal1"), ref('bank_journal_USD'), 80.0, 2, ttype='receipt', date=False)
|
||||
vals = {
|
||||
'account_id': ref('account.cash'),
|
||||
'amount': 80.0,
|
||||
'company_id': ref('base.main_company'),
|
||||
'currency_id': ref('base.USD'),
|
||||
'journal_id': ref('bank_journal_USD'),
|
||||
'partner_id': ref('res_partner_michal1'),
|
||||
'period_id': ref('account.period_3'),
|
||||
'type': 'receipt',
|
||||
'date': time.strftime("%Y-04-01"),
|
||||
'payment_option': 'with_writeoff',
|
||||
'writeoff_acc_id': ref('account.a_expense'),
|
||||
'exchange_acc_id': ref('account.o_expense'),
|
||||
'comment': 'Write Off',
|
||||
'name': 'Second payment',
|
||||
}
|
||||
if not res['value']['line_cr_ids']:
|
||||
res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}]
|
||||
for item in res['value']['line_cr_ids']:
|
||||
if item['amount_unreconciled'] == 55.56:
|
||||
item['amount'] = 55.56
|
||||
else:
|
||||
item['amount'] = 22.22
|
||||
vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']]
|
||||
id = self.create(cr, uid, vals)
|
||||
voucher_id = self.browse(cr, uid, id)
|
||||
assert (voucher_id.state=='draft'), "Voucher is not in draft state"
|
||||
-
|
||||
I check that writeoff amount computed is 2.22
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_michal1'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
assert (round(voucher_id.writeoff_amount, 2) == 2.22), "Writeoff amount is not 2.22$"
|
||||
-
|
||||
I confirm the voucher
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_michal1'))])
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
|
||||
-
|
||||
I check that my voucher state is posted
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_michal1'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
assert voucher_id.state == 'posted', "Voucher state is not posted"
|
||||
-
|
||||
I check that my debtor account is correct
|
||||
-
|
||||
I check that the debtor account has 2 new lines with -55.56 and -22.22 in amount_currency columns and their credit columns are respectively 52.78 and 21.11 and currency is USD($).
|
||||
-
|
||||
I check that my currency rate difference is correct.
|
||||
-
|
||||
I check that my writeoff is correct. 2.11 in credit and 2.22 in amount_currency
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_michal1'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
reconcile_a = reconcile_b = False
|
||||
for move_line in move_line_obj.browse(cr, uid, move_lines):
|
||||
if move_line.amount_currency == -22.22:
|
||||
assert move_line.reconcile_id.id, "The invoice of 200$ is not fully reconciled"
|
||||
reconcile_b = move_line.reconcile_id.id
|
||||
elif move_line.amount_currency == -55.56:
|
||||
assert move_line.reconcile_id.id, "The invoice of 100$ is not fully reconciled"
|
||||
reconcile_a = move_line.reconcile_id.id
|
||||
for move_line in move_line_obj.browse(cr, uid, move_lines):
|
||||
if move_line.amount_currency == -55.56:
|
||||
assert move_line.credit == 52.78, "Debtor account has wrong entry."
|
||||
elif move_line.amount_currency == -22.22:
|
||||
assert move_line.credit == 21.11, "Debtor account has wrong entry."
|
||||
elif move_line.credit == 11.11 and move_line.account_id.reconcile:
|
||||
assert move_line.amount_currency == 0.00 and move_line.reconcile_id.id == reconcile_b, "Incorrect Currency Difference."
|
||||
elif move_line.credit == 32.78 and move_line.account_id.reconcile:
|
||||
assert move_line.amount_currency == 0.00 and move_line.reconcile_id.id == reconcile_a, "Incorrect Currency Difference."
|
||||
elif move_line.amount_currency == 2.22:
|
||||
assert move_line.credit == 2.11, "Writeoff amount is wrong."
|
||||
-
|
||||
I check the residual amount of invoice 1, should be 0 in residual currency and 0 in amount_residual and paid
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_first_invoice_jan_michal"))
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.amount_residual_currency == 0.0 and move_line.amount_residual == 0.0 and invoice_id.state == 'paid') , "Residual amount is not correct for first Invoice"
|
||||
-
|
||||
I check the residual amuont of invoice 2, should be 0 in residual currency and 0 in amount_residual and paid
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_second_invoice_feb_michal"))
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.amount_residual_currency == 0.0 and move_line.amount_residual == 0.0 and invoice_id.state == 'paid') , "Residual amount is not correct for second Invoice"
|
||||
@@ -0,0 +1,297 @@
|
||||
-
|
||||
In order to check the Account_voucher module with multi-currency in OpenERP,
|
||||
I create 2 Invoices in EUR and make 2 Payments in EUR based on the currency rating on that particular date.
|
||||
-
|
||||
I create currency EUR in OpenERP for January of 1.000000 Rate
|
||||
-
|
||||
!record {model: res.currency.rate, id: jan_eur}:
|
||||
currency_id: base.EUR
|
||||
name: !eval "'%s-01-01' %(datetime.now().year)"
|
||||
rate: 1.000000
|
||||
-
|
||||
I modify the debtor account in order to make sure there is no currency_id linked
|
||||
-
|
||||
!python {model: account.account}: |
|
||||
from datetime import datetime
|
||||
ids = self.search(cr, uid, [('name', 'ilike', 'debtor')])
|
||||
self.write(cr, uid, ids, {'currency_id': False})
|
||||
-
|
||||
I create a bank journal with EUR as currency
|
||||
-
|
||||
!record {model: account.journal, id: bank_journal_EUR}:
|
||||
name: Bank Journal(EUR)
|
||||
code: BEUR
|
||||
type: bank
|
||||
analytic_journal_id: account.sit
|
||||
sequence_id: account.sequence_bank_journal
|
||||
default_debit_account_id: account.cash
|
||||
default_credit_account_id: account.cash
|
||||
currency: base.EUR
|
||||
company_id: base.main_company
|
||||
view_id: account.account_journal_bank_view
|
||||
-
|
||||
I create a new partner Peter Lawson.
|
||||
-
|
||||
!record {model: res.partner, id: res_partner_peter0}:
|
||||
address:
|
||||
- city: paris
|
||||
country_id: base.fr
|
||||
name: Peter
|
||||
street: 1 rue Rockfeller
|
||||
type: invoice
|
||||
zip: '75016'
|
||||
name: Mr.Peter Lawson
|
||||
-
|
||||
I create the first invoice on 1st January for 150 EUR
|
||||
-
|
||||
!record {model: account.invoice, id: account_first_invoice_jan_eur}:
|
||||
account_id: account.a_recv
|
||||
address_contact_id: base.res_partner_address_3000
|
||||
address_invoice_id: base.res_partner_address_3000
|
||||
company_id: base.main_company
|
||||
currency_id: base.EUR
|
||||
date_invoice: !eval "'%s-01-01' %(datetime.now().year)"
|
||||
period_id: account.period_1
|
||||
invoice_line:
|
||||
- account_id: account.a_sale
|
||||
name: '[PC1] Basic PC'
|
||||
price_unit: 150.0
|
||||
quantity: 1.0
|
||||
product_id: product.product_product_pc1
|
||||
uos_id: product.product_uom_unit
|
||||
journal_id: account.sales_journal
|
||||
partner_id: res_partner_peter0
|
||||
reference_type: none
|
||||
-
|
||||
I Validate invoice by clicking on Validate button
|
||||
-
|
||||
!workflow {model: account.invoice, action: invoice_open, ref: account_first_invoice_jan_eur}
|
||||
-
|
||||
I check that first invoice move is correct for debtor account(debit - credit == 150)
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_first_invoice_jan_eur"))
|
||||
assert invoice_id.move_id, "Move not created for open invoice"
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.debit - move_line.credit == 150.00), "Invoice move is incorrect for debtors account"
|
||||
-
|
||||
I create the second invoice on 1st February for 80 EUR
|
||||
-
|
||||
!record {model: account.invoice, id: account_second_invoice_feb_eur}:
|
||||
account_id: account.a_recv
|
||||
address_contact_id: base.res_partner_address_3000
|
||||
address_invoice_id: base.res_partner_address_3000
|
||||
company_id: base.main_company
|
||||
currency_id: base.EUR
|
||||
date_invoice: !eval "'%s-02-01' %(datetime.now().year)"
|
||||
period_id: account.period_1
|
||||
invoice_line:
|
||||
- account_id: account.a_sale
|
||||
name: '[PC1] Basic PC'
|
||||
price_unit: 80.0
|
||||
quantity: 1.0
|
||||
product_id: product.product_product_pc1
|
||||
uos_id: product.product_uom_unit
|
||||
journal_id: account.sales_journal
|
||||
partner_id: res_partner_peter0
|
||||
reference_type: none
|
||||
-
|
||||
I Validate invoice by clicking on Validate button
|
||||
-
|
||||
!workflow {model: account.invoice, action: invoice_open, ref: account_second_invoice_feb_eur}
|
||||
-
|
||||
I check that second invoice move is correct for debtor account (debit - credit == 80)
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_second_invoice_feb_eur"))
|
||||
assert invoice_id.move_id, "Move not created for open invoice"
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.debit - move_line.credit == 80.00), "Invoice move is incorrect for debtors account"
|
||||
-
|
||||
I create the first voucher of payment
|
||||
<create with values 120 EUR, journal EUR, and fill amounts 100 for the invoice of 150 EUR and 20 for the invoice of 80 EUR>
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc, time
|
||||
vals = {}
|
||||
res = self.onchange_partner_id(cr, uid, [], ref("res_partner_peter0"), ref('bank_journal_EUR'), 120.00, 2, ttype='receipt', date=False)
|
||||
vals = {
|
||||
'account_id': ref('account.cash'),
|
||||
'amount': 120.00,
|
||||
'company_id': ref('base.main_company'),
|
||||
'currency_id': ref('base.EUR'),
|
||||
'journal_id': ref('bank_journal_EUR'),
|
||||
'partner_id': ref('res_partner_peter0'),
|
||||
'period_id': ref('account.period_3'),
|
||||
'type': 'receipt',
|
||||
'date': time.strftime("%Y-03-01"),
|
||||
'payment_option': 'with_writeoff',
|
||||
'writeoff_acc_id': ref('account.a_expense'),
|
||||
'comment': 'Write Off',
|
||||
'name': 'First payment',
|
||||
}
|
||||
if not res['value']['line_cr_ids']:
|
||||
res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}]
|
||||
for item in res['value']['line_cr_ids']:
|
||||
if item['amount_unreconciled'] == 150.00:
|
||||
item['amount'] = 100.00
|
||||
else:
|
||||
item['amount'] = 20.00
|
||||
vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']]
|
||||
id = self.create(cr, uid, vals)
|
||||
voucher_id = self.browse(cr, uid, id)
|
||||
assert (voucher_id.state=='draft'), "Voucher is not in draft state"
|
||||
-
|
||||
I check that writeoff amount computed is 0.00
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment'),('partner_id', '=', ref('res_partner_peter0'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
assert (voucher_id.writeoff_amount == 0.00), "Writeoff amount is not 0.00"
|
||||
-
|
||||
I confirm the voucher
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment'),('partner_id', '=', ref('res_partner_peter0'))])
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
|
||||
-
|
||||
I check that the move of my first voucher is valid
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment'),('partner_id', '=', ref('res_partner_peter0'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
for move_line in move_line_obj.browse(cr, uid, move_lines):
|
||||
assert move_line.state == 'valid', "Voucher move is not valid"
|
||||
-
|
||||
I check that my debtor account is correct
|
||||
-
|
||||
I check that the debtor account has 2 new lines with 0.00 and 0.00 in amount_currency columns and their credit are 20 and 100 respectively
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment'),('partner_id', '=', ref('res_partner_peter0'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
for move_line in move_line_obj.browse(cr, uid, move_lines):
|
||||
if move_line.credit == 20.00:
|
||||
assert move_line.amount_currency == 0.00, "Debtor account has wrong entry."
|
||||
elif move_line.credit == 100.00:
|
||||
assert move_line.amount_currency == 0.00, "Debtor account has wrong entry."
|
||||
-
|
||||
I check the residual amount of Invoice1 is 50
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_first_invoice_jan_eur"))
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.amount_residual_currency == 50.0 and move_line.amount_residual == 50.0) , "Residual amount is not correct for first Invoice"
|
||||
-
|
||||
I check the residual amuont of Invoice2 is 60
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_second_invoice_feb_eur"))
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.amount_residual_currency == 60.0 and move_line.amount_residual == 60.0) , "Residual amount is not correct for second Invoice"
|
||||
-
|
||||
I create the second voucher of payment and check to let open the debtor overpaid amount.
|
||||
<create with values 120 EUR, journal EUR, and fill amounts 50 for the invoice of 150 EUR and 70 for the invoice of 80 EUR>
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc, time
|
||||
vals = {}
|
||||
res = self.onchange_partner_id(cr, uid, [], ref("res_partner_peter0"), ref('bank_journal_EUR'), 120.00, 2, ttype='receipt', date=False)
|
||||
vals = {
|
||||
'account_id': ref('account.cash'),
|
||||
'amount': 120.00,
|
||||
'company_id': ref('base.main_company'),
|
||||
'currency_id': ref('base.EUR'),
|
||||
'journal_id': ref('bank_journal_EUR'),
|
||||
'partner_id': ref('res_partner_peter0'),
|
||||
'period_id': ref('account.period_3'),
|
||||
'type': 'receipt',
|
||||
'date': time.strftime("%Y-04-01"),
|
||||
'payment_option': 'with_writeoff',
|
||||
'writeoff_acc_id': ref('account.a_expense'),
|
||||
'comment': 'Write Off',
|
||||
'name': 'Second payment',
|
||||
}
|
||||
if not res['value']['line_cr_ids']:
|
||||
res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}]
|
||||
for item in res['value']['line_cr_ids']:
|
||||
if item['amount_unreconciled'] == 50.00:
|
||||
item['amount'] = 50.00
|
||||
elif item['amount_unreconciled'] == 60.00:
|
||||
item['amount'] = 70.00
|
||||
vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']]
|
||||
id = self.create(cr, uid, vals)
|
||||
voucher_id = self.browse(cr, uid, id)
|
||||
assert (voucher_id.state=='draft'), "Voucher is not in draft state"
|
||||
-
|
||||
I check that writeoff amount computed is 0.00
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment'),('partner_id', '=', ref('res_partner_peter0'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
assert (voucher_id.writeoff_amount == 0.00), "Writeoff amount is not 0"
|
||||
-
|
||||
I confirm the voucher
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_peter0'))])
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
|
||||
-
|
||||
I check that the move of my second voucher is valid
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_peter0'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
for move_line in move_line_obj.browse(cr, uid, move_lines):
|
||||
assert move_line.state == 'valid', "Voucher move is not valid"
|
||||
-
|
||||
I check that my debtor account is correct
|
||||
-
|
||||
I check that the debtor account has 2 new lines with 0.00 and 0.00 in amount_currency columns and their credit are 70 and 50
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_peter0'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
for move_line in move_line_obj.browse(cr, uid, move_lines):
|
||||
if move_line.credit == 70.00:
|
||||
assert move_line.amount_currency == 0.00, "Debtor account has wrong entry."
|
||||
elif move_line.credit == 50.00:
|
||||
assert move_line.amount_currency == 0.00, "Debtor account has wrong entry."
|
||||
-
|
||||
I check the residual amount of Invoice1 is 0
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_first_invoice_jan_eur"))
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.amount_residual_currency == 0 and move_line.amount_residual == 0) , "Residual amount is not correct for first Invoice"
|
||||
-
|
||||
I check the residual amuont of Invoice2 is -10
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_second_invoice_feb_eur"))
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.amount_residual_currency == -10.0 and move_line.amount_residual == -10.0) , "Residual amount is not correct for second Invoice"
|
||||
@@ -0,0 +1,185 @@
|
||||
-
|
||||
In order to check the Account_voucher module with multi-currency in OpenERP,
|
||||
I create an invoice in CAD and make its Payment in CHF based on the currency rating on that particular date.
|
||||
-
|
||||
I create currency CAD in OpenERP for January of 1.338800 Rate
|
||||
-
|
||||
!record {model: res.currency.rate, id: jan_cad}:
|
||||
currency_id: base.CAD
|
||||
name: !eval "'%s-01-01' %(datetime.now().year)"
|
||||
rate: 1.338800
|
||||
-
|
||||
I create currency CAD in OpenERP for March of 2.000000 Rate
|
||||
-
|
||||
!record {model: res.currency.rate, id: mar_cad}:
|
||||
currency_id: base.CAD
|
||||
name: !eval "'%s-03-01' %(datetime.now().year)"
|
||||
rate: 2.000000
|
||||
-
|
||||
I create currency CHF in OpenERP for January of 1.308600 Rate
|
||||
-
|
||||
!record {model: res.currency.rate, id: jan_chf}:
|
||||
currency_id: base.CHF
|
||||
name: !eval "'%s-01-01' %(datetime.now().year)"
|
||||
rate: 1.308600
|
||||
-
|
||||
I create currency CHF in OpenERP for March of 1.250000 Rate
|
||||
-
|
||||
!record {model: res.currency.rate, id: mar_chf}:
|
||||
currency_id: base.CHF
|
||||
name: !eval "'%s-03-01' %(datetime.now().year)"
|
||||
rate: 1.25000
|
||||
-
|
||||
I create a bank journal with CHF as currency
|
||||
-
|
||||
!record {model: account.journal, id: bank_journal_CHF}:
|
||||
name: Bank Journal(CHF)
|
||||
code: BCHF
|
||||
type: bank
|
||||
analytic_journal_id: account.sit
|
||||
sequence_id: account.sequence_bank_journal
|
||||
default_debit_account_id: account.cash
|
||||
default_credit_account_id: account.cash
|
||||
currency: base.CHF
|
||||
company_id: base.main_company
|
||||
view_id: account.account_journal_bank_view
|
||||
-
|
||||
I create a new partner John Armani.
|
||||
-
|
||||
!record {model: res.partner, id: res_partner_john0}:
|
||||
address:
|
||||
- city: paris
|
||||
country_id: base.fr
|
||||
name: John
|
||||
street: 1 rue Rockfeller
|
||||
type: invoice
|
||||
zip: '75016'
|
||||
name: Mr.John Armani
|
||||
-
|
||||
I create the first invoice on 1st January for 200 CAD
|
||||
-
|
||||
!record {model: account.invoice, id: account_first_invoice_jan_cad}:
|
||||
account_id: account.a_recv
|
||||
address_contact_id: base.res_partner_address_3000
|
||||
address_invoice_id: base.res_partner_address_3000
|
||||
company_id: base.main_company
|
||||
currency_id: base.CAD
|
||||
date_invoice: !eval "'%s-01-01' %(datetime.now().year)"
|
||||
period_id: account.period_1
|
||||
invoice_line:
|
||||
- account_id: account.a_sale
|
||||
name: '[PC1] Basic PC'
|
||||
price_unit: 200.0
|
||||
quantity: 1.0
|
||||
product_id: product.product_product_pc1
|
||||
uos_id: product.product_uom_unit
|
||||
journal_id: account.sales_journal
|
||||
partner_id: res_partner_john0
|
||||
reference_type: none
|
||||
-
|
||||
I Validate invoice by clicking on Validate button
|
||||
-
|
||||
!workflow {model: account.invoice, action: invoice_open, ref: account_first_invoice_jan_cad}
|
||||
-
|
||||
I check that first invoice move is correct for debtor account (debit - credit == 149.39)
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_first_invoice_jan_cad"))
|
||||
assert invoice_id.move_id, "Move not created for open invoice"
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.debit - move_line.credit == 149.39), "Invoice move is incorrect for debtors account"
|
||||
-
|
||||
I create the first voucher of payment
|
||||
<create with values 200 CHF, journal CHF, and completly pat the invoice of 200 CAD>
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc, time
|
||||
vals = {}
|
||||
res = self.onchange_partner_id(cr, uid, [], ref("res_partner_john0"), ref('bank_journal_CHF'), 200.00, 2, ttype='receipt', date=False)
|
||||
vals = {
|
||||
'account_id': ref('account.cash'),
|
||||
'amount': 200.00,
|
||||
'company_id': ref('base.main_company'),
|
||||
'currency_id': ref('base.CHF'),
|
||||
'journal_id': ref('bank_journal_CHF'),
|
||||
'partner_id': ref('res_partner_john0'),
|
||||
'period_id': ref('account.period_3'),
|
||||
'type': 'receipt',
|
||||
'date': time.strftime("%Y-03-01"),
|
||||
'payment_option': 'with_writeoff',
|
||||
'writeoff_acc_id': ref('account.a_expense'),
|
||||
'exchange_acc_id': ref('account.o_expense'),
|
||||
'comment': 'Write Off',
|
||||
'name': 'First payment',
|
||||
}
|
||||
if not res['value']['line_cr_ids']:
|
||||
res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}]
|
||||
for item in res['value']['line_cr_ids']:
|
||||
if item['amount_unreconciled'] == 186.74:
|
||||
item['amount'] = 186.74
|
||||
vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']]
|
||||
id = self.create(cr, uid, vals)
|
||||
voucher_id = self.browse(cr, uid, id)
|
||||
assert (voucher_id.state=='draft'), "Voucher is not in draft state"
|
||||
-
|
||||
I check that writeoff amount computed is 13.26
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_john0'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
assert (round(voucher_id.writeoff_amount,2) == 13.26), "Writeoff amount is not 13.26 CHF"
|
||||
-
|
||||
I confirm the voucher
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_john0'))])
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
|
||||
-
|
||||
I check that the move of my voucher is valid
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_john0'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
for move_line in move_line_obj.browse(cr, uid, move_lines):
|
||||
assert move_line.state == 'valid', "Voucher move is not valid"
|
||||
assert voucher_id.state == 'posted', "Voucher state is not posted"
|
||||
-
|
||||
I check that my debtor account is correct
|
||||
-
|
||||
I check that the debtor account has 1 new line with -186.74 as amount_currency columns and 149.39 of credit and currency is CHF.
|
||||
-
|
||||
I check that my currency rate difference is correct. 0 in debit with no amount_currency
|
||||
-
|
||||
I check that my writeoff is correct. 11.05 credit and 13.26 amount_currency
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_john0'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
for move_line in move_line_obj.browse(cr, uid, move_lines):
|
||||
if move_line.amount_currency == 200:
|
||||
assert move_line.debit == 160.00, "Bank account has wrong entry."
|
||||
elif move_line.amount_currency == -186.74:
|
||||
assert move_line.credit == 149.39, "Debtor account has wrong entry."
|
||||
elif move_line.debit == 0.00 and move_line.credit == 0.00:
|
||||
assert move_line.amount_currency == 0.00, "Incorrect Currency Difference."
|
||||
elif move_line.credit == 10.61:
|
||||
assert move_line.amount_currency == 13.26, "Writeoff amount is wrong."
|
||||
else:
|
||||
assert False, "Wrong entry"
|
||||
-
|
||||
I check the residual amount of Invoice1, should be 0 in residual currency and 0 in amount_residual and paid
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
invoice_id = self.browse(cr, uid, ref("account_first_invoice_jan_cad"))
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
|
||||
move_line = move_line_obj.browse(cr, uid, move_lines[0])
|
||||
assert (move_line.amount_residual_currency == 0.0 and move_line.amount_residual == 0.0 and invoice_id.state == 'paid') , "Residual amount is not correct for first Invoice"
|
||||
@@ -0,0 +1,226 @@
|
||||
# Estonian translation for openobject-addons
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
|
||||
"PO-Revision-Date: 2011-10-11 18:09+0000\n"
|
||||
"Last-Translator: Aare Vesi <Unknown>\n"
|
||||
"Language-Team: Estonian <et@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-12 04:40+0000\n"
|
||||
"X-Generator: Launchpad (build 14124)\n"
|
||||
|
||||
#. module: anonymization
|
||||
#: model:ir.model,name:anonymization.model_ir_model_fields_anonymize_wizard
|
||||
msgid "ir.model.fields.anonymize.wizard"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization,field_name:0
|
||||
msgid "Field Name"
|
||||
msgstr "Välja Nimi:"
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization,field_id:0
|
||||
msgid "Field"
|
||||
msgstr "Väli"
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization.history,state:0
|
||||
#: field:ir.model.fields.anonymize.wizard,state:0
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymize.wizard,file_import:0
|
||||
msgid "Import"
|
||||
msgstr "Import"
|
||||
|
||||
#. module: anonymization
|
||||
#: model:ir.model,name:anonymization.model_ir_model_fields_anonymization
|
||||
msgid "ir.model.fields.anonymization"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: model:ir.module.module,shortdesc:anonymization.module_meta_information
|
||||
msgid "Database anonymization module"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization.history,direction:0
|
||||
msgid "Direction"
|
||||
msgstr "Suund"
|
||||
|
||||
#. module: anonymization
|
||||
#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymization_tree
|
||||
#: view:ir.model.fields.anonymization:0
|
||||
#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_fields
|
||||
msgid "Anonymized Fields"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization
|
||||
msgid "Database anonymization"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: code:addons/anonymization/anonymization.py:55
|
||||
#: sql_constraint:ir.model.fields.anonymization:0
|
||||
#, python-format
|
||||
msgid "You cannot have two records having the same model and the same field"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: selection:ir.model.fields.anonymization,state:0
|
||||
#: selection:ir.model.fields.anonymize.wizard,state:0
|
||||
msgid "Anonymized"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization,state:0
|
||||
msgid "unknown"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization,model_id:0
|
||||
msgid "Object"
|
||||
msgstr "Objekt"
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization.history,filepath:0
|
||||
msgid "File path"
|
||||
msgstr "Faili asukoht"
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization.history,date:0
|
||||
msgid "Date"
|
||||
msgstr "Kuupäev"
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymize.wizard,file_export:0
|
||||
msgid "Export"
|
||||
msgstr "Eksport"
|
||||
|
||||
#. module: anonymization
|
||||
#: view:ir.model.fields.anonymize.wizard:0
|
||||
msgid "Reverse the Database Anonymization"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: view:ir.model.fields.anonymize.wizard:0
|
||||
msgid "Database Anonymization"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_wizard
|
||||
msgid "Anonymize database"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: view:ir.model.fields.anonymization.history:0
|
||||
#: field:ir.model.fields.anonymization.history,field_ids:0
|
||||
msgid "Fields"
|
||||
msgstr "Väljad"
|
||||
|
||||
#. module: anonymization
|
||||
#: selection:ir.model.fields.anonymization,state:0
|
||||
#: selection:ir.model.fields.anonymize.wizard,state:0
|
||||
msgid "Clear"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: selection:ir.model.fields.anonymization.history,direction:0
|
||||
msgid "clear -> anonymized"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: view:ir.model.fields.anonymize.wizard:0
|
||||
#: field:ir.model.fields.anonymize.wizard,summary:0
|
||||
msgid "Summary"
|
||||
msgstr "Kokkuvõte"
|
||||
|
||||
#. module: anonymization
|
||||
#: view:ir.model.fields.anonymization:0
|
||||
msgid "Anonymized Field"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: model:ir.module.module,description:anonymization.module_meta_information
|
||||
msgid ""
|
||||
"\n"
|
||||
"This module allows you to anonymize a database.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: selection:ir.model.fields.anonymize.wizard,state:0
|
||||
msgid "Unstable"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: selection:ir.model.fields.anonymization.history,state:0
|
||||
msgid "Exception occured"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: selection:ir.model.fields.anonymization,state:0
|
||||
#: selection:ir.model.fields.anonymize.wizard,state:0
|
||||
msgid "Not Existing"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymization,model_name:0
|
||||
msgid "Object Name"
|
||||
msgstr "Objekti nimi"
|
||||
|
||||
#. module: anonymization
|
||||
#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymization_history_tree
|
||||
#: view:ir.model.fields.anonymization.history:0
|
||||
#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_history
|
||||
msgid "Anonymization History"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: model:ir.model,name:anonymization.model_ir_model_fields_anonymization_history
|
||||
msgid "ir.model.fields.anonymization.history"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymize_wizard
|
||||
#: view:ir.model.fields.anonymize.wizard:0
|
||||
msgid "Anonymize Database"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: field:ir.model.fields.anonymize.wizard,name:0
|
||||
msgid "File Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: selection:ir.model.fields.anonymization.history,direction:0
|
||||
msgid "anonymized -> clear"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: selection:ir.model.fields.anonymization.history,state:0
|
||||
msgid "Started"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: selection:ir.model.fields.anonymization.history,state:0
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
#. module: anonymization
|
||||
#: view:ir.model.fields.anonymization.history:0
|
||||
#: field:ir.model.fields.anonymization.history,msg:0
|
||||
#: field:ir.model.fields.anonymize.wizard,msg:0
|
||||
msgid "Message"
|
||||
msgstr ""
|
||||
@@ -15,7 +15,7 @@ instance.web.Login = instance.web.Login.extend({
|
||||
|
||||
|
||||
var openIdProvider = null;
|
||||
if (this.has_local_storage && this.remember_creditentials) {
|
||||
if (this.has_local_storage && this.remember_credentials) {
|
||||
openIdProvider = localStorage.getItem('openid-provider');
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ instance.web.Login = instance.web.Login.extend({
|
||||
$openid_selected_provider = openIdProvider;
|
||||
this.do_openid_select('a[href="#' + openIdProvider + '"]', openIdProvider, true);
|
||||
|
||||
if (this.has_local_storage && this.remember_creditentials) {
|
||||
if (this.has_local_storage && this.remember_credentials) {
|
||||
this.$openid_selected_input.find('input').val(localStorage.getItem('openid-login'));
|
||||
}
|
||||
}
|
||||
@@ -54,7 +54,7 @@ instance.web.Login = instance.web.Login.extend({
|
||||
self.$openid_selected_input.find('input:first').focus();
|
||||
self.$openid_selected_provider = (self.$openid_selected_button.attr('href') || '').substr(1);
|
||||
|
||||
if (self.has_local_storage && self.remember_creditentials) {
|
||||
if (self.has_local_storage && self.remember_credentials) {
|
||||
localStorage.setItem('openid-provider', self.$openid_selected_provider);
|
||||
}
|
||||
|
||||
@@ -91,7 +91,7 @@ instance.web.Login = instance.web.Login.extend({
|
||||
ev.preventDefault();
|
||||
|
||||
var id = this.$openid_selected_input.find('input').val();
|
||||
if (this.has_local_storage && this.remember_creditentials) {
|
||||
if (this.has_local_storage && this.remember_credentials) {
|
||||
localStorage.setItem('openid-login', id);
|
||||
}
|
||||
|
||||
|
||||
@@ -1005,7 +1005,7 @@ class calendar_event(osv.osv):
|
||||
return result
|
||||
|
||||
_columns = {
|
||||
'id': fields.integer('ID'),
|
||||
'id': fields.integer('ID', readonly=True),
|
||||
'sequence': fields.integer('Sequence'),
|
||||
'name': fields.char('Description', size=64, required=False, states={'done': [('readonly', True)]}),
|
||||
'date': fields.datetime('Date', states={'done': [('readonly', True)]}),
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -8,15 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
|
||||
"PO-Revision-Date: 2010-12-27 09:16+0000\n"
|
||||
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
|
||||
"<jesteve@zikzakmedia.com>\n"
|
||||
"PO-Revision-Date: 2011-10-16 22:58+0000\n"
|
||||
"Last-Translator: David Acevedo Toledo <Unknown>\n"
|
||||
"Language-Team: Spanish <es@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-05 05:42+0000\n"
|
||||
"X-Generator: Launchpad (build 13830)\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-17 04:43+0000\n"
|
||||
"X-Generator: Launchpad (build 14155)\n"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/object_test/object_test.py:187
|
||||
@@ -391,7 +390,7 @@ msgstr "¡Error! El módulo no está cargado/instalado correctamente"
|
||||
#: code:addons/base_module_quality/speed_test/speed_test.py:116
|
||||
#, python-format
|
||||
msgid "Error in Read method: %s"
|
||||
msgstr ""
|
||||
msgstr "Error en el metodo de entrada %s"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/speed_test/speed_test.py:138
|
||||
|
||||
@@ -35,7 +35,7 @@ DEFAULT_MODULES = {
|
||||
'Project Management' : ['project',],
|
||||
'Knowledge Management' : ['document',],
|
||||
'Warehouse Management' : ['stock',],
|
||||
'Manufacturing' : ['mrp', 'procurement'],
|
||||
'Manufacturing' : ['mrp'],
|
||||
'Accounting & Finance' : ['account'],
|
||||
'Purchase Management' : ['purchase'],
|
||||
'Human Resources' : ['hr',],
|
||||
@@ -107,7 +107,8 @@ class base_setup_installer(osv.osv_memory):
|
||||
for cat in cat_proxy.browse(cr, uid, cat_ids, context=context):
|
||||
m = DEFAULT_MODULES.get(cat.name,[])
|
||||
r = module_proxy.search(cr, uid, [('state','=','installed'),('name','in',m)])
|
||||
result['category_%d' % (cat.id,)] = bool(r)
|
||||
|
||||
result['category_%d' % (cat.id,)] = bool(r) and (len(r) == len(m))
|
||||
|
||||
return result
|
||||
|
||||
|
||||
@@ -0,0 +1,289 @@
|
||||
# Estonian translation for openobject-addons
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
|
||||
"PO-Revision-Date: 2011-10-11 17:56+0000\n"
|
||||
"Last-Translator: Aare Vesi <Unknown>\n"
|
||||
"Language-Team: Estonian <et@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-12 04:40+0000\n"
|
||||
"X-Generator: Launchpad (build 14124)\n"
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.actions.act_window,name:base_synchro.action_view_base_synchro
|
||||
msgid "Base Synchronization"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.server,server_db:0
|
||||
msgid "Server Database"
|
||||
msgstr "Serveri andmebaas"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro.server:0
|
||||
#: model:ir.model,name:base_synchro.model_base_synchro_server
|
||||
msgid "Synchronized server"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj.avoid,name:0
|
||||
msgid "Field Name"
|
||||
msgstr "Välja Nimi:"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj,synchronize_date:0
|
||||
msgid "Latest Synchronization"
|
||||
msgstr "Viimane sünkroniseerimine"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro,user_id:0
|
||||
msgid "Send Result To"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.model,name:base_synchro.model_base_synchro_obj_avoid
|
||||
msgid "Fields to not synchronize"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro:0
|
||||
msgid "_Close"
|
||||
msgstr "_Sulge"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro:0
|
||||
msgid "Transfer Data To Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.model,name:base_synchro.model_base_synchro_obj
|
||||
msgid "Register Class"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro.obj:0
|
||||
#: model:ir.actions.act_window,name:base_synchro.action_transfer_tree
|
||||
#: model:ir.ui.menu,name:base_synchro.transfer_menu_id
|
||||
msgid "Synchronized objects"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.server,obj_ids:0
|
||||
msgid "Models"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj.avoid,obj_id:0
|
||||
#: view:base.synchro.obj.line:0
|
||||
#: field:base.synchro.obj.line,obj_id:0
|
||||
msgid "Object"
|
||||
msgstr "Objekt"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.server,login:0
|
||||
msgid "User Name"
|
||||
msgstr "Kasutajanimi"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro.obj:0
|
||||
#: view:base.synchro.obj.line:0
|
||||
msgid "Group By"
|
||||
msgstr "Rühmitamise alus"
|
||||
|
||||
#. module: base_synchro
|
||||
#: selection:base.synchro.obj,action:0
|
||||
msgid "Upload"
|
||||
msgstr "Lae üles"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro.obj:0
|
||||
msgid "Latest synchronization"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.module.module,description:base_synchro.module_meta_information
|
||||
msgid "Synchronization with all objects."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro.obj.line:0
|
||||
#: field:base.synchro.obj.line,name:0
|
||||
msgid "Date"
|
||||
msgstr "Kuupäev"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.server,password:0
|
||||
msgid "Password"
|
||||
msgstr "Salasõna"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj,avoid_ids:0
|
||||
msgid "Fields Not Sync."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: selection:base.synchro.obj,action:0
|
||||
msgid "Both"
|
||||
msgstr "Mõlemad"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj,name:0
|
||||
msgid "Name"
|
||||
msgstr "Nimi"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro.obj:0
|
||||
msgid "Fields"
|
||||
msgstr "Väljad"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro.obj.line:0
|
||||
msgid "Transfered Ids Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj,action:0
|
||||
msgid "Synchronisation direction"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj,server_id:0
|
||||
msgid "Server"
|
||||
msgstr "Server"
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.actions.act_window,name:base_synchro.action_base_synchro_obj_line_tree
|
||||
#: model:ir.model,name:base_synchro.model_base_synchro_obj_line
|
||||
#: model:ir.ui.menu,name:base_synchro.menu_action_base_synchro_obj_line_tree
|
||||
msgid "Synchronized instances"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj,active:0
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro.obj:0
|
||||
#: field:base.synchro.obj,model_id:0
|
||||
msgid "Object to synchronize"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.module.module,shortdesc:base_synchro.module_meta_information
|
||||
msgid "Base Synchro"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.actions.act_window,name:base_synchro.action_base_synchro_server_tree
|
||||
#: model:ir.ui.menu,name:base_synchro.synchro_server_tree_menu_id
|
||||
msgid "Servers to be synchronized"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro.obj:0
|
||||
msgid "Transfer Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj.line,remote_id:0
|
||||
msgid "Remote Id"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj,line_id:0
|
||||
msgid "Ids Affected"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.ui.menu,name:base_synchro.next_id_63
|
||||
msgid "History"
|
||||
msgstr "Ajalugu"
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.ui.menu,name:base_synchro.next_id_62
|
||||
#: model:ir.ui.menu,name:base_synchro.synch_config
|
||||
msgid "Synchronization"
|
||||
msgstr "Sünkroniseerimine"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj,domain:0
|
||||
msgid "Domain"
|
||||
msgstr "Domeen"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro:0
|
||||
msgid "_Synchronize"
|
||||
msgstr "_Sünkroniseeri"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro:0
|
||||
msgid "OK"
|
||||
msgstr "OK"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.server,name:0
|
||||
msgid "Server name"
|
||||
msgstr "Serveri nimi"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj,sequence:0
|
||||
msgid "Sequence"
|
||||
msgstr "Järgnevus"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro:0
|
||||
msgid ""
|
||||
"The synchronisation has been started.You will receive a request when it's "
|
||||
"done."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.server,server_port:0
|
||||
msgid "Server Port"
|
||||
msgstr "Serveri port"
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.ui.menu,name:base_synchro.menu_action_view_base_synchro
|
||||
msgid "Synchronize objects"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro:0
|
||||
msgid "Synchronization Complited!"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.model,name:base_synchro.model_base_synchro
|
||||
msgid "base.synchro"
|
||||
msgstr "base.synchro"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj.line,local_id:0
|
||||
msgid "Local Id"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.actions.act_window,name:base_synchro.actions_regclass_tree
|
||||
#: model:ir.actions.act_window,name:base_synchro.actions_transfer_line_form
|
||||
msgid "Filters"
|
||||
msgstr "Filtrid"
|
||||
|
||||
#. module: base_synchro
|
||||
#: selection:base.synchro.obj,action:0
|
||||
msgid "Download"
|
||||
msgstr "Lae alla"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro,server_url:0
|
||||
#: field:base.synchro.server,server_url:0
|
||||
msgid "Server URL"
|
||||
msgstr ""
|
||||
@@ -34,10 +34,18 @@ The user can also publish notes.
|
||||
""",
|
||||
'author': 'OpenERP SA',
|
||||
'depends': ['base'],
|
||||
'update_xml': ['security/board_security.xml','security/ir.model.access.csv', 'wizard/board_menu_create_view.xml', 'board_view.xml','board_administration_view.xml'],
|
||||
'demo_xml': ['board_demo.xml'],
|
||||
'update_xml': [
|
||||
'security/ir.model.access.csv',
|
||||
'wizard/board_menu_create_view.xml',
|
||||
'board_view.xml',
|
||||
'board_data_admin.xml',
|
||||
'board_data_home.xml',
|
||||
],
|
||||
'demo_xml': [
|
||||
'board_demo.xml'
|
||||
],
|
||||
'installable': True,
|
||||
'active': False,
|
||||
'active': True,
|
||||
'certificate': '0076912305725',
|
||||
'images': ['images/1_dashboard_definition.jpeg','images/2_publish_note.jpeg','images/3_admin_dashboard.jpeg',],
|
||||
}
|
||||
|
||||
@@ -168,9 +168,6 @@ class board_board(osv.osv):
|
||||
'name':lambda *args: 'Dashboard'
|
||||
}
|
||||
|
||||
board_board()
|
||||
|
||||
|
||||
class board_line(osv.osv):
|
||||
"""
|
||||
Board Line
|
||||
@@ -193,8 +190,6 @@ class board_line(osv.osv):
|
||||
'position': lambda *args: 'left'
|
||||
}
|
||||
|
||||
board_line()
|
||||
|
||||
class res_log_report(osv.osv):
|
||||
""" Log Report """
|
||||
_name = "res.log.report"
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<data>
|
||||
<!-- User Connection -->
|
||||
<record model="ir.ui.view" id="view_user_connection_tree">
|
||||
<field name="name">user.connection.tree</field>
|
||||
@@ -158,23 +157,13 @@
|
||||
<field name="view_id" ref="board_administration_form"/>
|
||||
</record>
|
||||
|
||||
<menuitem id="base.menu_reporting" name="Reporting" parent="base.menu_administration" sequence="11"
|
||||
groups="base.group_extended"/>
|
||||
<menuitem id="board.admin_menu_dasboard" name="Dashboard" sequence="0" parent="base.menu_reporting"/>
|
||||
<menuitem id="menu_board_admin" action="open_board_administration_form" icon="terp-graph" parent="board.admin_menu_dasboard" />
|
||||
<menuitem icon="terp-administration" id="base.menu_administration" name="Administration" sequence="50" action="open_board_administration_form"/>
|
||||
<!-- bind adminitration dashboard to the root administration -->
|
||||
<menuitem id="base.menu_administration" icon="terp-administration" name="Administration" sequence="50" action="open_board_administration_form"/>
|
||||
|
||||
</data>
|
||||
<!-- add a menu item in adminitration/reporting/dashboards -->
|
||||
<menuitem id="base.menu_reporting" name="Reporting" parent="base.menu_administration" sequence="11" groups="base.group_extended"/>
|
||||
<menuitem id="base.menu_dashboard" name="Dashboards" parent="base.menu_reporting" sequence="0"/>
|
||||
<menuitem id="base.menu_dashboard_admin" action="open_board_administration_form" parent="base.menu_dashboard" icon="terp-graph"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<!-- neat client actions that can be used in dashboards to display res_widgets -->
|
||||
<record id="action_application_tiles" model="ir.actions.client">
|
||||
<field name="name">Applications Tiles</field>
|
||||
<field name="tag">board.home.applications</field>
|
||||
</record>
|
||||
<record id="action_res_widgets_tweets" model="ir.actions.client">
|
||||
<field name="name">Tweets Widget</field>
|
||||
<field name="tag">board.home.widgets</field>
|
||||
<field name="params" eval="{'widget_id': ref('base.openerp_favorites_twitter_widget')}"/>
|
||||
</record>
|
||||
<record id="action_res_widgets_events" model="ir.actions.client">
|
||||
<field name="name">Events Widget</field>
|
||||
<field name="tag">board.home.widgets</field>
|
||||
<field name="params" eval="{'widget_id': ref('base.events_widget')}"/>
|
||||
</record>
|
||||
<record id="action_res_widgets_facebook" model="ir.actions.client">
|
||||
<field name="name">Facebook Widget</field>
|
||||
<field name="tag">board.home.widgets</field>
|
||||
<field name="params" eval="{'widget_id': ref('base.facebook_widget')}"/>
|
||||
</record>
|
||||
<record id="action_res_widgets_note" model="ir.actions.client">
|
||||
<field name="name">Note Widget</field>
|
||||
<field name="tag">board.home.widgets</field>
|
||||
<field name="params" eval="{'widget_id': ref('base.note_widget')}"/>
|
||||
</record>
|
||||
<record id="action_res_widgets_map" model="ir.actions.client">
|
||||
<field name="name">Google Maps Widget</field>
|
||||
<field name="tag">board.home.widgets</field>
|
||||
<field name="params" eval="{'widget_id': ref('base.google_maps_widget')}"/>
|
||||
</record>
|
||||
<record id="action_res_widgets_currency_converter" model="ir.actions.client">
|
||||
<field name="name">Currency Converter Widget</field>
|
||||
<field name="tag">board.home.widgets</field>
|
||||
<field name="params" eval="{'widget_id': ref('base.currency_converter_widget')}"/>
|
||||
</record>
|
||||
|
||||
<!-- default homepage definition -->
|
||||
<record id="board_homepage_view" model="ir.ui.view">
|
||||
<field name="name">Homepage Board</field>
|
||||
<field name="model">board.board</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="">
|
||||
<hpaned>
|
||||
<child1>
|
||||
<action name="%(action_application_tiles)d"/>
|
||||
</child1>
|
||||
<child2>
|
||||
<action name="%(action_res_widgets_tweets)d"/>
|
||||
<action name="%(action_res_widgets_events)d"/>
|
||||
</child2>
|
||||
</hpaned>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="board_homepage_action" model="ir.actions.act_window">
|
||||
<field name="name">Home Page</field>
|
||||
<field name="res_model">board.board</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="board_homepage_view"/>
|
||||
</record>
|
||||
|
||||
<!-- set the default homepage of admin -->
|
||||
<record id="base.user_admin" model="res.users">
|
||||
<field name="action_id" ref="board_homepage_action"/>
|
||||
</record>
|
||||
|
||||
<!-- and of every new users -->
|
||||
<function eval="('default',False,'action_id', [('res.users', False)], board_homepage_action, True, False, False, False, True)" id="ir_default_home" model="ir.values" name="set"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -1,8 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="base.user_demo" model="res.users">
|
||||
<field eval="[(4, ref('base.group_sale_salesman'))]" name="groups_id"/>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
<data>
|
||||
<!-- set the default homepage of demo -->
|
||||
<record id="base.user_demo" model="res.users">
|
||||
<field name="action_id" ref="board_homepage_action"/>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
+62
-134
@@ -1,146 +1,74 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="action_application_tiles" model="ir.actions.client">
|
||||
<field name="name">Applications Tiles</field>
|
||||
<field name="tag">board.home.applications</field>
|
||||
</record>
|
||||
<record id="action_res_widgets_tweets" model="ir.actions.client">
|
||||
<field name="name">Tweets Widget</field>
|
||||
<field name="tag">board.home.widgets</field>
|
||||
<field name="params" eval="{'widget_id': ref('base.openerp_favorites_twitter_widget')}"/>
|
||||
</record>
|
||||
<record id="action_res_widgets_events" model="ir.actions.client">
|
||||
<field name="name">Events Widget</field>
|
||||
<field name="tag">board.home.widgets</field>
|
||||
<field name="params" eval="{'widget_id': ref('base.events_widget')}"/>
|
||||
</record>
|
||||
<record id="action_res_widgets_facebook" model="ir.actions.client">
|
||||
<field name="name">Facebook Widget</field>
|
||||
<field name="tag">board.home.widgets</field>
|
||||
<field name="params" eval="{'widget_id': ref('base.facebook_widget')}"/>
|
||||
</record>
|
||||
<record id="action_res_widgets_note" model="ir.actions.client">
|
||||
<field name="name">Note Widget</field>
|
||||
<field name="tag">board.home.widgets</field>
|
||||
<field name="params" eval="{'widget_id': ref('base.note_widget')}"/>
|
||||
</record>
|
||||
<record id="action_res_widgets_map" model="ir.actions.client">
|
||||
<field name="name">Google Maps Widget</field>
|
||||
<field name="tag">board.home.widgets</field>
|
||||
<field name="params" eval="{'widget_id': ref('base.google_maps_widget')}"/>
|
||||
</record>
|
||||
<record id="action_res_widgets_currency_converter" model="ir.actions.client">
|
||||
<field name="name">Currency Converter Widget</field>
|
||||
<field name="tag">board.home.widgets</field>
|
||||
<field name="params" eval="{'widget_id': ref('base.currency_converter_widget')}"/>
|
||||
</record>
|
||||
<record id="view_board_homepage" model="ir.ui.view">
|
||||
<field name="name">Homepage Board</field>
|
||||
<data>
|
||||
<!-- Board Search View -->
|
||||
<record id="view_board_search" model="ir.ui.view">
|
||||
<field name="name">board.board.search</field>
|
||||
<field name="model">board.board</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Dashboard">
|
||||
<field name="name"/>
|
||||
<field name="line_ids"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Board Tree View -->
|
||||
<record id="view_board_tree" model="ir.ui.view">
|
||||
<field name="name">board.board.tree</field>
|
||||
<field name="model">board.board</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Dashboard">
|
||||
<field name="name"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Board Form View -->
|
||||
<record id="view_board_form" model="ir.ui.view">
|
||||
<field name="name">board.board.form</field>
|
||||
<field name="model">board.board</field>
|
||||
<field name="type">form</field>
|
||||
<field eval="1" name="priority"/>
|
||||
<field name="arch" type="xml">
|
||||
<form string="">
|
||||
<hpaned>
|
||||
<child1>
|
||||
<action name="%(action_application_tiles)d"/>
|
||||
</child1>
|
||||
<child2>
|
||||
<action name="%(action_res_widgets_tweets)d"/>
|
||||
<action name="%(action_res_widgets_events)d"/>
|
||||
</child2>
|
||||
</hpaned>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="homepage_action" model="ir.actions.act_window">
|
||||
<field name="name">Home Page</field>
|
||||
<field name="res_model">board.board</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="view_board_homepage"/>
|
||||
</record>
|
||||
|
||||
<!-- Board Tree View -->
|
||||
|
||||
<record id="view_board_tree" model="ir.ui.view">
|
||||
<field name="name">board.board.tree</field>
|
||||
<field name="model">board.board</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Dashboard">
|
||||
<form string="Dashboard">
|
||||
<group col="6" colspan="4">
|
||||
<field name="name"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Dashboard Definition Form View -->
|
||||
|
||||
<record id="view_board_form" model="ir.ui.view">
|
||||
<field name="name">board.board.form</field>
|
||||
<field name="model">board.board</field>
|
||||
<field name="type">form</field>
|
||||
<field eval="1" name="priority"/>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Dashboard">
|
||||
<group col="6" colspan="4">
|
||||
<field name="view_id"/>
|
||||
<button colspan="2" name="%(action_board_menu_create)d" string="Create Menu" type="action" icon="gtk-justify-fill" />
|
||||
</group>
|
||||
<field colspan="4" name="line_ids" nolabel="1">
|
||||
<tree string="Dashboard View">
|
||||
<field name="name"/>
|
||||
<field name="view_id"/>
|
||||
<button colspan="2"
|
||||
name="%(action_board_menu_create)d"
|
||||
string="Create Menu" type="action"
|
||||
icon="gtk-justify-fill" />
|
||||
</group>
|
||||
<field colspan="4" name="line_ids" nolabel="1">
|
||||
<tree string="Dashboard View">
|
||||
<field name="name"/>
|
||||
<field name="sequence"/>
|
||||
<field name="action_id"/>
|
||||
<field name="position"/>
|
||||
</tree>
|
||||
<form string="Dashboard View">
|
||||
<field name="name"/>
|
||||
<field name="sequence"/>
|
||||
<field name="width"/>
|
||||
<field name="height"/>
|
||||
<field name="action_id"
|
||||
domain="[('view_type','!=','tree')]" />
|
||||
<field name="position"/>
|
||||
</form>
|
||||
</field>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_board_search" model="ir.ui.view">
|
||||
<field name="name">board.board.search</field>
|
||||
<field name="model">board.board</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Dashboard">
|
||||
<field name="name"/>
|
||||
<field name="line_ids"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
<field name="sequence"/>
|
||||
<field name="action_id"/>
|
||||
<field name="position"/>
|
||||
</tree>
|
||||
<form string="Dashboard View">
|
||||
<field name="name"/>
|
||||
<field name="sequence"/>
|
||||
<field name="width"/>
|
||||
<field name="height"/>
|
||||
<field name="action_id" domain="[('view_type','!=','tree')]" />
|
||||
<field name="position"/>
|
||||
</form>
|
||||
</field>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Action for DashBoard Definition form -->
|
||||
<record id="action_view_board_list_form" model="ir.actions.act_window">
|
||||
<field name="name">Dashboard Definition</field>
|
||||
<field name="res_model">board.board</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="search_view_id" ref="view_board_search"/>
|
||||
</record>
|
||||
|
||||
<record id="action_view_board_list_form" model="ir.actions.act_window">
|
||||
<field name="name">Dashboard Definition</field>
|
||||
<field name="res_model">board.board</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="search_view_id" ref="view_board_search"/>
|
||||
</record>
|
||||
<menuitem action="action_view_board_list_form" id="menu_view_board_form" parent="base.reporting_menu" sequence="1"/>
|
||||
|
||||
<menuitem
|
||||
action="action_view_board_list_form"
|
||||
id="menu_view_board_form" parent="base.reporting_menu" sequence="1"/>
|
||||
|
||||
<act_window context="{'view': active_id}" id="dashboard_open"
|
||||
multi="True" name="Open Dashboard" res_model="board.board"
|
||||
src_model="board.board" />
|
||||
|
||||
</data>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data noupdate="0">
|
||||
|
||||
<record id="base.group_sale_salesman" model="res.groups">
|
||||
<field name="name">Sales / User</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -1,7 +1,6 @@
|
||||
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
|
||||
"access_board_board","board.board","model_board_board","base.group_user",1,1,1,1
|
||||
"access_board_board_line","board.board.line","model_board_board_line","base.group_user",1,1,1,1
|
||||
"access_board_board_sale_salesman","board.board.sale.salesman","model_board_board","base.group_sale_salesman",1,1,1,1
|
||||
"access_res_log_report","res.log.report","model_res_log_report","base.group_user",1,1,1,1
|
||||
"access_res_log_report_system","res.log.report system","model_res_log_report",base.group_system,1,0,0,0
|
||||
"access_res_log_report_erp_manager","res.log.report erp_manager","model_res_log_report",base.group_erp_manager,1,0,0,0
|
||||
|
||||
|
@@ -133,7 +133,7 @@ class crm_lead(crm_case, osv.osv):
|
||||
'partner_id': fields.many2one('res.partner', 'Partner', ondelete='set null',
|
||||
select=True, help="Optional linked partner, usually after conversion of the lead"),
|
||||
|
||||
'id': fields.integer('ID'),
|
||||
'id': fields.integer('ID', readonly=True),
|
||||
'name': fields.char('Name', size=64, select=1),
|
||||
'active': fields.boolean('Active', required=False),
|
||||
'date_action_last': fields.datetime('Last Action', readonly=1),
|
||||
|
||||
@@ -52,7 +52,7 @@ class crm_meeting(crm_base, osv.osv):
|
||||
'section_id': fields.many2one('crm.case.section', 'Sales Team', states={'done': [('readonly', True)]}, \
|
||||
select=True, help='Sales team to which Case belongs to.'),
|
||||
'email_from': fields.char('Email', size=128, states={'done': [('readonly', True)]}, help="These people will receive email."),
|
||||
'id': fields.integer('ID'),
|
||||
'id': fields.integer('ID', readonly=True),
|
||||
'create_date': fields.datetime('Creation Date' , readonly=True),
|
||||
'write_date': fields.datetime('Write Date' , readonly=True),
|
||||
'date_action_last': fields.datetime('Last Action', readonly=1),
|
||||
|
||||
@@ -34,7 +34,7 @@ class crm_phonecall(crm_base, osv.osv):
|
||||
_order = "id desc"
|
||||
_columns = {
|
||||
# From crm.case
|
||||
'id': fields.integer('ID'),
|
||||
'id': fields.integer('ID', readonly=True),
|
||||
'name': fields.char('Call Summary', size=64),
|
||||
'active': fields.boolean('Active', required=False),
|
||||
'date_action_last': fields.datetime('Last Action', readonly=1),
|
||||
|
||||
@@ -8,26 +8,26 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
|
||||
"PO-Revision-Date: 2011-08-23 11:25+0000\n"
|
||||
"PO-Revision-Date: 2011-10-13 07:42+0000\n"
|
||||
"Last-Translator: Rolv Råen (adEgo) <Unknown>\n"
|
||||
"Language-Team: Norwegian Bokmal <nb@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-05 05:07+0000\n"
|
||||
"X-Generator: Launchpad (build 13830)\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-14 05:34+0000\n"
|
||||
"X-Generator: Launchpad (build 14124)\n"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.lead.report:0
|
||||
msgid "# Leads"
|
||||
msgstr ""
|
||||
msgstr "# Leads"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.lead:0
|
||||
#: selection:crm.lead,type:0
|
||||
#: selection:crm.lead.report,type:0
|
||||
msgid "Lead"
|
||||
msgstr ""
|
||||
msgstr "Lead"
|
||||
|
||||
#. module: crm
|
||||
#: model:crm.case.categ,name:crm.categ_oppor3
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
<field name="inherit_id" ref="base.view_partner_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<page string="History" position="inside">
|
||||
<field name="opportunity_ids" colspan="4" nolabel="1" context="{'default_partner_id': active_id}">
|
||||
<field name="opportunity_ids" colspan="4" nolabel="1">
|
||||
<tree string="Leads and Opportunities" colors="blue:state=='pending';gray:state=='cancel'">
|
||||
<field name="create_date"/>
|
||||
<field name="name"/>
|
||||
@@ -84,7 +84,7 @@
|
||||
icon="gtk-go-up" />
|
||||
</tree>
|
||||
</field>
|
||||
<field name="meeting_ids" colspan="4" nolabel="1" context="{'default_partner_id': active_id}">
|
||||
<field name="meeting_ids" colspan="4" nolabel="1">
|
||||
<tree string="Meetings" colors="gray:state in ('draft', 'cancel','done','pending')">
|
||||
<field name="user_id" string="Responsible"/>
|
||||
<field name="name" string="Subject" />
|
||||
@@ -92,7 +92,7 @@
|
||||
<field name="date_deadline" string="End Date"/>
|
||||
</tree>
|
||||
</field>
|
||||
<field name="phonecall_ids" colspan="4" nolabel="1" context="{'default_partner_id': active_id}">
|
||||
<field name="phonecall_ids" colspan="4" nolabel="1">
|
||||
<tree string="Phone Calls" colors="gray:state in ('draft', 'cancel','done','pending')">
|
||||
<field name="date" string="Date"/>
|
||||
<field name="name" string="Call Summary"/>
|
||||
|
||||
@@ -33,7 +33,7 @@ class crm_fundraising(crm.crm_case, osv.osv):
|
||||
_order = "id desc"
|
||||
_inherit = ['mail.thread']
|
||||
_columns = {
|
||||
'id': fields.integer('ID'),
|
||||
'id': fields.integer('ID', readonly=True),
|
||||
'name': fields.char('Name', size=128, required=True),
|
||||
'active': fields.boolean('Active', required=False),
|
||||
'date_action_last': fields.datetime('Last Action', readonly=1),
|
||||
|
||||
+24
-24
@@ -7,19 +7,19 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
|
||||
"PO-Revision-Date: 2010-10-30 13:40+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
|
||||
"PO-Revision-Date: 2011-10-11 17:52+0000\n"
|
||||
"Last-Translator: Aare Vesi <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-05 05:00+0000\n"
|
||||
"X-Generator: Launchpad (build 13830)\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-12 04:39+0000\n"
|
||||
"X-Generator: Launchpad (build 14124)\n"
|
||||
|
||||
#. module: delivery
|
||||
#: report:sale.shipping:0
|
||||
msgid "Order Ref."
|
||||
msgstr ""
|
||||
msgstr "Tellimuse viide"
|
||||
|
||||
#. module: delivery
|
||||
#: model:product.template,name:delivery.delivery_product_product_template
|
||||
@@ -34,12 +34,12 @@ msgstr "Sihtpunkt"
|
||||
#. module: delivery
|
||||
#: field:stock.move,weight_net:0
|
||||
msgid "Net weight"
|
||||
msgstr ""
|
||||
msgstr "Netokaal"
|
||||
|
||||
#. module: delivery
|
||||
#: view:stock.picking:0
|
||||
msgid "Delivery Order"
|
||||
msgstr ""
|
||||
msgstr "Tarnekorraldus"
|
||||
|
||||
#. module: delivery
|
||||
#: code:addons/delivery/delivery.py:141
|
||||
@@ -77,7 +77,7 @@ msgstr ""
|
||||
#. module: delivery
|
||||
#: model:ir.actions.report.xml,name:delivery.report_shipping
|
||||
msgid "Delivery order"
|
||||
msgstr ""
|
||||
msgstr "Tarnetellimus"
|
||||
|
||||
#. module: delivery
|
||||
#: view:res.partner:0
|
||||
@@ -103,7 +103,7 @@ msgstr "Riigid"
|
||||
#. module: delivery
|
||||
#: report:sale.shipping:0
|
||||
msgid "Delivery Order :"
|
||||
msgstr ""
|
||||
msgstr "Tarnetellimus :"
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.grid.line,variable_factor:0
|
||||
@@ -137,7 +137,7 @@ msgstr "Tarneviis"
|
||||
#. module: delivery
|
||||
#: model:ir.model,name:delivery.model_stock_move
|
||||
msgid "Stock Move"
|
||||
msgstr ""
|
||||
msgstr "Laoseisu liikumine"
|
||||
|
||||
#. module: delivery
|
||||
#: code:addons/delivery/delivery.py:141
|
||||
@@ -153,7 +153,7 @@ msgstr ""
|
||||
#. module: delivery
|
||||
#: field:stock.picking,weight_net:0
|
||||
msgid "Net Weight"
|
||||
msgstr ""
|
||||
msgstr "Netokaal"
|
||||
|
||||
#. module: delivery
|
||||
#: model:ir.actions.act_window,help:delivery.action_delivery_carrier_form
|
||||
@@ -177,7 +177,7 @@ msgstr ""
|
||||
#. module: delivery
|
||||
#: view:delivery.sale.order:0
|
||||
msgid "_Cancel"
|
||||
msgstr ""
|
||||
msgstr "_Tühista"
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.grid.line,operator:0
|
||||
@@ -187,12 +187,12 @@ msgstr "Operaator"
|
||||
#. module: delivery
|
||||
#: model:ir.model,name:delivery.model_res_partner
|
||||
msgid "Partner"
|
||||
msgstr ""
|
||||
msgstr "Partner"
|
||||
|
||||
#. module: delivery
|
||||
#: model:ir.model,name:delivery.model_sale_order
|
||||
msgid "Sales Order"
|
||||
msgstr ""
|
||||
msgstr "Müügitellimus"
|
||||
|
||||
#. module: delivery
|
||||
#: model:ir.model,name:delivery.model_delivery_grid
|
||||
@@ -207,7 +207,7 @@ msgstr ""
|
||||
#. module: delivery
|
||||
#: model:ir.model,name:delivery.model_stock_picking
|
||||
msgid "Picking List"
|
||||
msgstr ""
|
||||
msgstr "Noppeleht"
|
||||
|
||||
#. module: delivery
|
||||
#: model:ir.model,name:delivery.model_delivery_sale_order
|
||||
@@ -250,7 +250,7 @@ msgstr ""
|
||||
#. module: delivery
|
||||
#: report:sale.shipping:0
|
||||
msgid "Order Date"
|
||||
msgstr ""
|
||||
msgstr "Tellimuse Kuupäev"
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.grid,name:0
|
||||
@@ -260,12 +260,12 @@ msgstr ""
|
||||
#. module: delivery
|
||||
#: view:stock.move:0
|
||||
msgid "Weights"
|
||||
msgstr ""
|
||||
msgstr "Kaalud"
|
||||
|
||||
#. module: delivery
|
||||
#: field:stock.picking,number_of_packages:0
|
||||
msgid "Number of Packages"
|
||||
msgstr ""
|
||||
msgstr "Pakkide arv"
|
||||
|
||||
#. module: delivery
|
||||
#: selection:delivery.grid.line,type:0
|
||||
@@ -309,7 +309,7 @@ msgstr "Viga! Sa ei saa luua rekursiivseid seotud liikmeid."
|
||||
#. module: delivery
|
||||
#: report:sale.shipping:0
|
||||
msgid "Lot"
|
||||
msgstr ""
|
||||
msgstr "Partii"
|
||||
|
||||
#. module: delivery
|
||||
#: constraint:stock.move:0
|
||||
@@ -325,7 +325,7 @@ msgstr "Aktiivne"
|
||||
#. module: delivery
|
||||
#: report:sale.shipping:0
|
||||
msgid "Shipping Date"
|
||||
msgstr ""
|
||||
msgstr "Tarnimise kuupäev"
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.carrier,product_id:0
|
||||
@@ -361,7 +361,7 @@ msgstr "Maksimumväärtus"
|
||||
#. module: delivery
|
||||
#: report:sale.shipping:0
|
||||
msgid "Quantity"
|
||||
msgstr ""
|
||||
msgstr "Kogus"
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.grid,zip_from:0
|
||||
@@ -387,7 +387,7 @@ msgstr "Müügid ja ostud"
|
||||
#. module: delivery
|
||||
#: selection:delivery.grid.line,operator:0
|
||||
msgid "<="
|
||||
msgstr ""
|
||||
msgstr "<="
|
||||
|
||||
#. module: delivery
|
||||
#: constraint:stock.move:0
|
||||
@@ -408,7 +408,7 @@ msgstr "Tarnekulud"
|
||||
#. module: delivery
|
||||
#: report:sale.shipping:0
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
msgstr "Kirjeldus"
|
||||
|
||||
#. module: delivery
|
||||
#: model:ir.actions.act_window,name:delivery.action_delivery_grid_form
|
||||
@@ -469,7 +469,7 @@ msgstr "Tarnija"
|
||||
#. module: delivery
|
||||
#: view:delivery.sale.order:0
|
||||
msgid "_Apply"
|
||||
msgstr ""
|
||||
msgstr "_Rakenda"
|
||||
|
||||
#. module: delivery
|
||||
#: field:sale.order,id:0
|
||||
|
||||
@@ -0,0 +1,135 @@
|
||||
# Estonian translation for openobject-addons
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
|
||||
"PO-Revision-Date: 2011-10-11 18:05+0000\n"
|
||||
"Last-Translator: Aare Vesi <Unknown>\n"
|
||||
"Language-Team: Estonian <et@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-12 04:40+0000\n"
|
||||
"X-Generator: Launchpad (build 14124)\n"
|
||||
|
||||
#. module: document_ftp
|
||||
#: model:ir.model,name:document_ftp.model_document_ftp_configuration
|
||||
msgid "Auto Directory Configuration"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_ftp
|
||||
#: view:document.ftp.configuration:0
|
||||
msgid ""
|
||||
"Indicate the network address on which your OpenERP server should be "
|
||||
"reachable for end-users. This depends on your network topology and "
|
||||
"configuration, and will only affect the links displayed to the users. The "
|
||||
"format is HOST:PORT and the default host (localhost) is only suitable for "
|
||||
"access from the server machine itself.."
|
||||
msgstr ""
|
||||
|
||||
#. module: document_ftp
|
||||
#: field:document.ftp.configuration,progress:0
|
||||
msgid "Configuration Progress"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_ftp
|
||||
#: model:ir.actions.url,name:document_ftp.action_document_browse
|
||||
msgid "Browse Files"
|
||||
msgstr "Failide sirvimine"
|
||||
|
||||
#. module: document_ftp
|
||||
#: field:document.ftp.configuration,config_logo:0
|
||||
msgid "Image"
|
||||
msgstr "Pilt"
|
||||
|
||||
#. module: document_ftp
|
||||
#: field:document.ftp.configuration,host:0
|
||||
msgid "Address"
|
||||
msgstr "Aadress"
|
||||
|
||||
#. module: document_ftp
|
||||
#: field:document.ftp.browse,url:0
|
||||
msgid "FTP Server"
|
||||
msgstr "FTP server"
|
||||
|
||||
#. module: document_ftp
|
||||
#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
|
||||
msgid "FTP Server Configuration"
|
||||
msgstr "FTP serveri konfiguratsioon"
|
||||
|
||||
#. module: document_ftp
|
||||
#: model:ir.module.module,description:document_ftp.module_meta_information
|
||||
msgid ""
|
||||
"This is a support FTP Interface with document management system.\n"
|
||||
" With this module you would not only be able to access documents through "
|
||||
"OpenERP\n"
|
||||
" but you would also be able to connect with them through the file system "
|
||||
"using the\n"
|
||||
" FTP client.\n"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_ftp
|
||||
#: view:document.ftp.browse:0
|
||||
msgid "_Browse"
|
||||
msgstr "_Sirvi"
|
||||
|
||||
#. module: document_ftp
|
||||
#: help:document.ftp.configuration,host:0
|
||||
msgid ""
|
||||
"Server address or IP and port to which users should connect to for DMS access"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_ftp
|
||||
#: model:ir.ui.menu,name:document_ftp.menu_document_browse
|
||||
msgid "Shared Repository (FTP)"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_ftp
|
||||
#: view:document.ftp.browse:0
|
||||
msgid "_Cancel"
|
||||
msgstr "_Tühista"
|
||||
|
||||
#. module: document_ftp
|
||||
#: view:document.ftp.configuration:0
|
||||
msgid "Configure FTP Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_ftp
|
||||
#: model:ir.module.module,shortdesc:document_ftp.module_meta_information
|
||||
msgid "Integrated FTP Server with Document Management System"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_ftp
|
||||
#: view:document.ftp.configuration:0
|
||||
msgid "title"
|
||||
msgstr "pealkiri"
|
||||
|
||||
#. module: document_ftp
|
||||
#: model:ir.model,name:document_ftp.model_document_ftp_browse
|
||||
msgid "Document FTP Browse"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_ftp
|
||||
#: view:document.ftp.configuration:0
|
||||
msgid "Knowledge Application Configuration"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_ftp
|
||||
#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
|
||||
msgid "Document Browse"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_ftp
|
||||
#: view:document.ftp.browse:0
|
||||
msgid "Browse Document"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_ftp
|
||||
#: view:document.ftp.configuration:0
|
||||
msgid "res_config_contents"
|
||||
msgstr ""
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,305 @@
|
||||
# Estonian translation for openobject-addons
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
|
||||
"PO-Revision-Date: 2011-10-11 18:02+0000\n"
|
||||
"Last-Translator: Aare Vesi <Unknown>\n"
|
||||
"Language-Team: Estonian <et@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-12 04:40+0000\n"
|
||||
"X-Generator: Launchpad (build 14124)\n"
|
||||
|
||||
#. module: fetchmail
|
||||
#: constraint:email.server:0
|
||||
msgid ""
|
||||
"Warning! Record for selected Model can not be created\n"
|
||||
"Please choose valid Model"
|
||||
msgstr ""
|
||||
|
||||
#. module: fetchmail
|
||||
#: selection:email.server,state:0
|
||||
msgid "Confirmed"
|
||||
msgstr "Kinnitatud"
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:email.server:0
|
||||
msgid "Confirm"
|
||||
msgstr "Kinnita"
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:email.server:0
|
||||
msgid "Group By..."
|
||||
msgstr "Grupeeri..."
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:email.server:0
|
||||
#: field:email.server,state:0
|
||||
msgid "State"
|
||||
msgstr "Olek"
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:email.server:0
|
||||
msgid "POP"
|
||||
msgstr "POP"
|
||||
|
||||
#. module: fetchmail
|
||||
#: selection:email.server,state:0
|
||||
msgid "Not Confirmed"
|
||||
msgstr "Kinnitamata"
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:email.server,user:0
|
||||
msgid "User Name"
|
||||
msgstr "Kasutajanimi"
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:email.server:0
|
||||
msgid "Type"
|
||||
msgstr "Tüüp"
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:email.server:0
|
||||
msgid "POP/IMAP Servers"
|
||||
msgstr "POP/IMAP serverid"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model:ir.module.module,shortdesc:fetchmail.module_meta_information
|
||||
msgid "Fetchmail Server"
|
||||
msgstr "Fetchmail server"
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:email.server:0
|
||||
#: field:email.server,note:0
|
||||
msgid "Description"
|
||||
msgstr "Kirjeldus"
|
||||
|
||||
#. module: fetchmail
|
||||
#: help:email.server,object_id:0
|
||||
msgid ""
|
||||
"OpenObject Model. Generates a record of this model.\n"
|
||||
"Select Object with message_new attrbutes."
|
||||
msgstr ""
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:email.server,attach:0
|
||||
msgid "Add Attachments ?"
|
||||
msgstr ""
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:email.server:0
|
||||
msgid "# of emails"
|
||||
msgstr ""
|
||||
|
||||
#. module: fetchmail
|
||||
#: model:ir.actions.act_window,name:fetchmail.act_server_history
|
||||
msgid "Email History"
|
||||
msgstr ""
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:email.server,user_id:0
|
||||
msgid "User"
|
||||
msgstr "Kasutaja"
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:email.server,date:0
|
||||
msgid "Date"
|
||||
msgstr "Kuupäev"
|
||||
|
||||
#. module: fetchmail
|
||||
#: selection:email.server,state:0
|
||||
msgid "Waiting for Verification"
|
||||
msgstr ""
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:email.server,password:0
|
||||
msgid "Password"
|
||||
msgstr "Salasõna"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model:ir.actions.act_window,name:fetchmail.act_server_history
|
||||
#: view:mailgate.message:0
|
||||
msgid "Emails"
|
||||
msgstr "E-kirjad"
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:email.server:0
|
||||
msgid "Search Email Servers"
|
||||
msgstr ""
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:email.server:0
|
||||
msgid "Server & Login"
|
||||
msgstr ""
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:email.server:0
|
||||
msgid "Auto Reply?"
|
||||
msgstr "Automaatvastus"
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:email.server,name:0
|
||||
msgid "Name"
|
||||
msgstr "Nimi"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model:ir.model,name:fetchmail.model_mailgate_message
|
||||
msgid "Mailgateway Message"
|
||||
msgstr ""
|
||||
|
||||
#. module: fetchmail
|
||||
#: model:ir.actions.act_window,name:fetchmail.action_email_server_tree
|
||||
msgid "POP Servers"
|
||||
msgstr "POP serverid"
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:email.server:0
|
||||
msgid "Set to Draft"
|
||||
msgstr "Määra mustandiks"
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:email.server,message_ids:0
|
||||
#: model:ir.actions.act_window,name:fetchmail.action_view_mail_message_emails
|
||||
msgid "Messages"
|
||||
msgstr "Sõnumid"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model:ir.ui.menu,name:fetchmail.menu_action_fetchmail_server_tree
|
||||
msgid "Fetchmail Services"
|
||||
msgstr "Fetchmail teenused"
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:email.server,server:0
|
||||
msgid "Server"
|
||||
msgstr "Server"
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:email.server,active:0
|
||||
msgid "Active"
|
||||
msgstr "Aktiivne"
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:email.server:0
|
||||
msgid "Process Parameter"
|
||||
msgstr ""
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:email.server,is_ssl:0
|
||||
msgid "SSL ?"
|
||||
msgstr "SSL ?"
|
||||
|
||||
#. module: fetchmail
|
||||
#: selection:email.server,type:0
|
||||
#: selection:mailgate.message,server_type:0
|
||||
msgid "IMAP Server"
|
||||
msgstr "IMAP server"
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:email.server,object_id:0
|
||||
msgid "Model"
|
||||
msgstr "Mudel"
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:email.server:0
|
||||
msgid "IMAP"
|
||||
msgstr "IMAP"
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:email.server:0
|
||||
#: model:ir.model,name:fetchmail.model_email_server
|
||||
msgid "POP/IMAP Server"
|
||||
msgstr "POP/IMAP server"
|
||||
|
||||
#. module: fetchmail
|
||||
#: constraint:email.server:0
|
||||
msgid "Warning! Can't have duplicate server configuration!"
|
||||
msgstr ""
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:email.server,type:0
|
||||
#: field:mailgate.message,server_type:0
|
||||
msgid "Server Type"
|
||||
msgstr "Serveri tüüp"
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:email.server:0
|
||||
msgid "Login Information"
|
||||
msgstr "Sisselogimise info"
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:email.server:0
|
||||
msgid "Server Information"
|
||||
msgstr "Serveri info"
|
||||
|
||||
#. module: fetchmail
|
||||
#: help:email.server,attach:0
|
||||
msgid "Fetches mail with attachments if true."
|
||||
msgstr ""
|
||||
|
||||
#. module: fetchmail
|
||||
#: selection:email.server,type:0
|
||||
#: selection:mailgate.message,server_type:0
|
||||
msgid "POP Server"
|
||||
msgstr "POP server"
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:email.server,port:0
|
||||
msgid "Port"
|
||||
msgstr "Port"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model:ir.module.module,description:fetchmail.module_meta_information
|
||||
msgid ""
|
||||
"Fetchmail: \n"
|
||||
" * Fetch email from Pop / IMAP server\n"
|
||||
" * Support SSL\n"
|
||||
" * Integrated with all Modules\n"
|
||||
" * Automatic Email Receive\n"
|
||||
" * Email based Records (Add, Update)\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:email.server:0
|
||||
msgid "SSL"
|
||||
msgstr "SSL"
|
||||
|
||||
#. module: fetchmail
|
||||
#: help:email.server,action_id:0
|
||||
msgid ""
|
||||
"An Email Server Action. It will be run whenever an e-mail is fetched from "
|
||||
"server."
|
||||
msgstr ""
|
||||
|
||||
#. module: fetchmail
|
||||
#: help:email.server,priority:0
|
||||
msgid "Priority between 0 to 10, select define the order of Processing"
|
||||
msgstr ""
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:email.server,action_id:0
|
||||
msgid "Email Server Action"
|
||||
msgstr ""
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:email.server,priority:0
|
||||
msgid "Server Priority"
|
||||
msgstr ""
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:mailgate.message:0
|
||||
#: field:mailgate.message,server_id:0
|
||||
msgid "Mail Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:email.server:0
|
||||
msgid "Fetch Emails"
|
||||
msgstr ""
|
||||
@@ -48,13 +48,12 @@ You can manage:
|
||||
'process/hr_process.xml',
|
||||
'hr_installer.xml',
|
||||
'hr_data.xml',
|
||||
'board_hr_view.xml',
|
||||
'board_hr_manager_view.xml',
|
||||
],
|
||||
'hr_board.xml',
|
||||
],
|
||||
'demo_xml': [
|
||||
'hr_demo.xml',
|
||||
'hr_department_demo.xml',
|
||||
],
|
||||
],
|
||||
'test': ['test/test_hr.yml'],
|
||||
'installable': True,
|
||||
'active': False,
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<!-- This board view will be complete by other hr_* modules-->
|
||||
<record id="board_hr_manager_form" model="ir.ui.view">
|
||||
<field name="name">board.hr.manager.form</field>
|
||||
<field name="model">board.board</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="HR Manager Board">
|
||||
<hpaned>
|
||||
<child1>
|
||||
</child1>
|
||||
<child2>
|
||||
</child2>
|
||||
</hpaned>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="open_board_hr_manager" model="ir.actions.act_window">
|
||||
<field name="name">HR Manager Dashboard</field>
|
||||
<field name="res_model">board.board</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="usage">menu</field>
|
||||
<field name="view_id" ref="board_hr_manager_form"/>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -1,40 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<menuitem id="base.dashboard" name="Dashboards" sequence="2" parent="base.reporting_menu"/>
|
||||
|
||||
<!-- This board view will be complete by other hr_* modules-->
|
||||
<record id="board_hr_form" model="ir.ui.view">
|
||||
<field name="name">board.hr.form</field>
|
||||
<field name="model">board.board</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="My Board">
|
||||
<hpaned>
|
||||
<child1>
|
||||
</child1>
|
||||
<child2>
|
||||
</child2>
|
||||
</hpaned>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="open_board_hr" model="ir.actions.act_window">
|
||||
<field name="name">Human Resources Dashboard</field>
|
||||
<field name="res_model">board.board</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="usage">menu</field>
|
||||
<field name="view_id" ref="board_hr_form"/>
|
||||
</record>
|
||||
<menuitem
|
||||
id="menu_hr_deshboard"
|
||||
name="Human Resources"
|
||||
parent="base.dashboard"
|
||||
action="open_board_hr"/>
|
||||
|
||||
<menuitem id="menu_hr_root" icon="terp-hr" name="Human Resources" sequence="15" action="open_board_hr"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<!-- This board view will be complete by other hr_* modules-->
|
||||
<record id="board_hr_form" model="ir.ui.view">
|
||||
<field name="name">board.hr.form</field>
|
||||
<field name="model">board.board</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="My Board">
|
||||
<hpaned>
|
||||
<child1>
|
||||
</child1>
|
||||
<child2>
|
||||
</child2>
|
||||
</hpaned>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="open_board_hr" model="ir.actions.act_window">
|
||||
<field name="name">Human Resources Dashboard</field>
|
||||
<field name="res_model">board.board</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="usage">menu</field>
|
||||
<field name="view_id" ref="board_hr_form"/>
|
||||
</record>
|
||||
|
||||
<menuitem id="menu_hr_root" icon="terp-hr" name="Human Resources" sequence="15" action="open_board_hr"/>
|
||||
<menuitem id="menu_hr_reporting" parent="menu_hr_root" name="Reporting" sequence="10" />
|
||||
<menuitem id="menu_hr_dashboard" parent="menu_hr_reporting" name="Dashboard" sequence="0"/>
|
||||
<menuitem id="menu_hr_dashboard_user" parent="menu_hr_dashboard" action="open_board_hr" icon="terp-graph" sequence="4"/>
|
||||
|
||||
<!-- This board view will be complete by other hr_* modules-->
|
||||
<record id="board_hr_manager_form" model="ir.ui.view">
|
||||
<field name="name">board.hr.manager.form</field>
|
||||
<field name="model">board.board</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="HR Manager Board">
|
||||
<hpaned>
|
||||
<child1>
|
||||
</child1>
|
||||
<child2>
|
||||
</child2>
|
||||
</hpaned>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="open_board_hr_manager" model="ir.actions.act_window">
|
||||
<field name="name">HR Manager Dashboard</field>
|
||||
<field name="res_model">board.board</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="usage">menu</field>
|
||||
<field name="view_id" ref="board_hr_manager_form"/>
|
||||
</record>
|
||||
|
||||
<menuitem id="menu_hr_dashboard_manager" parent="menu_hr_dashboard" icon="terp-graph" action="open_board_hr_manager" groups="base.group_hr_manager" sequence="5"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -21,12 +21,5 @@
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
<menuitem
|
||||
action="hr.open_board_hr_manager"
|
||||
icon="terp-graph"
|
||||
id="base.menu_hr_manager"
|
||||
parent="base.menu_hr_dasboard"
|
||||
groups = "base.group_hr_manager"
|
||||
sequence="5"/>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -2,13 +2,6 @@
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<menuitem id="base.menu_hr_dasboard" name="Dashboard" parent="hr.menu_hr_reporting" sequence="0"/>
|
||||
<menuitem
|
||||
action="hr.open_board_hr"
|
||||
icon="terp-graph"
|
||||
id="base.menu_hr_project"
|
||||
parent="base.menu_hr_dasboard"
|
||||
sequence="4"/>
|
||||
<record id="action_my_expense" model="ir.actions.act_window">
|
||||
<field name="name">My Expenses</field>
|
||||
<field name="res_model">hr.expense.expense</field>
|
||||
|
||||
@@ -1,17 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<menuitem id="base.menu_hr_dasboard" name="Dashboard" parent="hr.menu_hr_reporting" sequence="0"/>
|
||||
<menuitem
|
||||
action="hr.open_board_hr"
|
||||
icon="terp-graph"
|
||||
id="base.menu_hr_project"
|
||||
parent="base.menu_hr_dasboard"
|
||||
sequence="4"/>
|
||||
|
||||
<!-- Need to merge in above view -->
|
||||
|
||||
<record model="ir.actions.act_window" id="action_hr_holidays_leaves_by_month">
|
||||
<field name="name">My Leaves</field>
|
||||
<field name="res_model">hr.holidays.status</field>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<record id="board_hr_holidays_manager_form" model="ir.ui.view">
|
||||
<field name="name">board.hr.holidays.manager.form</field>
|
||||
<field name="model">board.board</field>
|
||||
<field name="inherit_id" ref="hr.board_hr_manager_form"/>
|
||||
<field name="inherit_id" ref="hr.board_hr_manager_form"/>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="/form/hpaned/child1" position="inside">
|
||||
@@ -24,12 +24,5 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
action="hr.open_board_hr_manager"
|
||||
icon="terp-graph"
|
||||
id="base.menu_hr_manager"
|
||||
parent="base.menu_hr_dasboard"
|
||||
groups = "base.group_hr_manager"
|
||||
sequence="5"/>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -1,12 +1,6 @@
|
||||
<?xml version="1.0" ?>
|
||||
<openerp>
|
||||
<data>
|
||||
<menuitem
|
||||
id="hr.menu_hr_reporting"
|
||||
name="Reporting"
|
||||
parent="hr.menu_hr_root"
|
||||
sequence="10" />
|
||||
|
||||
<menuitem
|
||||
id="menu_hr_reporting_holidays"
|
||||
name="Holidays"
|
||||
|
||||
@@ -38,13 +38,5 @@
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
<menuitem id="base.menu_hr_dasboard" name="Dashboard" parent="hr.menu_hr_reporting" sequence="0"/>
|
||||
<menuitem
|
||||
action="hr.open_board_hr_manager"
|
||||
icon="terp-graph"
|
||||
id="base.menu_hr_manager"
|
||||
parent="base.menu_hr_dasboard"
|
||||
groups = "base.group_hr_manager"
|
||||
sequence="5"/>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -89,7 +89,8 @@
|
||||
<field name="user_id"/>
|
||||
<field name="survey" invisible="1"/>
|
||||
<button name="action_print_survey" string="Interview" type="object" icon="gtk-print" attrs="{'readonly':[('survey','=',False)]}"/>
|
||||
<button name="%(survey.action_view_survey_question_message)d" string="Answer" type="action" icon="gtk-execute" context="{'survey_id': survey, 'response_id': [response], 'response_no':0 ,'active' : response, 'object' : 'hr.applicant', 'cur_id' :active_id}" attrs="{'readonly':[('survey','=',False)]}" groups="base.group_extended"/>
|
||||
<button name="%(survey.action_view_survey_question_message)d" string="Answer" type="action" icon="gtk-execute" context="{'survey_id': survey, 'response_id': [response], 'response_no':0 ,'active' : response, 'object' : 'hr.applicant'}" attrs="{'readonly':[('survey','=',False)]}" groups="base.group_extended"/>
|
||||
<field name="response" invisible="1"/>
|
||||
<newline/>
|
||||
<field name="date_action"/>
|
||||
<field name="title_action"/>
|
||||
|
||||
@@ -1,11 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<menuitem
|
||||
id="hr.menu_hr_reporting"
|
||||
name="Reporting"
|
||||
parent="hr.menu_hr_root"
|
||||
sequence="10" />
|
||||
<menuitem
|
||||
id="menu_hr_reporting_timesheet"
|
||||
name="Timesheet"
|
||||
|
||||
@@ -1,11 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<menuitem
|
||||
id="hr.menu_hr_reporting"
|
||||
name="Reporting"
|
||||
parent="hr.menu_hr_root"
|
||||
sequence="10" />
|
||||
<report auto="False" id="account_analytic_account_cost_ledger" menu="False" model="account.analytic.account" name="hr.timesheet.invoice.account.analytic.account.cost_ledger" rml="account/project/report/cost_ledger.rml" string="Cost Ledger"/>
|
||||
|
||||
<report
|
||||
|
||||
@@ -1,16 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<menuitem
|
||||
id="base.menu_hr_dasboard" name="Dashboard" parent="hr.menu_hr_reporting"
|
||||
sequence="0"/>
|
||||
<menuitem
|
||||
action="hr.open_board_hr"
|
||||
icon="terp-graph"
|
||||
id="base.menu_hr_project"
|
||||
parent="base.menu_hr_dasboard"
|
||||
sequence="4"/>
|
||||
|
||||
<record id="action_hr_timesheet_sheet_graph" model="ir.actions.act_window">
|
||||
<field name="name">Timesheets</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
@@ -19,7 +9,6 @@
|
||||
<field name="view_mode">graph,tree</field>
|
||||
<field name="view_id" ref="hr_timesheet_sheet.hr_timesheet_sheet_graph"/>
|
||||
</record>
|
||||
|
||||
<record id="hr_timesheet_sheet_tree" model="ir.ui.view">
|
||||
<field name="name">hr.timesheet.sheet.tree.simplified.board</field>
|
||||
<field name="model">hr_timesheet_sheet.sheet</field>
|
||||
@@ -55,12 +44,5 @@
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
<menuitem
|
||||
action="hr.open_board_hr_manager"
|
||||
icon="terp-graph"
|
||||
id="base.menu_hr_manager"
|
||||
parent="base.menu_hr_dasboard"
|
||||
groups = "base.group_hr_manager"
|
||||
sequence="5"/>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
# Estonian translation for openobject-addons
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
|
||||
"PO-Revision-Date: 2011-10-11 17:49+0000\n"
|
||||
"Last-Translator: Aare Vesi <Unknown>\n"
|
||||
"Language-Team: Estonian <et@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-12 04:40+0000\n"
|
||||
"X-Generator: Launchpad (build 14124)\n"
|
||||
|
||||
#. module: html_view
|
||||
#: field:html.view,name:0
|
||||
msgid "Name"
|
||||
msgstr "Nimi"
|
||||
|
||||
#. module: html_view
|
||||
#: field:html.view,comp_id:0
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: html_view
|
||||
#: model:ir.actions.act_window,name:html_view.action_html_view_form
|
||||
#: model:ir.ui.menu,name:html_view.html_form
|
||||
msgid "Html Test"
|
||||
msgstr ""
|
||||
|
||||
#. module: html_view
|
||||
#: view:html.view:0
|
||||
msgid "Html Example"
|
||||
msgstr ""
|
||||
|
||||
#. module: html_view
|
||||
#: model:ir.module.module,shortdesc:html_view.module_meta_information
|
||||
msgid "Html View"
|
||||
msgstr ""
|
||||
|
||||
#. module: html_view
|
||||
#: field:html.view,bank_ids:0
|
||||
msgid "Banks"
|
||||
msgstr "Pangad"
|
||||
|
||||
#. module: html_view
|
||||
#: model:ir.module.module,description:html_view.module_meta_information
|
||||
msgid ""
|
||||
"\n"
|
||||
" This is the test module which shows html tag supports in normal xml form "
|
||||
"view.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: html_view
|
||||
#: model:ir.model,name:html_view.model_html_view
|
||||
msgid "html.view"
|
||||
msgstr ""
|
||||
@@ -7,14 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0dev_rc3\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
|
||||
"PO-Revision-Date: 2011-10-10 19:38+0000\n"
|
||||
"PO-Revision-Date: 2011-10-11 17:58+0000\n"
|
||||
"Last-Translator: Aare Vesi <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-11 05:35+0000\n"
|
||||
"X-Generator: Launchpad (build 14123)\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-12 04:40+0000\n"
|
||||
"X-Generator: Launchpad (build 14124)\n"
|
||||
|
||||
#. module: idea
|
||||
#: help:idea.category,visibility:0
|
||||
@@ -434,7 +434,7 @@ msgstr "Juuni"
|
||||
#: field:report.vote,creater_id:0
|
||||
#: field:report.vote,user_id:0
|
||||
msgid "User Name"
|
||||
msgstr "Kasutaja nimi"
|
||||
msgstr "Kasutajanimi"
|
||||
|
||||
#. module: idea
|
||||
#: model:ir.model,name:idea.model_idea_vote_stat
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
# Serbian Latin translation for openobject-addons
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-07 05:27+0000\n"
|
||||
"PO-Revision-Date: 2011-10-13 15:14+0000\n"
|
||||
"Last-Translator: Milan Milosevic <Unknown>\n"
|
||||
"Language-Team: Serbian Latin <sr@latin@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-14 05:34+0000\n"
|
||||
"X-Generator: Launchpad (build 14124)\n"
|
||||
|
||||
#. module: l10n_cn
|
||||
#: model:ir.module.module,shortdesc:l10n_cn.module_meta_information
|
||||
msgid "中国会计科目表"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_cn
|
||||
#: model:ir.module.module,description:l10n_cn.module_meta_information
|
||||
msgid ""
|
||||
"\n"
|
||||
" 添加中文省份数据\n"
|
||||
" 科目类型\\会计科目表模板\\增值税\\辅助核算类别\\管理会计凭证簿\\财务会计凭证簿\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" 添加中文省份数据\n"
|
||||
" 科目类型\\会计科目表模板\\增值税\\辅助核算类别\\管理会计凭证簿\\财务会计凭证簿\n"
|
||||
" "
|
||||
|
||||
#. module: l10n_cn
|
||||
#: model:ir.actions.todo,note:l10n_cn.config_call_account_template_cn_chart
|
||||
msgid ""
|
||||
"Generate Chart of Accounts from a Chart Template. You will be asked to pass "
|
||||
"the name of the company, the chart template to follow, the no. of digits to "
|
||||
"generate the code for your accounts and Bank account, currency to create "
|
||||
"Journals. Thus,the pure copy of chart Template is generated.\n"
|
||||
"\tThis is the same wizard that runs from Financial "
|
||||
"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
|
||||
"Chart of Accounts from a Chart Template."
|
||||
msgstr ""
|
||||
"Generiše tabelu računâ iz šablona tabelâ. Bićete upitani za ime kompanije, "
|
||||
"šablon tabelâ koji ćete pratiti, broj cifara za generisanje koda za Vaše "
|
||||
"naloge i bankovni račun, valuta za pravljenje dnevnika. Na taj način se "
|
||||
"generiše čista kopija šablona tabelâ.\n"
|
||||
"\tTo je isti setup wizard koji se pokreće iz Financial "
|
||||
"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
|
||||
"Chart of Accounts from a Chart Template."
|
||||
@@ -8,19 +8,19 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
|
||||
"PO-Revision-Date: 2010-12-10 18:18+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2011-10-13 15:18+0000\n"
|
||||
"Last-Translator: Milan Milosevic <Unknown>\n"
|
||||
"Language-Team: Serbian latin <sr@latin@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-05 05:58+0000\n"
|
||||
"X-Generator: Launchpad (build 13830)\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-14 05:34+0000\n"
|
||||
"X-Generator: Launchpad (build 14124)\n"
|
||||
|
||||
#. module: l10n_es
|
||||
#: model:ir.module.module,shortdesc:l10n_es.module_meta_information
|
||||
msgid "Spanish Charts of Accounts (PGCE 2008)"
|
||||
msgstr ""
|
||||
msgstr "Računske tabele za Španiju (PGCE 2008)"
|
||||
|
||||
#. module: l10n_es
|
||||
#: model:ir.module.module,description:l10n_es.module_meta_information
|
||||
@@ -37,3 +37,13 @@ msgid ""
|
||||
"Note: You should install the l10n_ES_account_balance_report module\n"
|
||||
"for yearly account reporting (balance, profit & losses).\n"
|
||||
msgstr ""
|
||||
"Računske tabele za Španiju (PGCE 2008)\n"
|
||||
"\n"
|
||||
"*Definiše sledeće modele za računske tabele:\n"
|
||||
" *Opšte računske tabele za Španiju 2008.\n"
|
||||
" *OPšte računske tabele za Španiju za mala i srednja preduzeća.\n"
|
||||
"*Definiše modele za prodaju i nabavku VAT-a.\n"
|
||||
"*Definiše model za takseni kod.\n"
|
||||
"\n"
|
||||
"Beleška: Trebalo bi da instalirate modul ''l10n_ES_account_balance_report''\n"
|
||||
"za godišnje izveštaje o računu (balans, prihod i rashod).\n"
|
||||
|
||||
@@ -8,19 +8,19 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
|
||||
"PO-Revision-Date: 2010-12-10 18:19+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2011-10-13 15:20+0000\n"
|
||||
"Last-Translator: Milan Milosevic <Unknown>\n"
|
||||
"Language-Team: Serbian latin <sr@latin@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-05 05:58+0000\n"
|
||||
"X-Generator: Launchpad (build 13830)\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-14 05:34+0000\n"
|
||||
"X-Generator: Launchpad (build 14124)\n"
|
||||
|
||||
#. module: l10n_gt
|
||||
#: model:ir.module.module,shortdesc:l10n_gt.module_meta_information
|
||||
msgid "Guatemala - Plan contable general"
|
||||
msgstr ""
|
||||
msgstr "Gvatemala - Plan contable general"
|
||||
|
||||
#. module: l10n_gt
|
||||
#: model:ir.actions.todo,note:l10n_gt.config_call_account_template_gt_minimal
|
||||
@@ -29,6 +29,9 @@ msgid ""
|
||||
"una compañía, el modelo a utilizar, el número de digitos a usar en la "
|
||||
"nomenclatura, la moneda para crear los diarios."
|
||||
msgstr ""
|
||||
"Generar la nomenclatura contable a partir de un modelo. Deberá seleccionar "
|
||||
"una compañía, el modelo a utilizar, el número de digitos a usar en la "
|
||||
"nomenclatura, la moneda para crear los diarios."
|
||||
|
||||
#. module: l10n_gt
|
||||
#: model:ir.module.module,description:l10n_gt.module_meta_information
|
||||
@@ -37,3 +40,6 @@ msgid ""
|
||||
"la moneda del Quetzal. -- Adds accounting chart for Guatemala. It also "
|
||||
"includes taxes and the Quetzal currency"
|
||||
msgstr ""
|
||||
"Agrega una nomenclatura contable para Guatemala. También icluye impuestos y "
|
||||
"la moneda del Quetzal. -- Dodaje računske tabele za Gvatemalu. Takođe "
|
||||
"uključuje porez i Kvetzal valutu."
|
||||
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
|
||||
"PO-Revision-Date: 2011-03-12 20:48+0000\n"
|
||||
"Last-Translator: mgaja (GrupoIsep.com) <Unknown>\n"
|
||||
"PO-Revision-Date: 2011-10-12 06:36+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <Unknown>\n"
|
||||
"Language-Team: Catalan <ca@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-03-13 06:16+0000\n"
|
||||
"X-Generator: Launchpad (build 12559)\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-13 04:38+0000\n"
|
||||
"X-Generator: Launchpad (build 14124)\n"
|
||||
|
||||
#. module: l10n_hn
|
||||
#: model:ir.module.module,shortdesc:l10n_hn.module_meta_information
|
||||
|
||||
@@ -7,14 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0.0-rc1\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
|
||||
"PO-Revision-Date: 2011-01-19 12:00+0000\n"
|
||||
"Last-Translator: Nicolas Vanhoren (OpenERP) <Unknown>\n"
|
||||
"PO-Revision-Date: 2011-10-12 06:36+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-01-25 06:47+0000\n"
|
||||
"X-Generator: Launchpad (build 12177)\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-13 04:38+0000\n"
|
||||
"X-Generator: Launchpad (build 14124)\n"
|
||||
|
||||
#. module: l10n_hn
|
||||
#: model:ir.module.module,shortdesc:l10n_hn.module_meta_information
|
||||
|
||||
@@ -8,15 +8,15 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
|
||||
"PO-Revision-Date: 2011-01-19 12:00+0000\n"
|
||||
"PO-Revision-Date: 2011-10-12 06:36+0000\n"
|
||||
"Last-Translator: Maxime Chambreuil (http://www.savoirfairelinux.com) "
|
||||
"<maxime.chambreuil@savoirfairelinux.com>\n"
|
||||
"Language-Team: French <fr@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-01-25 06:47+0000\n"
|
||||
"X-Generator: Launchpad (build 12177)\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-13 04:38+0000\n"
|
||||
"X-Generator: Launchpad (build 14124)\n"
|
||||
|
||||
#. module: l10n_hn
|
||||
#: model:ir.module.module,shortdesc:l10n_hn.module_meta_information
|
||||
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
|
||||
"PO-Revision-Date: 2011-02-11 13:05+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2011-10-12 06:36+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <Unknown>\n"
|
||||
"Language-Team: Galician <gl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-02-12 06:06+0000\n"
|
||||
"X-Generator: Launchpad (build 12351)\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-13 04:38+0000\n"
|
||||
"X-Generator: Launchpad (build 14124)\n"
|
||||
|
||||
#. module: l10n_hn
|
||||
#: model:ir.module.module,shortdesc:l10n_hn.module_meta_information
|
||||
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
|
||||
"PO-Revision-Date: 2011-01-19 12:00+0000\n"
|
||||
"PO-Revision-Date: 2011-10-12 06:34+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Hungarian <hu@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-01-25 06:47+0000\n"
|
||||
"X-Generator: Launchpad (build 12177)\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-13 04:38+0000\n"
|
||||
"X-Generator: Launchpad (build 14124)\n"
|
||||
|
||||
#. module: l10n_hn
|
||||
#: model:ir.module.module,shortdesc:l10n_hn.module_meta_information
|
||||
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
|
||||
"PO-Revision-Date: 2011-01-19 12:00+0000\n"
|
||||
"Last-Translator: Nicola Riolini - Micronaet <Unknown>\n"
|
||||
"PO-Revision-Date: 2011-10-12 06:36+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <Unknown>\n"
|
||||
"Language-Team: Italian <it@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-01-25 06:47+0000\n"
|
||||
"X-Generator: Launchpad (build 12177)\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-13 04:38+0000\n"
|
||||
"X-Generator: Launchpad (build 14124)\n"
|
||||
|
||||
#. module: l10n_hn
|
||||
#: model:ir.module.module,shortdesc:l10n_hn.module_meta_information
|
||||
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
|
||||
"PO-Revision-Date: 2011-03-10 23:09+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2011-10-12 06:36+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <Unknown>\n"
|
||||
"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-03-11 06:00+0000\n"
|
||||
"X-Generator: Launchpad (build 12559)\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-13 04:38+0000\n"
|
||||
"X-Generator: Launchpad (build 14124)\n"
|
||||
|
||||
#. module: l10n_hn
|
||||
#: model:ir.module.module,shortdesc:l10n_hn.module_meta_information
|
||||
|
||||
@@ -8,19 +8,19 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
|
||||
"PO-Revision-Date: 2011-01-19 12:00+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2011-10-13 15:22+0000\n"
|
||||
"Last-Translator: Milan Milosevic <Unknown>\n"
|
||||
"Language-Team: Serbian latin <sr@latin@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-01-25 06:47+0000\n"
|
||||
"X-Generator: Launchpad (build 12177)\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-14 05:34+0000\n"
|
||||
"X-Generator: Launchpad (build 14124)\n"
|
||||
|
||||
#. module: l10n_hn
|
||||
#: model:ir.module.module,shortdesc:l10n_hn.module_meta_information
|
||||
msgid "Honduras - Plan contable general"
|
||||
msgstr ""
|
||||
msgstr "Honduras - Plan contable general"
|
||||
|
||||
#. module: l10n_hn
|
||||
#: model:ir.actions.todo,note:l10n_hn.config_call_account_template_hn_minimal
|
||||
@@ -29,6 +29,9 @@ msgid ""
|
||||
"una compañía, el modelo a utilizar, el número de digitos a usar en la "
|
||||
"nomenclatura, la moneda para crear los diarios."
|
||||
msgstr ""
|
||||
"Generar la nomenclatura contable a partir de un modelo. Deberá seleccionar "
|
||||
"una compañía, el modelo a utilizar, el número de digitos a usar en la "
|
||||
"nomenclatura, la moneda para crear los diarios."
|
||||
|
||||
#. module: l10n_hn
|
||||
#: model:ir.module.module,description:l10n_hn.module_meta_information
|
||||
@@ -37,3 +40,6 @@ msgid ""
|
||||
"la moneda del Lempira. -- Adds accounting chart for Honduras. It also "
|
||||
"includes taxes and the Lempira currency"
|
||||
msgstr ""
|
||||
"Agrega una nomenclatura contable para Honduras. También icluye impuestos y "
|
||||
"la moneda del Lempira. -- Dodaje računske tabele za Gvatemalu. Takođe "
|
||||
"uključuje porez i lempira valutu."
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
# Serbian Latin translation for openobject-addons
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-07 06:07+0000\n"
|
||||
"PO-Revision-Date: 2011-10-13 15:04+0000\n"
|
||||
"Last-Translator: Milan Milosevic <Unknown>\n"
|
||||
"Language-Team: Serbian Latin <sr@latin@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-14 05:34+0000\n"
|
||||
"X-Generator: Launchpad (build 14124)\n"
|
||||
|
||||
#. module: l10n_mx
|
||||
#: model:ir.module.module,description:l10n_mx.module_meta_information
|
||||
msgid ""
|
||||
"This is the module to manage the accounting chart for Mexico in Open ERP."
|
||||
msgstr "Ovo je modul za sređivanje računskih tabela za Meksiko u OPenERP-u."
|
||||
|
||||
#. module: l10n_mx
|
||||
#: model:ir.actions.todo,note:l10n_mx.config_call_account_template_mx_chart
|
||||
msgid ""
|
||||
"Generate Chart of Accounts from a Chart Template. You will be asked to pass "
|
||||
"the name of the company, the chart template to follow, the no. of digits to "
|
||||
"generate the code for your accounts and Bank account, currency to create "
|
||||
"Journals. Thus,the pure copy of chart Template is generated.\n"
|
||||
"\tThis is the same wizard that runs from Financial "
|
||||
"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
|
||||
"Chart of Accounts from a Chart Template."
|
||||
msgstr ""
|
||||
"Generiše tabelu računâ iz šablona tabelâ. Bićete upitani za ime kompanije, "
|
||||
"šablon tabelâ koji ćete pratiti, broj cifara za generisanje koda za Vaše "
|
||||
"naloge i bankovni račun, valuta za pravljenje dnevnika. Na taj način se "
|
||||
"generiše čista kopija šablona tabelâ.\n"
|
||||
"\tTo je isti setup wizard koji se pokreće iz Financial "
|
||||
"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
|
||||
"Chart of Accounts from a Chart Template."
|
||||
|
||||
#. module: l10n_mx
|
||||
#: model:ir.module.module,shortdesc:l10n_mx.module_meta_information
|
||||
msgid "Mexico - Chart of Account"
|
||||
msgstr "Meksiko - računske tabele"
|
||||
@@ -0,0 +1,127 @@
|
||||
# Serbian Latin translation for openobject-addons
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-07 06:11+0000\n"
|
||||
"PO-Revision-Date: 2011-10-13 15:02+0000\n"
|
||||
"Last-Translator: Milan Milosevic <Unknown>\n"
|
||||
"Language-Team: Serbian Latin <sr@latin@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-14 05:34+0000\n"
|
||||
"X-Generator: Launchpad (build 14124)\n"
|
||||
|
||||
#. module: l10n_nl
|
||||
#: model:ir.actions.todo,note:l10n_nl.config_call_account_template
|
||||
msgid ""
|
||||
"Na installatie van deze module word de configuratie wizard voor "
|
||||
"\"Accounting\" aangeroepen.\n"
|
||||
"* U krijgt een lijst met grootboektemplates aangeboden waarin zich ook het "
|
||||
"Nederlandse grootboekschema bevind.\n"
|
||||
"* Als de configuratie wizard start, wordt u gevraagd om de naam van uw "
|
||||
"bedrijf in te voeren, welke grootboekschema te installeren, uit hoeveel "
|
||||
"cijfers een grootboekrekening mag bestaan, het rekeningnummer van uw bank en "
|
||||
"de currency om Journalen te creeren.\n"
|
||||
" \n"
|
||||
"Let op!! -> De template van het Nederlandse rekeningschema is opgebouwd uit "
|
||||
"4 cijfers. Dit is het minimale aantal welk u moet invullen, u mag het aantal "
|
||||
"verhogen. De extra cijfers worden dan achter het rekeningnummer aangevult "
|
||||
"met \"nullen\"\n"
|
||||
" \n"
|
||||
"* Dit is dezelfe configuratie wizard welke aangeroepen kan worden via "
|
||||
"Financial Management/Configuration/Financial Accounting/Financial "
|
||||
"Accounts/Generate Chart of Accounts from a Chart Template.\n"
|
||||
msgstr ""
|
||||
"Na installatie van deze module word de configuratie wizard voor "
|
||||
"\"Accounting\" aangeroepen.\n"
|
||||
" * U krijgt een lijst met grootboektemplates aangeboden waarin zich ook het "
|
||||
"Nederlandse grootboekschema bevind.\n"
|
||||
" * Als de configuratie wizard start, wordt u gevraagd om de naam van uw "
|
||||
"bedrijf in te voeren, welke grootboekschema te installeren, uit hoeveel "
|
||||
"cijfers een grootboekrekening mag bestaan, het rekeningnummer van uw bank en "
|
||||
"de currency om Journalen te creeren.\n"
|
||||
" \n"
|
||||
" Let op!! -> De template van het Nederlandse rekeningschema is opgebouwd uit "
|
||||
"4 cijfers. Dit is het minimale aantal welk u moet invullen, u mag het aantal "
|
||||
"verhogen. De extra cijfers worden dan achter het rekeningnummer aangevult "
|
||||
"met \"nullen\"\n"
|
||||
" \n"
|
||||
" * Dit is dezelfe configuratie wizard welke aangeroepen kan worden via "
|
||||
"Financial Management/Configuration/Financial Accounting/Financial "
|
||||
"Accounts/Generate Chart of Accounts from a Chart Template.\n"
|
||||
|
||||
#. module: l10n_nl
|
||||
#: model:ir.module.module,shortdesc:l10n_nl.module_meta_information
|
||||
msgid "Netherlands - Grootboek en BTW rekeningen"
|
||||
msgstr "Holandija - Grootboek en BTW rekeningen"
|
||||
|
||||
#. module: l10n_nl
|
||||
#: model:ir.module.module,description:l10n_nl.module_meta_information
|
||||
msgid ""
|
||||
"\n"
|
||||
"Read changelog in file __terp__.py for version information. \n"
|
||||
"Dit is een basismodule om een uitgebreid grootboek- en BTW schema voor "
|
||||
"Nederlandse bedrijven te installeren in OpenERP versie 5.\n"
|
||||
" De BTW rekeningen zijn waar nodig gekoppeld om de juiste rapportage te "
|
||||
"genereren, denk b.v. aan intracommunautaire verwervingen\n"
|
||||
" waarbij u 19% BTW moet opvoeren, maar tegelijkertijd ook 19% als "
|
||||
"voorheffing weer mag aftrekken.\n"
|
||||
" \n"
|
||||
" Na installatie van deze module word de configuratie wizard voor "
|
||||
"\"Accounting\" aangeroepen.\n"
|
||||
" * U krijgt een lijst met grootboektemplates aangeboden waarin zich ook "
|
||||
"het Nederlandse grootboekschema bevind.\n"
|
||||
" \n"
|
||||
" * Als de configuratie wizard start, wordt u gevraagd om de naam van uw "
|
||||
"bedrijf in te voeren, welke grootboekschema te installeren, uit hoeveel "
|
||||
"cijfers een grootboekrekening mag bestaan, het rekeningnummer van uw bank en "
|
||||
"de currency om Journalen te creeren.\n"
|
||||
" \n"
|
||||
" Let op!! -> De template van het Nederlandse rekeningschema is opgebouwd "
|
||||
"uit 4 cijfers. Dit is het minimale aantal welk u moet invullen, u mag het "
|
||||
"aantal verhogen. De extra cijfers worden dan achter het rekeningnummer "
|
||||
"aangevult met \"nullen\"\n"
|
||||
" \n"
|
||||
" * Dit is dezelfe configuratie wizard welke aangeroepen kan worden via "
|
||||
"Financial Management/Configuration/Financial Accounting/Financial "
|
||||
"Accounts/Generate Chart of Accounts from a Chart Template.\n"
|
||||
"\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Pročitajte spisak izmena u datoteci file __terp__.py za podatke o verziji. "
|
||||
"\n"
|
||||
"Dit is een basismodule om een uitgebreid grootboek- en BTW schema voor "
|
||||
"Nederlandse bedrijven te installeren in OpenERP versie 5\n"
|
||||
" De BTW rekeningen zijn waar nodig gekoppeld om de juiste rapportage te "
|
||||
"genereren, denk b.v. aan intracommunautaire verwervingen\n"
|
||||
" waarbij u 19% BTW moet opvoeren, maar tegelijkertijd ook 19% als "
|
||||
"voorheffing weer mag aftrekken.\n"
|
||||
" \n"
|
||||
" Na installatie van deze module word de configuratie wizard voor "
|
||||
"\"Accounting\" aangeroepen\n"
|
||||
" * U krijgt een lijst met grootboektemplates aangeboden waarin zich ook "
|
||||
"het Nederlandse grootboekschema bevind\n"
|
||||
" \n"
|
||||
"\n"
|
||||
" * Als de configuratie wizard start, wordt u gevraagd om de naam van uw "
|
||||
"bedrijf in te voeren, welke grootboekschema te installeren, uit hoeveel "
|
||||
"cijfers een grootboekrekening mag bestaan, het rekeningnummer van uw bank en "
|
||||
"de currency om Journalen te creeren.\n"
|
||||
" \n"
|
||||
" Let op!! -> De template van het Nederlandse rekeningschema is opgebouwd "
|
||||
"uit 4 cijfers. Dit is het minimale aantal welk u moet invullen, u mag het "
|
||||
"aantal verhogen. De extra cijfers worden dan achter het rekeningnummer "
|
||||
"aangevult met \"nullen\"\n"
|
||||
" \n"
|
||||
" * Dit is dezelfe configuratie wizard welke aangeroepen kan worden via "
|
||||
"Financial Management/Configuration/Financial Accounting/Financial "
|
||||
"Accounts/Generate Chart of Accounts from a Chart Template\n"
|
||||
"\n"
|
||||
" "
|
||||
@@ -0,0 +1,68 @@
|
||||
# Serbian Latin translation for openobject-addons
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-07 06:14+0000\n"
|
||||
"PO-Revision-Date: 2011-10-13 14:58+0000\n"
|
||||
"Last-Translator: Milan Milosevic <Unknown>\n"
|
||||
"Language-Team: Serbian Latin <sr@latin@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-14 05:34+0000\n"
|
||||
"X-Generator: Launchpad (build 14124)\n"
|
||||
|
||||
#. module: l10n_pl
|
||||
#: model:ir.module.module,description:l10n_pl.module_meta_information
|
||||
msgid ""
|
||||
"\n"
|
||||
" This is the module to manage the accounting chart and taxes for Poland "
|
||||
"in Open ERP.\n"
|
||||
" \n"
|
||||
" To jest moduł do tworzenia wzorcowego planu kont i podstawowych "
|
||||
"ustawień do podatków\n"
|
||||
" VAT 0%, 7% i 22%. Moduł ustawia też konta do kupna i sprzedaży towarów "
|
||||
"zakładając,\n"
|
||||
" że wszystkie towary są w obrocie hurtowym.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" Ovo je modul za sređivanje računskih tabelai taksi za Poljsku u OpenERP-"
|
||||
"u.\n"
|
||||
" \n"
|
||||
" To jest moduł do tworzenia wzorcowego planu kont i podstawowych "
|
||||
"ustawień do podatków\n"
|
||||
" VAT 0%, 7% i 22%. Moduł ustawia też konta do kupna i sprzedaży towarów "
|
||||
"zakładając,\n"
|
||||
" że wszystkie towary są w obrocie hurtowym.\n"
|
||||
" "
|
||||
|
||||
#. module: l10n_pl
|
||||
#: model:ir.module.module,shortdesc:l10n_pl.module_meta_information
|
||||
msgid "Poland - Chart of Accounts"
|
||||
msgstr "Poljska - računske tabele"
|
||||
|
||||
#. module: l10n_pl
|
||||
#: model:ir.actions.todo,note:l10n_pl.config_call_account_template_pl_chart
|
||||
msgid ""
|
||||
"Generate Chart of Accounts from a Chart Template. You will be asked to pass "
|
||||
"the name of the company, the chart template to follow, the no. of digits to "
|
||||
"generate the code for your accounts and Bank account, currency to create "
|
||||
"Journals. Thus,the pure copy of chart Template is generated.\n"
|
||||
"\tThis is the same wizard that runs from Financial "
|
||||
"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
|
||||
"Chart of Accounts from a Chart Template."
|
||||
msgstr ""
|
||||
"Generiše tabelu računâ iz šablona tabelâ. Bićete upitani za ime kompanije, "
|
||||
"šablon tabelâ koji ćete pratiti, broj cifara za generisanje koda za Vaše "
|
||||
"naloge i bankovni račun, valuta za pravljenje dnevnika. Na taj način se "
|
||||
"generiše čista kopija šablona tabelâ.\n"
|
||||
"\n"
|
||||
"\tTo je isti setup wizard koji se pokreće iz Financial "
|
||||
"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
|
||||
"Chart of Accounts from a Chart Template."
|
||||
@@ -0,0 +1,67 @@
|
||||
# Serbian Latin translation for openobject-addons
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-07 06:16+0000\n"
|
||||
"PO-Revision-Date: 2011-10-13 14:55+0000\n"
|
||||
"Last-Translator: Milan Milosevic <Unknown>\n"
|
||||
"Language-Team: Serbian Latin <sr@latin@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-14 05:34+0000\n"
|
||||
"X-Generator: Launchpad (build 14124)\n"
|
||||
|
||||
#. module: l10n_ro
|
||||
#: help:res.partner,nrc:0
|
||||
msgid "Registration number at the Registry of Commerce"
|
||||
msgstr "Registracioni broj pri Trgovinskom registru"
|
||||
|
||||
#. module: l10n_ro
|
||||
#: field:res.partner,nrc:0
|
||||
msgid "NRC"
|
||||
msgstr "NRC"
|
||||
|
||||
#. module: l10n_ro
|
||||
#: model:ir.actions.todo,note:l10n_ro.config_call_account_template_ro
|
||||
msgid ""
|
||||
"Generate Chart of Accounts from a Chart Template. You will be asked to pass "
|
||||
"the name of the company, the chart template to follow, the no. of digits to "
|
||||
"generate the code for your accounts and Bank account, currency to create "
|
||||
"Journals. Thus,the pure copy of chart Template is generated.\n"
|
||||
"\tThis is the same wizard that runs from Financial "
|
||||
"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
|
||||
"Chart of Accounts from a Chart Template."
|
||||
msgstr ""
|
||||
"Generiše tabelu računâ iz šablona tabelâ. Bićete upitani za ime kompanije, "
|
||||
"šablon tabelâ koji ćete pratiti, broj cifara za generisanje koda za Vaše "
|
||||
"naloge i bankovni račun, valuta za pravljenje dnevnika. Na taj način se "
|
||||
"generiše čista kopija šablona tabelâ.\n"
|
||||
"\n"
|
||||
"\tTo je isti setup wizard koji se pokreće iz Financial "
|
||||
"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
|
||||
"Chart of Accounts from a Chart Template."
|
||||
|
||||
#. module: l10n_ro
|
||||
#: model:ir.module.module,shortdesc:l10n_ro.module_meta_information
|
||||
msgid "Romania - Chart of Accounts"
|
||||
msgstr "Rumunija - računske tabele"
|
||||
|
||||
#. module: l10n_ro
|
||||
#: model:ir.model,name:l10n_ro.model_res_partner
|
||||
msgid "Partner"
|
||||
msgstr "Partner"
|
||||
|
||||
#. module: l10n_ro
|
||||
#: model:ir.module.module,description:l10n_ro.module_meta_information
|
||||
msgid ""
|
||||
"This is the module to manage the accounting chart, VAT structure and "
|
||||
"Registration Number for Romania in Open ERP."
|
||||
msgstr ""
|
||||
"Ovo je model za sređivanje računskih tabela, VAT strukture i Registracioni "
|
||||
"broj za Rumuniju u OPenERP-u"
|
||||
@@ -0,0 +1,54 @@
|
||||
# Serbian Latin translation for openobject-addons
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-07 06:19+0000\n"
|
||||
"PO-Revision-Date: 2011-10-13 14:53+0000\n"
|
||||
"Last-Translator: Milan Milosevic <Unknown>\n"
|
||||
"Language-Team: Serbian Latin <sr@latin@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-14 05:34+0000\n"
|
||||
"X-Generator: Launchpad (build 14124)\n"
|
||||
|
||||
#. module: l10n_th
|
||||
#: model:ir.actions.todo,note:l10n_th.config_call_account_template_th
|
||||
msgid ""
|
||||
"Generate Chart of Accounts from a Chart Template. You will be asked to pass "
|
||||
"the name of the company, the chart template to follow, the no. of digits to "
|
||||
"generate the code for your accounts and Bank account, currency to create "
|
||||
"Journals. Thus,the pure copy of chart Template is generated.\n"
|
||||
"This is the same wizard that runs from Financial "
|
||||
"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
|
||||
"Chart of Accounts from a Chart Template."
|
||||
msgstr ""
|
||||
"Generiše tabelu računâ iz šablona tabelâ. Bićete upitani za ime kompanije, "
|
||||
"šablon tabelâ koji ćete pratiti, broj cifara za generisanje koda za Vaše "
|
||||
"naloge i bankovni račun, valuta za pravljenje dnevnika. Na taj način se "
|
||||
"generiše čista kopija šablona tabelâ.\n"
|
||||
"\n"
|
||||
" To je isti setup wizard koji se pokreće iz Financial "
|
||||
"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
|
||||
"Chart of Accounts from a Chart Template."
|
||||
|
||||
#. module: l10n_th
|
||||
#: model:ir.module.module,shortdesc:l10n_th.module_meta_information
|
||||
msgid "Thailand - Thai Chart of Accounts"
|
||||
msgstr "Tajland - tajlandske računske tabele"
|
||||
|
||||
#. module: l10n_th
|
||||
#: model:ir.module.module,description:l10n_th.module_meta_information
|
||||
msgid ""
|
||||
"\n"
|
||||
"Chart of accounts for Thailand.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Računske tabele za Tajland.\n"
|
||||
" "
|
||||
@@ -8,19 +8,19 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
|
||||
"PO-Revision-Date: 2010-12-10 18:22+0000\n"
|
||||
"PO-Revision-Date: 2011-10-13 14:51+0000\n"
|
||||
"Last-Translator: Milan Milosevic <Unknown>\n"
|
||||
"Language-Team: Serbian latin <sr@latin@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-05 05:57+0000\n"
|
||||
"X-Generator: Launchpad (build 13830)\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-14 05:34+0000\n"
|
||||
"X-Generator: Launchpad (build 14124)\n"
|
||||
|
||||
#. module: l10n_uk
|
||||
#: model:ir.module.module,shortdesc:l10n_uk.module_meta_information
|
||||
msgid "United Kingdom - minimal"
|
||||
msgstr ""
|
||||
msgstr "Ujedinjeno Kraljevstvo - minimalno"
|
||||
|
||||
#. module: l10n_uk
|
||||
#: model:ir.module.module,description:l10n_uk.module_meta_information
|
||||
@@ -28,6 +28,8 @@ msgid ""
|
||||
"This is the base module to manage the accounting chart for United Kingdom in "
|
||||
"OpenERP."
|
||||
msgstr ""
|
||||
"Ovo je osnovni modul za sređivanje računskih tabela za Ujedinjeno "
|
||||
"kraljevstvo u OpenERP-u."
|
||||
|
||||
#. module: l10n_uk
|
||||
#: model:ir.actions.todo,note:l10n_uk.config_call_account_template_uk_minimal
|
||||
@@ -40,3 +42,11 @@ msgid ""
|
||||
"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
|
||||
"Chart of Accounts from a Chart Template."
|
||||
msgstr ""
|
||||
"Generiše tabelu računâ iz šablona tabelâ. Bićete upitani za ime kompanije, "
|
||||
"šablon tabelâ koji ćete pratiti, broj cifara za generisanje koda za Vaše "
|
||||
"naloge i bankovni račun, valuta za pravljenje dnevnika. Na taj način se "
|
||||
"generiše čista kopija šablona tabelâ.\n"
|
||||
"\n"
|
||||
" To je isti setup wizard koji se pokreće iz Financial "
|
||||
"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
|
||||
"Chart of Accounts from a Chart Template."
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
# Serbian Latin translation for openobject-addons
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-07 06:21+0000\n"
|
||||
"PO-Revision-Date: 2011-10-13 15:23+0000\n"
|
||||
"Last-Translator: Milan Milosevic <Unknown>\n"
|
||||
"Language-Team: Serbian Latin <sr@latin@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-14 05:34+0000\n"
|
||||
"X-Generator: Launchpad (build 14124)\n"
|
||||
|
||||
#. module: l10n_ve
|
||||
#: model:ir.actions.todo,note:l10n_ve.config_call_account_template_ve_chart
|
||||
msgid ""
|
||||
"Generate Chart of Accounts from a Chart Template. You will be asked to pass "
|
||||
"the name of the company, the chart template to follow, the no. of digits to "
|
||||
"generate the code for your accounts and Bank account, currency to create "
|
||||
"Journals. Thus,the pure copy of chart Template is generated.\n"
|
||||
"This is the same wizard that runs from Financial "
|
||||
"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
|
||||
"Chart of Accounts from a Chart Template.\n"
|
||||
"Genere el Plan de cuentas de una Plantilla de Carta. Le pedirán pasar el "
|
||||
"nombre de la compania, la plantilla de carta para seguir, el no. de digitos "
|
||||
"para generar el codigo para sus cuentas y cuenta Bancaria, dinero para crear "
|
||||
"Diarios. Asi, la copia pura de la carta la Plantilla es generada.\n"
|
||||
"Esto es el mismo wizard que corre de la Financial "
|
||||
"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
|
||||
"Chart of Accounts from a Chart Template.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"Generiše tabelu računâ iz šablona tabelâ. Bićete upitani za ime kompanije, "
|
||||
"šablon tabelâ koji ćete pratiti, broj cifara za generisanje koda za Vaše "
|
||||
"naloge i bankovni račun, valuta za pravljenje dnevnika. Na taj način se "
|
||||
"generiše čista kopija šablona tabelâ.\n"
|
||||
"To je isti setup wizard koji se pokreće iz Financial "
|
||||
"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
|
||||
"Chart of Accounts from a Chart Template.\n"
|
||||
"Genere el Plan de cuentas de una Plantilla de Carta. Le pedirán pasar el "
|
||||
"nombre de la compania, la plantilla de carta para seguir, el no. de digitos "
|
||||
"para generar el codigo para sus cuentas y cuenta Bancaria, dinero para crear "
|
||||
"Diarios. Asi, la copia pura de la carta la Plantilla es generada.\n"
|
||||
" Esto es el mismo wizard que corre de la Financial "
|
||||
"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
|
||||
"Chart of Accounts from a Chart Template.\n"
|
||||
" "
|
||||
|
||||
#. module: l10n_ve
|
||||
#: model:ir.module.module,description:l10n_ve.module_meta_information
|
||||
msgid ""
|
||||
"\n"
|
||||
"This is the module to manage the accounting chart for Venezuela in Open "
|
||||
"ERP.\n"
|
||||
"Este módulo es para manejar un catálogo de cuentas ejemplo para Venezuela.\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Ovo je modul za uređivanje računskih tabela za Venecuelu u OPenERP-u.\n"
|
||||
"Este módulo es para manejar un catálogo de cuentas ejemplo para Venezuela.\n"
|
||||
|
||||
#. module: l10n_ve
|
||||
#: model:ir.module.module,shortdesc:l10n_ve.module_meta_information
|
||||
msgid "Venezuela -Chart of Account"
|
||||
msgstr "Venecuela - računske tabele"
|
||||
@@ -0,0 +1,111 @@
|
||||
# Slovenian translation for openobject-addons
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
|
||||
"PO-Revision-Date: 2011-10-11 16:48+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Slovenian <sl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-12 04:40+0000\n"
|
||||
"X-Generator: Launchpad (build 14124)\n"
|
||||
|
||||
#. module: marketing
|
||||
#: model:ir.module.module,description:marketing.module_meta_information
|
||||
msgid "Menu for Marketing"
|
||||
msgstr ""
|
||||
|
||||
#. module: marketing
|
||||
#: help:marketing.installer,marketing_campaign:0
|
||||
msgid ""
|
||||
"Helps you to manage marketing campaigns and automate actions and "
|
||||
"communication steps."
|
||||
msgstr ""
|
||||
|
||||
#. module: marketing
|
||||
#: field:marketing.installer,progress:0
|
||||
msgid "Configuration Progress"
|
||||
msgstr "Potek konfiguracije"
|
||||
|
||||
#. module: marketing
|
||||
#: view:marketing.installer:0
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. module: marketing
|
||||
#: field:marketing.installer,email_template:0
|
||||
msgid "Automated E-Mails"
|
||||
msgstr ""
|
||||
|
||||
#. module: marketing
|
||||
#: field:marketing.installer,config_logo:0
|
||||
msgid "Image"
|
||||
msgstr "Slika"
|
||||
|
||||
#. module: marketing
|
||||
#: view:marketing.installer:0
|
||||
msgid "Configure Your Marketing Application"
|
||||
msgstr ""
|
||||
|
||||
#. module: marketing
|
||||
#: help:marketing.installer,email_template:0
|
||||
msgid ""
|
||||
"Helps you to design templates of emails and integrate them in your different "
|
||||
"processes."
|
||||
msgstr ""
|
||||
|
||||
#. module: marketing
|
||||
#: model:ir.model,name:marketing.model_marketing_installer
|
||||
msgid "marketing.installer"
|
||||
msgstr ""
|
||||
|
||||
#. module: marketing
|
||||
#: model:ir.module.module,shortdesc:marketing.module_meta_information
|
||||
msgid "Marketing"
|
||||
msgstr "Marketing"
|
||||
|
||||
#. module: marketing
|
||||
#: field:marketing.installer,crm_profiling:0
|
||||
msgid "Profiling Tools"
|
||||
msgstr "Orodja za profiliranje"
|
||||
|
||||
#. module: marketing
|
||||
#: view:marketing.installer:0
|
||||
msgid ""
|
||||
"OpenERP provides Addons to better manage your sales and marketing processes. "
|
||||
"Select the ones you would be interested in."
|
||||
msgstr ""
|
||||
|
||||
#. module: marketing
|
||||
#: view:marketing.installer:0
|
||||
msgid "Marketing Application Configuration"
|
||||
msgstr ""
|
||||
|
||||
#. module: marketing
|
||||
#: model:ir.actions.act_window,name:marketing.action_marketing_installer
|
||||
msgid "Marketing Modules Installation"
|
||||
msgstr ""
|
||||
|
||||
#. module: marketing
|
||||
#: field:marketing.installer,marketing_campaign:0
|
||||
msgid "Marketing Campaigns"
|
||||
msgstr ""
|
||||
|
||||
#. module: marketing
|
||||
#: help:marketing.installer,crm_profiling:0
|
||||
msgid ""
|
||||
"Helps you to perform segmentation of partners and design segmentation "
|
||||
"questionnaires"
|
||||
msgstr ""
|
||||
|
||||
#. module: marketing
|
||||
#: view:marketing.installer:0
|
||||
msgid "Configure"
|
||||
msgstr "Nastavitve"
|
||||
@@ -122,7 +122,7 @@ class mrp_repair(osv.osv):
|
||||
'prodlot_id': fields.many2one('stock.production.lot', 'Lot Number', select=True, domain="[('product_id','=',product_id)]"),
|
||||
'state': fields.selection([
|
||||
('draft','Quotation'),
|
||||
('confirmed','Confirmed, to repair'),
|
||||
('confirmed','Confirmed'),
|
||||
('ready','Ready to Repair'),
|
||||
('under_repair','Under Repair'),
|
||||
('2binvoiced','To be Invoiced'),
|
||||
|
||||
@@ -7,17 +7,17 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2011-01-03 16:58+0000\n"
|
||||
"PO-Revision-Date: 2010-10-30 09:04+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <Unknown>\n"
|
||||
"PO-Revision-Date: 2011-10-11 18:22+0000\n"
|
||||
"Last-Translator: Aare Vesi <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-05 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build 13830)\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-12 04:39+0000\n"
|
||||
"X-Generator: Launchpad (build 14124)\n"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: code:addons/point_of_sale/point_of_sale.py:1206
|
||||
#: code:addons/point_of_sale/point_of_sale.py:1202
|
||||
#, python-format
|
||||
msgid "Create line failed !"
|
||||
msgstr "Rea loomine ebaõnnestus!"
|
||||
@@ -29,7 +29,7 @@ msgid "Invalid action !"
|
||||
msgstr "Vigane tegevus !"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: code:addons/point_of_sale/point_of_sale.py:1214
|
||||
#: code:addons/point_of_sale/point_of_sale.py:1210
|
||||
#, python-format
|
||||
msgid "Modify line failed !"
|
||||
msgstr "Rea muutmine ebaõnnestus!"
|
||||
@@ -73,7 +73,7 @@ msgstr "Kassa"
|
||||
#. module: point_of_sale
|
||||
#: view:report.pos.order:0
|
||||
msgid "Today"
|
||||
msgstr ""
|
||||
msgstr "Täna"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: view:pos.add.product:0
|
||||
@@ -121,7 +121,7 @@ msgstr "Scanneeri toodet"
|
||||
#: view:report.pos.order:0
|
||||
#: field:report.pos.order,day:0
|
||||
msgid "Day"
|
||||
msgstr ""
|
||||
msgstr "Päev"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: view:pos.make.payment:0
|
||||
@@ -132,7 +132,7 @@ msgstr "Lisa maksmine :"
|
||||
#: view:report.cash.register:0
|
||||
#: view:report.pos.order:0
|
||||
msgid "My Sales"
|
||||
msgstr ""
|
||||
msgstr "Minu müügid"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: model:ir.actions.act_window,name:point_of_sale.action_box_out
|
||||
@@ -163,7 +163,7 @@ msgstr "Käibemaks"
|
||||
#. module: point_of_sale
|
||||
#: report:pos.invoice:0
|
||||
msgid "Origin"
|
||||
msgstr ""
|
||||
msgstr "Päritolu"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: report:pos.invoice:0
|
||||
@@ -196,7 +196,7 @@ msgstr "Päevasumma"
|
||||
#: view:report.pos.order:0
|
||||
#: field:report.pos.order,average_price:0
|
||||
msgid "Average Price"
|
||||
msgstr ""
|
||||
msgstr "Keskmine hind"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: report:pos.lines:0
|
||||
@@ -248,24 +248,24 @@ msgstr ""
|
||||
#: field:pos.box.entries,ref:0
|
||||
#: field:pos.box.out,ref:0
|
||||
msgid "Ref"
|
||||
msgstr ""
|
||||
msgstr "Viide"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: view:report.pos.order:0
|
||||
#: field:report.pos.order,price_total:0
|
||||
msgid "Total Price"
|
||||
msgstr ""
|
||||
msgstr "Hind kokku"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: view:product.product:0
|
||||
msgid "Miscelleanous"
|
||||
msgstr ""
|
||||
msgstr "Mitmesugune"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: model:ir.actions.report.xml,name:point_of_sale.pos_sales_user
|
||||
#: report:pos.sales.user:0
|
||||
msgid "Sales Report"
|
||||
msgstr ""
|
||||
msgstr "Müügiaruanne"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: code:addons/point_of_sale/wizard/pos_discount.py:52
|
||||
@@ -276,18 +276,18 @@ msgstr ""
|
||||
#. module: point_of_sale
|
||||
#: view:pos.order:0
|
||||
msgid "Other Information"
|
||||
msgstr ""
|
||||
msgstr "Muu info"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: view:product.product:0
|
||||
msgid "Product Type"
|
||||
msgstr ""
|
||||
msgstr "Toote tüüp"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: view:pos.order:0
|
||||
#: view:pos.payment.report.date:0
|
||||
msgid "Dates"
|
||||
msgstr ""
|
||||
msgstr "Kuupäevad"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: field:res.company,company_discount:0
|
||||
@@ -300,8 +300,8 @@ msgid "Cash register management"
|
||||
msgstr ""
|
||||
|
||||
#. module: point_of_sale
|
||||
#: code:addons/point_of_sale/point_of_sale.py:1056
|
||||
#: code:addons/point_of_sale/point_of_sale.py:1075
|
||||
#: code:addons/point_of_sale/point_of_sale.py:1057
|
||||
#: code:addons/point_of_sale/point_of_sale.py:1076
|
||||
#, python-format
|
||||
msgid "No valid pricelist line found !"
|
||||
msgstr "Kehtiv hinnakirja rida ei ole leitud !"
|
||||
@@ -314,13 +314,13 @@ msgstr "Kehtiv hinnakirja rida ei ole leitud !"
|
||||
#: report:pos.payment.report.user:0
|
||||
#: report:pos.user.product:0
|
||||
msgid "["
|
||||
msgstr ""
|
||||
msgstr "["
|
||||
|
||||
#. module: point_of_sale
|
||||
#: field:report.sales.by.margin.pos,total:0
|
||||
#: field:report.sales.by.margin.pos.month,total:0
|
||||
msgid "Margin"
|
||||
msgstr ""
|
||||
msgstr "Kate"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: field:pos.order.line,discount:0
|
||||
@@ -380,13 +380,13 @@ msgstr ""
|
||||
#: selection:report.cash.register,month:0
|
||||
#: selection:report.pos.order,month:0
|
||||
msgid "August"
|
||||
msgstr ""
|
||||
msgstr "August"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: selection:report.cash.register,month:0
|
||||
#: selection:report.pos.order,month:0
|
||||
msgid "June"
|
||||
msgstr ""
|
||||
msgstr "Juuni"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: model:ir.actions.act_window,name:point_of_sale.action_report_sales_by_user_pos_month
|
||||
@@ -409,7 +409,7 @@ msgstr ""
|
||||
#: selection:report.cash.register,month:0
|
||||
#: selection:report.pos.order,month:0
|
||||
msgid "October"
|
||||
msgstr ""
|
||||
msgstr "Oktoober"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: field:account.bank.statement.line,am_out:0
|
||||
@@ -425,7 +425,7 @@ msgstr "Üldistus"
|
||||
#. module: point_of_sale
|
||||
#: view:pos.order:0
|
||||
msgid "Quotations"
|
||||
msgstr ""
|
||||
msgstr "Pakkumised"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: field:report.pos.order,delay_payment:0
|
||||
@@ -450,7 +450,7 @@ msgstr ""
|
||||
#. module: point_of_sale
|
||||
#: view:account.bank.statement:0
|
||||
msgid "Period"
|
||||
msgstr ""
|
||||
msgstr "Periood"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: report:pos.invoice:0
|
||||
@@ -466,7 +466,7 @@ msgstr "Rea kirjeldus"
|
||||
#. module: point_of_sale
|
||||
#: view:product.product:0
|
||||
msgid "Codes"
|
||||
msgstr ""
|
||||
msgstr "Koodid"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: view:pos.box.out:0
|
||||
@@ -483,7 +483,7 @@ msgstr ""
|
||||
#: view:pos.sales.user.today:0
|
||||
#: view:pos.sales.user.today.current_user:0
|
||||
msgid "Print Report"
|
||||
msgstr ""
|
||||
msgstr "Trüki aruanne"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: report:pos.invoice:0
|
||||
@@ -509,7 +509,7 @@ msgstr ""
|
||||
#: model:ir.model,name:point_of_sale.model_pos_add_product
|
||||
#, python-format
|
||||
msgid "Add Product"
|
||||
msgstr ""
|
||||
msgstr "Lisa toode"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: field:report.transaction.pos,invoice_am:0
|
||||
@@ -581,7 +581,7 @@ msgstr ""
|
||||
#. module: point_of_sale
|
||||
#: constraint:product.product:0
|
||||
msgid "Error: Invalid ean code"
|
||||
msgstr ""
|
||||
msgstr "Viga: vigane EAN kood"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: model:ir.model,name:point_of_sale.model_pos_open_statement
|
||||
@@ -626,7 +626,7 @@ msgstr ""
|
||||
#: selection:report.cash.register,month:0
|
||||
#: selection:report.pos.order,month:0
|
||||
msgid "March"
|
||||
msgstr ""
|
||||
msgstr "Märts"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: model:ir.actions.report.xml,name:point_of_sale.pos_users_product_re
|
||||
@@ -635,8 +635,8 @@ msgid "User's Product"
|
||||
msgstr ""
|
||||
|
||||
#. module: point_of_sale
|
||||
#: code:addons/point_of_sale/point_of_sale.py:1042
|
||||
#: code:addons/point_of_sale/point_of_sale.py:1067
|
||||
#: code:addons/point_of_sale/point_of_sale.py:1043
|
||||
#: code:addons/point_of_sale/point_of_sale.py:1068
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You have to select a pricelist in the sale form !\n"
|
||||
@@ -749,7 +749,7 @@ msgstr "Kokku :"
|
||||
#: field:report.sales.by.margin.pos,product_name:0
|
||||
#: field:report.sales.by.margin.pos.month,product_name:0
|
||||
msgid "Product Name"
|
||||
msgstr ""
|
||||
msgstr "Toote nimi"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: field:pos.make.payment,pricelist_id:0
|
||||
@@ -767,7 +767,7 @@ msgstr "Kokku arves"
|
||||
#: view:report.pos.order:0
|
||||
#: field:report.pos.order,product_qty:0
|
||||
msgid "# of Qty"
|
||||
msgstr ""
|
||||
msgstr "Kogus"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: model:ir.model,name:point_of_sale.model_pos_return
|
||||
@@ -786,7 +786,7 @@ msgstr ""
|
||||
#: field:report.sales.by.user.pos,date_order:0
|
||||
#: field:report.sales.by.user.pos.month,date_order:0
|
||||
msgid "Order Date"
|
||||
msgstr ""
|
||||
msgstr "Tellimuse Kuupäev"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: report:all.closed.cashbox.of.the.day:0
|
||||
@@ -825,7 +825,7 @@ msgstr ""
|
||||
#: selection:report.cash.register,month:0
|
||||
#: selection:report.pos.order,month:0
|
||||
msgid "September"
|
||||
msgstr ""
|
||||
msgstr "September"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: report:account.statement:0
|
||||
@@ -836,7 +836,7 @@ msgstr ""
|
||||
#. module: point_of_sale
|
||||
#: report:pos.lines:0
|
||||
msgid "Taxes :"
|
||||
msgstr ""
|
||||
msgstr "Maksud :"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: field:report.transaction.pos,disc:0
|
||||
@@ -859,7 +859,6 @@ msgid "Receipt :"
|
||||
msgstr ""
|
||||
|
||||
#. module: point_of_sale
|
||||
#: field:account.bank.statement.line,pos_statement_id:0
|
||||
#: field:pos.order,amount_return:0
|
||||
msgid "unknown"
|
||||
msgstr "teadmata"
|
||||
@@ -878,7 +877,7 @@ msgstr ""
|
||||
#. module: point_of_sale
|
||||
#: field:pos.order,num_sale:0
|
||||
msgid "Internal Note"
|
||||
msgstr ""
|
||||
msgstr "Sisemine märkus"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: model:ir.model,name:point_of_sale.model_res_company
|
||||
@@ -916,7 +915,7 @@ msgstr ""
|
||||
#. module: point_of_sale
|
||||
#: report:pos.invoice:0
|
||||
msgid "Your Reference"
|
||||
msgstr ""
|
||||
msgstr "Teie viide"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: field:report.transaction.pos,no_trans:0
|
||||
@@ -948,7 +947,7 @@ msgstr "Müük (üldistus)"
|
||||
#. module: point_of_sale
|
||||
#: view:product.product:0
|
||||
msgid "Information"
|
||||
msgstr ""
|
||||
msgstr "informatsioon"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: model:ir.ui.menu,name:point_of_sale.menu_wizard_enter_jrnl
|
||||
@@ -974,7 +973,7 @@ msgstr ""
|
||||
#. module: point_of_sale
|
||||
#: field:pos.order,first_name:0
|
||||
msgid "First Name"
|
||||
msgstr ""
|
||||
msgstr "Eesnimi"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: view:res.company:0
|
||||
@@ -1002,7 +1001,7 @@ msgstr ""
|
||||
#: view:account.journal:0
|
||||
#: field:account.journal,journal_users:0
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
msgstr "Kasutajad"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: report:pos.details:0
|
||||
@@ -1028,7 +1027,7 @@ msgstr "POS"
|
||||
#. module: point_of_sale
|
||||
#: field:report.cash.register,date:0
|
||||
msgid "Create Date"
|
||||
msgstr ""
|
||||
msgstr "Loomise kuupäev"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: model:ir.ui.menu,name:point_of_sale.menu_wizard_enter_jrnl2
|
||||
@@ -1047,7 +1046,7 @@ msgstr ""
|
||||
#: report:pos.sales.user.today:0
|
||||
#: report:pos.sales.user.today.current.user:0
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
msgstr "Nimi"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: model:ir.ui.menu,name:point_of_sale.menu_open_statement
|
||||
@@ -1062,7 +1061,7 @@ msgstr ""
|
||||
#: report:pos.payment.report.user:0
|
||||
#: report:pos.user.product:0
|
||||
msgid "]"
|
||||
msgstr ""
|
||||
msgstr "]"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: sql_constraint:account.journal:0
|
||||
@@ -1080,7 +1079,7 @@ msgstr "Tarnija tagasimakse"
|
||||
#: view:report.cash.register:0
|
||||
#: view:report.pos.order:0
|
||||
msgid "Group By..."
|
||||
msgstr ""
|
||||
msgstr "Grupeeri..."
|
||||
|
||||
#. module: point_of_sale
|
||||
#: view:pos.order:0
|
||||
@@ -1093,8 +1092,8 @@ msgid "All Closed CashBox"
|
||||
msgstr ""
|
||||
|
||||
#. module: point_of_sale
|
||||
#: code:addons/point_of_sale/point_of_sale.py:1041
|
||||
#: code:addons/point_of_sale/point_of_sale.py:1066
|
||||
#: code:addons/point_of_sale/point_of_sale.py:1042
|
||||
#: code:addons/point_of_sale/point_of_sale.py:1067
|
||||
#, python-format
|
||||
msgid "No Pricelist !"
|
||||
msgstr "Puudub hinnakiri !"
|
||||
@@ -1118,7 +1117,7 @@ msgstr "Baas"
|
||||
#. module: point_of_sale
|
||||
#: view:product.product:0
|
||||
msgid "Account"
|
||||
msgstr ""
|
||||
msgstr "Konto"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: field:pos.order,sale_manager:0
|
||||
@@ -1161,7 +1160,7 @@ msgstr "Tootekood"
|
||||
#: model:ir.ui.menu,name:point_of_sale.menu_point_of_sale_product
|
||||
#: model:ir.ui.menu,name:point_of_sale.menu_pos_products
|
||||
msgid "Products"
|
||||
msgstr ""
|
||||
msgstr "Tooted"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: model:ir.actions.report.xml,name:point_of_sale.pos_payment_report
|
||||
@@ -1250,15 +1249,15 @@ msgid "Sale by User"
|
||||
msgstr ""
|
||||
|
||||
#. module: point_of_sale
|
||||
#: code:addons/point_of_sale/point_of_sale.py:555
|
||||
#: code:addons/point_of_sale/point_of_sale.py:743
|
||||
#: code:addons/point_of_sale/point_of_sale.py:851
|
||||
#: code:addons/point_of_sale/point_of_sale.py:558
|
||||
#: code:addons/point_of_sale/point_of_sale.py:744
|
||||
#: code:addons/point_of_sale/point_of_sale.py:852
|
||||
#: code:addons/point_of_sale/report/pos_invoice.py:46
|
||||
#: code:addons/point_of_sale/wizard/pos_box_entries.py:103
|
||||
#: code:addons/point_of_sale/wizard/pos_box_entries.py:107
|
||||
#: code:addons/point_of_sale/wizard/pos_box_out.py:95
|
||||
#: code:addons/point_of_sale/wizard/pos_box_out.py:99
|
||||
#: code:addons/point_of_sale/wizard/pos_box_out.py:97
|
||||
#: code:addons/point_of_sale/wizard/pos_box_out.py:101
|
||||
#: code:addons/point_of_sale/wizard/pos_box_out.py:103
|
||||
#, python-format
|
||||
msgid "Error !"
|
||||
msgstr "Viga !"
|
||||
@@ -1282,10 +1281,10 @@ msgstr ""
|
||||
#: selection:report.cash.register,month:0
|
||||
#: selection:report.pos.order,month:0
|
||||
msgid "July"
|
||||
msgstr ""
|
||||
msgstr "Juuli"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: code:addons/point_of_sale/point_of_sale.py:544
|
||||
#: code:addons/point_of_sale/point_of_sale.py:547
|
||||
#, python-format
|
||||
msgid "Please provide an account for the product: %s"
|
||||
msgstr ""
|
||||
@@ -1338,7 +1337,7 @@ msgstr ""
|
||||
#: view:report.pos.order:0
|
||||
#: field:report.pos.order,month:0
|
||||
msgid "Month"
|
||||
msgstr ""
|
||||
msgstr "Kuu"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: view:pos.order:0
|
||||
@@ -1386,7 +1385,7 @@ msgid "Customer Note"
|
||||
msgstr ""
|
||||
|
||||
#. module: point_of_sale
|
||||
#: code:addons/point_of_sale/point_of_sale.py:337
|
||||
#: code:addons/point_of_sale/point_of_sale.py:340
|
||||
#, python-format
|
||||
msgid "No order lines defined for this sale."
|
||||
msgstr ""
|
||||
@@ -1595,7 +1594,7 @@ msgid "Yes"
|
||||
msgstr ""
|
||||
|
||||
#. module: point_of_sale
|
||||
#: code:addons/point_of_sale/point_of_sale.py:743
|
||||
#: code:addons/point_of_sale/point_of_sale.py:744
|
||||
#, python-format
|
||||
msgid "There is no income account defined for this product: \"%s\" (id:%d)"
|
||||
msgstr ""
|
||||
@@ -1696,8 +1695,8 @@ msgid "Invoice Date"
|
||||
msgstr "Arve Kuupäev"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: code:addons/point_of_sale/point_of_sale.py:1057
|
||||
#: code:addons/point_of_sale/point_of_sale.py:1076
|
||||
#: code:addons/point_of_sale/point_of_sale.py:1058
|
||||
#: code:addons/point_of_sale/point_of_sale.py:1077
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Couldn't find a pricelist line matching this product and quantity.\n"
|
||||
@@ -1715,9 +1714,9 @@ msgid "Reprint"
|
||||
msgstr ""
|
||||
|
||||
#. module: point_of_sale
|
||||
#: code:addons/point_of_sale/point_of_sale.py:555
|
||||
#: code:addons/point_of_sale/point_of_sale.py:558
|
||||
#: code:addons/point_of_sale/wizard/pos_box_entries.py:103
|
||||
#: code:addons/point_of_sale/wizard/pos_box_out.py:101
|
||||
#: code:addons/point_of_sale/wizard/pos_box_out.py:103
|
||||
#, python-format
|
||||
msgid "You have to open at least one cashbox"
|
||||
msgstr ""
|
||||
@@ -1907,8 +1906,8 @@ msgid "Validation Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: point_of_sale
|
||||
#: code:addons/point_of_sale/point_of_sale.py:504
|
||||
#: code:addons/point_of_sale/point_of_sale.py:506
|
||||
#: code:addons/point_of_sale/point_of_sale.py:507
|
||||
#: code:addons/point_of_sale/point_of_sale.py:509
|
||||
#, python-format
|
||||
msgid "You don't have enough access to validate this sale!"
|
||||
msgstr ""
|
||||
@@ -2027,13 +2026,13 @@ msgid "PRO-FORMA"
|
||||
msgstr "Ettemaks"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: code:addons/point_of_sale/point_of_sale.py:637
|
||||
#: code:addons/point_of_sale/point_of_sale.py:638
|
||||
#, python-format
|
||||
msgid "Please provide a partner for the sale."
|
||||
msgstr "Palun lisa müügipartnerit"
|
||||
|
||||
#. module: point_of_sale
|
||||
#: code:addons/point_of_sale/point_of_sale.py:852
|
||||
#: code:addons/point_of_sale/point_of_sale.py:853
|
||||
#, python-format
|
||||
msgid ""
|
||||
"There is no receivable account defined for this journal: \"%s\" (id:%d)"
|
||||
@@ -2091,13 +2090,13 @@ msgid "POS Orders lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: point_of_sale
|
||||
#: code:addons/point_of_sale/point_of_sale.py:337
|
||||
#: code:addons/point_of_sale/point_of_sale.py:504
|
||||
#: code:addons/point_of_sale/point_of_sale.py:506
|
||||
#: code:addons/point_of_sale/point_of_sale.py:544
|
||||
#: code:addons/point_of_sale/point_of_sale.py:637
|
||||
#: code:addons/point_of_sale/point_of_sale.py:1206
|
||||
#: code:addons/point_of_sale/point_of_sale.py:1214
|
||||
#: code:addons/point_of_sale/point_of_sale.py:340
|
||||
#: code:addons/point_of_sale/point_of_sale.py:507
|
||||
#: code:addons/point_of_sale/point_of_sale.py:509
|
||||
#: code:addons/point_of_sale/point_of_sale.py:547
|
||||
#: code:addons/point_of_sale/point_of_sale.py:638
|
||||
#: code:addons/point_of_sale/point_of_sale.py:1202
|
||||
#: code:addons/point_of_sale/point_of_sale.py:1210
|
||||
#, python-format
|
||||
msgid "Error"
|
||||
msgstr "Viga"
|
||||
@@ -2193,7 +2192,7 @@ msgid "Please fill these fields for entries to the box:"
|
||||
msgstr ""
|
||||
|
||||
#. module: point_of_sale
|
||||
#: code:addons/point_of_sale/wizard/pos_box_out.py:99
|
||||
#: code:addons/point_of_sale/wizard/pos_box_out.py:101
|
||||
#, python-format
|
||||
msgid "please check that account is set to %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -670,7 +670,7 @@
|
||||
<field name="res_model">product.product</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('income_pdt','=',True)]</field>
|
||||
<field name="domain">[('expense_pdt','=',True)]</field>
|
||||
</record>
|
||||
<record model="ir.actions.act_window.view" id="action_product_input_tree_tag">
|
||||
<field name="sequence" eval="1"/>
|
||||
@@ -696,7 +696,7 @@
|
||||
<field name="res_model">product.product</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('expense_pdt','=',True)]</field>
|
||||
<field name="domain">[('income_pdt','=',True)]</field>
|
||||
</record>
|
||||
<record model="ir.actions.act_window.view" id="action_product_output_tree_tag">
|
||||
<field name="sequence" eval="1"/>
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
var db = openerp.init();
|
||||
openerp.point_of_sale(db);
|
||||
var session = new db.web.Session('DEBUG');
|
||||
session.session_login('trunk', 'admin', 'a').then(function() {
|
||||
session.session_login('addons-trunk_all', 'admin', 'admin').then(function() {
|
||||
var pos = new db.point_of_sale.PointOfSale({session: session});
|
||||
pos.appendTo($("body"));
|
||||
});
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<search string="Product">
|
||||
<filter string="Services" icon="terp-accessories-archiver" domain="[('type','=','service')]"/>
|
||||
<filter string="Stockable" icon="terp-accessories-archiver" domain="['|',('type','=','product'),('type','=','consu')]"/>
|
||||
<filter string="Products" icon="terp-accessories-archiver" domain="['|',('type','=','product'),('type','=','consu')]" help="Both stockable and consumable products"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="To Sell" name="filter_to_sell" icon="terp-accessories-archiver-minus" domain="[('sale_ok','=',1)]"/>
|
||||
<filter name="filter_to_purchase" string="To Purchase" icon="terp-accessories-archiver+" domain="[('purchase_ok', '=', 1)]" />
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
</record>
|
||||
|
||||
|
||||
<record id="action_view_task_tree" model="ir.actions.act_window">
|
||||
<record id="my_open_tasks_action" model="ir.actions.act_window">
|
||||
<field name="name">My Open Tasks</field>
|
||||
<field name="res_model">project.task</field>
|
||||
<field name="view_type">form</field>
|
||||
@@ -83,7 +83,7 @@
|
||||
<form string="My Board">
|
||||
<hpaned>
|
||||
<child1>
|
||||
<action colspan="4" height="100" name="%(action_view_task_tree)d" string="My Open Tasks" width="510"/>
|
||||
<action colspan="4" height="100" name="%(my_open_tasks_action)d" string="My Open Tasks" width="510"/>
|
||||
<action colspan="4" height="100" name="%(action_view_delegate_task_tree)d" string="My Delegated Tasks" width="510"/>
|
||||
</child1>
|
||||
<child2>
|
||||
|
||||
@@ -7,14 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
|
||||
"PO-Revision-Date: 2011-08-17 22:31+0000\n"
|
||||
"PO-Revision-Date: 2011-10-16 23:02+0000\n"
|
||||
"Last-Translator: mgaja (GrupoIsep.com) <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-05 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 13830)\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-17 04:43+0000\n"
|
||||
"X-Generator: Launchpad (build 14155)\n"
|
||||
|
||||
#. module: project
|
||||
#: model:ir.actions.act_window,name:project.act_res_users_2_project_task_opened
|
||||
@@ -71,7 +71,7 @@ msgstr "Operació no permesa!"
|
||||
#: code:addons/project/wizard/project_task_delegate.py:67
|
||||
#, python-format
|
||||
msgid "CHECK: %s"
|
||||
msgstr "CHECK: %s"
|
||||
msgstr "COMPROVA: %s"
|
||||
|
||||
#. module: project
|
||||
#: code:addons/project/wizard/project_task_delegate.py:55
|
||||
|
||||
@@ -7,15 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
|
||||
"PO-Revision-Date: 2011-01-16 18:25+0000\n"
|
||||
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
|
||||
"<jesteve@zikzakmedia.com>\n"
|
||||
"PO-Revision-Date: 2011-10-16 23:01+0000\n"
|
||||
"Last-Translator: mgaja (GrupoIsep.com) <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-05 04:54+0000\n"
|
||||
"X-Generator: Launchpad (build 13830)\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-17 04:43+0000\n"
|
||||
"X-Generator: Launchpad (build 14155)\n"
|
||||
|
||||
#. module: project
|
||||
#: model:ir.actions.act_window,name:project.act_res_users_2_project_task_opened
|
||||
@@ -72,7 +71,7 @@ msgstr "¡Operación no permitida!"
|
||||
#: code:addons/project/wizard/project_task_delegate.py:67
|
||||
#, python-format
|
||||
msgid "CHECK: %s"
|
||||
msgstr ""
|
||||
msgstr "CONSULTAR: %s"
|
||||
|
||||
#. module: project
|
||||
#: code:addons/project/wizard/project_task_delegate.py:55
|
||||
|
||||
@@ -469,7 +469,7 @@ class task(osv.osv):
|
||||
'work_ids': fields.one2many('project.task.work', 'task_id', 'Work done'),
|
||||
'manager_id': fields.related('project_id', 'analytic_account_id', 'user_id', type='many2one', relation='res.users', string='Project Manager'),
|
||||
'company_id': fields.many2one('res.company', 'Company'),
|
||||
'id': fields.integer('ID'),
|
||||
'id': fields.integer('ID', readonly=True),
|
||||
'color': fields.integer('Color Index'),
|
||||
}
|
||||
|
||||
|
||||
@@ -511,20 +511,6 @@
|
||||
<field name="search_view_id" ref="view_task_search_form"/>
|
||||
<field name="help">A task represents a work that has to be done. Each user works in his own list of tasks where he can record his task work in hours. He can work and close the task itself or delegate it to another user. If you delegate a task to another user, you get a new task in pending state, which will be reopened when you have to review the work achieved. If you install the project_timesheet module, task work can be invoiced based on the project configuration. With the project_mrp module, sales orders can create tasks automatically when they are confirmed.</field>
|
||||
</record>
|
||||
|
||||
<record id="action_view_task_tree" model="ir.actions.act_window.view">
|
||||
<field name="sequence" eval="1"/>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="view_task_tree2"/>
|
||||
<field name="act_window_id" ref="action_view_task"/>
|
||||
</record>
|
||||
|
||||
<record id="action_view_task_form" model="ir.actions.act_window.view">
|
||||
<field name="sequence" eval="2"/>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="view_task_form2"/>
|
||||
<field name="act_window_id" ref="action_view_task"/>
|
||||
</record>
|
||||
|
||||
<menuitem action="action_view_task" id="menu_action_view_task" parent="project.menu_project_management" sequence="3"/>
|
||||
|
||||
|
||||
@@ -128,6 +128,7 @@ class project_vs_hours(osv.osv):
|
||||
_columns = {
|
||||
'project': fields.char('Project', size=128, required=True),
|
||||
'remaining_hours': fields.float('Remaining Hours', readonly=True),
|
||||
'user_id': fields.many2one('res.users', 'Assigned To', readonly=True),
|
||||
'planned_hours': fields.float('Planned Hours', readonly=True),
|
||||
'total_hours': fields.float('Total Hours', readonly=True),
|
||||
'state': fields.selection([('draft','Draft'),('open','Open'), ('pending','Pending'),('cancelled', 'Cancelled'),('close','Close'),('template', 'Template')], 'State', required=True, readonly=True)
|
||||
@@ -140,7 +141,7 @@ class project_vs_hours(osv.osv):
|
||||
CREATE or REPLACE view project_vs_hours as (
|
||||
select
|
||||
min(pt.id) as id,
|
||||
aaa.user_id as uid,
|
||||
aaa.user_id as user_id,
|
||||
aaa.name as project,
|
||||
aaa.state,
|
||||
sum(pt.remaining_hours) as remaining_hours,
|
||||
@@ -154,7 +155,7 @@ class project_vs_hours(osv.osv):
|
||||
UNION All
|
||||
SELECT
|
||||
min(pt.id) as id,
|
||||
pur.uid as uid,
|
||||
pur.uid as user_id,
|
||||
aaa.name as project,
|
||||
aaa.state,
|
||||
sum(pt.remaining_hours) as remaining_hours,
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
<field name="res_model">project.vs.hours</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">graph,tree</field>
|
||||
<field name="domain">[('uid','=',uid),('state','=','open')]</field>
|
||||
<field name="domain">[('user_id','=',uid),('state','=','open')]</field>
|
||||
<field name="view_id" ref="view_project_vs_remaining_hours_graph"/>
|
||||
</record>
|
||||
|
||||
@@ -272,7 +272,7 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">graph,tree</field>
|
||||
<field name="context">{}</field>
|
||||
<field name="domain">[('uid','=',uid),('state','=','open')]</field>
|
||||
<field name="domain">[('user_id','=',uid),('state','=','open')]</field>
|
||||
<field name="view_id" ref="view_project_vs_planned_total_hours_graph"/>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -73,11 +73,11 @@ class project_task_reevaluate(osv.osv_memory):
|
||||
if context is None:
|
||||
context = {}
|
||||
data = self.browse(cr, uid, ids, context=context)[0]
|
||||
task_pool = self.pool.get('project.task')
|
||||
task_id = context.get('active_id', False)
|
||||
task_id = context.get('active_id')
|
||||
if task_id:
|
||||
task_pool = self.pool.get('project.task')
|
||||
task_pool.write(cr, uid, task_id, {'remaining_hours': data.remaining_hours})
|
||||
if context.get('button_reactivate', False):
|
||||
if context.get('button_reactivate'):
|
||||
task_pool.do_reopen(cr, uid, [task_id], context=context)
|
||||
return {'type': 'ir.actions.act_window_close'}
|
||||
project_task_reevaluate()
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user