diff --git a/addons/account/__openerp__.py b/addons/account/__openerp__.py
index fe3f93b492c..d3a58272b89 100644
--- a/addons/account/__openerp__.py
+++ b/addons/account/__openerp__.py
@@ -21,7 +21,6 @@
{
"name" : "Accounting and Financial Management",
"version" : "1.1",
- "depends" : ["product", "analytic", "process","board"],
"author" : "Tiny",
"category": 'Generic Modules/Accounting',
"description": """Financial and accounting module that covers:
@@ -42,6 +41,7 @@ The processes like maintaining of general ledger is done through the defined fin
grouping is maintained through journal) for a particular financial year and for preparation of vouchers there is a
module named account_vouchers
""",
+ "depends" : ["product", "analytic", "process","board"],
'website': 'http://www.openerp.com',
'init_xml': [],
'update_xml': [
@@ -119,7 +119,6 @@ module named account_vouchers
"wizard/account_bs_report_view.xml"
],
'demo_xml': [
- #'demo/price_accuracy00.yml',
'account_demo.xml',
'project/project_demo.xml',
'project/analytic_account_demo.xml',
diff --git a/addons/account/account.py b/addons/account/account.py
index 210ae5b3157..314e192e186 100644
--- a/addons/account/account.py
+++ b/addons/account/account.py
@@ -136,7 +136,6 @@ class account_account_type(osv.osv):
'name': fields.char('Acc. Type Name', size=64, required=True, translate=True),
'code': fields.char('Code', size=32, required=True),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of account types."),
- 'partner_account': fields.boolean('Partner account'),
'close_method': fields.selection([('none', 'None'), ('balance', 'Balance'), ('detail', 'Detail'), ('unreconciled', 'Unreconciled')], 'Deferral Method', required=True),
'sign': fields.selection([(-1, 'Negative'), (1, 'Positive')], 'Sign on Reports', required=True, help='Allows you to change the sign of the balance amount displayed in the reports, so that you can see positive figures instead of negative ones in expenses accounts.'),
'report_type':fields.selection([
@@ -366,11 +365,11 @@ class account_account(osv.osv):
'currency_id': fields.many2one('res.currency', 'Secondary Currency', help="Forces all moves for this account to have this secondary currency."),
'code': fields.char('Code', size=64, required=True),
'type': fields.selection([
+ ('view', 'View'),
+ ('other', 'Regular'),
('receivable', 'Receivable'),
('payable', 'Payable'),
- ('view', 'View'),
('consolidation', 'Consolidation'),
- ('other', 'Others'),
('closed', 'Closed'),
], 'Internal Type', required=True, help="This type is used to differentiate types with "\
"special effects in Open ERP: view can not have entries, consolidation are accounts that "\
@@ -1143,7 +1142,7 @@ class account_move(osv.osv):
return amount
def _centralise(self, cr, uid, move, mode, context=None):
- assert(mode in ('debit', 'credit'), 'Invalid Mode') #to prevent sql injection
+ assert mode in ('debit', 'credit'), 'Invalid Mode' #to prevent sql injection
if context is None:
context = {}
@@ -1199,12 +1198,15 @@ class account_move(osv.osv):
#
# Validate a balanced move. If it is a centralised journal, create a move.
#
+
def validate(self, cr, uid, ids, context={}):
if context and ('__last_update' in context):
del context['__last_update']
- ok = True
+
+ valid_moves = [] #Maintains a list of moves which can be responsible to create analytic entries
+
for move in self.browse(cr, uid, ids, context):
- #unlink analytic lines on move_lines
+ # Unlink old analytic lines on move_lines
for obj_line in move.line_id:
for obj in obj_line.analytic_lines:
self.pool.get('account.analytic.line').unlink(cr,uid,obj.id)
@@ -1213,7 +1215,7 @@ class account_move(osv.osv):
amount = 0
line_ids = []
line_draft_ids = []
- company_id=None
+ company_id = None
for line in move.line_id:
amount += line.debit - line.credit
line_ids.append(line.id)
@@ -1229,52 +1231,60 @@ class account_move(osv.osv):
if line.account_id.currency_id.id != line.currency_id.id and (line.account_id.currency_id.id != line.account_id.company_id.currency_id.id or line.currency_id):
raise osv.except_osv(_('Error'), _("""Couldn't create move with currency different from the secondary currency of the account "%s - %s". Clear the secondary currency field of the account definition if you want to accept all currencies.""" % (line.account_id.code, line.account_id.name)))
- # Check that the move balances, the tolerance for debit/credit must
- # be smaller than the smallest value according to price accuracy
- # (hence the +1 below)
- # Example:
- # difference == 0.01 is OK iff price_accuracy <= 1!
- # difference == 0.0001 is OK iff price_accuracy <= 3!
- if abs(amount) < 10 ** -(int(config['price_accuracy'])+1):
+ if abs(amount) < 10 ** -4:
+ # If the move is balanced
+ # Add to the list of valid moves
+ # (analytic lines will be created later for valid moves)
+ valid_moves.append(move)
+
+ # Check whether the move lines are confirmed
+
if not len(line_draft_ids):
continue
+ # Update the move lines (set them as valid)
+
self.pool.get('account.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)
- todo = []
+
account = {}
account2 = {}
- if journal.type not in ('purchase','sale'):
- continue
+
+ if journal.type in ('purchase','sale'):
+ for line in move.line_id:
+ code = amount = 0
+ key = (line.account_id.id, line.tax_code_id.id)
+ if key in account2:
+ code = account2[key][0]
+ amount = account2[key][1] * (line.debit + line.credit)
+ elif line.account_id.id in account:
+ code = account[line.account_id.id][0]
+ amount = account[line.account_id.id][1] * (line.debit + line.credit)
+ if (code or amount) and not (line.tax_code_id or line.tax_amount):
+ self.pool.get('account.move.line').write(cr, uid, [line.id], {
+ 'tax_code_id': code,
+ 'tax_amount': amount
+ }, context, check=False)
+ elif journal.centralisation:
+ # If the move is not balanced, it must be centralised...
+
+ # Add to the list of valid moves
+ # (analytic lines will be created later for valid moves)
+ valid_moves.append(move)
- for line in move.line_id:
- code = amount = 0
- key = (line.account_id.id, line.tax_code_id.id)
- if key in account2:
- code = account2[key][0]
- amount = account2[key][1] * (line.debit + line.credit)
- elif line.account_id.id in account:
- code = account[line.account_id.id][0]
- amount = account[line.account_id.id][1] * (line.debit + line.credit)
- if (code or amount) and not (line.tax_code_id or line.tax_amount):
- self.pool.get('account.move.line').write(cr, uid, [line.id], {
- 'tax_code_id': code,
- 'tax_amount': amount
- }, context, check=False)
#
- # Compute VAT
+ # Update the move lines (set them as valid)
#
- continue
- if journal.centralisation:
self._centralise(cr, uid, move, 'debit', context=context)
self._centralise(cr, uid, move, 'credit', context=context)
self.pool.get('account.move.line').write(cr, uid, line_draft_ids, {
'state': 'valid'
}, context, check=False)
- continue
else:
+ # We can't validate it (it's unbalanced)
+ # Setting the lines as draft
self.pool.get('account.move.line').write(cr, uid, line_ids, {
'journal_id': move.journal_id.id,
'period_id': move.period_id.id,
@@ -1282,13 +1292,12 @@ class account_move(osv.osv):
#'tax_amount': False,
'state': 'draft'
}, context, check=False)
- ok = False
- if ok:
- list_ids = []
- for tmp in move.line_id:
- list_ids.append(tmp.id)
- self.pool.get('account.move.line').create_analytic_lines(cr, uid, list_ids, context)
- return ok
+ # Create analytic lines for the valid moves
+ for record in valid_moves:
+ self.pool.get('account.move.line').create_analytic_lines(cr, uid, [line.id for line in record.line_id], context)
+
+ return len(valid_moves) > 0
+
account_move()
class account_move_reconcile(osv.osv):
@@ -2056,7 +2065,6 @@ class account_add_tmpl_wizard(osv.osv_memory):
def _get_def_cparent(self, cr, uid, context):
acc_obj=self.pool.get('account.account')
tmpl_obj=self.pool.get('account.account.template')
- #print "Searching for ",context
tids=tmpl_obj.read(cr, uid, [context['tmpl_ids']], ['parent_id'])
if not tids or not tids[0]['parent_id']:
return False
@@ -2098,7 +2106,6 @@ class account_add_tmpl_wizard(osv.osv_memory):
# 'tax_ids': [(6,0,tax_ids)], todo!!
'company_id': company_id,
}
- # print "Creating:", vals
new_account = acc_obj.create(cr, uid, vals)
return {'type':'state', 'state': 'end' }
diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml
index fc10c58cc8f..7394fc54b7e 100644
--- a/addons/account/account_invoice_view.xml
+++ b/addons/account/account_invoice_view.xml
@@ -205,7 +205,7 @@
-
+
diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml
index 5946661136f..c96fb9fe8c7 100644
--- a/addons/account/account_view.xml
+++ b/addons/account/account_view.xml
@@ -3,8 +3,8 @@
+ Fiscal Year
+ -->
account.fiscalyear.form
@@ -12,7 +12,7 @@
form
-
+
@@ -57,17 +57,17 @@
search
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
@@ -133,9 +133,8 @@
-
+ Accounts
+ -->
account.account.form
account.account
@@ -143,21 +142,21 @@
diff --git a/addons/account/company.py b/addons/account/company.py
index 8ea9c80f694..613c702a46e 100644
--- a/addons/account/company.py
+++ b/addons/account/company.py
@@ -28,7 +28,7 @@ class res_company(osv.osv):
}
_defaults = {
- 'overdue_msg': lambda *a: 'Would your payment have been carried \
+ 'overdue_msg': 'Would your payment have been carried \
out after this mail was sent, please consider the present one as \
void. Do not hesitate to contact our accounting department'
}
diff --git a/addons/account/demo/account_minimal.xml b/addons/account/demo/account_minimal.xml
index 879fd18583d..308de35e316 100644
--- a/addons/account/demo/account_minimal.xml
+++ b/addons/account/demo/account_minimal.xml
@@ -18,42 +18,42 @@
balance
- Receivable
+ Receivable
receivable
asset
unreconciled
- Liability
+ Liability
liability
liability
balance
- Payable
+ Payable
payable
liability
unreconciled
- Income
+ Income
income
income
none
- Expense
+ Expense
expense
expense
none
- Equity
+ Equity
equity
balance
- Cash
+ Cash
cash
asset
balance
@@ -179,6 +179,7 @@ your own chart of account.
sale
+
@@ -201,6 +202,7 @@ your own chart of account.
purchase
+
@@ -241,7 +243,7 @@ your own chart of account.
-
+
property_account_expense
diff --git a/addons/account/i18n/bs.po b/addons/account/i18n/bs.po
index c04e9b901ad..2acdb44977c 100644
--- a/addons/account/i18n/bs.po
+++ b/addons/account/i18n/bs.po
@@ -1,19 +1,19 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * account
+# * account
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-02-12 13:05+0000\n"
-"Last-Translator: adnan \n"
+"PO-Revision-Date: 2010-07-07 08:48+0000\n"
+"Last-Translator: Bojan Markovic \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: 2010-06-22 04:03+0000\n"
+"X-Launchpad-Export-Date: 2010-07-08 03:50+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@@ -92,7 +92,8 @@ msgid "Unreconciled entries"
msgstr "Neporavnata knjiženja"
#. module: account
-#: field:account.invoice.tax,base_code_id:0 field:account.tax,base_code_id:0
+#: field:account.invoice.tax,base_code_id:0
+#: field:account.tax,base_code_id:0
#: field:account.tax.template,base_code_id:0
msgid "Base Code"
msgstr "Osnovni kod"
@@ -124,7 +125,8 @@ msgid "Residual"
msgstr "Ostatak"
#. module: account
-#: field:account.tax,base_sign:0 field:account.tax,ref_base_sign:0
+#: field:account.tax,base_sign:0
+#: field:account.tax,ref_base_sign:0
#: field:account.tax.template,base_sign:0
#: field:account.tax.template,ref_base_sign:0
msgid "Base Code Sign"
@@ -188,8 +190,10 @@ msgid "Move line select"
msgstr "Odabir retka prijenosa"
#. module: account
-#: rml:account.journal.period.print:0 rml:account.tax.code.entries:0
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: rml:account.journal.period.print:0
+#: rml:account.tax.code.entries:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
msgid "Entry label"
msgstr "Oznaka unosa"
@@ -204,12 +208,14 @@ msgid "Period Sum"
msgstr "Suma perioda"
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Compute Code (if type=code)"
msgstr "Kod za izračunavanje (ako je tip=Python kod)"
#. module: account
-#: view:account.move:0 view:account.move.line:0
+#: view:account.move:0
+#: view:account.move.line:0
msgid "Account Entry Line"
msgstr "Redak računa"
@@ -226,9 +232,12 @@ msgstr "Ponavljajuće stavke"
#. module: account
#: field:account.analytic.line,amount:0
#: field:account.bank.statement.line,amount:0
-#: field:account.bank.statement.reconcile.line,amount:0 rml:account.invoice:0
-#: field:account.invoice.tax,amount:0 field:account.move,amount:0
-#: field:account.tax,amount:0 field:account.tax.template,amount:0
+#: field:account.bank.statement.reconcile.line,amount:0
+#: rml:account.invoice:0
+#: field:account.invoice.tax,amount:0
+#: field:account.move,amount:0
+#: field:account.tax,amount:0
+#: field:account.tax.template,amount:0
#: xsl:account.transfer:0
msgid "Amount"
msgstr "Iznos"
@@ -269,7 +278,8 @@ msgstr ""
"vlastiti pogled za brži unos u svakoj temeljnici."
#. module: account
-#: help:account.invoice,date_due:0 help:account.invoice,payment_term:0
+#: help:account.invoice,date_due:0
+#: help:account.invoice,payment_term:0
msgid ""
"If you use payment terms, the due date will be computed automatically at the "
"generation of accounting entries. If you keep the payment term and the due "
@@ -278,12 +288,14 @@ msgid ""
msgstr ""
#. module: account
-#: selection:account.tax,type:0 selection:account.tax.template,type:0
+#: selection:account.tax,type:0
+#: selection:account.tax.template,type:0
msgid "Fixed"
msgstr "Fiksno"
#. module: account
-#: model:ir.actions.report.xml,name:account.account_overdue view:res.company:0
+#: model:ir.actions.report.xml,name:account.account_overdue
+#: view:res.company:0
msgid "Overdue Payments"
msgstr "Dospijela plaćanja"
@@ -299,14 +311,15 @@ msgid "Select period"
msgstr "Odaberite razdoblje"
#. module: account
-#: field:account.invoice,origin:0 field:account.invoice.line,origin:0
+#: field:account.invoice,origin:0
+#: field:account.invoice.line,origin:0
msgid "Origin"
msgstr "Izvor"
#. module: account
#: rml:account.analytic.account.journal:0
msgid "Move Name"
-msgstr ""
+msgstr "Pomjeri ime"
#. module: account
#: xsl:account.transfer:0
@@ -329,7 +342,8 @@ msgid "Delta Debit"
msgstr "Delta duguje"
#. module: account
-#: rml:account.invoice:0 field:account.invoice,amount_tax:0
+#: rml:account.invoice:0
+#: field:account.invoice,amount_tax:0
#: field:account.move.line,account_tax_id:0
msgid "Tax"
msgstr "Porez"
@@ -348,12 +362,14 @@ msgid "Analytic Account"
msgstr "Analitičko konto"
#. module: account
-#: field:account.tax,child_depend:0 field:account.tax.template,child_depend:0
+#: field:account.tax,child_depend:0
+#: field:account.tax.template,child_depend:0
msgid "Tax on Children"
-msgstr ""
+msgstr "Dječiji porez"
#. module: account
-#: rml:account.central.journal:0 rml:account.general.journal:0
+#: rml:account.central.journal:0
+#: rml:account.general.journal:0
#: field:account.journal,name:0
msgid "Journal Name"
msgstr "Naziv naloga za knjiženje"
@@ -421,8 +437,11 @@ msgid "Contra"
msgstr ""
#. module: account
-#: field:account.analytic.account,state:0 field:account.bank.statement,state:0
-#: field:account.invoice,state:0 view:account.move:0 view:account.move.line:0
+#: field:account.analytic.account,state:0
+#: field:account.bank.statement,state:0
+#: field:account.invoice,state:0
+#: view:account.move:0
+#: view:account.move.line:0
#: view:account.subscription:0
msgid "State"
msgstr "Stanje"
@@ -434,7 +453,8 @@ msgid "Unpaid Supplier Refunds"
msgstr "Neplaćeni povrati dobavljaču"
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Special Computation"
msgstr "Posebno računanje"
@@ -456,8 +476,10 @@ msgid "Disc.(%)"
msgstr "Popust (%)"
#. module: account
-#: rml:account.general.ledger:0 field:account.model,ref:0
-#: field:account.move,ref:0 rml:account.overdue:0
+#: rml:account.general.ledger:0
+#: field:account.model,ref:0
+#: field:account.move,ref:0
+#: rml:account.overdue:0
#: field:account.subscription,ref:0
msgid "Ref"
msgstr "Referenca"
@@ -650,7 +672,8 @@ msgid "Sub-Total :"
msgstr "Sub-Total :"
#. module: account
-#: field:account.analytic.account,line_ids:0 view:account.analytic.line:0
+#: field:account.analytic.account,line_ids:0
+#: view:account.analytic.line:0
#: model:ir.actions.act_window,name:account.action_account_analytic_line_form
#: model:ir.ui.menu,name:account.next_id_41
msgid "Analytic Entries"
@@ -682,7 +705,8 @@ msgid "Select the Period for Analysis"
msgstr "Izaberi period za analizu"
#. module: account
-#: field:account.tax,ref_tax_sign:0 field:account.tax,tax_sign:0
+#: field:account.tax,ref_tax_sign:0
+#: field:account.tax,tax_sign:0
#: field:account.tax.template,ref_tax_sign:0
#: field:account.tax.template,tax_sign:0
msgid "Tax Code Sign"
@@ -714,7 +738,8 @@ msgid "Field Name"
msgstr "Naziv polja"
#. module: account
-#: field:account.tax.code,sign:0 field:account.tax.code.template,sign:0
+#: field:account.tax.code,sign:0
+#: field:account.tax.code.template,sign:0
msgid "Sign for parent"
msgstr "Predznak za roditelja"
@@ -724,7 +749,8 @@ msgid "End of Year Entries Journal"
msgstr "Dnevnik knjiženja završetka godine"
#. module: account
-#: view:product.product:0 view:product.template:0
+#: view:product.product:0
+#: view:product.template:0
msgid "Purchase Properties"
msgstr "Karakteristike nabave"
@@ -744,9 +770,12 @@ msgid "Move Lines Created."
msgstr "Stvoreni retci prijenosa."
#. module: account
-#: field:account.fiscalyear,state:0 field:account.journal.period,state:0
-#: field:account.move,state:0 field:account.move.line,state:0
-#: field:account.period,state:0 field:account.subscription,state:0
+#: field:account.fiscalyear,state:0
+#: field:account.journal.period,state:0
+#: field:account.move,state:0
+#: field:account.move.line,state:0
+#: field:account.period,state:0
+#: field:account.subscription,state:0
msgid "Status"
msgstr "Stanje"
@@ -899,8 +928,10 @@ msgstr "Odaberite kontni plan"
#: rml:account.analytic.account.balance:0
#: rml:account.analytic.account.inverted.balance:0
#: rml:account.analytic.account.quantity_cost_ledger:0
-#: field:account.analytic.line,unit_amount:0 rml:account.invoice:0
-#: field:account.invoice.line,quantity:0 field:account.model.line,quantity:0
+#: field:account.analytic.line,unit_amount:0
+#: rml:account.invoice:0
+#: field:account.invoice.line,quantity:0
+#: field:account.model.line,quantity:0
#: field:account.move.line,quantity:0
msgid "Quantity"
msgstr "Količina"
@@ -911,7 +942,7 @@ msgstr "Količina"
#: wizard_field:account.partner.balance.report,init,date2:0
#: wizard_field:account.third_party_ledger.report,init,date2:0
msgid "End date"
-msgstr ""
+msgstr "Krajnji datum"
#. module: account
#: field:account.invoice.tax,base_amount:0
@@ -943,13 +974,16 @@ msgstr "Analitička faktura"
#: wizard_field:account.automatic.reconcile,init,period_id:0
#: field:account.bank.statement,period_id:0
#: wizard_field:account.central.journal.report,init,period_id:0
-#: view:account.fiscalyear:0 rml:account.general.journal:0
+#: view:account.fiscalyear:0
+#: rml:account.general.journal:0
#: wizard_field:account.general.journal.report,init,period_id:0
#: wizard_field:account.invoice.pay,init,period_id:0
-#: field:account.journal.period,period_id:0 field:account.move,period_id:0
+#: field:account.journal.period,period_id:0
+#: field:account.move,period_id:0
#: wizard_field:account.move.journal,init,period_id:0
#: field:account.move.line,period_id:0
-#: wizard_field:account.move.validate,init,period_id:0 view:account.period:0
+#: wizard_field:account.move.validate,init,period_id:0
+#: view:account.period:0
#: wizard_field:account.print.journal.report,init,period_id:0
#: field:account.subscription,period_nbr:0
msgid "Period"
@@ -971,7 +1005,8 @@ msgid "Net Total:"
msgstr "Ukupno netto:"
#. module: account
-#: view:account.fiscal.position:0 field:account.fiscal.position,name:0
+#: view:account.fiscal.position:0
+#: field:account.fiscal.position,name:0
#: field:account.fiscal.position.account,position_id:0
#: field:account.fiscal.position.account.template,position_id:0
#: field:account.fiscal.position.tax,position_id:0
@@ -1095,7 +1130,8 @@ msgid "Fiscal Position Templates"
msgstr "Predlošci fiskalne pozicije"
#. module: account
-#: rml:account.invoice:0 field:account.invoice.line,price_unit:0
+#: rml:account.invoice:0
+#: field:account.invoice.line,price_unit:0
msgid "Unit Price"
msgstr "Jedinična cijena"
@@ -1248,7 +1284,8 @@ msgid "Not reconciled transactions"
msgstr "Neusklađene transakcije"
#. module: account
-#: view:account.fiscal.position:0 field:account.fiscal.position,tax_ids:0
+#: view:account.fiscal.position:0
+#: field:account.fiscal.position,tax_ids:0
#: field:account.fiscal.position.template,tax_ids:0
msgid "Tax Mapping"
msgstr "Mapiranje poreza"
@@ -1270,7 +1307,8 @@ msgid "Write-Off account"
msgstr "Konto za otpis"
#. module: account
-#: field:account.model.line,model_id:0 field:account.subscription,model_id:0
+#: field:account.model.line,model_id:0
+#: field:account.subscription,model_id:0
msgid "Model"
msgstr "Model"
@@ -1296,9 +1334,11 @@ msgid "Select invoices you want to pay and manages advances"
msgstr "Odaberite fakture koje želite platiti i omogućuje avanse"
#. module: account
-#: selection:account.account,type:0 selection:account.account.template,type:0
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
#: model:account.account.type,name:account.account_type_root
-#: selection:account.analytic.account,type:0 field:account.journal,view_id:0
+#: selection:account.analytic.account,type:0
+#: field:account.journal,view_id:0
msgid "View"
msgstr "Prikaz"
@@ -1369,7 +1409,8 @@ msgstr "Tipovi konta"
#: wizard_field:account.central.journal.report,init,journal_id:0
#: wizard_field:account.general.journal.report,init,journal_id:0
#: field:account.invoice,journal_id:0
-#: field:account.journal.period,journal_id:0 field:account.model,journal_id:0
+#: field:account.journal.period,journal_id:0
+#: field:account.model,journal_id:0
#: field:account.move,journal_id:0
#: wizard_field:account.move.bank.reconcile,init,journal_id:0
#: wizard_field:account.move.journal,init,journal_id:0
@@ -1385,7 +1426,8 @@ msgid "Journal"
msgstr "Dnevnik"
#. module: account
-#: field:account.account,child_id:0 field:account.analytic.account,child_ids:0
+#: field:account.account,child_id:0
+#: field:account.analytic.account,child_ids:0
msgid "Child Accounts"
msgstr "Podkonta"
@@ -1411,7 +1453,8 @@ msgid "Statement reconcile line"
msgstr "Redak usklađivanja izvoda"
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Keep empty to use the income account"
msgstr "Ne popunjavati za upotrebu računa za prihod"
@@ -1538,7 +1581,8 @@ msgid "Account n°"
msgstr "Broj računa"
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Keep empty to use the expense account"
msgstr "Ostavite prazno za korištenje rashodovnog računa"
@@ -1548,7 +1592,8 @@ msgid "Account to reconcile"
msgstr "Račun za usklađivanje"
#. module: account
-#: rml:account.invoice:0 field:account.model.line,partner_id:0
+#: rml:account.invoice:0
+#: field:account.model.line,partner_id:0
#: field:account.move.line,partner_id:0
msgid "Partner Ref."
msgstr "Vezna oznaka partnera"
@@ -1560,12 +1605,14 @@ msgid "Receivable and Payable Accounts"
msgstr "Konta potraživanja i dugovanja"
#. module: account
-#: view:account.subscription:0 field:account.subscription,lines_id:0
+#: view:account.subscription:0
+#: field:account.subscription,lines_id:0
msgid "Subscription Lines"
msgstr "Retci pretplate"
#. module: account
-#: selection:account.analytic.journal,type:0 selection:account.journal,type:0
+#: selection:account.analytic.journal,type:0
+#: selection:account.journal,type:0
#: selection:account.tax,type_tax_use:0
#: selection:account.tax.template,type_tax_use:0
msgid "Purchase"
@@ -1729,7 +1776,8 @@ msgid "Period length (days)"
msgstr "Duljina razdoblja (dana)"
#. module: account
-#: selection:account.payment.term.line,value:0 selection:account.tax,type:0
+#: selection:account.payment.term.line,value:0
+#: selection:account.tax,type:0
#: selection:account.tax.template,type:0
msgid "Percent"
msgstr "Procenat"
@@ -1740,7 +1788,8 @@ msgid "Charts"
msgstr "Planovi"
#. module: account
-#: selection:account.analytic.journal,type:0 selection:account.journal,type:0
+#: selection:account.analytic.journal,type:0
+#: selection:account.journal,type:0
#: selection:account.tax,type_tax_use:0
#: selection:account.tax.template,type_tax_use:0
msgid "Sale"
@@ -1814,9 +1863,12 @@ msgstr "x Nalog za knjiženje knjižnih odobrenja troškova"
#. module: account
#: field:account.analytic.journal,type:0
-#: field:account.bank.statement.line,type:0 field:account.invoice,type:0
-#: field:account.journal,type:0 field:account.move,type:0
-#: field:account.move.reconcile,type:0 xsl:account.transfer:0
+#: field:account.bank.statement.line,type:0
+#: field:account.invoice,type:0
+#: field:account.journal,type:0
+#: field:account.move,type:0
+#: field:account.move.reconcile,type:0
+#: xsl:account.transfer:0
msgid "Type"
msgstr "Tip"
@@ -1964,7 +2016,8 @@ msgid "Journal-Period Name"
msgstr "Knjiženja - naziv perioda"
#. module: account
-#: field:account.tax.code,name:0 field:account.tax.code.template,name:0
+#: field:account.tax.code,name:0
+#: field:account.tax.code.template,name:0
msgid "Tax Case Name"
msgstr "Naziv poreznog pretinca"
@@ -1979,7 +2032,8 @@ msgstr ""
#. module: account
#: field:account.bank.statement.line,partner_id:0
#: field:account.bank.statement.reconcile,partner_id:0
-#: rml:account.general.ledger:0 field:account.invoice,partner_id:0
+#: rml:account.general.ledger:0
+#: field:account.invoice,partner_id:0
#: field:account.move,partner_id:0
#: wizard_field:account.partner.balance.report,init,result_selection:0
#: wizard_field:account.third_party_ledger.report,init,result_selection:0
@@ -2053,8 +2107,10 @@ msgstr "Prošlost"
#: field:account.bank.statement,currency:0
#: field:account.bank.statement.reconcile,total_currency:0
#: field:account.bank.statement.reconcile,total_second_currency:0
-#: rml:account.general.ledger:0 field:account.invoice,currency_id:0
-#: field:account.journal,currency:0 field:account.model.line,currency_id:0
+#: rml:account.general.ledger:0
+#: field:account.invoice,currency_id:0
+#: field:account.journal,currency:0
+#: field:account.model.line,currency_id:0
#: field:account.move.line,currency_id:0
msgid "Currency"
msgstr "Valuta"
@@ -2092,9 +2148,10 @@ msgid "Analytic Entry"
msgstr "Stavka analitike"
#. module: account
-#: view:res.company:0 field:res.company,overdue_msg:0
+#: view:res.company:0
+#: field:res.company,overdue_msg:0
msgid "Overdue Payments Message"
-msgstr ""
+msgstr "Poruka o dospjelim plaćanjima."
#. module: account
#: model:ir.actions.act_window,name:account.action_tax_code_tree
@@ -2144,7 +2201,8 @@ msgid "Detail"
msgstr "Detalji"
#. module: account
-#: selection:account.account,type:0 selection:account.account.template,type:0
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
msgid "Consolidation"
msgstr "Konsolidacija"
@@ -2239,16 +2297,21 @@ msgid "The account basis of the tax declaration."
msgstr ""
#. module: account
-#: rml:account.analytic.account.journal:0 field:account.analytic.line,date:0
+#: rml:account.analytic.account.journal:0
+#: field:account.analytic.line,date:0
#: field:account.bank.statement,date:0
#: field:account.bank.statement.line,date:0
-#: field:account.bank.statement.reconcile,name:0 rml:account.general.ledger:0
+#: field:account.bank.statement.reconcile,name:0
+#: rml:account.general.ledger:0
#: selection:account.general.ledger.report,checktype,sortbydate:0
-#: rml:account.journal.period.print:0 field:account.move,date:0
+#: rml:account.journal.period.print:0
+#: field:account.move,date:0
#: rml:account.overdue:0
#: wizard_field:account.subscription.generate,init,date:0
-#: field:account.subscription.line,date:0 rml:account.tax.code.entries:0
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: field:account.subscription.line,date:0
+#: rml:account.tax.code.entries:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
#: xsl:account.transfer:0
msgid "Date"
msgstr "Datum"
@@ -2265,7 +2328,8 @@ msgid "Unreconcile"
msgstr "Poništi usklađivanje"
#. module: account
-#: field:account.tax,type:0 field:account.tax.template,type:0
+#: field:account.tax,type:0
+#: field:account.tax.template,type:0
msgid "Tax Type"
msgstr "Tip poreza"
@@ -2275,7 +2339,8 @@ msgid "Statement Entries"
msgstr "Stavke izvoda"
#. module: account
-#: field:account.analytic.line,user_id:0 field:account.journal,user_id:0
+#: field:account.analytic.line,user_id:0
+#: field:account.journal,user_id:0
msgid "User"
msgstr "Korisnik"
@@ -2361,7 +2426,8 @@ msgid "Date End"
msgstr "Završni datum"
#. module: account
-#: view:account.bank.statement:0 field:account.move.reconcile,line_id:0
+#: view:account.bank.statement:0
+#: field:account.move.reconcile,line_id:0
#: model:ir.actions.act_window,name:account.action_move_line_search
#: model:ir.actions.act_window,name:account.action_move_line_tree1
#: model:ir.ui.menu,name:account.menu_action_move_line_search
@@ -2369,7 +2435,8 @@ msgid "Entry Lines"
msgstr "Stavke unosa"
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Applicable Code (if type=code)"
msgstr "Podobna šifra (if type=šifra)"
@@ -2394,7 +2461,8 @@ msgstr "Unos stavke po retku"
#. module: account
#: help:account.chart.template,tax_template_ids:0
msgid "List of all the taxes that have to be installed by the wizard"
-msgstr "Spisak svih poreza koji trebaju biti instalirani od strane čarobnjaka"
+msgstr ""
+"Spisak svih poreza koji trebaju biti instalirani od strane čarobnjaka"
#. module: account
#: rml:account.analytic.account.cost_ledger:0
@@ -2458,9 +2526,11 @@ msgstr "Iz analitičkog konta, stvori fakturu."
#: wizard_button:account.general.journal.report,init,end:0
#: wizard_button:account.general.ledger.report,account_selection,end:0
#: wizard_button:account.general.ledger.report,checktype,end:0
-#: view:account.invoice:0 wizard_button:account.invoice.pay,addendum,end:0
+#: view:account.invoice:0
+#: wizard_button:account.invoice.pay,addendum,end:0
#: wizard_button:account.invoice.pay,init,end:0
-#: wizard_button:account.invoice.refund,init,end:0 view:account.move:0
+#: wizard_button:account.invoice.refund,init,end:0
+#: view:account.move:0
#: wizard_button:account.move.bank.reconcile,init,end:0
#: wizard_button:account.move.journal,init,end:0
#: wizard_button:account.move.line.reconcile,addendum,end:0
@@ -2479,7 +2549,8 @@ msgstr "Iz analitičkog konta, stvori fakturu."
#: wizard_button:account.third_party_ledger.report,init,end:0
#: wizard_button:account.vat.declaration,init,end:0
#: wizard_button:account_use_models,init_form,end:0
-#: view:wizard.company.setup:0 view:wizard.multi.charts.accounts:0
+#: view:wizard.company.setup:0
+#: view:wizard.multi.charts.accounts:0
msgid "Cancel"
msgstr "Otkaži"
@@ -2489,8 +2560,10 @@ msgid "Acc. Type Name"
msgstr "Naziv tipa konta"
#. module: account
-#: help:account.tax,base_code_id:0 help:account.tax,ref_base_code_id:0
-#: help:account.tax,ref_tax_code_id:0 help:account.tax,tax_code_id:0
+#: help:account.tax,base_code_id:0
+#: help:account.tax,ref_base_code_id:0
+#: help:account.tax,ref_tax_code_id:0
+#: help:account.tax,tax_code_id:0
#: help:account.tax.template,base_code_id:0
#: help:account.tax.template,ref_base_code_id:0
#: help:account.tax.template,ref_tax_code_id:0
@@ -2504,7 +2577,8 @@ msgid "Litigation"
msgstr "Parnica"
#. module: account
-#: view:account.move.line:0 wizard_view:account.move.validate,init:0
+#: view:account.move.line:0
+#: wizard_view:account.move.validate,init:0
#: view:account.payment.term:0
msgid "Information"
msgstr "Obavijest"
@@ -2614,7 +2688,8 @@ msgid "Price"
msgstr "Cijena"
#. module: account
-#: rml:account.analytic.account.journal:0 rml:account.third_party_ledger:0
+#: rml:account.analytic.account.journal:0
+#: rml:account.third_party_ledger:0
#: rml:account.third_party_ledger_other:0
msgid "-"
msgstr ""
@@ -2681,13 +2756,17 @@ msgid "Invoice Reference"
msgstr "Referenca Fakture"
#. module: account
-#: field:account.account,name:0 field:account.account.template,name:0
+#: field:account.account,name:0
+#: field:account.account.template,name:0
#: rml:account.analytic.account.inverted.balance:0
#: field:account.bank.statement,name:0
#: field:account.bank.statement.line,name:0
-#: field:account.chart.template,name:0 field:account.config.wizard,name:0
-#: field:account.model.line,name:0 field:account.move,name:0
-#: field:account.move.line,name:0 field:account.move.reconcile,name:0
+#: field:account.chart.template,name:0
+#: field:account.config.wizard,name:0
+#: field:account.model.line,name:0
+#: field:account.move,name:0
+#: field:account.move.line,name:0
+#: field:account.move.reconcile,name:0
#: field:account.subscription,name:0
msgid "Name"
msgstr "Naziv"
@@ -2725,9 +2804,13 @@ msgid ""
"higher ones. The order is important if you have a tax that has several tax "
"children. In this case, the evaluation order is important."
msgstr ""
+"Polje sekvence koristi se da se poredaju porezni retci od najniže sekvence "
+"prema višima. Red je bitan ako imate porez koji ima više podporeza. U ovom "
+"slućaju, redosljed evaluacije je bitan."
#. module: account
-#: field:account.journal.column,view_id:0 view:account.journal.view:0
+#: field:account.journal.column,view_id:0
+#: view:account.journal.view:0
#: field:account.journal.view,name:0
#: model:ir.model,name:account.model_account_journal_view
msgid "Journal View"
@@ -2820,11 +2903,16 @@ msgid "Full Account Name"
msgstr "Puno ime konta"
#. module: account
-#: rml:account.account.balance:0 rml:account.analytic.account.analytic.check:0
-#: rml:account.analytic.account.balance:0 rml:account.general.ledger:0
-#: rml:account.journal.period.print:0 rml:account.partner.balance:0
-#: rml:account.tax.code.entries:0 rml:account.third_party_ledger:0
-#: rml:account.third_party_ledger_other:0 rml:account.vat.declaration:0
+#: rml:account.account.balance:0
+#: rml:account.analytic.account.analytic.check:0
+#: rml:account.analytic.account.balance:0
+#: rml:account.general.ledger:0
+#: rml:account.journal.period.print:0
+#: rml:account.partner.balance:0
+#: rml:account.tax.code.entries:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
+#: rml:account.vat.declaration:0
msgid "1cm 27.7cm 20cm 27.7cm"
msgstr "1cm 27.7cm 20cm 27.7cm"
@@ -2845,7 +2933,9 @@ msgid "Document: Customer account statement"
msgstr ""
#. module: account
-#: view:product.product:0 view:product.template:0 view:res.partner:0
+#: view:product.product:0
+#: view:product.template:0
+#: view:res.partner:0
msgid "Accounting"
msgstr "Računovodstvo"
@@ -2890,8 +2980,10 @@ msgid "Centralisation"
msgstr "Centralizacija"
#. module: account
-#: field:account.invoice.tax,tax_code_id:0 field:account.tax,description:0
-#: field:account.tax,tax_code_id:0 field:account.tax.template,tax_code_id:0
+#: field:account.invoice.tax,tax_code_id:0
+#: field:account.tax,description:0
+#: field:account.tax,tax_code_id:0
+#: field:account.tax.template,tax_code_id:0
#: model:ir.model,name:account.model_account_tax_code
msgid "Tax Code"
msgstr "Šifra poreza"
@@ -2933,12 +3025,14 @@ msgstr ""
"datuma stvaranja ili datuma stvaranja plus uvjeti plaćanja partnera."
#. module: account
-#: selection:account.analytic.journal,type:0 selection:account.journal,type:0
+#: selection:account.analytic.journal,type:0
+#: selection:account.journal,type:0
msgid "Situation"
msgstr "Stanje"
#. module: account
-#: rml:account.invoice:0 xsl:account.transfer:0
+#: rml:account.invoice:0
+#: xsl:account.transfer:0
msgid "Document"
msgstr "Dokument"
@@ -2976,7 +3070,8 @@ msgid "Cancel selected invoices"
msgstr "Poništi odabrane Fakture"
#. module: account
-#: view:account.analytic.journal:0 field:account.analytic.line,journal_id:0
+#: view:account.analytic.journal:0
+#: field:account.analytic.line,journal_id:0
#: field:account.journal,analytic_journal_id:0
#: model:ir.actions.report.xml,name:account.analytic_journal_print
#: model:ir.actions.wizard,name:account.account_analytic_account_journal_report
@@ -2999,23 +3094,28 @@ msgid "("
msgstr "("
#. module: account
-#: view:account.invoice:0 view:account.period:0 view:account.subscription:0
+#: view:account.invoice:0
+#: view:account.period:0
+#: view:account.subscription:0
msgid "Set to Draft"
msgstr "Postavi u pripremu"
#. module: account
-#: help:account.invoice,origin:0 help:account.invoice.line,origin:0
+#: help:account.invoice,origin:0
+#: help:account.invoice.line,origin:0
msgid "Reference of the document that produced this invoice."
msgstr "Referenca dokumenta koji je stvorio ovu fakturu."
#. module: account
-#: selection:account.account,type:0 selection:account.account.template,type:0
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
#: selection:account.aged.trial.balance,init,result_selection:0
msgid "Payable"
msgstr "Duguje"
#. module: account
-#: rml:account.invoice:0 field:account.invoice.tax,base:0
+#: rml:account.invoice:0
+#: field:account.invoice.tax,base:0
msgid "Base"
msgstr "Osnovica"
@@ -3025,7 +3125,8 @@ msgid "Model Name"
msgstr "Naziv modela"
#. module: account
-#: selection:account.account,type:0 selection:account.account.template,type:0
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
msgid "Others"
msgstr "Ostali"
@@ -3035,13 +3136,15 @@ msgid "8"
msgstr "8"
#. module: account
-#: view:account.invoice:0 view:account.move:0
+#: view:account.invoice:0
+#: view:account.move:0
#: wizard_button:account.move.validate,init,validate:0
msgid "Validate"
msgstr "Potvrdi"
#. module: account
-#: view:account.model:0 field:account.model,legend:0
+#: view:account.model:0
+#: field:account.model,legend:0
msgid "Legend"
msgstr "Legenda"
@@ -3056,14 +3159,17 @@ msgid "account.move.line.select"
msgstr ""
#. module: account
-#: view:account.account:0 rml:account.account.balance:0
+#: view:account.account:0
+#: rml:account.account.balance:0
#: wizard_field:account.account.balance.report,account_selection,Account_list:0
#: wizard_field:account.automatic.reconcile,init,writeoff_acc_id:0
#: field:account.bank.statement.line,account_id:0
#: field:account.bank.statement.reconcile.line,account_id:0
-#: field:account.invoice,account_id:0 field:account.invoice.line,account_id:0
+#: field:account.invoice,account_id:0
+#: field:account.invoice.line,account_id:0
#: field:account.journal,account_control_ids:0
-#: field:account.model.line,account_id:0 field:account.move.line,account_id:0
+#: field:account.model.line,account_id:0
+#: field:account.move.line,account_id:0
#: wizard_field:account.move.line.reconcile.select,init,account_id:0
#: wizard_field:account.move.line.unreconcile.select,init,account_id:0
#: model:ir.model,name:account.model_account_account
@@ -3084,9 +3190,12 @@ msgid "By Date and Period"
msgstr "Po datumu i razdoblju"
#. module: account
-#: view:account.account:0 view:account.account.template:0
-#: view:account.bank.statement:0 field:account.bank.statement.line,note:0
-#: field:account.fiscal.position,note:0 view:account.invoice.line:0
+#: view:account.account:0
+#: view:account.account.template:0
+#: view:account.bank.statement:0
+#: field:account.bank.statement.line,note:0
+#: field:account.fiscal.position,note:0
+#: view:account.invoice.line:0
#: field:account.invoice.line,note:0
msgid "Notes"
msgstr "Bilješke"
@@ -3099,7 +3208,8 @@ msgid ""
msgstr "Prijenosi računa fakture su usklađeni sa prijenosom računa plaćanja."
#. module: account
-#: rml:account.invoice:0 view:account.invoice:0
+#: rml:account.invoice:0
+#: view:account.invoice:0
#: field:account.invoice.line,invoice_line_tax_id:0
#: model:ir.actions.act_window,name:account.action_tax_form
#: model:ir.ui.menu,name:account.menu_action_tax_form
@@ -3124,15 +3234,21 @@ msgid "Statement encoding produces payment entries"
msgstr "Unos izvoda stvara stavke za plaćanje"
#. module: account
-#: field:account.account,code:0 rml:account.account.balance:0
-#: field:account.account.template,code:0 field:account.account.type,code:0
+#: field:account.account,code:0
+#: rml:account.account.balance:0
+#: field:account.account.template,code:0
+#: field:account.account.type,code:0
#: rml:account.analytic.account.analytic.check:0
#: rml:account.analytic.account.balance:0
#: rml:account.analytic.account.inverted.balance:0
-#: rml:account.analytic.account.journal:0 field:account.analytic.line,code:0
-#: field:account.config.wizard,code:0 field:account.fiscalyear,code:0
-#: rml:account.general.journal:0 field:account.journal,code:0
-#: rml:account.partner.balance:0 field:account.period,code:0
+#: rml:account.analytic.account.journal:0
+#: field:account.analytic.line,code:0
+#: field:account.config.wizard,code:0
+#: field:account.fiscalyear,code:0
+#: rml:account.general.journal:0
+#: field:account.journal,code:0
+#: rml:account.partner.balance:0
+#: field:account.period,code:0
msgid "Code"
msgstr "Šifra"
@@ -3142,7 +3258,8 @@ msgid "Financial Management"
msgstr "Upravljanje finansijama"
#. module: account
-#: selection:account.account.type,close_method:0 selection:account.tax,type:0
+#: selection:account.account.type,close_method:0
+#: selection:account.tax,type:0
#: selection:account.tax.template,type:0
msgid "None"
msgstr "Nijedan"
@@ -3169,7 +3286,8 @@ msgid "Additionnal Information"
msgstr "Dodatne informacije"
#. module: account
-#: field:account.tax,name:0 field:account.tax.template,name:0
+#: field:account.tax,name:0
+#: field:account.tax.template,name:0
#: rml:account.vat.declaration:0
msgid "Tax Name"
msgstr "Naziv poreza"
@@ -3246,7 +3364,8 @@ msgid "Partner Balance"
msgstr "Saldo partnera"
#. module: account
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
msgid "Third Party Ledger"
msgstr "Analitika treće strane"
@@ -3259,7 +3378,8 @@ msgstr ""
#. module: account
#: selection:account.tax,applicable_type:0
-#: field:account.tax,python_applicable:0 field:account.tax,python_compute:0
+#: field:account.tax,python_applicable:0
+#: field:account.tax,python_compute:0
#: selection:account.tax,type:0
#: selection:account.tax.template,applicable_type:0
#: field:account.tax.template,python_applicable:0
@@ -3298,7 +3418,8 @@ msgid "Import invoice"
msgstr "Uvoz fakture"
#. module: account
-#: view:account.invoice:0 view:wizard.company.setup:0
+#: view:account.invoice:0
+#: view:wizard.company.setup:0
#: view:wizard.multi.charts.accounts:0
msgid "Create"
msgstr "Kreiraj"
@@ -3314,7 +3435,8 @@ msgid "Invoice line"
msgstr "Redak fakture"
#. module: account
-#: field:account.account,shortcut:0 field:account.account.template,shortcut:0
+#: field:account.account,shortcut:0
+#: field:account.account.template,shortcut:0
msgid "Shortcut"
msgstr "Prečica"
@@ -3339,16 +3461,18 @@ msgstr "Današnji datum"
msgid ""
"The amount expressed in an optional other currency if it is a multi-currency "
"entry."
-msgstr ""
+msgstr "Iznos izražen u opcionalnoj drugoj valuti ako je viševalutni unos."
#. module: account
-#: field:account.tax,parent_id:0 field:account.tax.template,parent_id:0
+#: field:account.tax,parent_id:0
+#: field:account.tax.template,parent_id:0
msgid "Parent Tax Account"
msgstr "Porezni račun roditelja"
#. module: account
#: field:account.account,user_type:0
-#: field:account.account.template,user_type:0 view:account.account.type:0
+#: field:account.account.template,user_type:0
+#: view:account.account.type:0
#: field:account.analytic.account,type:0
#: model:ir.model,name:account.model_account_account_type
msgid "Account Type"
@@ -3384,7 +3508,8 @@ msgid "Central Journal"
msgstr "Glavni nalog za knjiženje"
#. module: account
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
msgid "Balance brought forward"
msgstr "Donešeni saldo"
@@ -3460,7 +3585,8 @@ msgid "Journal code"
msgstr "Šifra naloga za knjiženje"
#. module: account
-#: wizard_button:account.fiscalyear.close,init,close:0 view:account.model:0
+#: wizard_button:account.fiscalyear.close,init,close:0
+#: view:account.model:0
msgid "Create entries"
msgstr "Stvori stavke"
@@ -3495,6 +3621,8 @@ msgid ""
"This payment term will be used instead of the default one for the current "
"partner"
msgstr ""
+"Ovi uvjeti plaćanja će se koristiti umjesto podrazumijevanih za trenutnog "
+"partnera."
#. module: account
#: wizard_field:account.invoice.pay,addendum,comment:0
@@ -3516,11 +3644,14 @@ msgid ""
msgstr ""
#. module: account
-#: field:account.account.type,sequence:0 field:account.invoice.tax,sequence:0
-#: field:account.journal.column,sequence:0 field:account.model.line,sequence:0
+#: field:account.account.type,sequence:0
+#: field:account.invoice.tax,sequence:0
+#: field:account.journal.column,sequence:0
+#: field:account.model.line,sequence:0
#: field:account.payment.term.line,sequence:0
#: field:account.sequence.fiscalyear,sequence_id:0
-#: field:account.tax,sequence:0 field:account.tax.template,sequence:0
+#: field:account.tax,sequence:0
+#: field:account.tax.template,sequence:0
#: field:fiscalyear.seq,sequence_id:0
msgid "Sequence"
msgstr "Redoslijed"
@@ -3588,7 +3719,8 @@ msgstr "Konto pretplate"
#. module: account
#: field:account.model.line,date_maturity:0
-#: field:account.move.line,date_maturity:0 rml:account.overdue:0
+#: field:account.move.line,date_maturity:0
+#: rml:account.overdue:0
msgid "Maturity date"
msgstr "Datum dospijeća"
@@ -3608,7 +3740,8 @@ msgid "Account Configure Wizard "
msgstr "Čarobnjak za konfiguraciju računa "
#. module: account
-#: field:account.config.wizard,date1:0 field:account.fiscalyear,date_start:0
+#: field:account.config.wizard,date1:0
+#: field:account.fiscalyear,date_start:0
#: field:account.subscription,date_start:0
msgid "Start Date"
msgstr "Početni datum"
@@ -3646,7 +3779,8 @@ msgid "Unreconciled"
msgstr "Neusklađen"
#. module: account
-#: field:account.account,note:0 field:account.account.template,note:0
+#: field:account.account,note:0
+#: field:account.account.template,note:0
msgid "Note"
msgstr "Bilješka"
@@ -3670,7 +3804,8 @@ msgid "Entry Sequence"
msgstr "Redoslijed unosa"
#. module: account
-#: selection:account.account,type:0 selection:account.account.template,type:0
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
msgid "Closed"
msgstr "Zatvoreno"
@@ -3795,9 +3930,12 @@ msgid "Code/Date"
msgstr "Šifra/Datum"
#. module: account
-#: field:account.account,active:0 field:account.analytic.account,active:0
-#: field:account.analytic.journal,active:0 field:account.journal,active:0
-#: field:account.journal.period,active:0 field:account.payment.term,active:0
+#: field:account.account,active:0
+#: field:account.analytic.account,active:0
+#: field:account.analytic.journal,active:0
+#: field:account.journal,active:0
+#: field:account.journal.period,active:0
+#: field:account.payment.term,active:0
#: field:account.tax,active:0
msgid "Active"
msgstr "Aktivan"
@@ -3849,15 +3987,20 @@ msgid "Secondary Currency"
msgstr "Sekundarna valuta"
#. module: account
-#: field:account.account,credit:0 rml:account.account.balance:0
+#: field:account.account,credit:0
+#: rml:account.account.balance:0
#: field:account.analytic.account,credit:0
#: rml:account.analytic.account.balance:0
#: rml:account.analytic.account.cost_ledger:0
#: rml:account.analytic.account.inverted.balance:0
-#: rml:account.central.journal:0 rml:account.journal.period.print:0
-#: field:account.model.line,credit:0 field:account.move.line,credit:0
-#: rml:account.partner.balance:0 rml:account.tax.code.entries:0
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: rml:account.central.journal:0
+#: rml:account.journal.period.print:0
+#: field:account.model.line,credit:0
+#: field:account.move.line,credit:0
+#: rml:account.partner.balance:0
+#: rml:account.tax.code.entries:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
#: rml:account.vat.declaration:0
#: field:report.hr.timesheet.invoice.journal,cost:0
msgid "Credit"
@@ -3882,7 +4025,7 @@ msgstr "Konto za povrat poreza"
#: field:account.tax.code,child_ids:0
#: field:account.tax.code.template,child_ids:0
msgid "Child Codes"
-msgstr ""
+msgstr "Podšifre"
#. module: account
#: field:account.invoice,move_name:0
@@ -3890,7 +4033,8 @@ msgid "Account Move"
msgstr "Konto prijenosa"
#. module: account
-#: view:account.bank.statement:0 field:account.bank.statement,line_ids:0
+#: view:account.bank.statement:0
+#: field:account.bank.statement,line_ids:0
msgid "Statement lines"
msgstr "Retci izvoda"
@@ -3986,15 +4130,18 @@ msgid "Journal Column"
msgstr "Kolona naloga za knjiženje"
#. module: account
-#: selection:account.fiscalyear,state:0 selection:account.invoice,state:0
-#: selection:account.journal.period,state:0 selection:account.period,state:0
+#: selection:account.fiscalyear,state:0
+#: selection:account.invoice,state:0
+#: selection:account.journal.period,state:0
+#: selection:account.period,state:0
#: selection:account.subscription,state:0
msgid "Done"
msgstr "Završeno"
#. module: account
#: wizard_field:account.account.balance.report,checktype,periods:0
-#: field:account.config.wizard,period:0 view:account.fiscalyear:0
+#: field:account.config.wizard,period:0
+#: view:account.fiscalyear:0
#: field:account.fiscalyear,period_ids:0
#: wizard_field:account.general.ledger.report,checktype,periods:0
#: wizard_field:account.partner.balance.report,init,periods:0
@@ -4007,7 +4154,8 @@ msgid "Periods"
msgstr "Razdoblja"
#. module: account
-#: rml:account.invoice:0 view:account.invoice:0
+#: rml:account.invoice:0
+#: view:account.invoice:0
#: field:account.move.line,invoice:0
#: model:ir.model,name:account.model_account_invoice
#: model:res.request.link,name:account.req_link_invoice
@@ -4034,7 +4182,8 @@ msgid "Analytic costs to reinvoice purchases, timesheets, ..."
msgstr "Analitički troškovi za refakturiranje nabave, timesheet-ovi,..."
#. module: account
-#: field:account.account,tax_ids:0 field:account.account.template,tax_ids:0
+#: field:account.account,tax_ids:0
+#: field:account.account.template,tax_ids:0
msgid "Default Taxes"
msgstr "Zadani porezi"
@@ -4052,6 +4201,8 @@ msgid ""
"reports, so that you can see positive figures instead of negative ones in "
"expenses accounts."
msgstr ""
+"Omogućuje da mijenjate predznak bilanse prikazane na izvještaju, tako da "
+"vidite pozitivne iznose (umjesto negativnih) na kontima troškova"
#. module: account
#: help:account.config.wizard,code:0
@@ -4090,7 +4241,8 @@ msgstr "Tip kontrola"
#. module: account
#: field:account.analytic.account,name:0
#: rml:account.analytic.account.analytic.check:0
-#: rml:account.analytic.account.balance:0 rml:account.central.journal:0
+#: rml:account.analytic.account.balance:0
+#: rml:account.central.journal:0
msgid "Account Name"
msgstr "Naziv konta"
@@ -4181,7 +4333,8 @@ msgid "Import file from your bank statement"
msgstr "Uvezi datoteku iz bankovnog izvoda"
#. module: account
-#: field:account.account,type:0 field:account.account.template,type:0
+#: field:account.account,type:0
+#: field:account.account.template,type:0
msgid "Internal Type"
msgstr "Interni tip"
@@ -4207,12 +4360,14 @@ msgid "Posted"
msgstr "Proknjiženo"
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Credit Notes"
msgstr "Knjižna odobrenja"
#. module: account
-#: field:account.config.wizard,date2:0 field:account.fiscalyear,date_stop:0
+#: field:account.config.wizard,date2:0
+#: field:account.fiscalyear,date_stop:0
msgid "End Date"
msgstr "Završni datum"
@@ -4233,7 +4388,8 @@ msgid "Day of the Month"
msgstr "Dan u mjesecu"
#. module: account
-#: field:account.analytic.journal,line_ids:0 field:account.tax.code,line_ids:0
+#: field:account.analytic.journal,line_ids:0
+#: field:account.tax.code,line_ids:0
msgid "Lines"
msgstr "Retci"
@@ -4251,7 +4407,8 @@ msgid ""
msgstr ""
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Tax Declaration"
msgstr "Porezni iskaz"
@@ -4263,7 +4420,7 @@ msgstr "Datoteka izvoda"
#. module: account
#: view:ir.sequence:0
msgid "Fiscal Year Sequences"
-msgstr ""
+msgstr "Sekvenca fiskalne godine"
#. module: account
#: view:account.model.line:0
@@ -4311,12 +4468,14 @@ msgid "The optional quantity on entries"
msgstr ""
#. module: account
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
msgid "JNRL"
msgstr "JNRL"
#. module: account
-#: view:account.fiscalyear:0 view:account.period:0
+#: view:account.fiscalyear:0
+#: view:account.period:0
msgid "States"
msgstr "Stanja"
@@ -4352,7 +4511,8 @@ msgstr "Početni datum"
#: rml:account.analytic.account.balance:0
#: rml:account.analytic.account.inverted.balance:0
#: rml:account.analytic.account.quantity_cost_ledger:0
-#: field:account.invoice,amount_total:0 field:account.invoice,check_total:0
+#: field:account.invoice,amount_total:0
+#: field:account.invoice,check_total:0
msgid "Total"
msgstr "Ukupno"
@@ -4439,7 +4599,7 @@ msgstr "Unos stavaka po prijenosu"
#. module: account
#: wizard_view:account.analytic.account.chart,init:0
msgid "Analytic Account Charts"
-msgstr ""
+msgstr "Analitički kontni planovi"
#. module: account
#: wizard_field:account.aged.trial.balance,init,result_selection:0
@@ -4471,9 +4631,11 @@ msgstr "Potvrđene stavke iz fakture"
#: field:account.fiscal.position,company_id:0
#: field:account.fiscalyear,company_id:0
#: wizard_field:account.general.ledger.report,checktype,company_id:0
-#: field:account.invoice,company_id:0 field:account.journal,company_id:0
+#: field:account.invoice,company_id:0
+#: field:account.journal,company_id:0
#: wizard_field:account.partner.balance.report,init,company_id:0
-#: field:account.tax,company_id:0 field:account.tax.code,company_id:0
+#: field:account.tax,company_id:0
+#: field:account.tax.code,company_id:0
#: wizard_field:account.third_party_ledger.report,init,company_id:0
#: wizard_field:account.vat.declaration,init,company_id:0
#: field:wizard.company.setup,company_id:0
@@ -4570,9 +4732,12 @@ msgid "Print Aged Trial Balance"
msgstr "Ispis zrelog probnog salda"
#. module: account
-#: field:account.analytic.line,ref:0 field:account.bank.statement.line,ref:0
-#: field:account.model.line,ref:0 field:account.move.line,ref:0
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: field:account.analytic.line,ref:0
+#: field:account.bank.statement.line,ref:0
+#: field:account.model.line,ref:0
+#: field:account.move.line,ref:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
msgid "Ref."
msgstr "Referenca"
@@ -4649,7 +4814,8 @@ msgid "Control Invoice"
msgstr "Kontroliraj fakturu"
#. module: account
-#: selection:account.account,type:0 selection:account.account.template,type:0
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
#: selection:account.aged.trial.balance,init,result_selection:0
msgid "Receivable"
msgstr "Potraživanja"
@@ -4676,7 +4842,8 @@ msgstr "PDV:"
#. module: account
#: rml:account.analytic.account.cost_ledger:0
#: rml:account.analytic.account.quantity_cost_ledger:0
-#: rml:account.central.journal:0 rml:account.general.journal:0
+#: rml:account.central.journal:0
+#: rml:account.general.journal:0
#: rml:account.invoice:0
msgid "Total:"
msgstr "Ukupno:"
@@ -4687,7 +4854,8 @@ msgid "account.analytic.journal"
msgstr "account.analytic.journa"
#. module: account
-#: view:account.fiscal.position:0 field:account.fiscal.position,account_ids:0
+#: view:account.fiscal.position:0
+#: field:account.fiscal.position,account_ids:0
#: field:account.fiscal.position.template,account_ids:0
msgid "Account Mapping"
msgstr "Mapiranje konta"
@@ -4703,7 +4871,8 @@ msgid "Account Reconciliation"
msgstr "Usklađivanje konta"
#. module: account
-#: view:account.bank.statement:0 selection:account.bank.statement,state:0
+#: view:account.bank.statement:0
+#: selection:account.bank.statement,state:0
msgid "Confirm"
msgstr "Potvrdi"
@@ -4718,7 +4887,8 @@ msgid "Parent Account Template"
msgstr "Predložak roditeljskog računa"
#. module: account
-#: help:account.tax,domain:0 help:account.tax.template,domain:0
+#: help:account.tax,domain:0
+#: help:account.tax.template,domain:0
msgid ""
"This field is only used if you develop your own module allowing developers "
"to create specific taxes in a custom domain."
@@ -4738,7 +4908,8 @@ msgid "Analytic account"
msgstr "Analitički konto"
#. module: account
-#: rml:account.invoice:0 selection:account.invoice,type:0
+#: rml:account.invoice:0
+#: selection:account.invoice,type:0
msgid "Supplier Invoice"
msgstr "Ulazna faktura"
@@ -4748,16 +4919,22 @@ msgid "Valid"
msgstr "Potvrđeno"
#. module: account
-#: field:account.account,debit:0 rml:account.account.balance:0
+#: field:account.account,debit:0
+#: rml:account.account.balance:0
#: field:account.analytic.account,debit:0
#: rml:account.analytic.account.balance:0
#: rml:account.analytic.account.cost_ledger:0
#: rml:account.analytic.account.inverted.balance:0
-#: rml:account.central.journal:0 rml:account.general.ledger:0
-#: rml:account.journal.period.print:0 field:account.model.line,debit:0
-#: field:account.move.line,debit:0 rml:account.partner.balance:0
-#: rml:account.tax.code.entries:0 rml:account.third_party_ledger:0
-#: rml:account.third_party_ledger_other:0 rml:account.vat.declaration:0
+#: rml:account.central.journal:0
+#: rml:account.general.ledger:0
+#: rml:account.journal.period.print:0
+#: field:account.model.line,debit:0
+#: field:account.move.line,debit:0
+#: rml:account.partner.balance:0
+#: rml:account.tax.code.entries:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
+#: rml:account.vat.declaration:0
#: field:report.hr.timesheet.invoice.journal,revenue:0
msgid "Debit"
msgstr "Duguje"
@@ -4819,7 +4996,8 @@ msgid "Reporting"
msgstr "Izvještavanje"
#. module: account
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
msgid "/"
msgstr "/"
@@ -4850,7 +5028,8 @@ msgid "Configuration"
msgstr "Postavke"
#. module: account
-#: view:account.analytic.line:0 view:account.invoice:0
+#: view:account.analytic.line:0
+#: view:account.invoice:0
msgid "Total amount"
msgstr "Ukupni iznos"
@@ -4900,12 +5079,14 @@ msgid "Paid invoice"
msgstr "Plaćena faktura"
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Tax Definition"
msgstr "Definicija poreza"
#. module: account
-#: field:account.tax,tax_group:0 field:account.tax.template,tax_group:0
+#: field:account.tax,tax_group:0
+#: field:account.tax.template,tax_group:0
msgid "Tax Group"
msgstr "Grupa poreza"
@@ -4948,7 +5129,8 @@ msgid "With movements"
msgstr "Sa kretanjima"
#. module: account
-#: field:account.tax,domain:0 field:account.tax.template,domain:0
+#: field:account.tax,domain:0
+#: field:account.tax.template,domain:0
msgid "Domain"
msgstr "Domena"
@@ -4973,7 +5155,9 @@ msgid "Manually"
msgstr "Ručno"
#. module: account
-#: view:account.invoice:0 view:account.tax:0 view:account.tax.template:0
+#: view:account.invoice:0
+#: view:account.tax:0
+#: view:account.tax.template:0
#: selection:account.vat.declaration,init,based_on:0
#: model:ir.actions.act_window,name:account.act_res_partner_2_account_invoice_opened
#: model:ir.actions.act_window,name:account.action_invoice_tree
@@ -4990,7 +5174,8 @@ msgid "Payable Accounts"
msgstr "Dugovni računi"
#. module: account
-#: view:account.invoice.line:0 field:account.invoice.tax,invoice_id:0
+#: view:account.invoice.line:0
+#: field:account.invoice.tax,invoice_id:0
msgid "Invoice Line"
msgstr "Redak fakture"
@@ -5041,7 +5226,8 @@ msgid "The optional other currency if it is a multi-currency entry."
msgstr ""
#. module: account
-#: view:account.invoice:0 field:account.invoice,payment_ids:0
+#: view:account.invoice:0
+#: field:account.invoice,payment_ids:0
#: selection:account.vat.declaration,init,based_on:0
msgid "Payments"
msgstr "Plaćanja"
@@ -5087,9 +5273,12 @@ msgstr "Odaberite datum nalofa za knjiženje i plaćanja"
#. module: account
#: selection:account.analytic.account,state:0
#: selection:account.bank.statement,state:0
-#: selection:account.fiscalyear,state:0 selection:account.invoice,state:0
-#: selection:account.journal.period,state:0 selection:account.move,state:0
-#: selection:account.move.line,state:0 selection:account.period,state:0
+#: selection:account.fiscalyear,state:0
+#: selection:account.invoice,state:0
+#: selection:account.journal.period,state:0
+#: selection:account.move,state:0
+#: selection:account.move.line,state:0
+#: selection:account.period,state:0
#: selection:account.subscription,state:0
msgid "Draft"
msgstr "U pripremi"
@@ -5116,9 +5305,10 @@ msgid "Are you sure ?"
msgstr "Jeste li sigurni?"
#. module: account
-#: rml:account.invoice:0 view:account.invoice:0
+#: rml:account.invoice:0
+#: view:account.invoice:0
msgid "PRO-FORMA"
-msgstr "Predračun"
+msgstr "PRO-FORMA"
#. module: account
#: field:account.move.reconcile,line_partial_ids:0
@@ -5152,16 +5342,22 @@ msgid "Supplier Invoice Process"
msgstr "Proces fakturiranja dobavljača"
#. module: account
-#: rml:account.account.balance:0 rml:account.analytic.account.analytic.check:0
-#: rml:account.analytic.account.balance:0 rml:account.general.ledger:0
-#: rml:account.journal.period.print:0 rml:account.partner.balance:0
-#: rml:account.tax.code.entries:0 rml:account.third_party_ledger:0
-#: rml:account.third_party_ledger_other:0 rml:account.vat.declaration:0
+#: rml:account.account.balance:0
+#: rml:account.analytic.account.analytic.check:0
+#: rml:account.analytic.account.balance:0
+#: rml:account.general.ledger:0
+#: rml:account.journal.period.print:0
+#: rml:account.partner.balance:0
+#: rml:account.tax.code.entries:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
+#: rml:account.vat.declaration:0
msgid "Page"
msgstr "Stranica"
#. module: account
-#: view:account.move:0 view:account.move.line:0
+#: view:account.move:0
+#: view:account.move.line:0
msgid "Optional Information"
msgstr "Dodatne informacije"
@@ -5177,7 +5373,8 @@ msgid "Receivable and Payable"
msgstr "Potraživanja i dugovanja"
#. module: account
-#: rml:account.account.balance:0 rml:account.general.journal:0
+#: rml:account.account.balance:0
+#: rml:account.general.journal:0
msgid ":"
msgstr ":"
@@ -5200,7 +5397,8 @@ msgid ""
msgstr ""
#. module: account
-#: view:account.bank.statement:0 view:account.bank.statement.reconcile:0
+#: view:account.bank.statement:0
+#: view:account.bank.statement.reconcile:0
#: view:account.subscription:0
msgid "Compute"
msgstr "Izračunaj"
@@ -5244,7 +5442,8 @@ msgid "End of period"
msgstr "Kraj razdoblja"
#. module: account
-#: view:account.move:0 model:ir.model,name:account.model_account_move
+#: view:account.move:0
+#: model:ir.model,name:account.model_account_move
msgid "Account Entry"
msgstr "Stavka konta"
@@ -5255,7 +5454,8 @@ msgid "General Journal"
msgstr "Opći nalog za knjiženje"
#. module: account
-#: field:account.account,balance:0 rml:account.account.balance:0
+#: field:account.account,balance:0
+#: rml:account.account.balance:0
#: selection:account.account.type,close_method:0
#: field:account.analytic.account,balance:0
#: rml:account.analytic.account.balance:0
@@ -5263,9 +5463,12 @@ msgstr "Opći nalog za knjiženje"
#: rml:account.analytic.account.inverted.balance:0
#: field:account.bank.statement,balance_end:0
#: field:account.bank.statement.reconcile,total_balance:0
-#: rml:account.general.ledger:0 field:account.move.line,balance:0
-#: rml:account.partner.balance:0 selection:account.payment.term.line,value:0
-#: selection:account.tax,type:0 rml:account.third_party_ledger:0
+#: rml:account.general.ledger:0
+#: field:account.move.line,balance:0
+#: rml:account.partner.balance:0
+#: selection:account.payment.term.line,value:0
+#: selection:account.tax,type:0
+#: rml:account.third_party_ledger:0
#: rml:account.third_party_ledger_other:0
msgid "Balance"
msgstr "Saldo"
@@ -5309,8 +5512,11 @@ msgid "The sequence used for invoice numbers in this journal."
msgstr ""
#. module: account
-#: view:account.account:0 view:account.account.template:0
-#: view:account.journal:0 view:account.move:0 view:account.move.line:0
+#: view:account.account:0
+#: view:account.account.template:0
+#: view:account.journal:0
+#: view:account.move:0
+#: view:account.move.line:0
msgid "General Information"
msgstr "Opće informacije"
@@ -5352,7 +5558,8 @@ msgid "List of Accounts"
msgstr "Lista konta"
#. module: account
-#: view:product.product:0 view:product.template:0
+#: view:product.product:0
+#: view:product.template:0
msgid "Sales Properties"
msgstr "Svojstva prodaje"
@@ -5445,11 +5652,15 @@ msgstr "IntraCom"
#: view:account.analytic.account:0
#: field:account.analytic.account,description:0
#: field:account.analytic.line,name:0
-#: field:account.bank.statement.reconcile.line,name:0 rml:account.invoice:0
-#: field:account.invoice,name:0 field:account.invoice.line,name:0
+#: field:account.bank.statement.reconcile.line,name:0
+#: rml:account.invoice:0
+#: field:account.invoice,name:0
+#: field:account.invoice.line,name:0
#: wizard_field:account.invoice.refund,init,description:0
-#: rml:account.overdue:0 field:account.payment.term,note:0
-#: field:account.tax.code,info:0 field:account.tax.code.template,info:0
+#: rml:account.overdue:0
+#: field:account.payment.term,note:0
+#: field:account.tax.code,info:0
+#: field:account.tax.code.template,info:0
msgid "Description"
msgstr "Opis"
@@ -5493,7 +5704,8 @@ msgid ""
msgstr ""
#. module: account
-#: field:account.tax.code,code:0 field:account.tax.code.template,code:0
+#: field:account.tax.code,code:0
+#: field:account.tax.code.template,code:0
msgid "Case Code"
msgstr "Šifra pretinca"
@@ -5575,7 +5787,8 @@ msgstr "Definicija modela"
#. module: account
#: model:account.account.type,name:account.account_type_cash_moves
-#: selection:account.analytic.journal,type:0 selection:account.journal,type:0
+#: selection:account.analytic.journal,type:0
+#: selection:account.journal,type:0
msgid "Cash"
msgstr "Gotovina"
@@ -5615,7 +5828,8 @@ msgid "Keep empty for all open fiscal year"
msgstr "Ostavite prazno za sve otvorene fiskalne godine"
#. module: account
-#: rml:account.invoice:0 selection:account.invoice,type:0
+#: rml:account.invoice:0
+#: selection:account.invoice,type:0
msgid "Supplier Refund"
msgstr "Povrat dobavljaču"
@@ -5660,10 +5874,14 @@ msgid ""
"This account will be used to value outgoing stock for the current product "
"category"
msgstr ""
+"Ovaj konto će se koristiti za vrijednost izlazne količine trenutne "
+"kategorije proizvoda"
#. module: account
-#: help:account.tax,base_sign:0 help:account.tax,ref_base_sign:0
-#: help:account.tax,ref_tax_sign:0 help:account.tax,tax_sign:0
+#: help:account.tax,base_sign:0
+#: help:account.tax,ref_base_sign:0
+#: help:account.tax,ref_tax_sign:0
+#: help:account.tax,tax_sign:0
#: help:account.tax.template,base_sign:0
#: help:account.tax.template,ref_base_sign:0
#: help:account.tax.template,ref_tax_sign:0
@@ -5697,8 +5915,10 @@ msgid "Name of the fiscal year as displayed on screens."
msgstr "Naziv fiskalne godine kako je prikazano na zaslonima"
#. module: account
-#: field:account.invoice,payment_term:0 view:account.payment.term:0
-#: field:account.payment.term,name:0 view:account.payment.term.line:0
+#: field:account.invoice,payment_term:0
+#: view:account.payment.term:0
+#: field:account.payment.term,name:0
+#: view:account.payment.term.line:0
#: field:account.payment.term.line,payment_id:0
#: model:ir.model,name:account.model_account_payment_term
#: field:res.partner,property_payment_term:0
@@ -5755,7 +5975,8 @@ msgstr "Da"
#. module: account
#: help:account.account,reconcile:0
-msgid "Check this if the user is allowed to reconcile entries in this account."
+msgid ""
+"Check this if the user is allowed to reconcile entries in this account."
msgstr "Provjeri da li je korisniku dozvoljeno poravnavanje unosa na kontu."
#. module: account
@@ -5780,7 +6001,8 @@ msgid "Accounting Dashboard"
msgstr ""
#. module: account
-#: view:board.board:0 model:ir.actions.act_window,name:account.act_my_account
+#: view:board.board:0
+#: model:ir.actions.act_window,name:account.act_my_account
msgid "Accounts to invoice"
msgstr ""
@@ -5793,12 +6015,12 @@ msgstr ""
#. module: account
#: view:board.board:0
msgid "Aged receivables"
-msgstr ""
+msgstr "Zastarjela potraživanja"
#. module: account
#: model:ir.module.module,shortdesc:account.module_meta_information
msgid "Board for accountant"
-msgstr ""
+msgstr "Tabla za računovođu"
#. module: account
#: model:ir.actions.act_window,name:account.action_aged_income
@@ -5823,64 +6045,64 @@ msgstr ""
#. module: account
#: wizard_field:account.balance.account.balance.report,init,show_columns:0
msgid "Show Debit/Credit Information"
-msgstr "Prikaži duguje/potražuje podatke"
+msgstr ""
#. module: account
#: selection:account.balance.account.balance.report,init,account_choice:0
msgid "All accounts"
-msgstr "Svi konta"
+msgstr ""
#. module: account
#: wizard_field:account.balance.account.balance.report,init,period_manner:0
msgid "Entries Selection Based on"
-msgstr "Odabir stavaka zasnovan na"
+msgstr ""
#. module: account
#: wizard_view:account.balance.account.balance.report,backtoinit:0
#: wizard_view:account.balance.account.balance.report,zero_years:0
msgid "Notification"
-msgstr "Obavještenje"
+msgstr ""
#. module: account
#: selection:account.balance.account.balance.report,init,period_manner:0
msgid "Financial Period"
-msgstr "Financijsko razdoblje"
+msgstr ""
#. module: account
#: model:ir.actions.report.xml,name:account.account_account_balance
#: model:ir.actions.report.xml,name:account.account_account_balance_landscape
msgid "Account balance"
-msgstr "Saldo konta"
+msgstr ""
#. module: account
#: wizard_view:account.balance.account.balance.report,init:0
msgid "Select Period(s)"
-msgstr "Odaberite razdoblja"
+msgstr ""
#. module: account
#: selection:account.balance.account.balance.report,init,compare_pattern:0
msgid "Percentage"
-msgstr "Procenat"
+msgstr ""
#. module: account
#: wizard_field:account.balance.account.balance.report,init,compare_pattern:0
msgid "Compare Selected Years In Terms Of"
-msgstr "Usporedi odabrane godine pod uvjetima"
+msgstr ""
#. module: account
#: wizard_view:account.balance.account.balance.report,init:0
msgid "Select Fiscal Year(s)(Maximum Three Years)"
-msgstr "Odaberite fiskalne godine (Maksimalno 3 godine)"
+msgstr ""
#. module: account
#: wizard_field:account.balance.account.balance.report,init,select_account:0
msgid "Select Reference Account(for % comparision)"
-msgstr "Izaberi odgovarajuća konta (za poređenje u %)"
+msgstr ""
#. module: account
#: model:ir.actions.wizard,name:account.wizard_account_balance_report
msgid "Account balance-Compare Years"
-msgstr "Saldo konta - poredi godine"
+msgstr ""
#. module: account
#: model:ir.module.module,description:account.module_meta_information
@@ -5907,64 +6129,64 @@ msgstr ""
#. module: account
#: wizard_view:account.balance.account.balance.report,backtoinit:0
msgid "You have to select 'Landscape' option. Please Check it."
-msgstr "Morate odabrati opciju 'Položeno'. Molimo označite je."
+msgstr ""
#. module: account
#: wizard_field:account.balance.account.balance.report,init,landscape:0
msgid "Show Report in Landscape Form"
-msgstr "Prikaži izvješće u položenoj formi"
+msgstr ""
#. module: account
#: rml:account.account.balance.landscape:0
#: rml:account.balance.account.balance:0
msgid "Total :"
-msgstr "Ukupno :"
+msgstr ""
#. module: account
#: wizard_field:account.balance.account.balance.report,init,format_perc:0
msgid "Show Comparision in %"
-msgstr "Prikaži usporedbu u %"
+msgstr ""
#. module: account
#: wizard_view:account.balance.account.balance.report,init:0
msgid "Select Period"
-msgstr "Odaberite razdoblje"
+msgstr ""
#. module: account
#: wizard_view:account.balance.account.balance.report,init:0
msgid "Report Options"
-msgstr "Postavke izvješća"
+msgstr ""
#. module: account
#: selection:account.balance.account.balance.report,init,compare_pattern:0
msgid "Don't Compare"
-msgstr "Ne uspoređuj"
+msgstr ""
#. module: account
#: wizard_field:account.balance.account.balance.report,init,account_choice:0
msgid "Show Accounts"
-msgstr "Prikaži račune"
+msgstr ""
#. module: account
#: wizard_view:account.balance.account.balance.report,backtoinit:0
msgid "1. You have selected more than 3 years in any case."
-msgstr "1. Odabrali ste više od 3 godine u svakom slučaju."
+msgstr ""
#. module: account
#: model:ir.module.module,shortdesc:account.module_meta_information
msgid "Accounting and financial management-Compare Accounts"
-msgstr "Upravljanje računovodstvom i finansijama - Usporedi konta"
+msgstr ""
#. module: account
#: rml:account.account.balance.landscape:0
#: rml:account.balance.account.balance:0
msgid "Year :"
-msgstr "Godina:"
+msgstr ""
#. module: account
#: wizard_view:account.balance.account.balance.report,backtoinit:0
msgid "You can select maximum 3 years. Please check again."
-msgstr "Možete odabrati maksimalno 3 godine. Molimo pokušajte ponovno."
+msgstr ""
#. module: account
#: wizard_view:account.balance.account.balance.report,backtoinit:0
@@ -5972,8 +6194,6 @@ msgid ""
"3. You have selected 'Percentage' option with more than 2 years, but you "
"have not selected landscape format."
msgstr ""
-"Izabrali ste \"Postotak\" opciju sa više od dvije godine, ali niste odabrali "
-"\"Položeni\" format."
#. module: account
#: wizard_view:account.balance.account.balance.report,backtoinit:0
@@ -5985,12 +6205,12 @@ msgstr ""
#. module: account
#: help:account.balance.account.balance.report,init,select_account:0
msgid "Keep empty for comparision to its parent"
-msgstr "Ostavite prazno za usporedbu sa roditeljem"
+msgstr ""
#. module: account
#: selection:account.balance.account.balance.report,init,period_manner:0
msgid "Creation Date"
-msgstr "Datum kreiranja"
+msgstr ""
#. module: account
#: wizard_view:account.balance.account.balance.report,backtoinit:0
@@ -5998,28 +6218,24 @@ msgid ""
"2. You have not selected 'Percentage' option, but you have selected more "
"than 2 years."
msgstr ""
-"2. Niste odabrali opciju 'Postotak', ali ste odabrali više od 2 godine."
#. module: account
#: wizard_view:account.balance.account.balance.report,zero_years:0
msgid ""
-"You may have selected the compare options with more than 1 year with credit/"
-"debit columns and % option.This can lead contents to be printed out of the "
-"paper.Please try again."
+"You may have selected the compare options with more than 1 year with "
+"credit/debit columns and % option.This can lead contents to be printed out "
+"of the paper.Please try again."
msgstr ""
-"Postoji mogućnost da ste odabrali postavke usporedbe sa više od 1 godine sa "
-"stupcima duguje/potražuje i % opcijom. Ovo može biti uzrok ispisa van "
-"papira. Molimo pokušajte ponovno."
#. module: account
#: wizard_view:account.balance.account.balance.report,zero_years:0
msgid "You have to select at least 1 Fiscal Year. Try again."
-msgstr "Morate odabrati bar 1 fiskalnu godinu. Pokušajte ponovno."
+msgstr ""
#. module: account
#: wizard_view:account.balance.account.balance.report,init:0
msgid "Customize Report"
-msgstr "Prilagodite izvješće"
+msgstr ""
#. module: account
#: field:report.aged.receivable,name:0
@@ -6027,14 +6243,14 @@ msgid "Month Range"
msgstr ""
#. module: account
-#: model:ir.actions.act_window,name:account.action_view_created_invoice_dashboard
+#: model:ir.actions.act_window,name:report_account.action_view_created_invoice_dashboard
msgid "Invoices Created Within Past 15 Days"
msgstr ""
#. module: account
-#: model:ir.model,name:account.model_report_invoice_created
+#: model:ir.model,name:report_account.model_report_invoice_created
msgid "Report of Invoices Created within Last 15 days"
-msgstr ""
+msgstr "Izvještaj o fakturama unesenim u zadnjih 15 dana"
#. module: account
#: view:report.invoice.created:0
@@ -6047,12 +6263,12 @@ msgid "Accounts by type"
msgstr ""
#. module: account
-#: model:ir.model,name:account.model_report_aged_receivable
+#: model:ir.model,name:report_account.model_report_aged_receivable
msgid "Aged Receivable Till Today"
msgstr ""
#. module: account
-#: model:ir.model,name:account.model_report_account_receivable
+#: model:ir.model,name:report_account.model_report_account_receivable
msgid "Receivable accounts"
msgstr ""
@@ -6062,18 +6278,18 @@ msgid "Range"
msgstr ""
#. module: account
-#: model:ir.module.module,description:account.module_meta_information
+#: model:ir.module.module,description:report_account.module_meta_information
msgid "A module that adds new reports based on the account module."
msgstr ""
#. module: account
-#: model:ir.module.module,shortdesc:account.module_meta_information
+#: model:ir.module.module,shortdesc:report_account.module_meta_information
msgid "Account Reporting - Reporting"
msgstr ""
#. module: account
-#: model:ir.actions.act_window,name:account.action_account_receivable_graph
-#: model:ir.ui.menu,name:account.menu_account_receivable_graph
+#: model:ir.actions.act_window,name:report_account.action_account_receivable_graph
+#: model:ir.ui.menu,name:report_account.menu_account_receivable_graph
msgid "Balance by Type of Account"
msgstr ""
@@ -6088,7 +6304,7 @@ msgid "Create Date"
msgstr ""
#. module: account
-#: model:ir.actions.act_window,name:account.action_aged_receivable_graph
+#: model:ir.actions.act_window,name:report_account.action_aged_receivable_graph
#: view:report.aged.receivable:0
msgid "Aged Receivable"
msgstr ""
diff --git a/addons/account/i18n/es.po b/addons/account/i18n/es.po
index 391db02e8d6..c06407ce158 100644
--- a/addons/account/i18n/es.po
+++ b/addons/account/i18n/es.po
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-30 03:34+0000\n"
+"X-Launchpad-Export-Date: 2010-07-01 03:45+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
diff --git a/addons/account/i18n/it.po b/addons/account/i18n/it.po
index d4c8475e658..413cbb3ad35 100644
--- a/addons/account/i18n/it.po
+++ b/addons/account/i18n/it.po
@@ -1,19 +1,19 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * account
+# * account
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-06-15 07:00+0000\n"
+"PO-Revision-Date: 2010-07-05 10:24+0000\n"
"Last-Translator: eLBati - albatos.com \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: 2010-06-22 04:05+0000\n"
+"X-Launchpad-Export-Date: 2010-07-07 03:39+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@@ -35,7 +35,7 @@ msgstr "Fatture fornitori non pagate"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_entries
msgid "Entries Encoding"
-msgstr "Codifica delle registrazioni"
+msgstr "Movimenti contabili"
#. module: account
#: model:ir.actions.todo,note:account.config_wizard_account_base_setup_form
@@ -93,7 +93,8 @@ msgid "Unreconciled entries"
msgstr "Voci non riconciliate"
#. module: account
-#: field:account.invoice.tax,base_code_id:0 field:account.tax,base_code_id:0
+#: field:account.invoice.tax,base_code_id:0
+#: field:account.tax,base_code_id:0
#: field:account.tax.template,base_code_id:0
msgid "Base Code"
msgstr "Codice base"
@@ -125,7 +126,8 @@ msgid "Residual"
msgstr "Rimanenze"
#. module: account
-#: field:account.tax,base_sign:0 field:account.tax,ref_base_sign:0
+#: field:account.tax,base_sign:0
+#: field:account.tax,ref_base_sign:0
#: field:account.tax.template,base_sign:0
#: field:account.tax.template,ref_base_sign:0
msgid "Base Code Sign"
@@ -189,8 +191,10 @@ msgid "Move line select"
msgstr "Seleziona la riga del movimento"
#. module: account
-#: rml:account.journal.period.print:0 rml:account.tax.code.entries:0
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: rml:account.journal.period.print:0
+#: rml:account.tax.code.entries:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
msgid "Entry label"
msgstr "Inserisci etichetta"
@@ -205,12 +209,14 @@ msgid "Period Sum"
msgstr "Somma periodo"
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Compute Code (if type=code)"
msgstr "Codice calcolo (se tipo=codice)"
#. module: account
-#: view:account.move:0 view:account.move.line:0
+#: view:account.move:0
+#: view:account.move.line:0
msgid "Account Entry Line"
msgstr "Registrazione contabile"
@@ -227,9 +233,12 @@ msgstr "Voci ricorrenti"
#. module: account
#: field:account.analytic.line,amount:0
#: field:account.bank.statement.line,amount:0
-#: field:account.bank.statement.reconcile.line,amount:0 rml:account.invoice:0
-#: field:account.invoice.tax,amount:0 field:account.move,amount:0
-#: field:account.tax,amount:0 field:account.tax.template,amount:0
+#: field:account.bank.statement.reconcile.line,amount:0
+#: rml:account.invoice:0
+#: field:account.invoice.tax,amount:0
+#: field:account.move,amount:0
+#: field:account.tax,amount:0
+#: field:account.tax.template,amount:0
#: xsl:account.transfer:0
msgid "Amount"
msgstr "Importo"
@@ -271,7 +280,8 @@ msgstr ""
"ogni giornale."
#. module: account
-#: help:account.invoice,date_due:0 help:account.invoice,payment_term:0
+#: help:account.invoice,date_due:0
+#: help:account.invoice,payment_term:0
msgid ""
"If you use payment terms, the due date will be computed automatically at the "
"generation of accounting entries. If you keep the payment term and the due "
@@ -285,12 +295,14 @@ msgstr ""
"di diverse scadenze, per esempio 50% subito e 50% dopo un mese."
#. module: account
-#: selection:account.tax,type:0 selection:account.tax.template,type:0
+#: selection:account.tax,type:0
+#: selection:account.tax.template,type:0
msgid "Fixed"
msgstr "Fisso"
#. module: account
-#: model:ir.actions.report.xml,name:account.account_overdue view:res.company:0
+#: model:ir.actions.report.xml,name:account.account_overdue
+#: view:res.company:0
msgid "Overdue Payments"
msgstr "Ritardo Pagamenti"
@@ -306,7 +318,8 @@ msgid "Select period"
msgstr "Seleziona Periodo"
#. module: account
-#: field:account.invoice,origin:0 field:account.invoice.line,origin:0
+#: field:account.invoice,origin:0
+#: field:account.invoice.line,origin:0
msgid "Origin"
msgstr "Origine"
@@ -336,7 +349,8 @@ msgid "Delta Debit"
msgstr "Delta di Debito"
#. module: account
-#: rml:account.invoice:0 field:account.invoice,amount_tax:0
+#: rml:account.invoice:0
+#: field:account.invoice,amount_tax:0
#: field:account.move.line,account_tax_id:0
msgid "Tax"
msgstr "Tassa"
@@ -355,12 +369,14 @@ msgid "Analytic Account"
msgstr "Contabilità Analitica"
#. module: account
-#: field:account.tax,child_depend:0 field:account.tax.template,child_depend:0
+#: field:account.tax,child_depend:0
+#: field:account.tax.template,child_depend:0
msgid "Tax on Children"
msgstr ""
#. module: account
-#: rml:account.central.journal:0 rml:account.general.journal:0
+#: rml:account.central.journal:0
+#: rml:account.general.journal:0
#: field:account.journal,name:0
msgid "Journal Name"
msgstr "Nome Libro Giornale"
@@ -428,8 +444,11 @@ msgid "Contra"
msgstr "contraente"
#. module: account
-#: field:account.analytic.account,state:0 field:account.bank.statement,state:0
-#: field:account.invoice,state:0 view:account.move:0 view:account.move.line:0
+#: field:account.analytic.account,state:0
+#: field:account.bank.statement,state:0
+#: field:account.invoice,state:0
+#: view:account.move:0
+#: view:account.move.line:0
#: view:account.subscription:0
msgid "State"
msgstr "Stato"
@@ -441,7 +460,8 @@ msgid "Unpaid Supplier Refunds"
msgstr "Non pagati"
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Special Computation"
msgstr "Calcolo speciale"
@@ -463,8 +483,10 @@ msgid "Disc.(%)"
msgstr "Sconto (%)"
#. module: account
-#: rml:account.general.ledger:0 field:account.model,ref:0
-#: field:account.move,ref:0 rml:account.overdue:0
+#: rml:account.general.ledger:0
+#: field:account.model,ref:0
+#: field:account.move,ref:0
+#: rml:account.overdue:0
#: field:account.subscription,ref:0
msgid "Ref"
msgstr "Rif"
@@ -660,7 +682,8 @@ msgid "Sub-Total :"
msgstr "Sub-totale"
#. module: account
-#: field:account.analytic.account,line_ids:0 view:account.analytic.line:0
+#: field:account.analytic.account,line_ids:0
+#: view:account.analytic.line:0
#: model:ir.actions.act_window,name:account.action_account_analytic_line_form
#: model:ir.ui.menu,name:account.next_id_41
msgid "Analytic Entries"
@@ -692,7 +715,8 @@ msgid "Select the Period for Analysis"
msgstr ""
#. module: account
-#: field:account.tax,ref_tax_sign:0 field:account.tax,tax_sign:0
+#: field:account.tax,ref_tax_sign:0
+#: field:account.tax,tax_sign:0
#: field:account.tax.template,ref_tax_sign:0
#: field:account.tax.template,tax_sign:0
msgid "Tax Code Sign"
@@ -724,7 +748,8 @@ msgid "Field Name"
msgstr "Nome Campo"
#. module: account
-#: field:account.tax.code,sign:0 field:account.tax.code.template,sign:0
+#: field:account.tax.code,sign:0
+#: field:account.tax.code.template,sign:0
msgid "Sign for parent"
msgstr ""
@@ -734,7 +759,8 @@ msgid "End of Year Entries Journal"
msgstr "Voci di Giornale di Fine Anno"
#. module: account
-#: view:product.product:0 view:product.template:0
+#: view:product.product:0
+#: view:product.template:0
msgid "Purchase Properties"
msgstr "Proprietà acquisti"
@@ -754,9 +780,12 @@ msgid "Move Lines Created."
msgstr "Riga movimento creata."
#. module: account
-#: field:account.fiscalyear,state:0 field:account.journal.period,state:0
-#: field:account.move,state:0 field:account.move.line,state:0
-#: field:account.period,state:0 field:account.subscription,state:0
+#: field:account.fiscalyear,state:0
+#: field:account.journal.period,state:0
+#: field:account.move,state:0
+#: field:account.move.line,state:0
+#: field:account.period,state:0
+#: field:account.subscription,state:0
msgid "Status"
msgstr "Stato"
@@ -911,8 +940,10 @@ msgstr "Selezionare il Piano dei Conti"
#: rml:account.analytic.account.balance:0
#: rml:account.analytic.account.inverted.balance:0
#: rml:account.analytic.account.quantity_cost_ledger:0
-#: field:account.analytic.line,unit_amount:0 rml:account.invoice:0
-#: field:account.invoice.line,quantity:0 field:account.model.line,quantity:0
+#: field:account.analytic.line,unit_amount:0
+#: rml:account.invoice:0
+#: field:account.invoice.line,quantity:0
+#: field:account.model.line,quantity:0
#: field:account.move.line,quantity:0
msgid "Quantity"
msgstr "Quantità"
@@ -955,13 +986,16 @@ msgstr "fattura analitica"
#: wizard_field:account.automatic.reconcile,init,period_id:0
#: field:account.bank.statement,period_id:0
#: wizard_field:account.central.journal.report,init,period_id:0
-#: view:account.fiscalyear:0 rml:account.general.journal:0
+#: view:account.fiscalyear:0
+#: rml:account.general.journal:0
#: wizard_field:account.general.journal.report,init,period_id:0
#: wizard_field:account.invoice.pay,init,period_id:0
-#: field:account.journal.period,period_id:0 field:account.move,period_id:0
+#: field:account.journal.period,period_id:0
+#: field:account.move,period_id:0
#: wizard_field:account.move.journal,init,period_id:0
#: field:account.move.line,period_id:0
-#: wizard_field:account.move.validate,init,period_id:0 view:account.period:0
+#: wizard_field:account.move.validate,init,period_id:0
+#: view:account.period:0
#: wizard_field:account.print.journal.report,init,period_id:0
#: field:account.subscription,period_nbr:0
msgid "Period"
@@ -983,7 +1017,8 @@ msgid "Net Total:"
msgstr "Totale imponibile"
#. module: account
-#: view:account.fiscal.position:0 field:account.fiscal.position,name:0
+#: view:account.fiscal.position:0
+#: field:account.fiscal.position,name:0
#: field:account.fiscal.position.account,position_id:0
#: field:account.fiscal.position.account.template,position_id:0
#: field:account.fiscal.position.tax,position_id:0
@@ -1107,7 +1142,8 @@ msgid "Fiscal Position Templates"
msgstr ""
#. module: account
-#: rml:account.invoice:0 field:account.invoice.line,price_unit:0
+#: rml:account.invoice:0
+#: field:account.invoice.line,price_unit:0
msgid "Unit Price"
msgstr "Prezzo unitario"
@@ -1260,7 +1296,8 @@ msgid "Not reconciled transactions"
msgstr "Transazioni non riconciliate"
#. module: account
-#: view:account.fiscal.position:0 field:account.fiscal.position,tax_ids:0
+#: view:account.fiscal.position:0
+#: field:account.fiscal.position,tax_ids:0
#: field:account.fiscal.position.template,tax_ids:0
msgid "Tax Mapping"
msgstr ""
@@ -1282,7 +1319,8 @@ msgid "Write-Off account"
msgstr ""
#. module: account
-#: field:account.model.line,model_id:0 field:account.subscription,model_id:0
+#: field:account.model.line,model_id:0
+#: field:account.subscription,model_id:0
msgid "Model"
msgstr "Modello"
@@ -1308,9 +1346,11 @@ msgid "Select invoices you want to pay and manages advances"
msgstr ""
#. module: account
-#: selection:account.account,type:0 selection:account.account.template,type:0
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
#: model:account.account.type,name:account.account_type_root
-#: selection:account.analytic.account,type:0 field:account.journal,view_id:0
+#: selection:account.analytic.account,type:0
+#: field:account.journal,view_id:0
msgid "View"
msgstr "Vista"
@@ -1379,7 +1419,8 @@ msgstr "Tipi di conto"
#: wizard_field:account.central.journal.report,init,journal_id:0
#: wizard_field:account.general.journal.report,init,journal_id:0
#: field:account.invoice,journal_id:0
-#: field:account.journal.period,journal_id:0 field:account.model,journal_id:0
+#: field:account.journal.period,journal_id:0
+#: field:account.model,journal_id:0
#: field:account.move,journal_id:0
#: wizard_field:account.move.bank.reconcile,init,journal_id:0
#: wizard_field:account.move.journal,init,journal_id:0
@@ -1395,7 +1436,8 @@ msgid "Journal"
msgstr "Libro Giornale"
#. module: account
-#: field:account.account,child_id:0 field:account.analytic.account,child_ids:0
+#: field:account.account,child_id:0
+#: field:account.analytic.account,child_ids:0
msgid "Child Accounts"
msgstr ""
@@ -1421,7 +1463,8 @@ msgid "Statement reconcile line"
msgstr ""
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Keep empty to use the income account"
msgstr "Lasciare vuoto per usare il conto di ricavo"
@@ -1548,7 +1591,8 @@ msgid "Account n°"
msgstr "Conto n°"
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Keep empty to use the expense account"
msgstr "Lasciare il campo vuoto per usare il conto Spesa"
@@ -1558,7 +1602,8 @@ msgid "Account to reconcile"
msgstr ""
#. module: account
-#: rml:account.invoice:0 field:account.model.line,partner_id:0
+#: rml:account.invoice:0
+#: field:account.model.line,partner_id:0
#: field:account.move.line,partner_id:0
msgid "Partner Ref."
msgstr "Rif. Partner"
@@ -1570,12 +1615,14 @@ msgid "Receivable and Payable Accounts"
msgstr "Conti di incasso e pagamento"
#. module: account
-#: view:account.subscription:0 field:account.subscription,lines_id:0
+#: view:account.subscription:0
+#: field:account.subscription,lines_id:0
msgid "Subscription Lines"
msgstr ""
#. module: account
-#: selection:account.analytic.journal,type:0 selection:account.journal,type:0
+#: selection:account.analytic.journal,type:0
+#: selection:account.journal,type:0
#: selection:account.tax,type_tax_use:0
#: selection:account.tax.template,type_tax_use:0
msgid "Purchase"
@@ -1739,7 +1786,8 @@ msgid "Period length (days)"
msgstr "Lunghezza periodo (giorni)"
#. module: account
-#: selection:account.payment.term.line,value:0 selection:account.tax,type:0
+#: selection:account.payment.term.line,value:0
+#: selection:account.tax,type:0
#: selection:account.tax.template,type:0
msgid "Percent"
msgstr "Percentuale"
@@ -1750,7 +1798,8 @@ msgid "Charts"
msgstr "Bilancino"
#. module: account
-#: selection:account.analytic.journal,type:0 selection:account.journal,type:0
+#: selection:account.analytic.journal,type:0
+#: selection:account.journal,type:0
#: selection:account.tax,type_tax_use:0
#: selection:account.tax.template,type_tax_use:0
msgid "Sale"
@@ -1825,9 +1874,12 @@ msgstr ""
#. module: account
#: field:account.analytic.journal,type:0
-#: field:account.bank.statement.line,type:0 field:account.invoice,type:0
-#: field:account.journal,type:0 field:account.move,type:0
-#: field:account.move.reconcile,type:0 xsl:account.transfer:0
+#: field:account.bank.statement.line,type:0
+#: field:account.invoice,type:0
+#: field:account.journal,type:0
+#: field:account.move,type:0
+#: field:account.move.reconcile,type:0
+#: xsl:account.transfer:0
msgid "Type"
msgstr "Tipo"
@@ -1975,7 +2027,8 @@ msgid "Journal-Period Name"
msgstr ""
#. module: account
-#: field:account.tax.code,name:0 field:account.tax.code.template,name:0
+#: field:account.tax.code,name:0
+#: field:account.tax.code.template,name:0
msgid "Tax Case Name"
msgstr ""
@@ -1990,7 +2043,8 @@ msgstr ""
#. module: account
#: field:account.bank.statement.line,partner_id:0
#: field:account.bank.statement.reconcile,partner_id:0
-#: rml:account.general.ledger:0 field:account.invoice,partner_id:0
+#: rml:account.general.ledger:0
+#: field:account.invoice,partner_id:0
#: field:account.move,partner_id:0
#: wizard_field:account.partner.balance.report,init,result_selection:0
#: wizard_field:account.third_party_ledger.report,init,result_selection:0
@@ -2063,8 +2117,10 @@ msgstr ""
#: field:account.bank.statement,currency:0
#: field:account.bank.statement.reconcile,total_currency:0
#: field:account.bank.statement.reconcile,total_second_currency:0
-#: rml:account.general.ledger:0 field:account.invoice,currency_id:0
-#: field:account.journal,currency:0 field:account.model.line,currency_id:0
+#: rml:account.general.ledger:0
+#: field:account.invoice,currency_id:0
+#: field:account.journal,currency:0
+#: field:account.model.line,currency_id:0
#: field:account.move.line,currency_id:0
msgid "Currency"
msgstr "Valuta"
@@ -2102,7 +2158,8 @@ msgid "Analytic Entry"
msgstr "Registrazione analitica"
#. module: account
-#: view:res.company:0 field:res.company,overdue_msg:0
+#: view:res.company:0
+#: field:res.company,overdue_msg:0
msgid "Overdue Payments Message"
msgstr ""
@@ -2154,7 +2211,8 @@ msgid "Detail"
msgstr "Dettaglio"
#. module: account
-#: selection:account.account,type:0 selection:account.account.template,type:0
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
msgid "Consolidation"
msgstr ""
@@ -2248,16 +2306,21 @@ msgid "The account basis of the tax declaration."
msgstr ""
#. module: account
-#: rml:account.analytic.account.journal:0 field:account.analytic.line,date:0
+#: rml:account.analytic.account.journal:0
+#: field:account.analytic.line,date:0
#: field:account.bank.statement,date:0
#: field:account.bank.statement.line,date:0
-#: field:account.bank.statement.reconcile,name:0 rml:account.general.ledger:0
+#: field:account.bank.statement.reconcile,name:0
+#: rml:account.general.ledger:0
#: selection:account.general.ledger.report,checktype,sortbydate:0
-#: rml:account.journal.period.print:0 field:account.move,date:0
+#: rml:account.journal.period.print:0
+#: field:account.move,date:0
#: rml:account.overdue:0
#: wizard_field:account.subscription.generate,init,date:0
-#: field:account.subscription.line,date:0 rml:account.tax.code.entries:0
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: field:account.subscription.line,date:0
+#: rml:account.tax.code.entries:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
#: xsl:account.transfer:0
msgid "Date"
msgstr "Data"
@@ -2274,7 +2337,8 @@ msgid "Unreconcile"
msgstr "Annulla riconciliazione"
#. module: account
-#: field:account.tax,type:0 field:account.tax.template,type:0
+#: field:account.tax,type:0
+#: field:account.tax.template,type:0
msgid "Tax Type"
msgstr "Tipo tassa"
@@ -2284,7 +2348,8 @@ msgid "Statement Entries"
msgstr "Voci di documento"
#. module: account
-#: field:account.analytic.line,user_id:0 field:account.journal,user_id:0
+#: field:account.analytic.line,user_id:0
+#: field:account.journal,user_id:0
msgid "User"
msgstr ""
@@ -2370,7 +2435,8 @@ msgid "Date End"
msgstr "Data fine"
#. module: account
-#: view:account.bank.statement:0 field:account.move.reconcile,line_id:0
+#: view:account.bank.statement:0
+#: field:account.move.reconcile,line_id:0
#: model:ir.actions.act_window,name:account.action_move_line_search
#: model:ir.actions.act_window,name:account.action_move_line_tree1
#: model:ir.ui.menu,name:account.menu_action_move_line_search
@@ -2378,7 +2444,8 @@ msgid "Entry Lines"
msgstr "Righe movimento"
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Applicable Code (if type=code)"
msgstr "Codice applicabile (se tipo=codice)"
@@ -2467,9 +2534,11 @@ msgstr ""
#: wizard_button:account.general.journal.report,init,end:0
#: wizard_button:account.general.ledger.report,account_selection,end:0
#: wizard_button:account.general.ledger.report,checktype,end:0
-#: view:account.invoice:0 wizard_button:account.invoice.pay,addendum,end:0
+#: view:account.invoice:0
+#: wizard_button:account.invoice.pay,addendum,end:0
#: wizard_button:account.invoice.pay,init,end:0
-#: wizard_button:account.invoice.refund,init,end:0 view:account.move:0
+#: wizard_button:account.invoice.refund,init,end:0
+#: view:account.move:0
#: wizard_button:account.move.bank.reconcile,init,end:0
#: wizard_button:account.move.journal,init,end:0
#: wizard_button:account.move.line.reconcile,addendum,end:0
@@ -2488,7 +2557,8 @@ msgstr ""
#: wizard_button:account.third_party_ledger.report,init,end:0
#: wizard_button:account.vat.declaration,init,end:0
#: wizard_button:account_use_models,init_form,end:0
-#: view:wizard.company.setup:0 view:wizard.multi.charts.accounts:0
+#: view:wizard.company.setup:0
+#: view:wizard.multi.charts.accounts:0
msgid "Cancel"
msgstr "Annulla"
@@ -2498,8 +2568,10 @@ msgid "Acc. Type Name"
msgstr "Tipo di conto"
#. module: account
-#: help:account.tax,base_code_id:0 help:account.tax,ref_base_code_id:0
-#: help:account.tax,ref_tax_code_id:0 help:account.tax,tax_code_id:0
+#: help:account.tax,base_code_id:0
+#: help:account.tax,ref_base_code_id:0
+#: help:account.tax,ref_tax_code_id:0
+#: help:account.tax,tax_code_id:0
#: help:account.tax.template,base_code_id:0
#: help:account.tax.template,ref_base_code_id:0
#: help:account.tax.template,ref_tax_code_id:0
@@ -2513,7 +2585,8 @@ msgid "Litigation"
msgstr ""
#. module: account
-#: view:account.move.line:0 wizard_view:account.move.validate,init:0
+#: view:account.move.line:0
+#: wizard_view:account.move.validate,init:0
#: view:account.payment.term:0
msgid "Information"
msgstr "Informazione"
@@ -2623,7 +2696,8 @@ msgid "Price"
msgstr "Prezzo"
#. module: account
-#: rml:account.analytic.account.journal:0 rml:account.third_party_ledger:0
+#: rml:account.analytic.account.journal:0
+#: rml:account.third_party_ledger:0
#: rml:account.third_party_ledger_other:0
msgid "-"
msgstr "-"
@@ -2690,13 +2764,17 @@ msgid "Invoice Reference"
msgstr "riferimento fattura"
#. module: account
-#: field:account.account,name:0 field:account.account.template,name:0
+#: field:account.account,name:0
+#: field:account.account.template,name:0
#: rml:account.analytic.account.inverted.balance:0
#: field:account.bank.statement,name:0
#: field:account.bank.statement.line,name:0
-#: field:account.chart.template,name:0 field:account.config.wizard,name:0
-#: field:account.model.line,name:0 field:account.move,name:0
-#: field:account.move.line,name:0 field:account.move.reconcile,name:0
+#: field:account.chart.template,name:0
+#: field:account.config.wizard,name:0
+#: field:account.model.line,name:0
+#: field:account.move,name:0
+#: field:account.move.line,name:0
+#: field:account.move.reconcile,name:0
#: field:account.subscription,name:0
msgid "Name"
msgstr "Nome"
@@ -2736,7 +2814,8 @@ msgid ""
msgstr ""
#. module: account
-#: field:account.journal.column,view_id:0 view:account.journal.view:0
+#: field:account.journal.column,view_id:0
+#: view:account.journal.view:0
#: field:account.journal.view,name:0
#: model:ir.model,name:account.model_account_journal_view
msgid "Journal View"
@@ -2829,11 +2908,16 @@ msgid "Full Account Name"
msgstr ""
#. module: account
-#: rml:account.account.balance:0 rml:account.analytic.account.analytic.check:0
-#: rml:account.analytic.account.balance:0 rml:account.general.ledger:0
-#: rml:account.journal.period.print:0 rml:account.partner.balance:0
-#: rml:account.tax.code.entries:0 rml:account.third_party_ledger:0
-#: rml:account.third_party_ledger_other:0 rml:account.vat.declaration:0
+#: rml:account.account.balance:0
+#: rml:account.analytic.account.analytic.check:0
+#: rml:account.analytic.account.balance:0
+#: rml:account.general.ledger:0
+#: rml:account.journal.period.print:0
+#: rml:account.partner.balance:0
+#: rml:account.tax.code.entries:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
+#: rml:account.vat.declaration:0
msgid "1cm 27.7cm 20cm 27.7cm"
msgstr ""
@@ -2854,7 +2938,9 @@ msgid "Document: Customer account statement"
msgstr ""
#. module: account
-#: view:product.product:0 view:product.template:0 view:res.partner:0
+#: view:product.product:0
+#: view:product.template:0
+#: view:res.partner:0
msgid "Accounting"
msgstr "Informazioni contabili"
@@ -2899,8 +2985,10 @@ msgid "Centralisation"
msgstr ""
#. module: account
-#: field:account.invoice.tax,tax_code_id:0 field:account.tax,description:0
-#: field:account.tax,tax_code_id:0 field:account.tax.template,tax_code_id:0
+#: field:account.invoice.tax,tax_code_id:0
+#: field:account.tax,description:0
+#: field:account.tax,tax_code_id:0
+#: field:account.tax.template,tax_code_id:0
#: model:ir.model,name:account.model_account_tax_code
msgid "Tax Code"
msgstr "Codice tassa"
@@ -2940,12 +3028,14 @@ msgid ""
msgstr ""
#. module: account
-#: selection:account.analytic.journal,type:0 selection:account.journal,type:0
+#: selection:account.analytic.journal,type:0
+#: selection:account.journal,type:0
msgid "Situation"
msgstr "Situazione"
#. module: account
-#: rml:account.invoice:0 xsl:account.transfer:0
+#: rml:account.invoice:0
+#: xsl:account.transfer:0
msgid "Document"
msgstr "Documento"
@@ -2983,7 +3073,8 @@ msgid "Cancel selected invoices"
msgstr "Cancella fattura selezionata"
#. module: account
-#: view:account.analytic.journal:0 field:account.analytic.line,journal_id:0
+#: view:account.analytic.journal:0
+#: field:account.analytic.line,journal_id:0
#: field:account.journal,analytic_journal_id:0
#: model:ir.actions.report.xml,name:account.analytic_journal_print
#: model:ir.actions.wizard,name:account.account_analytic_account_journal_report
@@ -3006,23 +3097,28 @@ msgid "("
msgstr "("
#. module: account
-#: view:account.invoice:0 view:account.period:0 view:account.subscription:0
+#: view:account.invoice:0
+#: view:account.period:0
+#: view:account.subscription:0
msgid "Set to Draft"
msgstr "Imposta come bozza"
#. module: account
-#: help:account.invoice,origin:0 help:account.invoice.line,origin:0
+#: help:account.invoice,origin:0
+#: help:account.invoice.line,origin:0
msgid "Reference of the document that produced this invoice."
msgstr "Riferimento al documento che ha prodotto questa fattura."
#. module: account
-#: selection:account.account,type:0 selection:account.account.template,type:0
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
#: selection:account.aged.trial.balance,init,result_selection:0
msgid "Payable"
msgstr "Pagabile"
#. module: account
-#: rml:account.invoice:0 field:account.invoice.tax,base:0
+#: rml:account.invoice:0
+#: field:account.invoice.tax,base:0
msgid "Base"
msgstr "Base"
@@ -3032,7 +3128,8 @@ msgid "Model Name"
msgstr "Nome Modello"
#. module: account
-#: selection:account.account,type:0 selection:account.account.template,type:0
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
msgid "Others"
msgstr ""
@@ -3042,13 +3139,15 @@ msgid "8"
msgstr ""
#. module: account
-#: view:account.invoice:0 view:account.move:0
+#: view:account.invoice:0
+#: view:account.move:0
#: wizard_button:account.move.validate,init,validate:0
msgid "Validate"
msgstr "Valida"
#. module: account
-#: view:account.model:0 field:account.model,legend:0
+#: view:account.model:0
+#: field:account.model,legend:0
msgid "Legend"
msgstr "Legenda"
@@ -3063,14 +3162,17 @@ msgid "account.move.line.select"
msgstr ""
#. module: account
-#: view:account.account:0 rml:account.account.balance:0
+#: view:account.account:0
+#: rml:account.account.balance:0
#: wizard_field:account.account.balance.report,account_selection,Account_list:0
#: wizard_field:account.automatic.reconcile,init,writeoff_acc_id:0
#: field:account.bank.statement.line,account_id:0
#: field:account.bank.statement.reconcile.line,account_id:0
-#: field:account.invoice,account_id:0 field:account.invoice.line,account_id:0
+#: field:account.invoice,account_id:0
+#: field:account.invoice.line,account_id:0
#: field:account.journal,account_control_ids:0
-#: field:account.model.line,account_id:0 field:account.move.line,account_id:0
+#: field:account.model.line,account_id:0
+#: field:account.move.line,account_id:0
#: wizard_field:account.move.line.reconcile.select,init,account_id:0
#: wizard_field:account.move.line.unreconcile.select,init,account_id:0
#: model:ir.model,name:account.model_account_account
@@ -3091,9 +3193,12 @@ msgid "By Date and Period"
msgstr ""
#. module: account
-#: view:account.account:0 view:account.account.template:0
-#: view:account.bank.statement:0 field:account.bank.statement.line,note:0
-#: field:account.fiscal.position,note:0 view:account.invoice.line:0
+#: view:account.account:0
+#: view:account.account.template:0
+#: view:account.bank.statement:0
+#: field:account.bank.statement.line,note:0
+#: field:account.fiscal.position,note:0
+#: view:account.invoice.line:0
#: field:account.invoice.line,note:0
msgid "Notes"
msgstr "Note"
@@ -3106,7 +3211,8 @@ msgid ""
msgstr ""
#. module: account
-#: rml:account.invoice:0 view:account.invoice:0
+#: rml:account.invoice:0
+#: view:account.invoice:0
#: field:account.invoice.line,invoice_line_tax_id:0
#: model:ir.actions.act_window,name:account.action_tax_form
#: model:ir.ui.menu,name:account.menu_action_tax_form
@@ -3131,15 +3237,21 @@ msgid "Statement encoding produces payment entries"
msgstr ""
#. module: account
-#: field:account.account,code:0 rml:account.account.balance:0
-#: field:account.account.template,code:0 field:account.account.type,code:0
+#: field:account.account,code:0
+#: rml:account.account.balance:0
+#: field:account.account.template,code:0
+#: field:account.account.type,code:0
#: rml:account.analytic.account.analytic.check:0
#: rml:account.analytic.account.balance:0
#: rml:account.analytic.account.inverted.balance:0
-#: rml:account.analytic.account.journal:0 field:account.analytic.line,code:0
-#: field:account.config.wizard,code:0 field:account.fiscalyear,code:0
-#: rml:account.general.journal:0 field:account.journal,code:0
-#: rml:account.partner.balance:0 field:account.period,code:0
+#: rml:account.analytic.account.journal:0
+#: field:account.analytic.line,code:0
+#: field:account.config.wizard,code:0
+#: field:account.fiscalyear,code:0
+#: rml:account.general.journal:0
+#: field:account.journal,code:0
+#: rml:account.partner.balance:0
+#: field:account.period,code:0
msgid "Code"
msgstr "Codice"
@@ -3149,7 +3261,8 @@ msgid "Financial Management"
msgstr "Gestione Finanziaria"
#. module: account
-#: selection:account.account.type,close_method:0 selection:account.tax,type:0
+#: selection:account.account.type,close_method:0
+#: selection:account.tax,type:0
#: selection:account.tax.template,type:0
msgid "None"
msgstr "Nessuno"
@@ -3176,7 +3289,8 @@ msgid "Additionnal Information"
msgstr "Ulteriori informazioni"
#. module: account
-#: field:account.tax,name:0 field:account.tax.template,name:0
+#: field:account.tax,name:0
+#: field:account.tax.template,name:0
#: rml:account.vat.declaration:0
msgid "Tax Name"
msgstr "Nome tassa"
@@ -3253,7 +3367,8 @@ msgid "Partner Balance"
msgstr ""
#. module: account
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
msgid "Third Party Ledger"
msgstr ""
@@ -3266,7 +3381,8 @@ msgstr ""
#. module: account
#: selection:account.tax,applicable_type:0
-#: field:account.tax,python_applicable:0 field:account.tax,python_compute:0
+#: field:account.tax,python_applicable:0
+#: field:account.tax,python_compute:0
#: selection:account.tax,type:0
#: selection:account.tax.template,applicable_type:0
#: field:account.tax.template,python_applicable:0
@@ -3303,7 +3419,8 @@ msgid "Import invoice"
msgstr ""
#. module: account
-#: view:account.invoice:0 view:wizard.company.setup:0
+#: view:account.invoice:0
+#: view:wizard.company.setup:0
#: view:wizard.multi.charts.accounts:0
msgid "Create"
msgstr "Crea"
@@ -3319,7 +3436,8 @@ msgid "Invoice line"
msgstr "Voce fattura"
#. module: account
-#: field:account.account,shortcut:0 field:account.account.template,shortcut:0
+#: field:account.account,shortcut:0
+#: field:account.account.template,shortcut:0
msgid "Shortcut"
msgstr "Scorciatoia"
@@ -3346,13 +3464,15 @@ msgid ""
msgstr ""
#. module: account
-#: field:account.tax,parent_id:0 field:account.tax.template,parent_id:0
+#: field:account.tax,parent_id:0
+#: field:account.tax.template,parent_id:0
msgid "Parent Tax Account"
msgstr "Conto mastro tassa"
#. module: account
#: field:account.account,user_type:0
-#: field:account.account.template,user_type:0 view:account.account.type:0
+#: field:account.account.template,user_type:0
+#: view:account.account.type:0
#: field:account.analytic.account,type:0
#: model:ir.model,name:account.model_account_account_type
msgid "Account Type"
@@ -3388,7 +3508,8 @@ msgid "Central Journal"
msgstr ""
#. module: account
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
msgid "Balance brought forward"
msgstr ""
@@ -3412,9 +3533,10 @@ msgid "Balance :"
msgstr ""
#. module: account
-#: selection:account.balance.account.balance.report,init,account_choice:0
+#: selection:account.account.balance.report,checktype,display_account:0
+#: selection:account.general.ledger.report,checktype,display_account:0
msgid "With balance is not equal to 0"
-msgstr "Con chiusura diversa da zero"
+msgstr ""
#. module: account
#: selection:account.automatic.reconcile,init,power:0
@@ -3463,7 +3585,8 @@ msgid "Journal code"
msgstr "Codice Libro Giornale"
#. module: account
-#: wizard_button:account.fiscalyear.close,init,close:0 view:account.model:0
+#: wizard_button:account.fiscalyear.close,init,close:0
+#: view:account.model:0
msgid "Create entries"
msgstr "Crea registrazione"
@@ -3519,11 +3642,14 @@ msgid ""
msgstr ""
#. module: account
-#: field:account.account.type,sequence:0 field:account.invoice.tax,sequence:0
-#: field:account.journal.column,sequence:0 field:account.model.line,sequence:0
+#: field:account.account.type,sequence:0
+#: field:account.invoice.tax,sequence:0
+#: field:account.journal.column,sequence:0
+#: field:account.model.line,sequence:0
#: field:account.payment.term.line,sequence:0
#: field:account.sequence.fiscalyear,sequence_id:0
-#: field:account.tax,sequence:0 field:account.tax.template,sequence:0
+#: field:account.tax,sequence:0
+#: field:account.tax.template,sequence:0
#: field:fiscalyear.seq,sequence_id:0
msgid "Sequence"
msgstr ""
@@ -3591,7 +3717,8 @@ msgstr ""
#. module: account
#: field:account.model.line,date_maturity:0
-#: field:account.move.line,date_maturity:0 rml:account.overdue:0
+#: field:account.move.line,date_maturity:0
+#: rml:account.overdue:0
msgid "Maturity date"
msgstr ""
@@ -3611,7 +3738,8 @@ msgid "Account Configure Wizard "
msgstr ""
#. module: account
-#: field:account.config.wizard,date1:0 field:account.fiscalyear,date_start:0
+#: field:account.config.wizard,date1:0
+#: field:account.fiscalyear,date_start:0
#: field:account.subscription,date_start:0
msgid "Start Date"
msgstr ""
@@ -3649,7 +3777,8 @@ msgid "Unreconciled"
msgstr ""
#. module: account
-#: field:account.account,note:0 field:account.account.template,note:0
+#: field:account.account,note:0
+#: field:account.account.template,note:0
msgid "Note"
msgstr "Nota"
@@ -3673,7 +3802,8 @@ msgid "Entry Sequence"
msgstr ""
#. module: account
-#: selection:account.account,type:0 selection:account.account.template,type:0
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
msgid "Closed"
msgstr "Chiuso"
@@ -3794,9 +3924,12 @@ msgid "Code/Date"
msgstr ""
#. module: account
-#: field:account.account,active:0 field:account.analytic.account,active:0
-#: field:account.analytic.journal,active:0 field:account.journal,active:0
-#: field:account.journal.period,active:0 field:account.payment.term,active:0
+#: field:account.account,active:0
+#: field:account.analytic.account,active:0
+#: field:account.analytic.journal,active:0
+#: field:account.journal,active:0
+#: field:account.journal.period,active:0
+#: field:account.payment.term,active:0
#: field:account.tax,active:0
msgid "Active"
msgstr "Attivo"
@@ -3848,15 +3981,20 @@ msgid "Secondary Currency"
msgstr "Valuta secondaria"
#. module: account
-#: field:account.account,credit:0 rml:account.account.balance:0
+#: field:account.account,credit:0
+#: rml:account.account.balance:0
#: field:account.analytic.account,credit:0
#: rml:account.analytic.account.balance:0
#: rml:account.analytic.account.cost_ledger:0
#: rml:account.analytic.account.inverted.balance:0
-#: rml:account.central.journal:0 rml:account.journal.period.print:0
-#: field:account.model.line,credit:0 field:account.move.line,credit:0
-#: rml:account.partner.balance:0 rml:account.tax.code.entries:0
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: rml:account.central.journal:0
+#: rml:account.journal.period.print:0
+#: field:account.model.line,credit:0
+#: field:account.move.line,credit:0
+#: rml:account.partner.balance:0
+#: rml:account.tax.code.entries:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
#: rml:account.vat.declaration:0
#: field:report.hr.timesheet.invoice.journal,cost:0
msgid "Credit"
@@ -3889,7 +4027,8 @@ msgid "Account Move"
msgstr ""
#. module: account
-#: view:account.bank.statement:0 field:account.bank.statement,line_ids:0
+#: view:account.bank.statement:0
+#: field:account.bank.statement,line_ids:0
msgid "Statement lines"
msgstr ""
@@ -3981,15 +4120,18 @@ msgid "Journal Column"
msgstr "Colonna Libro Giornale"
#. module: account
-#: selection:account.fiscalyear,state:0 selection:account.invoice,state:0
-#: selection:account.journal.period,state:0 selection:account.period,state:0
+#: selection:account.fiscalyear,state:0
+#: selection:account.invoice,state:0
+#: selection:account.journal.period,state:0
+#: selection:account.period,state:0
#: selection:account.subscription,state:0
msgid "Done"
msgstr "Fatto"
#. module: account
#: wizard_field:account.account.balance.report,checktype,periods:0
-#: field:account.config.wizard,period:0 view:account.fiscalyear:0
+#: field:account.config.wizard,period:0
+#: view:account.fiscalyear:0
#: field:account.fiscalyear,period_ids:0
#: wizard_field:account.general.ledger.report,checktype,periods:0
#: wizard_field:account.partner.balance.report,init,periods:0
@@ -4002,7 +4144,8 @@ msgid "Periods"
msgstr "Periodi"
#. module: account
-#: rml:account.invoice:0 view:account.invoice:0
+#: rml:account.invoice:0
+#: view:account.invoice:0
#: field:account.move.line,invoice:0
#: model:ir.model,name:account.model_account_invoice
#: model:res.request.link,name:account.req_link_invoice
@@ -4029,7 +4172,8 @@ msgid "Analytic costs to reinvoice purchases, timesheets, ..."
msgstr ""
#. module: account
-#: field:account.account,tax_ids:0 field:account.account.template,tax_ids:0
+#: field:account.account,tax_ids:0
+#: field:account.account.template,tax_ids:0
msgid "Default Taxes"
msgstr "Tasse predefinite"
@@ -4084,7 +4228,8 @@ msgstr ""
#. module: account
#: field:account.analytic.account,name:0
#: rml:account.analytic.account.analytic.check:0
-#: rml:account.analytic.account.balance:0 rml:account.central.journal:0
+#: rml:account.analytic.account.balance:0
+#: rml:account.central.journal:0
msgid "Account Name"
msgstr "Nome conto"
@@ -4175,7 +4320,8 @@ msgid "Import file from your bank statement"
msgstr ""
#. module: account
-#: field:account.account,type:0 field:account.account.template,type:0
+#: field:account.account,type:0
+#: field:account.account.template,type:0
msgid "Internal Type"
msgstr ""
@@ -4201,12 +4347,14 @@ msgid "Posted"
msgstr ""
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Credit Notes"
msgstr ""
#. module: account
-#: field:account.config.wizard,date2:0 field:account.fiscalyear,date_stop:0
+#: field:account.config.wizard,date2:0
+#: field:account.fiscalyear,date_stop:0
msgid "End Date"
msgstr ""
@@ -4227,7 +4375,8 @@ msgid "Day of the Month"
msgstr "Giorno del mese"
#. module: account
-#: field:account.analytic.journal,line_ids:0 field:account.tax.code,line_ids:0
+#: field:account.analytic.journal,line_ids:0
+#: field:account.tax.code,line_ids:0
msgid "Lines"
msgstr "Righe"
@@ -4245,7 +4394,8 @@ msgid ""
msgstr ""
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Tax Declaration"
msgstr ""
@@ -4305,12 +4455,14 @@ msgid "The optional quantity on entries"
msgstr ""
#. module: account
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
msgid "JNRL"
msgstr ""
#. module: account
-#: view:account.fiscalyear:0 view:account.period:0
+#: view:account.fiscalyear:0
+#: view:account.period:0
msgid "States"
msgstr "Stato"
@@ -4346,7 +4498,8 @@ msgstr "Data inizio"
#: rml:account.analytic.account.balance:0
#: rml:account.analytic.account.inverted.balance:0
#: rml:account.analytic.account.quantity_cost_ledger:0
-#: field:account.invoice,amount_total:0 field:account.invoice,check_total:0
+#: field:account.invoice,amount_total:0
+#: field:account.invoice,check_total:0
msgid "Total"
msgstr "Totale"
@@ -4428,7 +4581,7 @@ msgstr ""
#: model:ir.actions.act_window,name:account.action_move_line_form_encode_by_move
#: model:ir.ui.menu,name:account.menu_encode_entries_by_move
msgid "Entries Encoding by Move"
-msgstr "Codifica delle registrazioni per movimento"
+msgstr "Registrazioni per movimento"
#. module: account
#: wizard_view:account.analytic.account.chart,init:0
@@ -4465,9 +4618,11 @@ msgstr "Voci valide per la fattura"
#: field:account.fiscal.position,company_id:0
#: field:account.fiscalyear,company_id:0
#: wizard_field:account.general.ledger.report,checktype,company_id:0
-#: field:account.invoice,company_id:0 field:account.journal,company_id:0
+#: field:account.invoice,company_id:0
+#: field:account.journal,company_id:0
#: wizard_field:account.partner.balance.report,init,company_id:0
-#: field:account.tax,company_id:0 field:account.tax.code,company_id:0
+#: field:account.tax,company_id:0
+#: field:account.tax.code,company_id:0
#: wizard_field:account.third_party_ledger.report,init,company_id:0
#: wizard_field:account.vat.declaration,init,company_id:0
#: field:wizard.company.setup,company_id:0
@@ -4562,9 +4717,12 @@ msgid "Print Aged Trial Balance"
msgstr ""
#. module: account
-#: field:account.analytic.line,ref:0 field:account.bank.statement.line,ref:0
-#: field:account.model.line,ref:0 field:account.move.line,ref:0
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: field:account.analytic.line,ref:0
+#: field:account.bank.statement.line,ref:0
+#: field:account.model.line,ref:0
+#: field:account.move.line,ref:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
msgid "Ref."
msgstr ""
@@ -4614,9 +4772,10 @@ msgid "Account cost and revenue by journal (This Month)"
msgstr ""
#. module: account
-#: model:ir.actions.act_window,name:account.action_aged_receivable
+#: selection:account.partner.balance.report,init,result_selection:0
+#: selection:account.third_party_ledger.report,init,result_selection:0
msgid "Receivable Accounts"
-msgstr "Contabilità Crediti"
+msgstr ""
#. module: account
#: wizard_button:account.move.line.unreconcile.select,init,open:0
@@ -4640,7 +4799,8 @@ msgid "Control Invoice"
msgstr ""
#. module: account
-#: selection:account.account,type:0 selection:account.account.template,type:0
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
#: selection:account.aged.trial.balance,init,result_selection:0
msgid "Receivable"
msgstr ""
@@ -4667,7 +4827,8 @@ msgstr "IVA:"
#. module: account
#: rml:account.analytic.account.cost_ledger:0
#: rml:account.analytic.account.quantity_cost_ledger:0
-#: rml:account.central.journal:0 rml:account.general.journal:0
+#: rml:account.central.journal:0
+#: rml:account.general.journal:0
#: rml:account.invoice:0
msgid "Total:"
msgstr ""
@@ -4678,7 +4839,8 @@ msgid "account.analytic.journal"
msgstr ""
#. module: account
-#: view:account.fiscal.position:0 field:account.fiscal.position,account_ids:0
+#: view:account.fiscal.position:0
+#: field:account.fiscal.position,account_ids:0
#: field:account.fiscal.position.template,account_ids:0
msgid "Account Mapping"
msgstr ""
@@ -4694,7 +4856,8 @@ msgid "Account Reconciliation"
msgstr ""
#. module: account
-#: view:account.bank.statement:0 selection:account.bank.statement,state:0
+#: view:account.bank.statement:0
+#: selection:account.bank.statement,state:0
msgid "Confirm"
msgstr "Conferma"
@@ -4709,7 +4872,8 @@ msgid "Parent Account Template"
msgstr ""
#. module: account
-#: help:account.tax,domain:0 help:account.tax.template,domain:0
+#: help:account.tax,domain:0
+#: help:account.tax.template,domain:0
msgid ""
"This field is only used if you develop your own module allowing developers "
"to create specific taxes in a custom domain."
@@ -4727,7 +4891,8 @@ msgid "Analytic account"
msgstr "Conto analitico"
#. module: account
-#: rml:account.invoice:0 selection:account.invoice,type:0
+#: rml:account.invoice:0
+#: selection:account.invoice,type:0
msgid "Supplier Invoice"
msgstr "Fattura fornitore"
@@ -4737,16 +4902,22 @@ msgid "Valid"
msgstr "Valido"
#. module: account
-#: field:account.account,debit:0 rml:account.account.balance:0
+#: field:account.account,debit:0
+#: rml:account.account.balance:0
#: field:account.analytic.account,debit:0
#: rml:account.analytic.account.balance:0
#: rml:account.analytic.account.cost_ledger:0
#: rml:account.analytic.account.inverted.balance:0
-#: rml:account.central.journal:0 rml:account.general.ledger:0
-#: rml:account.journal.period.print:0 field:account.model.line,debit:0
-#: field:account.move.line,debit:0 rml:account.partner.balance:0
-#: rml:account.tax.code.entries:0 rml:account.third_party_ledger:0
-#: rml:account.third_party_ledger_other:0 rml:account.vat.declaration:0
+#: rml:account.central.journal:0
+#: rml:account.general.ledger:0
+#: rml:account.journal.period.print:0
+#: field:account.model.line,debit:0
+#: field:account.move.line,debit:0
+#: rml:account.partner.balance:0
+#: rml:account.tax.code.entries:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
+#: rml:account.vat.declaration:0
#: field:report.hr.timesheet.invoice.journal,revenue:0
msgid "Debit"
msgstr "Dare"
@@ -4808,7 +4979,8 @@ msgid "Reporting"
msgstr "Reportistica"
#. module: account
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
msgid "/"
msgstr "/"
@@ -4839,7 +5011,8 @@ msgid "Configuration"
msgstr "Configurazione"
#. module: account
-#: view:account.analytic.line:0 view:account.invoice:0
+#: view:account.analytic.line:0
+#: view:account.invoice:0
msgid "Total amount"
msgstr "Importo totale"
@@ -4889,12 +5062,14 @@ msgid "Paid invoice"
msgstr ""
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Tax Definition"
msgstr "Definizione tasse"
#. module: account
-#: field:account.tax,tax_group:0 field:account.tax.template,tax_group:0
+#: field:account.tax,tax_group:0
+#: field:account.tax.template,tax_group:0
msgid "Tax Group"
msgstr "Gruppo tassa"
@@ -4929,12 +5104,14 @@ msgid "Maintains Invoice sequences with Fiscal Year"
msgstr ""
#. module: account
-#: selection:account.balance.account.balance.report,init,account_choice:0
+#: selection:account.account.balance.report,checktype,display_account:0
+#: selection:account.general.ledger.report,checktype,display_account:0
msgid "With movements"
-msgstr "Con movimentazioni"
+msgstr ""
#. module: account
-#: field:account.tax,domain:0 field:account.tax.template,domain:0
+#: field:account.tax,domain:0
+#: field:account.tax.template,domain:0
msgid "Domain"
msgstr "Dominio"
@@ -4959,7 +5136,9 @@ msgid "Manually"
msgstr ""
#. module: account
-#: view:account.invoice:0 view:account.tax:0 view:account.tax.template:0
+#: view:account.invoice:0
+#: view:account.tax:0
+#: view:account.tax.template:0
#: selection:account.vat.declaration,init,based_on:0
#: model:ir.actions.act_window,name:account.act_res_partner_2_account_invoice_opened
#: model:ir.actions.act_window,name:account.action_invoice_tree
@@ -4976,7 +5155,8 @@ msgid "Payable Accounts"
msgstr ""
#. module: account
-#: view:account.invoice.line:0 field:account.invoice.tax,invoice_id:0
+#: view:account.invoice.line:0
+#: field:account.invoice.tax,invoice_id:0
msgid "Invoice Line"
msgstr "Voce fattura"
@@ -5027,7 +5207,8 @@ msgid "The optional other currency if it is a multi-currency entry."
msgstr ""
#. module: account
-#: view:account.invoice:0 field:account.invoice,payment_ids:0
+#: view:account.invoice:0
+#: field:account.invoice,payment_ids:0
#: selection:account.vat.declaration,init,based_on:0
msgid "Payments"
msgstr ""
@@ -5073,9 +5254,12 @@ msgstr ""
#. module: account
#: selection:account.analytic.account,state:0
#: selection:account.bank.statement,state:0
-#: selection:account.fiscalyear,state:0 selection:account.invoice,state:0
-#: selection:account.journal.period,state:0 selection:account.move,state:0
-#: selection:account.move.line,state:0 selection:account.period,state:0
+#: selection:account.fiscalyear,state:0
+#: selection:account.invoice,state:0
+#: selection:account.journal.period,state:0
+#: selection:account.move,state:0
+#: selection:account.move.line,state:0
+#: selection:account.period,state:0
#: selection:account.subscription,state:0
msgid "Draft"
msgstr "Bozza"
@@ -5102,7 +5286,8 @@ msgid "Are you sure ?"
msgstr "Sei sicuro?"
#. module: account
-#: rml:account.invoice:0 view:account.invoice:0
+#: rml:account.invoice:0
+#: view:account.invoice:0
msgid "PRO-FORMA"
msgstr "Pro-Forma"
@@ -5138,16 +5323,22 @@ msgid "Supplier Invoice Process"
msgstr ""
#. module: account
-#: rml:account.account.balance:0 rml:account.analytic.account.analytic.check:0
-#: rml:account.analytic.account.balance:0 rml:account.general.ledger:0
-#: rml:account.journal.period.print:0 rml:account.partner.balance:0
-#: rml:account.tax.code.entries:0 rml:account.third_party_ledger:0
-#: rml:account.third_party_ledger_other:0 rml:account.vat.declaration:0
+#: rml:account.account.balance:0
+#: rml:account.analytic.account.analytic.check:0
+#: rml:account.analytic.account.balance:0
+#: rml:account.general.ledger:0
+#: rml:account.journal.period.print:0
+#: rml:account.partner.balance:0
+#: rml:account.tax.code.entries:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
+#: rml:account.vat.declaration:0
msgid "Page"
msgstr ""
#. module: account
-#: view:account.move:0 view:account.move.line:0
+#: view:account.move:0
+#: view:account.move.line:0
msgid "Optional Information"
msgstr ""
@@ -5163,7 +5354,8 @@ msgid "Receivable and Payable"
msgstr ""
#. module: account
-#: rml:account.account.balance:0 rml:account.general.journal:0
+#: rml:account.account.balance:0
+#: rml:account.general.journal:0
msgid ":"
msgstr ""
@@ -5186,7 +5378,8 @@ msgid ""
msgstr ""
#. module: account
-#: view:account.bank.statement:0 view:account.bank.statement.reconcile:0
+#: view:account.bank.statement:0
+#: view:account.bank.statement.reconcile:0
#: view:account.subscription:0
msgid "Compute"
msgstr ""
@@ -5230,7 +5423,8 @@ msgid "End of period"
msgstr "Fine Periodo"
#. module: account
-#: view:account.move:0 model:ir.model,name:account.model_account_move
+#: view:account.move:0
+#: model:ir.model,name:account.model_account_move
msgid "Account Entry"
msgstr "Registrazione Contabile"
@@ -5241,10 +5435,24 @@ msgid "General Journal"
msgstr ""
#. module: account
-#: rml:account.account.balance.landscape:0
-#: rml:account.balance.account.balance:0
+#: field:account.account,balance:0
+#: rml:account.account.balance:0
+#: selection:account.account.type,close_method:0
+#: field:account.analytic.account,balance:0
+#: rml:account.analytic.account.balance:0
+#: rml:account.analytic.account.cost_ledger:0
+#: rml:account.analytic.account.inverted.balance:0
+#: field:account.bank.statement,balance_end:0
+#: field:account.bank.statement.reconcile,total_balance:0
+#: rml:account.general.ledger:0
+#: field:account.move.line,balance:0
+#: rml:account.partner.balance:0
+#: selection:account.payment.term.line,value:0
+#: selection:account.tax,type:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
msgid "Balance"
-msgstr "Bilancio"
+msgstr ""
#. module: account
#: rml:account.invoice:0
@@ -5285,8 +5493,11 @@ msgid "The sequence used for invoice numbers in this journal."
msgstr ""
#. module: account
-#: view:account.account:0 view:account.account.template:0
-#: view:account.journal:0 view:account.move:0 view:account.move.line:0
+#: view:account.account:0
+#: view:account.account.template:0
+#: view:account.journal:0
+#: view:account.move:0
+#: view:account.move.line:0
msgid "General Information"
msgstr ""
@@ -5325,7 +5536,8 @@ msgid "List of Accounts"
msgstr "Piano dei conti"
#. module: account
-#: view:product.product:0 view:product.template:0
+#: view:product.product:0
+#: view:product.template:0
msgid "Sales Properties"
msgstr ""
@@ -5418,11 +5630,15 @@ msgstr ""
#: view:account.analytic.account:0
#: field:account.analytic.account,description:0
#: field:account.analytic.line,name:0
-#: field:account.bank.statement.reconcile.line,name:0 rml:account.invoice:0
-#: field:account.invoice,name:0 field:account.invoice.line,name:0
+#: field:account.bank.statement.reconcile.line,name:0
+#: rml:account.invoice:0
+#: field:account.invoice,name:0
+#: field:account.invoice.line,name:0
#: wizard_field:account.invoice.refund,init,description:0
-#: rml:account.overdue:0 field:account.payment.term,note:0
-#: field:account.tax.code,info:0 field:account.tax.code.template,info:0
+#: rml:account.overdue:0
+#: field:account.payment.term,note:0
+#: field:account.tax.code,info:0
+#: field:account.tax.code.template,info:0
msgid "Description"
msgstr "Descrizione"
@@ -5466,7 +5682,8 @@ msgid ""
msgstr ""
#. module: account
-#: field:account.tax.code,code:0 field:account.tax.code.template,code:0
+#: field:account.tax.code,code:0
+#: field:account.tax.code.template,code:0
msgid "Case Code"
msgstr ""
@@ -5548,7 +5765,8 @@ msgstr "Definizione Modelli"
#. module: account
#: model:account.account.type,name:account.account_type_cash_moves
-#: selection:account.analytic.journal,type:0 selection:account.journal,type:0
+#: selection:account.analytic.journal,type:0
+#: selection:account.journal,type:0
msgid "Cash"
msgstr "Contante"
@@ -5588,7 +5806,8 @@ msgid "Keep empty for all open fiscal year"
msgstr "Lasciare vuoto per tutti gli esercizi fiscali aperti"
#. module: account
-#: rml:account.invoice:0 selection:account.invoice,type:0
+#: rml:account.invoice:0
+#: selection:account.invoice,type:0
msgid "Supplier Refund"
msgstr "Resi a fornitore"
@@ -5635,8 +5854,10 @@ msgid ""
msgstr ""
#. module: account
-#: help:account.tax,base_sign:0 help:account.tax,ref_base_sign:0
-#: help:account.tax,ref_tax_sign:0 help:account.tax,tax_sign:0
+#: help:account.tax,base_sign:0
+#: help:account.tax,ref_base_sign:0
+#: help:account.tax,ref_tax_sign:0
+#: help:account.tax,tax_sign:0
#: help:account.tax.template,base_sign:0
#: help:account.tax.template,ref_base_sign:0
#: help:account.tax.template,ref_tax_sign:0
@@ -5670,8 +5891,10 @@ msgid "Name of the fiscal year as displayed on screens."
msgstr "Nome dell'esercizio fiscale come visualizzato sugli schermi"
#. module: account
-#: field:account.invoice,payment_term:0 view:account.payment.term:0
-#: field:account.payment.term,name:0 view:account.payment.term.line:0
+#: field:account.invoice,payment_term:0
+#: view:account.payment.term:0
+#: field:account.payment.term,name:0
+#: view:account.payment.term.line:0
#: field:account.payment.term.line,payment_id:0
#: model:ir.model,name:account.model_account_payment_term
#: field:res.partner,property_payment_term:0
@@ -5728,7 +5951,8 @@ msgstr "Sì"
#. module: account
#: help:account.account,reconcile:0
-msgid "Check this if the user is allowed to reconcile entries in this account."
+msgid ""
+"Check this if the user is allowed to reconcile entries in this account."
msgstr ""
#. module: account
@@ -5739,34 +5963,35 @@ msgstr ""
#. module: account
#: view:board.board:0
msgid "Analytic accounts to close"
-msgstr "Contabilità Analitiche da Chiudere"
+msgstr ""
#. module: account
#: view:board.board:0
msgid "Draft invoices"
-msgstr "Bozze di Fattura"
+msgstr ""
#. module: account
#: model:ir.actions.act_window,name:account.open_board_account
#: model:ir.ui.menu,name:account.menu_board_account
msgid "Accounting Dashboard"
-msgstr "Dashboard Contabilità"
+msgstr ""
#. module: account
-#: view:board.board:0 model:ir.actions.act_window,name:account.act_my_account
+#: view:board.board:0
+#: model:ir.actions.act_window,name:account.act_my_account
msgid "Accounts to invoice"
-msgstr "Conti da Fatturare"
+msgstr ""
#. module: account
#: view:board.board:0
#: model:ir.actions.act_window,name:account.action_account_analytic_line_to_invoice
msgid "Costs to invoice"
-msgstr "Costi da Fatturare"
+msgstr ""
#. module: account
#: view:board.board:0
msgid "Aged receivables"
-msgstr "Crediti datati"
+msgstr ""
#. module: account
#: model:ir.module.module,shortdesc:account.module_meta_information
@@ -5776,12 +6001,12 @@ msgstr ""
#. module: account
#: model:ir.actions.act_window,name:account.action_aged_income
msgid "Income Accounts"
-msgstr "Contabilità Entrate"
+msgstr ""
#. module: account
#: view:board.board:0
msgid "My indicators"
-msgstr "I Miei Indicatori"
+msgstr ""
#. module: account
#: view:board.board:0
@@ -5791,69 +6016,69 @@ msgstr ""
#. module: account
#: view:board.board:0
msgid "Aged income"
-msgstr "Entrata datata"
+msgstr ""
#. module: account
#: wizard_field:account.balance.account.balance.report,init,show_columns:0
msgid "Show Debit/Credit Information"
-msgstr "Visualizza i debiti/crediti"
+msgstr ""
#. module: account
#: selection:account.balance.account.balance.report,init,account_choice:0
msgid "All accounts"
-msgstr "Tutti i conti"
+msgstr ""
#. module: account
#: wizard_field:account.balance.account.balance.report,init,period_manner:0
msgid "Entries Selection Based on"
-msgstr "Entrate selezionate in base a"
+msgstr ""
#. module: account
#: wizard_view:account.balance.account.balance.report,backtoinit:0
#: wizard_view:account.balance.account.balance.report,zero_years:0
msgid "Notification"
-msgstr "Avviso"
+msgstr ""
#. module: account
#: selection:account.balance.account.balance.report,init,period_manner:0
msgid "Financial Period"
-msgstr "Periodo finanziario"
+msgstr ""
#. module: account
#: model:ir.actions.report.xml,name:account.account_account_balance
#: model:ir.actions.report.xml,name:account.account_account_balance_landscape
msgid "Account balance"
-msgstr "Bilancio"
+msgstr ""
#. module: account
#: wizard_view:account.balance.account.balance.report,init:0
msgid "Select Period(s)"
-msgstr "Seleziona periodo(i)"
+msgstr ""
#. module: account
#: selection:account.balance.account.balance.report,init,compare_pattern:0
msgid "Percentage"
-msgstr "Percentuale"
+msgstr ""
#. module: account
#: wizard_field:account.balance.account.balance.report,init,compare_pattern:0
msgid "Compare Selected Years In Terms Of"
-msgstr "Confronta gli anni selezionati in base a"
+msgstr ""
#. module: account
#: wizard_view:account.balance.account.balance.report,init:0
msgid "Select Fiscal Year(s)(Maximum Three Years)"
-msgstr "Seleziona gli anni fiscali (Max 3)"
+msgstr ""
#. module: account
#: wizard_field:account.balance.account.balance.report,init,select_account:0
msgid "Select Reference Account(for % comparision)"
-msgstr "Selezionare Conto di riferimento (per % confronto)"
+msgstr ""
#. module: account
#: model:ir.actions.wizard,name:account.wizard_account_balance_report
msgid "Account balance-Compare Years"
-msgstr "Bilancio - Confronta anni"
+msgstr ""
#. module: account
#: model:ir.module.module,description:account.module_meta_information
@@ -5876,88 +6101,68 @@ msgid ""
" 5. You have an option to print the desired report in Landscape format.\n"
" "
msgstr ""
-"Il modulo Bilancio è una funzione aggiuntiva del modulo Gestione "
-"Finanziaria.\n"
-"\n"
-" Questo modulo fornisce le diverse opzioni per la stampa del foglio di "
-"bilancio.\n"
-"\n"
-" 1. Si può comparare il bilancio per anni differenti.\n"
-"\n"
-" 2. Si può impostare comparazione monetaria o in percentuale tra due "
-"anni.\n"
-"\n"
-" 3. Si può impostare il conto di riferimento per una comparazione "
-"percentuale per specifici anni.\n"
-"\n"
-" 4. Si possono selezionale periodi dalla data attuale o periodi dalla "
-"data di creazione.\n"
-"\n"
-" 5. C'è la possibilità di stampare il report desiderato in formato "
-"Landscape.\n"
-" "
#. module: account
#: wizard_view:account.balance.account.balance.report,backtoinit:0
msgid "You have to select 'Landscape' option. Please Check it."
-msgstr "Deve essere selezionata l'opzione 'Orizzontale'. Controllare"
+msgstr ""
#. module: account
#: wizard_field:account.balance.account.balance.report,init,landscape:0
msgid "Show Report in Landscape Form"
-msgstr "Mostra il report nel formato dello Stato"
+msgstr ""
#. module: account
#: rml:account.account.balance.landscape:0
#: rml:account.balance.account.balance:0
msgid "Total :"
-msgstr "Totale :"
+msgstr ""
#. module: account
#: wizard_field:account.balance.account.balance.report,init,format_perc:0
msgid "Show Comparision in %"
-msgstr "Mostra in %"
+msgstr ""
#. module: account
#: wizard_view:account.balance.account.balance.report,init:0
msgid "Select Period"
-msgstr "Seleziona periodo"
+msgstr ""
#. module: account
#: wizard_view:account.balance.account.balance.report,init:0
msgid "Report Options"
-msgstr "Report opzioni"
+msgstr ""
#. module: account
#: selection:account.balance.account.balance.report,init,compare_pattern:0
msgid "Don't Compare"
-msgstr "Non Comparabile"
+msgstr ""
#. module: account
#: wizard_field:account.balance.account.balance.report,init,account_choice:0
msgid "Show Accounts"
-msgstr "Mostra Contabilità"
+msgstr ""
#. module: account
#: wizard_view:account.balance.account.balance.report,backtoinit:0
msgid "1. You have selected more than 3 years in any case."
-msgstr "Hai selezionato più di 3 anni in ogni scelta."
+msgstr ""
#. module: account
#: model:ir.module.module,shortdesc:account.module_meta_information
msgid "Accounting and financial management-Compare Accounts"
-msgstr "Gestione Finanziaria e Contabile - Confronto Conti"
+msgstr ""
#. module: account
#: rml:account.account.balance.landscape:0
#: rml:account.balance.account.balance:0
msgid "Year :"
-msgstr "Anno :"
+msgstr ""
#. module: account
#: wizard_view:account.balance.account.balance.report,backtoinit:0
msgid "You can select maximum 3 years. Please check again."
-msgstr "Puoi selezionare massimo 3 anni. Controlla ancora."
+msgstr ""
#. module: account
#: wizard_view:account.balance.account.balance.report,backtoinit:0
@@ -5965,24 +6170,22 @@ msgid ""
"3. You have selected 'Percentage' option with more than 2 years, but you "
"have not selected landscape format."
msgstr ""
-"3. Hai selezionato l'opzione 'Percentuale' con più di 2 anni, ma non hai "
-"selezionato il formato Orizzontale"
#. module: account
#: wizard_view:account.balance.account.balance.report,backtoinit:0
msgid ""
"You might have done following mistakes. Please correct them and try again."
-msgstr "Potresti aver fatto i seguenti errori. Correggili e riprova."
+msgstr ""
#. module: account
#: help:account.balance.account.balance.report,init,select_account:0
msgid "Keep empty for comparision to its parent"
-msgstr "Svuota per comparare con i sovraconti."
+msgstr ""
#. module: account
#: selection:account.balance.account.balance.report,init,period_manner:0
msgid "Creation Date"
-msgstr "Data di Creazione"
+msgstr ""
#. module: account
#: wizard_view:account.balance.account.balance.report,backtoinit:0
@@ -5990,29 +6193,24 @@ msgid ""
"2. You have not selected 'Percentage' option, but you have selected more "
"than 2 years."
msgstr ""
-"2. Non hai selezionato l'opzione 'Percentuale', ma hai selezionato più di 2 "
-"anni."
#. module: account
#: wizard_view:account.balance.account.balance.report,zero_years:0
msgid ""
-"You may have selected the compare options with more than 1 year with credit/"
-"debit columns and % option.This can lead contents to be printed out of the "
-"paper.Please try again."
+"You may have selected the compare options with more than 1 year with "
+"credit/debit columns and % option.This can lead contents to be printed out "
+"of the paper.Please try again."
msgstr ""
-"Potresti aver selezionato le opzioni confronto per più di 1 anno con le "
-"colonne credito/debito e % come opzione. Questo potrebbe far uscire i "
-"contenuti dai margini di stampa. Controlla."
#. module: account
#: wizard_view:account.balance.account.balance.report,zero_years:0
msgid "You have to select at least 1 Fiscal Year. Try again."
-msgstr "Devi selezionare almeno 1 anno Fiscale. Riprova."
+msgstr ""
#. module: account
#: wizard_view:account.balance.account.balance.report,init:0
msgid "Customize Report"
-msgstr "Rapporto Personalizzato"
+msgstr ""
#. module: account
#: field:report.aged.receivable,name:0
@@ -6020,12 +6218,12 @@ msgid "Month Range"
msgstr ""
#. module: account
-#: model:ir.actions.act_window,name:account.action_view_created_invoice_dashboard
+#: model:ir.actions.act_window,name:report_account.action_view_created_invoice_dashboard
msgid "Invoices Created Within Past 15 Days"
msgstr ""
#. module: account
-#: model:ir.model,name:account.model_report_invoice_created
+#: model:ir.model,name:report_account.model_report_invoice_created
msgid "Report of Invoices Created within Last 15 days"
msgstr ""
@@ -6037,17 +6235,17 @@ msgstr ""
#. module: account
#: view:report.account.receivable:0
msgid "Accounts by type"
-msgstr "Conti per Tipo"
+msgstr ""
#. module: account
-#: model:ir.model,name:account.model_report_aged_receivable
+#: model:ir.model,name:report_account.model_report_aged_receivable
msgid "Aged Receivable Till Today"
msgstr ""
#. module: account
-#: model:ir.model,name:account.model_report_account_receivable
+#: model:ir.model,name:report_account.model_report_account_receivable
msgid "Receivable accounts"
-msgstr "Contabilità Crediti"
+msgstr ""
#. module: account
#: field:temp.range,name:0
@@ -6055,25 +6253,25 @@ msgid "Range"
msgstr ""
#. module: account
-#: model:ir.module.module,description:account.module_meta_information
+#: model:ir.module.module,description:report_account.module_meta_information
msgid "A module that adds new reports based on the account module."
msgstr ""
#. module: account
-#: model:ir.module.module,shortdesc:account.module_meta_information
+#: model:ir.module.module,shortdesc:report_account.module_meta_information
msgid "Account Reporting - Reporting"
msgstr ""
#. module: account
-#: model:ir.actions.act_window,name:account.action_account_receivable_graph
-#: model:ir.ui.menu,name:account.menu_account_receivable_graph
+#: model:ir.actions.act_window,name:report_account.action_account_receivable_graph
+#: model:ir.ui.menu,name:report_account.menu_account_receivable_graph
msgid "Balance by Type of Account"
-msgstr "Saldo per Tipo Conto"
+msgstr ""
#. module: account
#: field:report.account.receivable,name:0
msgid "Week of Year"
-msgstr "Settimana Anno"
+msgstr ""
#. module: account
#: field:report.invoice.created,create_date:0
@@ -6081,7 +6279,7 @@ msgid "Create Date"
msgstr ""
#. module: account
-#: model:ir.actions.act_window,name:account.action_aged_receivable_graph
+#: model:ir.actions.act_window,name:report_account.action_aged_receivable_graph
#: view:report.aged.receivable:0
msgid "Aged Receivable"
msgstr ""
diff --git a/addons/account/i18n/ru.po b/addons/account/i18n/ru.po
index 699df15a9a2..ea4307e5542 100644
--- a/addons/account/i18n/ru.po
+++ b/addons/account/i18n/ru.po
@@ -1,19 +1,19 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * account
+# * account
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-04-03 16:42+0000\n"
-"Last-Translator: Alexandr Mitev \n"
+"PO-Revision-Date: 2010-07-07 22:55+0000\n"
+"Last-Translator: Pomazan Bogdan \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: 2010-06-22 04:05+0000\n"
+"X-Launchpad-Export-Date: 2010-07-08 03:50+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@@ -93,7 +93,8 @@ msgid "Unreconciled entries"
msgstr "Несогласованные проводки"
#. module: account
-#: field:account.invoice.tax,base_code_id:0 field:account.tax,base_code_id:0
+#: field:account.invoice.tax,base_code_id:0
+#: field:account.tax,base_code_id:0
#: field:account.tax.template,base_code_id:0
msgid "Base Code"
msgstr "Базовый Код"
@@ -125,7 +126,8 @@ msgid "Residual"
msgstr "Остаток"
#. module: account
-#: field:account.tax,base_sign:0 field:account.tax,ref_base_sign:0
+#: field:account.tax,base_sign:0
+#: field:account.tax,ref_base_sign:0
#: field:account.tax.template,base_sign:0
#: field:account.tax.template,ref_base_sign:0
msgid "Base Code Sign"
@@ -169,6 +171,10 @@ msgid ""
"positive, it gives the day of the next month. Set 0 for net days (otherwise "
"it's based on the beginning of the month)."
msgstr ""
+"Установите значение дня месяца -1 для последнего дня текущего месяца. В "
+"случае положительного значения, значение дня будет соответствовать дню "
+"следующего месяца. Установите значение 0 для чистых дней (иначе счет идет с "
+"начала месяца)."
#. module: account
#: view:account.move:0
@@ -186,8 +192,10 @@ msgid "Move line select"
msgstr "Выберите строку для перемещения"
#. module: account
-#: rml:account.journal.period.print:0 rml:account.tax.code.entries:0
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: rml:account.journal.period.print:0
+#: rml:account.tax.code.entries:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
msgid "Entry label"
msgstr "Метка проводки"
@@ -202,12 +210,14 @@ msgid "Period Sum"
msgstr "Сумма за период"
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Compute Code (if type=code)"
msgstr "Вычислить код (если тип=код)"
#. module: account
-#: view:account.move:0 view:account.move.line:0
+#: view:account.move:0
+#: view:account.move.line:0
msgid "Account Entry Line"
msgstr "Проводка по счету"
@@ -224,9 +234,12 @@ msgstr "Повторяющиеся проводки"
#. module: account
#: field:account.analytic.line,amount:0
#: field:account.bank.statement.line,amount:0
-#: field:account.bank.statement.reconcile.line,amount:0 rml:account.invoice:0
-#: field:account.invoice.tax,amount:0 field:account.move,amount:0
-#: field:account.tax,amount:0 field:account.tax.template,amount:0
+#: field:account.bank.statement.reconcile.line,amount:0
+#: rml:account.invoice:0
+#: field:account.invoice.tax,amount:0
+#: field:account.move,amount:0
+#: field:account.tax,amount:0
+#: field:account.tax.template,amount:0
#: xsl:account.transfer:0
msgid "Amount"
msgstr "Сумма"
@@ -268,7 +281,8 @@ msgstr ""
"быстрого редактирования каждой книги проводок."
#. module: account
-#: help:account.invoice,date_due:0 help:account.invoice,payment_term:0
+#: help:account.invoice,date_due:0
+#: help:account.invoice,payment_term:0
msgid ""
"If you use payment terms, the due date will be computed automatically at the "
"generation of accounting entries. If you keep the payment term and the due "
@@ -282,12 +296,14 @@ msgstr ""
"50% сегодня, 50% в следующем месяце."
#. module: account
-#: selection:account.tax,type:0 selection:account.tax.template,type:0
+#: selection:account.tax,type:0
+#: selection:account.tax.template,type:0
msgid "Fixed"
msgstr "Фиксированный"
#. module: account
-#: model:ir.actions.report.xml,name:account.account_overdue view:res.company:0
+#: model:ir.actions.report.xml,name:account.account_overdue
+#: view:res.company:0
msgid "Overdue Payments"
msgstr "Просроченные платежи"
@@ -303,7 +319,8 @@ msgid "Select period"
msgstr "Выбрать период"
#. module: account
-#: field:account.invoice,origin:0 field:account.invoice.line,origin:0
+#: field:account.invoice,origin:0
+#: field:account.invoice.line,origin:0
msgid "Origin"
msgstr "Происхождение"
@@ -333,7 +350,8 @@ msgid "Delta Debit"
msgstr "Дебетовое сальдо"
#. module: account
-#: rml:account.invoice:0 field:account.invoice,amount_tax:0
+#: rml:account.invoice:0
+#: field:account.invoice,amount_tax:0
#: field:account.move.line,account_tax_id:0
msgid "Tax"
msgstr "Налог"
@@ -352,12 +370,14 @@ msgid "Analytic Account"
msgstr "Счет аналитического учета"
#. module: account
-#: field:account.tax,child_depend:0 field:account.tax.template,child_depend:0
+#: field:account.tax,child_depend:0
+#: field:account.tax.template,child_depend:0
msgid "Tax on Children"
msgstr "Налог на детей"
#. module: account
-#: rml:account.central.journal:0 rml:account.general.journal:0
+#: rml:account.central.journal:0
+#: rml:account.general.journal:0
#: field:account.journal,name:0
msgid "Journal Name"
msgstr "Название журнала"
@@ -425,8 +445,11 @@ msgid "Contra"
msgstr "Сторно"
#. module: account
-#: field:account.analytic.account,state:0 field:account.bank.statement,state:0
-#: field:account.invoice,state:0 view:account.move:0 view:account.move.line:0
+#: field:account.analytic.account,state:0
+#: field:account.bank.statement,state:0
+#: field:account.invoice,state:0
+#: view:account.move:0
+#: view:account.move.line:0
#: view:account.subscription:0
msgid "State"
msgstr "Состояние"
@@ -438,7 +461,8 @@ msgid "Unpaid Supplier Refunds"
msgstr "Невыплаченные возвраты средств от поставщика"
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Special Computation"
msgstr "Специальные расчеты"
@@ -460,8 +484,10 @@ msgid "Disc.(%)"
msgstr "Дисконт (%)"
#. module: account
-#: rml:account.general.ledger:0 field:account.model,ref:0
-#: field:account.move,ref:0 rml:account.overdue:0
+#: rml:account.general.ledger:0
+#: field:account.model,ref:0
+#: field:account.move,ref:0
+#: rml:account.overdue:0
#: field:account.subscription,ref:0
msgid "Ref"
msgstr "Ссылка"
@@ -654,7 +680,8 @@ msgid "Sub-Total :"
msgstr "Подитог:"
#. module: account
-#: field:account.analytic.account,line_ids:0 view:account.analytic.line:0
+#: field:account.analytic.account,line_ids:0
+#: view:account.analytic.line:0
#: model:ir.actions.act_window,name:account.action_account_analytic_line_form
#: model:ir.ui.menu,name:account.next_id_41
msgid "Analytic Entries"
@@ -686,7 +713,8 @@ msgid "Select the Period for Analysis"
msgstr "Выберите период для проведения анализа"
#. module: account
-#: field:account.tax,ref_tax_sign:0 field:account.tax,tax_sign:0
+#: field:account.tax,ref_tax_sign:0
+#: field:account.tax,tax_sign:0
#: field:account.tax.template,ref_tax_sign:0
#: field:account.tax.template,tax_sign:0
msgid "Tax Code Sign"
@@ -718,7 +746,8 @@ msgid "Field Name"
msgstr "Название поля"
#. module: account
-#: field:account.tax.code,sign:0 field:account.tax.code.template,sign:0
+#: field:account.tax.code,sign:0
+#: field:account.tax.code.template,sign:0
msgid "Sign for parent"
msgstr ""
@@ -728,7 +757,8 @@ msgid "End of Year Entries Journal"
msgstr "Журнал проводок конца года"
#. module: account
-#: view:product.product:0 view:product.template:0
+#: view:product.product:0
+#: view:product.template:0
msgid "Purchase Properties"
msgstr "Свойства покупки"
@@ -748,9 +778,12 @@ msgid "Move Lines Created."
msgstr "Строка финансового документа создана."
#. module: account
-#: field:account.fiscalyear,state:0 field:account.journal.period,state:0
-#: field:account.move,state:0 field:account.move.line,state:0
-#: field:account.period,state:0 field:account.subscription,state:0
+#: field:account.fiscalyear,state:0
+#: field:account.journal.period,state:0
+#: field:account.move,state:0
+#: field:account.move.line,state:0
+#: field:account.period,state:0
+#: field:account.subscription,state:0
msgid "Status"
msgstr "Статус"
@@ -907,8 +940,10 @@ msgstr "Выбор плана счетов"
#: rml:account.analytic.account.balance:0
#: rml:account.analytic.account.inverted.balance:0
#: rml:account.analytic.account.quantity_cost_ledger:0
-#: field:account.analytic.line,unit_amount:0 rml:account.invoice:0
-#: field:account.invoice.line,quantity:0 field:account.model.line,quantity:0
+#: field:account.analytic.line,unit_amount:0
+#: rml:account.invoice:0
+#: field:account.invoice.line,quantity:0
+#: field:account.model.line,quantity:0
#: field:account.move.line,quantity:0
msgid "Quantity"
msgstr "Количество"
@@ -951,13 +986,16 @@ msgstr "aналитический счет"
#: wizard_field:account.automatic.reconcile,init,period_id:0
#: field:account.bank.statement,period_id:0
#: wizard_field:account.central.journal.report,init,period_id:0
-#: view:account.fiscalyear:0 rml:account.general.journal:0
+#: view:account.fiscalyear:0
+#: rml:account.general.journal:0
#: wizard_field:account.general.journal.report,init,period_id:0
#: wizard_field:account.invoice.pay,init,period_id:0
-#: field:account.journal.period,period_id:0 field:account.move,period_id:0
+#: field:account.journal.period,period_id:0
+#: field:account.move,period_id:0
#: wizard_field:account.move.journal,init,period_id:0
#: field:account.move.line,period_id:0
-#: wizard_field:account.move.validate,init,period_id:0 view:account.period:0
+#: wizard_field:account.move.validate,init,period_id:0
+#: view:account.period:0
#: wizard_field:account.print.journal.report,init,period_id:0
#: field:account.subscription,period_nbr:0
msgid "Period"
@@ -979,7 +1017,8 @@ msgid "Net Total:"
msgstr "Итог нетто"
#. module: account
-#: view:account.fiscal.position:0 field:account.fiscal.position,name:0
+#: view:account.fiscal.position:0
+#: field:account.fiscal.position,name:0
#: field:account.fiscal.position.account,position_id:0
#: field:account.fiscal.position.account.template,position_id:0
#: field:account.fiscal.position.tax,position_id:0
@@ -1103,7 +1142,8 @@ msgid "Fiscal Position Templates"
msgstr ""
#. module: account
-#: rml:account.invoice:0 field:account.invoice.line,price_unit:0
+#: rml:account.invoice:0
+#: field:account.invoice.line,price_unit:0
msgid "Unit Price"
msgstr "Цена за ед."
@@ -1256,7 +1296,8 @@ msgid "Not reconciled transactions"
msgstr "Не сверенные транзакции"
#. module: account
-#: view:account.fiscal.position:0 field:account.fiscal.position,tax_ids:0
+#: view:account.fiscal.position:0
+#: field:account.fiscal.position,tax_ids:0
#: field:account.fiscal.position.template,tax_ids:0
msgid "Tax Mapping"
msgstr ""
@@ -1278,7 +1319,8 @@ msgid "Write-Off account"
msgstr "Счет списания"
#. module: account
-#: field:account.model.line,model_id:0 field:account.subscription,model_id:0
+#: field:account.model.line,model_id:0
+#: field:account.subscription,model_id:0
msgid "Model"
msgstr "Модель"
@@ -1304,9 +1346,11 @@ msgid "Select invoices you want to pay and manages advances"
msgstr ""
#. module: account
-#: selection:account.account,type:0 selection:account.account.template,type:0
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
#: model:account.account.type,name:account.account_type_root
-#: selection:account.analytic.account,type:0 field:account.journal,view_id:0
+#: selection:account.analytic.account,type:0
+#: field:account.journal,view_id:0
msgid "View"
msgstr "Вид"
@@ -1375,7 +1419,8 @@ msgstr "Типы счетов"
#: wizard_field:account.central.journal.report,init,journal_id:0
#: wizard_field:account.general.journal.report,init,journal_id:0
#: field:account.invoice,journal_id:0
-#: field:account.journal.period,journal_id:0 field:account.model,journal_id:0
+#: field:account.journal.period,journal_id:0
+#: field:account.model,journal_id:0
#: field:account.move,journal_id:0
#: wizard_field:account.move.bank.reconcile,init,journal_id:0
#: wizard_field:account.move.journal,init,journal_id:0
@@ -1391,7 +1436,8 @@ msgid "Journal"
msgstr "Журнал"
#. module: account
-#: field:account.account,child_id:0 field:account.analytic.account,child_ids:0
+#: field:account.account,child_id:0
+#: field:account.analytic.account,child_ids:0
msgid "Child Accounts"
msgstr ""
@@ -1417,7 +1463,8 @@ msgid "Statement reconcile line"
msgstr ""
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Keep empty to use the income account"
msgstr "Оставьте пустым для использования доходного счета"
@@ -1544,7 +1591,8 @@ msgid "Account n°"
msgstr "№ счета"
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Keep empty to use the expense account"
msgstr "Оставьте пустым для использования счета расходов"
@@ -1554,7 +1602,8 @@ msgid "Account to reconcile"
msgstr "Счет для сверки"
#. module: account
-#: rml:account.invoice:0 field:account.model.line,partner_id:0
+#: rml:account.invoice:0
+#: field:account.model.line,partner_id:0
#: field:account.move.line,partner_id:0
msgid "Partner Ref."
msgstr "Ссылка на партнера"
@@ -1566,12 +1615,14 @@ msgid "Receivable and Payable Accounts"
msgstr ""
#. module: account
-#: view:account.subscription:0 field:account.subscription,lines_id:0
+#: view:account.subscription:0
+#: field:account.subscription,lines_id:0
msgid "Subscription Lines"
msgstr "Позиции подписки"
#. module: account
-#: selection:account.analytic.journal,type:0 selection:account.journal,type:0
+#: selection:account.analytic.journal,type:0
+#: selection:account.journal,type:0
#: selection:account.tax,type_tax_use:0
#: selection:account.tax.template,type_tax_use:0
msgid "Purchase"
@@ -1736,7 +1787,8 @@ msgid "Period length (days)"
msgstr "Длина периода (в днях)"
#. module: account
-#: selection:account.payment.term.line,value:0 selection:account.tax,type:0
+#: selection:account.payment.term.line,value:0
+#: selection:account.tax,type:0
#: selection:account.tax.template,type:0
msgid "Percent"
msgstr "Процент"
@@ -1747,7 +1799,8 @@ msgid "Charts"
msgstr "Планы счетов"
#. module: account
-#: selection:account.analytic.journal,type:0 selection:account.journal,type:0
+#: selection:account.analytic.journal,type:0
+#: selection:account.journal,type:0
#: selection:account.tax,type_tax_use:0
#: selection:account.tax.template,type_tax_use:0
msgid "Sale"
@@ -1821,9 +1874,12 @@ msgstr ""
#. module: account
#: field:account.analytic.journal,type:0
-#: field:account.bank.statement.line,type:0 field:account.invoice,type:0
-#: field:account.journal,type:0 field:account.move,type:0
-#: field:account.move.reconcile,type:0 xsl:account.transfer:0
+#: field:account.bank.statement.line,type:0
+#: field:account.invoice,type:0
+#: field:account.journal,type:0
+#: field:account.move,type:0
+#: field:account.move.reconcile,type:0
+#: xsl:account.transfer:0
msgid "Type"
msgstr "Тип"
@@ -1971,7 +2027,8 @@ msgid "Journal-Period Name"
msgstr "Журнал - название периода"
#. module: account
-#: field:account.tax.code,name:0 field:account.tax.code.template,name:0
+#: field:account.tax.code,name:0
+#: field:account.tax.code.template,name:0
msgid "Tax Case Name"
msgstr ""
@@ -1986,7 +2043,8 @@ msgstr ""
#. module: account
#: field:account.bank.statement.line,partner_id:0
#: field:account.bank.statement.reconcile,partner_id:0
-#: rml:account.general.ledger:0 field:account.invoice,partner_id:0
+#: rml:account.general.ledger:0
+#: field:account.invoice,partner_id:0
#: field:account.move,partner_id:0
#: wizard_field:account.partner.balance.report,init,result_selection:0
#: wizard_field:account.third_party_ledger.report,init,result_selection:0
@@ -2059,8 +2117,10 @@ msgstr ""
#: field:account.bank.statement,currency:0
#: field:account.bank.statement.reconcile,total_currency:0
#: field:account.bank.statement.reconcile,total_second_currency:0
-#: rml:account.general.ledger:0 field:account.invoice,currency_id:0
-#: field:account.journal,currency:0 field:account.model.line,currency_id:0
+#: rml:account.general.ledger:0
+#: field:account.invoice,currency_id:0
+#: field:account.journal,currency:0
+#: field:account.model.line,currency_id:0
#: field:account.move.line,currency_id:0
msgid "Currency"
msgstr "Валюта"
@@ -2098,7 +2158,8 @@ msgid "Analytic Entry"
msgstr "Проводка аналитики"
#. module: account
-#: view:res.company:0 field:res.company,overdue_msg:0
+#: view:res.company:0
+#: field:res.company,overdue_msg:0
msgid "Overdue Payments Message"
msgstr ""
@@ -2150,7 +2211,8 @@ msgid "Detail"
msgstr "Подробности"
#. module: account
-#: selection:account.account,type:0 selection:account.account.template,type:0
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
msgid "Consolidation"
msgstr "Объединение"
@@ -2245,16 +2307,21 @@ msgid "The account basis of the tax declaration."
msgstr ""
#. module: account
-#: rml:account.analytic.account.journal:0 field:account.analytic.line,date:0
+#: rml:account.analytic.account.journal:0
+#: field:account.analytic.line,date:0
#: field:account.bank.statement,date:0
#: field:account.bank.statement.line,date:0
-#: field:account.bank.statement.reconcile,name:0 rml:account.general.ledger:0
+#: field:account.bank.statement.reconcile,name:0
+#: rml:account.general.ledger:0
#: selection:account.general.ledger.report,checktype,sortbydate:0
-#: rml:account.journal.period.print:0 field:account.move,date:0
+#: rml:account.journal.period.print:0
+#: field:account.move,date:0
#: rml:account.overdue:0
#: wizard_field:account.subscription.generate,init,date:0
-#: field:account.subscription.line,date:0 rml:account.tax.code.entries:0
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: field:account.subscription.line,date:0
+#: rml:account.tax.code.entries:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
#: xsl:account.transfer:0
msgid "Date"
msgstr "Дата"
@@ -2271,7 +2338,8 @@ msgid "Unreconcile"
msgstr "Не сверено"
#. module: account
-#: field:account.tax,type:0 field:account.tax.template,type:0
+#: field:account.tax,type:0
+#: field:account.tax.template,type:0
msgid "Tax Type"
msgstr "Тип налога"
@@ -2281,7 +2349,8 @@ msgid "Statement Entries"
msgstr ""
#. module: account
-#: field:account.analytic.line,user_id:0 field:account.journal,user_id:0
+#: field:account.analytic.line,user_id:0
+#: field:account.journal,user_id:0
msgid "User"
msgstr "Пользователь"
@@ -2367,7 +2436,8 @@ msgid "Date End"
msgstr "Дата окончания"
#. module: account
-#: view:account.bank.statement:0 field:account.move.reconcile,line_id:0
+#: view:account.bank.statement:0
+#: field:account.move.reconcile,line_id:0
#: model:ir.actions.act_window,name:account.action_move_line_search
#: model:ir.actions.act_window,name:account.action_move_line_tree1
#: model:ir.ui.menu,name:account.menu_action_move_line_search
@@ -2375,7 +2445,8 @@ msgid "Entry Lines"
msgstr "Строки проводок"
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Applicable Code (if type=code)"
msgstr "Применимый код (если тип=код)"
@@ -2464,9 +2535,11 @@ msgstr ""
#: wizard_button:account.general.journal.report,init,end:0
#: wizard_button:account.general.ledger.report,account_selection,end:0
#: wizard_button:account.general.ledger.report,checktype,end:0
-#: view:account.invoice:0 wizard_button:account.invoice.pay,addendum,end:0
+#: view:account.invoice:0
+#: wizard_button:account.invoice.pay,addendum,end:0
#: wizard_button:account.invoice.pay,init,end:0
-#: wizard_button:account.invoice.refund,init,end:0 view:account.move:0
+#: wizard_button:account.invoice.refund,init,end:0
+#: view:account.move:0
#: wizard_button:account.move.bank.reconcile,init,end:0
#: wizard_button:account.move.journal,init,end:0
#: wizard_button:account.move.line.reconcile,addendum,end:0
@@ -2485,7 +2558,8 @@ msgstr ""
#: wizard_button:account.third_party_ledger.report,init,end:0
#: wizard_button:account.vat.declaration,init,end:0
#: wizard_button:account_use_models,init_form,end:0
-#: view:wizard.company.setup:0 view:wizard.multi.charts.accounts:0
+#: view:wizard.company.setup:0
+#: view:wizard.multi.charts.accounts:0
msgid "Cancel"
msgstr "Отмена"
@@ -2495,8 +2569,10 @@ msgid "Acc. Type Name"
msgstr ""
#. module: account
-#: help:account.tax,base_code_id:0 help:account.tax,ref_base_code_id:0
-#: help:account.tax,ref_tax_code_id:0 help:account.tax,tax_code_id:0
+#: help:account.tax,base_code_id:0
+#: help:account.tax,ref_base_code_id:0
+#: help:account.tax,ref_tax_code_id:0
+#: help:account.tax,tax_code_id:0
#: help:account.tax.template,base_code_id:0
#: help:account.tax.template,ref_base_code_id:0
#: help:account.tax.template,ref_tax_code_id:0
@@ -2510,7 +2586,8 @@ msgid "Litigation"
msgstr ""
#. module: account
-#: view:account.move.line:0 wizard_view:account.move.validate,init:0
+#: view:account.move.line:0
+#: wizard_view:account.move.validate,init:0
#: view:account.payment.term:0
msgid "Information"
msgstr "Информация"
@@ -2620,7 +2697,8 @@ msgid "Price"
msgstr "Цена"
#. module: account
-#: rml:account.analytic.account.journal:0 rml:account.third_party_ledger:0
+#: rml:account.analytic.account.journal:0
+#: rml:account.third_party_ledger:0
#: rml:account.third_party_ledger_other:0
msgid "-"
msgstr "-"
@@ -2687,13 +2765,17 @@ msgid "Invoice Reference"
msgstr "Ссылка на счет"
#. module: account
-#: field:account.account,name:0 field:account.account.template,name:0
+#: field:account.account,name:0
+#: field:account.account.template,name:0
#: rml:account.analytic.account.inverted.balance:0
#: field:account.bank.statement,name:0
#: field:account.bank.statement.line,name:0
-#: field:account.chart.template,name:0 field:account.config.wizard,name:0
-#: field:account.model.line,name:0 field:account.move,name:0
-#: field:account.move.line,name:0 field:account.move.reconcile,name:0
+#: field:account.chart.template,name:0
+#: field:account.config.wizard,name:0
+#: field:account.model.line,name:0
+#: field:account.move,name:0
+#: field:account.move.line,name:0
+#: field:account.move.reconcile,name:0
#: field:account.subscription,name:0
msgid "Name"
msgstr "Название"
@@ -2733,7 +2815,8 @@ msgid ""
msgstr ""
#. module: account
-#: field:account.journal.column,view_id:0 view:account.journal.view:0
+#: field:account.journal.column,view_id:0
+#: view:account.journal.view:0
#: field:account.journal.view,name:0
#: model:ir.model,name:account.model_account_journal_view
msgid "Journal View"
@@ -2826,11 +2909,16 @@ msgid "Full Account Name"
msgstr ""
#. module: account
-#: rml:account.account.balance:0 rml:account.analytic.account.analytic.check:0
-#: rml:account.analytic.account.balance:0 rml:account.general.ledger:0
-#: rml:account.journal.period.print:0 rml:account.partner.balance:0
-#: rml:account.tax.code.entries:0 rml:account.third_party_ledger:0
-#: rml:account.third_party_ledger_other:0 rml:account.vat.declaration:0
+#: rml:account.account.balance:0
+#: rml:account.analytic.account.analytic.check:0
+#: rml:account.analytic.account.balance:0
+#: rml:account.general.ledger:0
+#: rml:account.journal.period.print:0
+#: rml:account.partner.balance:0
+#: rml:account.tax.code.entries:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
+#: rml:account.vat.declaration:0
msgid "1cm 27.7cm 20cm 27.7cm"
msgstr ""
@@ -2851,7 +2939,9 @@ msgid "Document: Customer account statement"
msgstr ""
#. module: account
-#: view:product.product:0 view:product.template:0 view:res.partner:0
+#: view:product.product:0
+#: view:product.template:0
+#: view:res.partner:0
msgid "Accounting"
msgstr "Бухгалтерский"
@@ -2896,8 +2986,10 @@ msgid "Centralisation"
msgstr "Централизация"
#. module: account
-#: field:account.invoice.tax,tax_code_id:0 field:account.tax,description:0
-#: field:account.tax,tax_code_id:0 field:account.tax.template,tax_code_id:0
+#: field:account.invoice.tax,tax_code_id:0
+#: field:account.tax,description:0
+#: field:account.tax,tax_code_id:0
+#: field:account.tax.template,tax_code_id:0
#: model:ir.model,name:account.model_account_tax_code
msgid "Tax Code"
msgstr "Код налога"
@@ -2937,12 +3029,14 @@ msgid ""
msgstr ""
#. module: account
-#: selection:account.analytic.journal,type:0 selection:account.journal,type:0
+#: selection:account.analytic.journal,type:0
+#: selection:account.journal,type:0
msgid "Situation"
msgstr ""
#. module: account
-#: rml:account.invoice:0 xsl:account.transfer:0
+#: rml:account.invoice:0
+#: xsl:account.transfer:0
msgid "Document"
msgstr "Документ"
@@ -2980,7 +3074,8 @@ msgid "Cancel selected invoices"
msgstr "Отменить выбранные счета"
#. module: account
-#: view:account.analytic.journal:0 field:account.analytic.line,journal_id:0
+#: view:account.analytic.journal:0
+#: field:account.analytic.line,journal_id:0
#: field:account.journal,analytic_journal_id:0
#: model:ir.actions.report.xml,name:account.analytic_journal_print
#: model:ir.actions.wizard,name:account.account_analytic_account_journal_report
@@ -3003,23 +3098,28 @@ msgid "("
msgstr "("
#. module: account
-#: view:account.invoice:0 view:account.period:0 view:account.subscription:0
+#: view:account.invoice:0
+#: view:account.period:0
+#: view:account.subscription:0
msgid "Set to Draft"
msgstr "Установить в 'Черновик'"
#. module: account
-#: help:account.invoice,origin:0 help:account.invoice.line,origin:0
+#: help:account.invoice,origin:0
+#: help:account.invoice.line,origin:0
msgid "Reference of the document that produced this invoice."
msgstr ""
#. module: account
-#: selection:account.account,type:0 selection:account.account.template,type:0
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
#: selection:account.aged.trial.balance,init,result_selection:0
msgid "Payable"
msgstr "К оплате"
#. module: account
-#: rml:account.invoice:0 field:account.invoice.tax,base:0
+#: rml:account.invoice:0
+#: field:account.invoice.tax,base:0
msgid "Base"
msgstr "База"
@@ -3029,7 +3129,8 @@ msgid "Model Name"
msgstr "Название модели"
#. module: account
-#: selection:account.account,type:0 selection:account.account.template,type:0
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
msgid "Others"
msgstr ""
@@ -3039,13 +3140,15 @@ msgid "8"
msgstr ""
#. module: account
-#: view:account.invoice:0 view:account.move:0
+#: view:account.invoice:0
+#: view:account.move:0
#: wizard_button:account.move.validate,init,validate:0
msgid "Validate"
msgstr "Проверить"
#. module: account
-#: view:account.model:0 field:account.model,legend:0
+#: view:account.model:0
+#: field:account.model,legend:0
msgid "Legend"
msgstr "Описание"
@@ -3060,14 +3163,17 @@ msgid "account.move.line.select"
msgstr ""
#. module: account
-#: view:account.account:0 rml:account.account.balance:0
+#: view:account.account:0
+#: rml:account.account.balance:0
#: wizard_field:account.account.balance.report,account_selection,Account_list:0
#: wizard_field:account.automatic.reconcile,init,writeoff_acc_id:0
#: field:account.bank.statement.line,account_id:0
#: field:account.bank.statement.reconcile.line,account_id:0
-#: field:account.invoice,account_id:0 field:account.invoice.line,account_id:0
+#: field:account.invoice,account_id:0
+#: field:account.invoice.line,account_id:0
#: field:account.journal,account_control_ids:0
-#: field:account.model.line,account_id:0 field:account.move.line,account_id:0
+#: field:account.model.line,account_id:0
+#: field:account.move.line,account_id:0
#: wizard_field:account.move.line.reconcile.select,init,account_id:0
#: wizard_field:account.move.line.unreconcile.select,init,account_id:0
#: model:ir.model,name:account.model_account_account
@@ -3088,9 +3194,12 @@ msgid "By Date and Period"
msgstr ""
#. module: account
-#: view:account.account:0 view:account.account.template:0
-#: view:account.bank.statement:0 field:account.bank.statement.line,note:0
-#: field:account.fiscal.position,note:0 view:account.invoice.line:0
+#: view:account.account:0
+#: view:account.account.template:0
+#: view:account.bank.statement:0
+#: field:account.bank.statement.line,note:0
+#: field:account.fiscal.position,note:0
+#: view:account.invoice.line:0
#: field:account.invoice.line,note:0
msgid "Notes"
msgstr "Примечания"
@@ -3103,7 +3212,8 @@ msgid ""
msgstr ""
#. module: account
-#: rml:account.invoice:0 view:account.invoice:0
+#: rml:account.invoice:0
+#: view:account.invoice:0
#: field:account.invoice.line,invoice_line_tax_id:0
#: model:ir.actions.act_window,name:account.action_tax_form
#: model:ir.ui.menu,name:account.menu_action_tax_form
@@ -3128,15 +3238,21 @@ msgid "Statement encoding produces payment entries"
msgstr ""
#. module: account
-#: field:account.account,code:0 rml:account.account.balance:0
-#: field:account.account.template,code:0 field:account.account.type,code:0
+#: field:account.account,code:0
+#: rml:account.account.balance:0
+#: field:account.account.template,code:0
+#: field:account.account.type,code:0
#: rml:account.analytic.account.analytic.check:0
#: rml:account.analytic.account.balance:0
#: rml:account.analytic.account.inverted.balance:0
-#: rml:account.analytic.account.journal:0 field:account.analytic.line,code:0
-#: field:account.config.wizard,code:0 field:account.fiscalyear,code:0
-#: rml:account.general.journal:0 field:account.journal,code:0
-#: rml:account.partner.balance:0 field:account.period,code:0
+#: rml:account.analytic.account.journal:0
+#: field:account.analytic.line,code:0
+#: field:account.config.wizard,code:0
+#: field:account.fiscalyear,code:0
+#: rml:account.general.journal:0
+#: field:account.journal,code:0
+#: rml:account.partner.balance:0
+#: field:account.period,code:0
msgid "Code"
msgstr "Код"
@@ -3146,7 +3262,8 @@ msgid "Financial Management"
msgstr "Управление финансами"
#. module: account
-#: selection:account.account.type,close_method:0 selection:account.tax,type:0
+#: selection:account.account.type,close_method:0
+#: selection:account.tax,type:0
#: selection:account.tax.template,type:0
msgid "None"
msgstr "Ничего"
@@ -3174,7 +3291,8 @@ msgid "Additionnal Information"
msgstr "Доп. информация"
#. module: account
-#: field:account.tax,name:0 field:account.tax.template,name:0
+#: field:account.tax,name:0
+#: field:account.tax.template,name:0
#: rml:account.vat.declaration:0
msgid "Tax Name"
msgstr "Название налога"
@@ -3251,7 +3369,8 @@ msgid "Partner Balance"
msgstr ""
#. module: account
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
msgid "Third Party Ledger"
msgstr ""
@@ -3264,7 +3383,8 @@ msgstr ""
#. module: account
#: selection:account.tax,applicable_type:0
-#: field:account.tax,python_applicable:0 field:account.tax,python_compute:0
+#: field:account.tax,python_applicable:0
+#: field:account.tax,python_compute:0
#: selection:account.tax,type:0
#: selection:account.tax.template,applicable_type:0
#: field:account.tax.template,python_applicable:0
@@ -3301,7 +3421,8 @@ msgid "Import invoice"
msgstr ""
#. module: account
-#: view:account.invoice:0 view:wizard.company.setup:0
+#: view:account.invoice:0
+#: view:wizard.company.setup:0
#: view:wizard.multi.charts.accounts:0
msgid "Create"
msgstr "Создать"
@@ -3317,7 +3438,8 @@ msgid "Invoice line"
msgstr "Позиция счета"
#. module: account
-#: field:account.account,shortcut:0 field:account.account.template,shortcut:0
+#: field:account.account,shortcut:0
+#: field:account.account.template,shortcut:0
msgid "Shortcut"
msgstr "Горячая клвиша"
@@ -3342,13 +3464,15 @@ msgid ""
msgstr ""
#. module: account
-#: field:account.tax,parent_id:0 field:account.tax.template,parent_id:0
+#: field:account.tax,parent_id:0
+#: field:account.tax.template,parent_id:0
msgid "Parent Tax Account"
msgstr ""
#. module: account
#: field:account.account,user_type:0
-#: field:account.account.template,user_type:0 view:account.account.type:0
+#: field:account.account.template,user_type:0
+#: view:account.account.type:0
#: field:account.analytic.account,type:0
#: model:ir.model,name:account.model_account_account_type
msgid "Account Type"
@@ -3384,7 +3508,8 @@ msgid "Central Journal"
msgstr ""
#. module: account
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
msgid "Balance brought forward"
msgstr ""
@@ -3460,7 +3585,8 @@ msgid "Journal code"
msgstr "Код журнала"
#. module: account
-#: wizard_button:account.fiscalyear.close,init,close:0 view:account.model:0
+#: wizard_button:account.fiscalyear.close,init,close:0
+#: view:account.model:0
msgid "Create entries"
msgstr "Создать проводки"
@@ -3516,11 +3642,14 @@ msgid ""
msgstr ""
#. module: account
-#: field:account.account.type,sequence:0 field:account.invoice.tax,sequence:0
-#: field:account.journal.column,sequence:0 field:account.model.line,sequence:0
+#: field:account.account.type,sequence:0
+#: field:account.invoice.tax,sequence:0
+#: field:account.journal.column,sequence:0
+#: field:account.model.line,sequence:0
#: field:account.payment.term.line,sequence:0
#: field:account.sequence.fiscalyear,sequence_id:0
-#: field:account.tax,sequence:0 field:account.tax.template,sequence:0
+#: field:account.tax,sequence:0
+#: field:account.tax.template,sequence:0
#: field:fiscalyear.seq,sequence_id:0
msgid "Sequence"
msgstr "Последовательность"
@@ -3586,7 +3715,8 @@ msgstr "Счет подписки"
#. module: account
#: field:account.model.line,date_maturity:0
-#: field:account.move.line,date_maturity:0 rml:account.overdue:0
+#: field:account.move.line,date_maturity:0
+#: rml:account.overdue:0
msgid "Maturity date"
msgstr "Срок плетежа"
@@ -3606,7 +3736,8 @@ msgid "Account Configure Wizard "
msgstr ""
#. module: account
-#: field:account.config.wizard,date1:0 field:account.fiscalyear,date_start:0
+#: field:account.config.wizard,date1:0
+#: field:account.fiscalyear,date_start:0
#: field:account.subscription,date_start:0
msgid "Start Date"
msgstr ""
@@ -3644,7 +3775,8 @@ msgid "Unreconciled"
msgstr ""
#. module: account
-#: field:account.account,note:0 field:account.account.template,note:0
+#: field:account.account,note:0
+#: field:account.account.template,note:0
msgid "Note"
msgstr "Заметка"
@@ -3668,7 +3800,8 @@ msgid "Entry Sequence"
msgstr "Последовательный номер проводки"
#. module: account
-#: selection:account.account,type:0 selection:account.account.template,type:0
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
msgid "Closed"
msgstr "Закрыто"
@@ -3789,9 +3922,12 @@ msgid "Code/Date"
msgstr ""
#. module: account
-#: field:account.account,active:0 field:account.analytic.account,active:0
-#: field:account.analytic.journal,active:0 field:account.journal,active:0
-#: field:account.journal.period,active:0 field:account.payment.term,active:0
+#: field:account.account,active:0
+#: field:account.analytic.account,active:0
+#: field:account.analytic.journal,active:0
+#: field:account.journal,active:0
+#: field:account.journal.period,active:0
+#: field:account.payment.term,active:0
#: field:account.tax,active:0
msgid "Active"
msgstr "Активен"
@@ -3843,15 +3979,20 @@ msgid "Secondary Currency"
msgstr "Вторичная валюта"
#. module: account
-#: field:account.account,credit:0 rml:account.account.balance:0
+#: field:account.account,credit:0
+#: rml:account.account.balance:0
#: field:account.analytic.account,credit:0
#: rml:account.analytic.account.balance:0
#: rml:account.analytic.account.cost_ledger:0
#: rml:account.analytic.account.inverted.balance:0
-#: rml:account.central.journal:0 rml:account.journal.period.print:0
-#: field:account.model.line,credit:0 field:account.move.line,credit:0
-#: rml:account.partner.balance:0 rml:account.tax.code.entries:0
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: rml:account.central.journal:0
+#: rml:account.journal.period.print:0
+#: field:account.model.line,credit:0
+#: field:account.move.line,credit:0
+#: rml:account.partner.balance:0
+#: rml:account.tax.code.entries:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
#: rml:account.vat.declaration:0
#: field:report.hr.timesheet.invoice.journal,cost:0
msgid "Credit"
@@ -3882,7 +4023,8 @@ msgid "Account Move"
msgstr ""
#. module: account
-#: view:account.bank.statement:0 field:account.bank.statement,line_ids:0
+#: view:account.bank.statement:0
+#: field:account.bank.statement,line_ids:0
msgid "Statement lines"
msgstr "Позиции выписки"
@@ -3974,15 +4116,18 @@ msgid "Journal Column"
msgstr "Столбец журнала"
#. module: account
-#: selection:account.fiscalyear,state:0 selection:account.invoice,state:0
-#: selection:account.journal.period,state:0 selection:account.period,state:0
+#: selection:account.fiscalyear,state:0
+#: selection:account.invoice,state:0
+#: selection:account.journal.period,state:0
+#: selection:account.period,state:0
#: selection:account.subscription,state:0
msgid "Done"
msgstr "Выполнено"
#. module: account
#: wizard_field:account.account.balance.report,checktype,periods:0
-#: field:account.config.wizard,period:0 view:account.fiscalyear:0
+#: field:account.config.wizard,period:0
+#: view:account.fiscalyear:0
#: field:account.fiscalyear,period_ids:0
#: wizard_field:account.general.ledger.report,checktype,periods:0
#: wizard_field:account.partner.balance.report,init,periods:0
@@ -3995,7 +4140,8 @@ msgid "Periods"
msgstr "Периоды"
#. module: account
-#: rml:account.invoice:0 view:account.invoice:0
+#: rml:account.invoice:0
+#: view:account.invoice:0
#: field:account.move.line,invoice:0
#: model:ir.model,name:account.model_account_invoice
#: model:res.request.link,name:account.req_link_invoice
@@ -4022,7 +4168,8 @@ msgid "Analytic costs to reinvoice purchases, timesheets, ..."
msgstr ""
#. module: account
-#: field:account.account,tax_ids:0 field:account.account.template,tax_ids:0
+#: field:account.account,tax_ids:0
+#: field:account.account.template,tax_ids:0
msgid "Default Taxes"
msgstr "Налоги по умолчанию"
@@ -4077,7 +4224,8 @@ msgstr ""
#. module: account
#: field:account.analytic.account,name:0
#: rml:account.analytic.account.analytic.check:0
-#: rml:account.analytic.account.balance:0 rml:account.central.journal:0
+#: rml:account.analytic.account.balance:0
+#: rml:account.central.journal:0
msgid "Account Name"
msgstr "Название счета"
@@ -4168,7 +4316,8 @@ msgid "Import file from your bank statement"
msgstr ""
#. module: account
-#: field:account.account,type:0 field:account.account.template,type:0
+#: field:account.account,type:0
+#: field:account.account.template,type:0
msgid "Internal Type"
msgstr ""
@@ -4194,12 +4343,14 @@ msgid "Posted"
msgstr ""
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Credit Notes"
msgstr ""
#. module: account
-#: field:account.config.wizard,date2:0 field:account.fiscalyear,date_stop:0
+#: field:account.config.wizard,date2:0
+#: field:account.fiscalyear,date_stop:0
msgid "End Date"
msgstr ""
@@ -4220,7 +4371,8 @@ msgid "Day of the Month"
msgstr ""
#. module: account
-#: field:account.analytic.journal,line_ids:0 field:account.tax.code,line_ids:0
+#: field:account.analytic.journal,line_ids:0
+#: field:account.tax.code,line_ids:0
msgid "Lines"
msgstr "Строк"
@@ -4238,7 +4390,8 @@ msgid ""
msgstr ""
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Tax Declaration"
msgstr "Налоговая декларация"
@@ -4298,12 +4451,14 @@ msgid "The optional quantity on entries"
msgstr ""
#. module: account
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
msgid "JNRL"
msgstr ""
#. module: account
-#: view:account.fiscalyear:0 view:account.period:0
+#: view:account.fiscalyear:0
+#: view:account.period:0
msgid "States"
msgstr "Cостояния"
@@ -4339,7 +4494,8 @@ msgstr "Дата начала"
#: rml:account.analytic.account.balance:0
#: rml:account.analytic.account.inverted.balance:0
#: rml:account.analytic.account.quantity_cost_ledger:0
-#: field:account.invoice,amount_total:0 field:account.invoice,check_total:0
+#: field:account.invoice,amount_total:0
+#: field:account.invoice,check_total:0
msgid "Total"
msgstr "Всего"
@@ -4456,9 +4612,11 @@ msgstr ""
#: field:account.fiscal.position,company_id:0
#: field:account.fiscalyear,company_id:0
#: wizard_field:account.general.ledger.report,checktype,company_id:0
-#: field:account.invoice,company_id:0 field:account.journal,company_id:0
+#: field:account.invoice,company_id:0
+#: field:account.journal,company_id:0
#: wizard_field:account.partner.balance.report,init,company_id:0
-#: field:account.tax,company_id:0 field:account.tax.code,company_id:0
+#: field:account.tax,company_id:0
+#: field:account.tax.code,company_id:0
#: wizard_field:account.third_party_ledger.report,init,company_id:0
#: wizard_field:account.vat.declaration,init,company_id:0
#: field:wizard.company.setup,company_id:0
@@ -4553,9 +4711,12 @@ msgid "Print Aged Trial Balance"
msgstr ""
#. module: account
-#: field:account.analytic.line,ref:0 field:account.bank.statement.line,ref:0
-#: field:account.model.line,ref:0 field:account.move.line,ref:0
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: field:account.analytic.line,ref:0
+#: field:account.bank.statement.line,ref:0
+#: field:account.model.line,ref:0
+#: field:account.move.line,ref:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
msgid "Ref."
msgstr "Ссылка"
@@ -4605,9 +4766,10 @@ msgid "Account cost and revenue by journal (This Month)"
msgstr "Расходы и доходы по журналам (текущий месяц)"
#. module: account
-#: model:ir.actions.act_window,name:account.action_aged_receivable
+#: selection:account.partner.balance.report,init,result_selection:0
+#: selection:account.third_party_ledger.report,init,result_selection:0
msgid "Receivable Accounts"
-msgstr "Счета к получению"
+msgstr ""
#. module: account
#: wizard_button:account.move.line.unreconcile.select,init,open:0
@@ -4631,7 +4793,8 @@ msgid "Control Invoice"
msgstr ""
#. module: account
-#: selection:account.account,type:0 selection:account.account.template,type:0
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
#: selection:account.aged.trial.balance,init,result_selection:0
msgid "Receivable"
msgstr "Счета к получению"
@@ -4658,7 +4821,8 @@ msgstr "НДС:"
#. module: account
#: rml:account.analytic.account.cost_ledger:0
#: rml:account.analytic.account.quantity_cost_ledger:0
-#: rml:account.central.journal:0 rml:account.general.journal:0
+#: rml:account.central.journal:0
+#: rml:account.general.journal:0
#: rml:account.invoice:0
msgid "Total:"
msgstr ""
@@ -4669,7 +4833,8 @@ msgid "account.analytic.journal"
msgstr ""
#. module: account
-#: view:account.fiscal.position:0 field:account.fiscal.position,account_ids:0
+#: view:account.fiscal.position:0
+#: field:account.fiscal.position,account_ids:0
#: field:account.fiscal.position.template,account_ids:0
msgid "Account Mapping"
msgstr ""
@@ -4685,7 +4850,8 @@ msgid "Account Reconciliation"
msgstr "Сверка счета"
#. module: account
-#: view:account.bank.statement:0 selection:account.bank.statement,state:0
+#: view:account.bank.statement:0
+#: selection:account.bank.statement,state:0
msgid "Confirm"
msgstr "Подтвердить"
@@ -4700,7 +4866,8 @@ msgid "Parent Account Template"
msgstr ""
#. module: account
-#: help:account.tax,domain:0 help:account.tax.template,domain:0
+#: help:account.tax,domain:0
+#: help:account.tax.template,domain:0
msgid ""
"This field is only used if you develop your own module allowing developers "
"to create specific taxes in a custom domain."
@@ -4721,7 +4888,8 @@ msgid "Analytic account"
msgstr "Счет аналитики"
#. module: account
-#: rml:account.invoice:0 selection:account.invoice,type:0
+#: rml:account.invoice:0
+#: selection:account.invoice,type:0
msgid "Supplier Invoice"
msgstr "Счета поставщиков"
@@ -4731,16 +4899,22 @@ msgid "Valid"
msgstr "Корректный"
#. module: account
-#: field:account.account,debit:0 rml:account.account.balance:0
+#: field:account.account,debit:0
+#: rml:account.account.balance:0
#: field:account.analytic.account,debit:0
#: rml:account.analytic.account.balance:0
#: rml:account.analytic.account.cost_ledger:0
#: rml:account.analytic.account.inverted.balance:0
-#: rml:account.central.journal:0 rml:account.general.ledger:0
-#: rml:account.journal.period.print:0 field:account.model.line,debit:0
-#: field:account.move.line,debit:0 rml:account.partner.balance:0
-#: rml:account.tax.code.entries:0 rml:account.third_party_ledger:0
-#: rml:account.third_party_ledger_other:0 rml:account.vat.declaration:0
+#: rml:account.central.journal:0
+#: rml:account.general.ledger:0
+#: rml:account.journal.period.print:0
+#: field:account.model.line,debit:0
+#: field:account.move.line,debit:0
+#: rml:account.partner.balance:0
+#: rml:account.tax.code.entries:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
+#: rml:account.vat.declaration:0
#: field:report.hr.timesheet.invoice.journal,revenue:0
msgid "Debit"
msgstr "Дебет"
@@ -4802,7 +4976,8 @@ msgid "Reporting"
msgstr "Отчетность"
#. module: account
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
msgid "/"
msgstr "/"
@@ -4833,7 +5008,8 @@ msgid "Configuration"
msgstr "Настройки"
#. module: account
-#: view:account.analytic.line:0 view:account.invoice:0
+#: view:account.analytic.line:0
+#: view:account.invoice:0
msgid "Total amount"
msgstr "Итоговая сумма"
@@ -4883,12 +5059,14 @@ msgid "Paid invoice"
msgstr ""
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Tax Definition"
msgstr "Определение налога"
#. module: account
-#: field:account.tax,tax_group:0 field:account.tax.template,tax_group:0
+#: field:account.tax,tax_group:0
+#: field:account.tax.template,tax_group:0
msgid "Tax Group"
msgstr "Группа налога"
@@ -4929,7 +5107,8 @@ msgid "With movements"
msgstr ""
#. module: account
-#: field:account.tax,domain:0 field:account.tax.template,domain:0
+#: field:account.tax,domain:0
+#: field:account.tax.template,domain:0
msgid "Domain"
msgstr "Домен"
@@ -4954,7 +5133,9 @@ msgid "Manually"
msgstr ""
#. module: account
-#: view:account.invoice:0 view:account.tax:0 view:account.tax.template:0
+#: view:account.invoice:0
+#: view:account.tax:0
+#: view:account.tax.template:0
#: selection:account.vat.declaration,init,based_on:0
#: model:ir.actions.act_window,name:account.act_res_partner_2_account_invoice_opened
#: model:ir.actions.act_window,name:account.action_invoice_tree
@@ -4971,7 +5152,8 @@ msgid "Payable Accounts"
msgstr ""
#. module: account
-#: view:account.invoice.line:0 field:account.invoice.tax,invoice_id:0
+#: view:account.invoice.line:0
+#: field:account.invoice.tax,invoice_id:0
msgid "Invoice Line"
msgstr "Позиция счета"
@@ -5022,7 +5204,8 @@ msgid "The optional other currency if it is a multi-currency entry."
msgstr ""
#. module: account
-#: view:account.invoice:0 field:account.invoice,payment_ids:0
+#: view:account.invoice:0
+#: field:account.invoice,payment_ids:0
#: selection:account.vat.declaration,init,based_on:0
msgid "Payments"
msgstr ""
@@ -5068,9 +5251,12 @@ msgstr ""
#. module: account
#: selection:account.analytic.account,state:0
#: selection:account.bank.statement,state:0
-#: selection:account.fiscalyear,state:0 selection:account.invoice,state:0
-#: selection:account.journal.period,state:0 selection:account.move,state:0
-#: selection:account.move.line,state:0 selection:account.period,state:0
+#: selection:account.fiscalyear,state:0
+#: selection:account.invoice,state:0
+#: selection:account.journal.period,state:0
+#: selection:account.move,state:0
+#: selection:account.move.line,state:0
+#: selection:account.period,state:0
#: selection:account.subscription,state:0
msgid "Draft"
msgstr "Черновик"
@@ -5097,7 +5283,8 @@ msgid "Are you sure ?"
msgstr "Вы уверены?"
#. module: account
-#: rml:account.invoice:0 view:account.invoice:0
+#: rml:account.invoice:0
+#: view:account.invoice:0
msgid "PRO-FORMA"
msgstr "Проформа"
@@ -5133,16 +5320,22 @@ msgid "Supplier Invoice Process"
msgstr ""
#. module: account
-#: rml:account.account.balance:0 rml:account.analytic.account.analytic.check:0
-#: rml:account.analytic.account.balance:0 rml:account.general.ledger:0
-#: rml:account.journal.period.print:0 rml:account.partner.balance:0
-#: rml:account.tax.code.entries:0 rml:account.third_party_ledger:0
-#: rml:account.third_party_ledger_other:0 rml:account.vat.declaration:0
+#: rml:account.account.balance:0
+#: rml:account.analytic.account.analytic.check:0
+#: rml:account.analytic.account.balance:0
+#: rml:account.general.ledger:0
+#: rml:account.journal.period.print:0
+#: rml:account.partner.balance:0
+#: rml:account.tax.code.entries:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
+#: rml:account.vat.declaration:0
msgid "Page"
msgstr ""
#. module: account
-#: view:account.move:0 view:account.move.line:0
+#: view:account.move:0
+#: view:account.move.line:0
msgid "Optional Information"
msgstr "Доп. информация"
@@ -5158,7 +5351,8 @@ msgid "Receivable and Payable"
msgstr ""
#. module: account
-#: rml:account.account.balance:0 rml:account.general.journal:0
+#: rml:account.account.balance:0
+#: rml:account.general.journal:0
msgid ":"
msgstr ":"
@@ -5181,7 +5375,8 @@ msgid ""
msgstr ""
#. module: account
-#: view:account.bank.statement:0 view:account.bank.statement.reconcile:0
+#: view:account.bank.statement:0
+#: view:account.bank.statement.reconcile:0
#: view:account.subscription:0
msgid "Compute"
msgstr "Вычислить"
@@ -5225,7 +5420,8 @@ msgid "End of period"
msgstr "Конец периода"
#. module: account
-#: view:account.move:0 model:ir.model,name:account.model_account_move
+#: view:account.move:0
+#: model:ir.model,name:account.model_account_move
msgid "Account Entry"
msgstr "Проводка по счету"
@@ -5236,7 +5432,8 @@ msgid "General Journal"
msgstr ""
#. module: account
-#: field:account.account,balance:0 rml:account.account.balance:0
+#: field:account.account,balance:0
+#: rml:account.account.balance:0
#: selection:account.account.type,close_method:0
#: field:account.analytic.account,balance:0
#: rml:account.analytic.account.balance:0
@@ -5244,9 +5441,12 @@ msgstr ""
#: rml:account.analytic.account.inverted.balance:0
#: field:account.bank.statement,balance_end:0
#: field:account.bank.statement.reconcile,total_balance:0
-#: rml:account.general.ledger:0 field:account.move.line,balance:0
-#: rml:account.partner.balance:0 selection:account.payment.term.line,value:0
-#: selection:account.tax,type:0 rml:account.third_party_ledger:0
+#: rml:account.general.ledger:0
+#: field:account.move.line,balance:0
+#: rml:account.partner.balance:0
+#: selection:account.payment.term.line,value:0
+#: selection:account.tax,type:0
+#: rml:account.third_party_ledger:0
#: rml:account.third_party_ledger_other:0
msgid "Balance"
msgstr "Остаток"
@@ -5290,8 +5490,11 @@ msgid "The sequence used for invoice numbers in this journal."
msgstr ""
#. module: account
-#: view:account.account:0 view:account.account.template:0
-#: view:account.journal:0 view:account.move:0 view:account.move.line:0
+#: view:account.account:0
+#: view:account.account.template:0
+#: view:account.journal:0
+#: view:account.move:0
+#: view:account.move.line:0
msgid "General Information"
msgstr "Общая информация"
@@ -5330,7 +5533,8 @@ msgid "List of Accounts"
msgstr "Список счетов"
#. module: account
-#: view:product.product:0 view:product.template:0
+#: view:product.product:0
+#: view:product.template:0
msgid "Sales Properties"
msgstr ""
@@ -5423,11 +5627,15 @@ msgstr ""
#: view:account.analytic.account:0
#: field:account.analytic.account,description:0
#: field:account.analytic.line,name:0
-#: field:account.bank.statement.reconcile.line,name:0 rml:account.invoice:0
-#: field:account.invoice,name:0 field:account.invoice.line,name:0
+#: field:account.bank.statement.reconcile.line,name:0
+#: rml:account.invoice:0
+#: field:account.invoice,name:0
+#: field:account.invoice.line,name:0
#: wizard_field:account.invoice.refund,init,description:0
-#: rml:account.overdue:0 field:account.payment.term,note:0
-#: field:account.tax.code,info:0 field:account.tax.code.template,info:0
+#: rml:account.overdue:0
+#: field:account.payment.term,note:0
+#: field:account.tax.code,info:0
+#: field:account.tax.code.template,info:0
msgid "Description"
msgstr "Описание"
@@ -5471,7 +5679,8 @@ msgid ""
msgstr ""
#. module: account
-#: field:account.tax.code,code:0 field:account.tax.code.template,code:0
+#: field:account.tax.code,code:0
+#: field:account.tax.code.template,code:0
msgid "Case Code"
msgstr ""
@@ -5553,7 +5762,8 @@ msgstr "Определенеие моделей"
#. module: account
#: model:account.account.type,name:account.account_type_cash_moves
-#: selection:account.analytic.journal,type:0 selection:account.journal,type:0
+#: selection:account.analytic.journal,type:0
+#: selection:account.journal,type:0
msgid "Cash"
msgstr "Наличные"
@@ -5593,7 +5803,8 @@ msgid "Keep empty for all open fiscal year"
msgstr ""
#. module: account
-#: rml:account.invoice:0 selection:account.invoice,type:0
+#: rml:account.invoice:0
+#: selection:account.invoice,type:0
msgid "Supplier Refund"
msgstr "Возврат средств от поставщика"
@@ -5640,8 +5851,10 @@ msgid ""
msgstr ""
#. module: account
-#: help:account.tax,base_sign:0 help:account.tax,ref_base_sign:0
-#: help:account.tax,ref_tax_sign:0 help:account.tax,tax_sign:0
+#: help:account.tax,base_sign:0
+#: help:account.tax,ref_base_sign:0
+#: help:account.tax,ref_tax_sign:0
+#: help:account.tax,tax_sign:0
#: help:account.tax.template,base_sign:0
#: help:account.tax.template,ref_base_sign:0
#: help:account.tax.template,ref_tax_sign:0
@@ -5675,8 +5888,10 @@ msgid "Name of the fiscal year as displayed on screens."
msgstr ""
#. module: account
-#: field:account.invoice,payment_term:0 view:account.payment.term:0
-#: field:account.payment.term,name:0 view:account.payment.term.line:0
+#: field:account.invoice,payment_term:0
+#: view:account.payment.term:0
+#: field:account.payment.term,name:0
+#: view:account.payment.term.line:0
#: field:account.payment.term.line,payment_id:0
#: model:ir.model,name:account.model_account_payment_term
#: field:res.partner,property_payment_term:0
@@ -5733,7 +5948,8 @@ msgstr "Да"
#. module: account
#: help:account.account,reconcile:0
-msgid "Check this if the user is allowed to reconcile entries in this account."
+msgid ""
+"Check this if the user is allowed to reconcile entries in this account."
msgstr ""
#. module: account
@@ -5744,64 +5960,65 @@ msgstr ""
#. module: account
#: view:board.board:0
msgid "Analytic accounts to close"
-msgstr "Счета аналитики к закрытию"
+msgstr ""
#. module: account
#: view:board.board:0
msgid "Draft invoices"
-msgstr "Черновики счетов"
+msgstr ""
#. module: account
#: model:ir.actions.act_window,name:account.open_board_account
#: model:ir.ui.menu,name:account.menu_board_account
msgid "Accounting Dashboard"
-msgstr "Панель бухг. аналитики"
+msgstr ""
#. module: account
-#: view:board.board:0 model:ir.actions.act_window,name:account.act_my_account
+#: view:board.board:0
+#: model:ir.actions.act_window,name:account.act_my_account
msgid "Accounts to invoice"
-msgstr "Счета к выставлению"
+msgstr ""
#. module: account
#: view:board.board:0
#: model:ir.actions.act_window,name:account.action_account_analytic_line_to_invoice
msgid "Costs to invoice"
-msgstr "Расходы для выставления счетов"
+msgstr ""
#. module: account
#: view:board.board:0
msgid "Aged receivables"
-msgstr "Повременный расход"
+msgstr ""
#. module: account
#: model:ir.module.module,shortdesc:account.module_meta_information
msgid "Board for accountant"
-msgstr "Панель контролёра счетов"
+msgstr ""
#. module: account
#: model:ir.actions.act_window,name:account.action_aged_income
msgid "Income Accounts"
-msgstr "Счета доходов"
+msgstr ""
#. module: account
#: view:board.board:0
msgid "My indicators"
-msgstr "Мои индикаторы"
+msgstr ""
#. module: account
#: view:board.board:0
msgid "Account Board"
-msgstr "Панель счетов"
+msgstr ""
#. module: account
#: view:board.board:0
msgid "Aged income"
-msgstr "Повременный доход"
+msgstr ""
#. module: account
#: wizard_field:account.balance.account.balance.report,init,show_columns:0
msgid "Show Debit/Credit Information"
-msgstr "Показать информацию по дебету / кредиту"
+msgstr ""
#. module: account
#: selection:account.balance.account.balance.report,init,account_choice:0
@@ -5817,7 +6034,7 @@ msgstr ""
#: wizard_view:account.balance.account.balance.report,backtoinit:0
#: wizard_view:account.balance.account.balance.report,zero_years:0
msgid "Notification"
-msgstr "Уведомление"
+msgstr ""
#. module: account
#: selection:account.balance.account.balance.report,init,period_manner:0
@@ -5828,12 +6045,12 @@ msgstr ""
#: model:ir.actions.report.xml,name:account.account_account_balance
#: model:ir.actions.report.xml,name:account.account_account_balance_landscape
msgid "Account balance"
-msgstr "Баланс счета"
+msgstr ""
#. module: account
#: wizard_view:account.balance.account.balance.report,init:0
msgid "Select Period(s)"
-msgstr "Выбрать период(ы)"
+msgstr ""
#. module: account
#: selection:account.balance.account.balance.report,init,compare_pattern:0
@@ -5843,22 +6060,22 @@ msgstr ""
#. module: account
#: wizard_field:account.balance.account.balance.report,init,compare_pattern:0
msgid "Compare Selected Years In Terms Of"
-msgstr "Сравнить выбранные годы в терминах"
+msgstr ""
#. module: account
#: wizard_view:account.balance.account.balance.report,init:0
msgid "Select Fiscal Year(s)(Maximum Three Years)"
-msgstr "Сравнить учетные годы (Макс. три года)"
+msgstr ""
#. module: account
#: wizard_field:account.balance.account.balance.report,init,select_account:0
msgid "Select Reference Account(for % comparision)"
-msgstr "Выберите соответствующий счет (для % сравнения)"
+msgstr ""
#. module: account
#: model:ir.actions.wizard,name:account.wizard_account_balance_report
msgid "Account balance-Compare Years"
-msgstr "Баланс по счету - сравнить по годам"
+msgstr ""
#. module: account
#: model:ir.module.module,description:account.module_meta_information
@@ -5890,7 +6107,7 @@ msgstr ""
#. module: account
#: wizard_field:account.balance.account.balance.report,init,landscape:0
msgid "Show Report in Landscape Form"
-msgstr "Вывести отчет в ландшафной форме"
+msgstr ""
#. module: account
#: rml:account.account.balance.landscape:0
@@ -5901,17 +6118,17 @@ msgstr ""
#. module: account
#: wizard_field:account.balance.account.balance.report,init,format_perc:0
msgid "Show Comparision in %"
-msgstr "Показать сравнение в %"
+msgstr ""
#. module: account
#: wizard_view:account.balance.account.balance.report,init:0
msgid "Select Period"
-msgstr "Выберите период"
+msgstr ""
#. module: account
#: wizard_view:account.balance.account.balance.report,init:0
msgid "Report Options"
-msgstr "Параметры отчета"
+msgstr ""
#. module: account
#: selection:account.balance.account.balance.report,init,compare_pattern:0
@@ -5921,12 +6138,12 @@ msgstr ""
#. module: account
#: wizard_field:account.balance.account.balance.report,init,account_choice:0
msgid "Show Accounts"
-msgstr "Показать счета"
+msgstr ""
#. module: account
#: wizard_view:account.balance.account.balance.report,backtoinit:0
msgid "1. You have selected more than 3 years in any case."
-msgstr "1. В любом случае, выбрано более чем 3 года."
+msgstr ""
#. module: account
#: model:ir.module.module,shortdesc:account.module_meta_information
@@ -5977,9 +6194,9 @@ msgstr ""
#. module: account
#: wizard_view:account.balance.account.balance.report,zero_years:0
msgid ""
-"You may have selected the compare options with more than 1 year with credit/"
-"debit columns and % option.This can lead contents to be printed out of the "
-"paper.Please try again."
+"You may have selected the compare options with more than 1 year with "
+"credit/debit columns and % option.This can lead contents to be printed out "
+"of the paper.Please try again."
msgstr ""
#. module: account
@@ -5990,7 +6207,7 @@ msgstr ""
#. module: account
#: wizard_view:account.balance.account.balance.report,init:0
msgid "Customize Report"
-msgstr "Настройка отчета"
+msgstr ""
#. module: account
#: field:report.aged.receivable,name:0
@@ -5998,12 +6215,12 @@ msgid "Month Range"
msgstr ""
#. module: account
-#: model:ir.actions.act_window,name:account.action_view_created_invoice_dashboard
+#: model:ir.actions.act_window,name:report_account.action_view_created_invoice_dashboard
msgid "Invoices Created Within Past 15 Days"
msgstr ""
#. module: account
-#: model:ir.model,name:account.model_report_invoice_created
+#: model:ir.model,name:report_account.model_report_invoice_created
msgid "Report of Invoices Created within Last 15 days"
msgstr ""
@@ -6015,17 +6232,17 @@ msgstr ""
#. module: account
#: view:report.account.receivable:0
msgid "Accounts by type"
-msgstr "Счета по типу"
+msgstr ""
#. module: account
-#: model:ir.model,name:account.model_report_aged_receivable
+#: model:ir.model,name:report_account.model_report_aged_receivable
msgid "Aged Receivable Till Today"
msgstr ""
#. module: account
-#: model:ir.model,name:account.model_report_account_receivable
+#: model:ir.model,name:report_account.model_report_account_receivable
msgid "Receivable accounts"
-msgstr "Дебиторская задолженность"
+msgstr ""
#. module: account
#: field:temp.range,name:0
@@ -6033,25 +6250,25 @@ msgid "Range"
msgstr ""
#. module: account
-#: model:ir.module.module,description:account.module_meta_information
+#: model:ir.module.module,description:report_account.module_meta_information
msgid "A module that adds new reports based on the account module."
msgstr ""
#. module: account
-#: model:ir.module.module,shortdesc:account.module_meta_information
+#: model:ir.module.module,shortdesc:report_account.module_meta_information
msgid "Account Reporting - Reporting"
msgstr ""
#. module: account
-#: model:ir.actions.act_window,name:account.action_account_receivable_graph
-#: model:ir.ui.menu,name:account.menu_account_receivable_graph
+#: model:ir.actions.act_window,name:report_account.action_account_receivable_graph
+#: model:ir.ui.menu,name:report_account.menu_account_receivable_graph
msgid "Balance by Type of Account"
-msgstr "Баланс по типу счетов"
+msgstr ""
#. module: account
#: field:report.account.receivable,name:0
msgid "Week of Year"
-msgstr "Неделя года"
+msgstr ""
#. module: account
#: field:report.invoice.created,create_date:0
@@ -6059,7 +6276,7 @@ msgid "Create Date"
msgstr ""
#. module: account
-#: model:ir.actions.act_window,name:account.action_aged_receivable_graph
+#: model:ir.actions.act_window,name:report_account.action_aged_receivable_graph
#: view:report.aged.receivable:0
msgid "Aged Receivable"
msgstr ""
diff --git a/addons/account/i18n/zh_CN.po b/addons/account/i18n/zh_CN.po
index 92c9e47b713..743c8ff302e 100644
--- a/addons/account/i18n/zh_CN.po
+++ b/addons/account/i18n/zh_CN.po
@@ -1,19 +1,19 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * account
+# * account
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.6\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-06-22 22:56+0000\n"
-"Last-Translator: sagas \n"
+"PO-Revision-Date: 2010-07-06 10:39+0000\n"
+"Last-Translator: Black Jack \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: 2010-06-26 03:58+0000\n"
+"X-Launchpad-Export-Date: 2010-07-07 03:39+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@@ -35,7 +35,7 @@ msgstr "未支付的采购发票"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_entries
msgid "Entries Encoding"
-msgstr "凭证录入"
+msgstr "分录"
#. module: account
#: model:ir.actions.todo,note:account.config_wizard_account_base_setup_form
@@ -45,7 +45,7 @@ msgstr "设置过期支付的催款信息"
#. module: account
#: model:process.transition,name:account.process_transition_confirmstatementfromdraft0
msgid "Confirm statement from draft"
-msgstr "从草稿确认"
+msgstr "从草稿确认对帐单"
#. module: account
#: model:account.account.type,name:account.account_type_asset
@@ -55,12 +55,12 @@ msgstr "资产"
#. module: account
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr "在动作定义中输入的对象名称错误"
+msgstr "在动作定义使用了无效的模块名。"
#. module: account
#: help:account.journal,currency:0
msgid "The currency used to enter statement"
-msgstr "报表使用的货币"
+msgstr "使用的货币"
#. module: account
#: wizard_view:account_use_models,init_form:0
@@ -72,12 +72,12 @@ msgstr "选择消息"
msgid ""
"This account will be used to value incoming stock for the current product "
"category"
-msgstr "这科目将用于当前产品分类的销售收入科目"
+msgstr "这科目将用于当前产品分类的默认进仓"
#. module: account
#: help:account.invoice,period_id:0
msgid "Keep empty to use the period of the validation(invoice) date."
-msgstr "此处留空则使用发票确认的日期"
+msgstr "留空使用确认(发票)日期的会计期间"
#. module: account
#: wizard_view:account.automatic.reconcile,reconcile:0
@@ -87,10 +87,11 @@ msgstr "对账结果"
#. module: account
#: model:ir.actions.act_window,name:account.act_account_acount_move_line_open_unreconciled
msgid "Unreconciled entries"
-msgstr "未对账凭证"
+msgstr "未对账"
#. module: account
-#: field:account.invoice.tax,base_code_id:0 field:account.tax,base_code_id:0
+#: field:account.invoice.tax,base_code_id:0
+#: field:account.tax,base_code_id:0
#: field:account.tax.template,base_code_id:0
msgid "Base Code"
msgstr "基础代码"
@@ -114,7 +115,7 @@ msgstr "上级科目"
#. module: account
#: selection:account.move,type:0
msgid "Journal Voucher"
-msgstr "日记账凭证"
+msgstr "原始凭证分录集合"
#. module: account
#: field:account.invoice,residual:0
@@ -122,7 +123,8 @@ msgid "Residual"
msgstr "剩余的"
#. module: account
-#: field:account.tax,base_sign:0 field:account.tax,ref_base_sign:0
+#: field:account.tax,base_sign:0
+#: field:account.tax,ref_base_sign:0
#: field:account.tax.template,base_sign:0
#: field:account.tax.template,ref_base_sign:0
msgid "Base Code Sign"
@@ -132,7 +134,7 @@ msgstr "税基代码符号"
#: model:ir.actions.wizard,name:account.wizard_unreconcile_select
#: model:ir.ui.menu,name:account.menu_unreconcile_select
msgid "Unreconcile entries"
-msgstr "选择未对账凭证"
+msgstr "未对账"
#. module: account
#: constraint:account.period:0
@@ -147,7 +149,7 @@ msgstr "错误!这会计期间无效 "
#: model:ir.actions.act_window,name:account.action_move_line_form
#: model:ir.ui.menu,name:account.menu_action_move_line_form
msgid "Entries"
-msgstr "凭证"
+msgstr "分录"
#. module: account
#: selection:account.move.line,centralisation:0
@@ -165,9 +167,7 @@ msgid ""
"Day of the month, set -1 for the last day of the current month. If it's "
"positive, it gives the day of the next month. Set 0 for net days (otherwise "
"it's based on the beginning of the month)."
-msgstr ""
-"某月第几日,如果是本月的最后一天则设置-1。如果是正数,则指定下个月的日期。净"
-"日数设置0(否则将基于本月第一天)。"
+msgstr "月天数设为-1到当月最后一天.如果为+数为下月的天数.设为0为净天数(否则从月初开始算)"
#. module: account
#: view:account.move:0
@@ -177,7 +177,7 @@ msgstr "贷方合计"
#. module: account
#: field:account.config.wizard,charts:0
msgid "Charts of Account"
-msgstr "科目表"
+msgstr "科目一览表"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_move_line_select
@@ -185,10 +185,12 @@ msgid "Move line select"
msgstr "选择凭证行"
#. module: account
-#: rml:account.journal.period.print:0 rml:account.tax.code.entries:0
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: rml:account.journal.period.print:0
+#: rml:account.tax.code.entries:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
msgid "Entry label"
-msgstr "凭证标签"
+msgstr "分录标签"
#. module: account
#: model:ir.model,name:account.model_account_model_line
@@ -201,14 +203,16 @@ msgid "Period Sum"
msgstr "会计期间合计"
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Compute Code (if type=code)"
msgstr "计算代码(如果类型=代码)"
#. module: account
-#: view:account.move:0 view:account.move.line:0
+#: view:account.move:0
+#: view:account.move.line:0
msgid "Account Entry Line"
-msgstr "凭证明细"
+msgstr "分录"
#. module: account
#: wizard_view:account.aged.trial.balance,init:0
@@ -218,14 +222,17 @@ msgstr "账龄试算平衡表"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_recurrent_entries
msgid "Recurrent Entries"
-msgstr "周期性凭证"
+msgstr "周期性分录"
#. module: account
#: field:account.analytic.line,amount:0
#: field:account.bank.statement.line,amount:0
-#: field:account.bank.statement.reconcile.line,amount:0 rml:account.invoice:0
-#: field:account.invoice.tax,amount:0 field:account.move,amount:0
-#: field:account.tax,amount:0 field:account.tax.template,amount:0
+#: field:account.bank.statement.reconcile.line,amount:0
+#: rml:account.invoice:0
+#: field:account.invoice.tax,amount:0
+#: field:account.move,amount:0
+#: field:account.tax,amount:0
+#: field:account.tax.template,amount:0
#: xsl:account.transfer:0
msgid "Amount"
msgstr "金额"
@@ -250,7 +257,7 @@ msgstr "借方合计"
#. module: account
#: rml:account.tax.code.entries:0
msgid "Accounting Entries-"
-msgstr "凭证 -"
+msgstr "分录 -"
#. module: account
#: help:account.journal,view_id:0
@@ -259,31 +266,29 @@ msgid ""
"view tell Open ERP which fields should be visible, required or readonly and "
"in which order. You can create your own view for a faster encoding in each "
"journal."
-msgstr ""
-"给出分类帐的凭证浏览和写入的视图.这视图规定系统那个字段可见、必须或只读.你能"
-"为每个分类帐创建你自己的视图"
+msgstr "给出分录集合中分录的浏览和写入视图. 这视图告诉系统那个字段可见,必须或只读. 你能为每个分录集合创建自己的视图."
#. module: account
-#: help:account.invoice,date_due:0 help:account.invoice,payment_term:0
+#: help:account.invoice,date_due:0
+#: help:account.invoice,payment_term:0
msgid ""
"If you use payment terms, the due date will be computed automatically at the "
"generation of accounting entries. If you keep the payment term and the due "
"date empty, it means direct payment. The payment term may compute several "
"due dates, for example 50% now, 50% in one month."
msgstr ""
-"如果你使用付款条件,到期日期将在生成会计分录时自动计算。如果付款条件和到期日"
-"\r\n"
-"期为空,则意味着直接付款。使用付款条件可能计算出几个到期日,例如现在先付50%,"
-"然\r\n"
-"后在一个月内支付余下的50%。"
+"如果你使用付款条款, 到期将自动生成会计分录. 如果付款条款和到期日期为空, 则意味着直接付款. 付款条款可以计算出几个到期日, 例如现在先付50%, "
+"然后在一个月内支付余下的50%."
#. module: account
-#: selection:account.tax,type:0 selection:account.tax.template,type:0
+#: selection:account.tax,type:0
+#: selection:account.tax.template,type:0
msgid "Fixed"
msgstr "固定"
#. module: account
-#: model:ir.actions.report.xml,name:account.account_overdue view:res.company:0
+#: model:ir.actions.report.xml,name:account.account_overdue
+#: view:res.company:0
msgid "Overdue Payments"
msgstr "逾期付款"
@@ -299,7 +304,8 @@ msgid "Select period"
msgstr "选择会计期间"
#. module: account
-#: field:account.invoice,origin:0 field:account.invoice.line,origin:0
+#: field:account.invoice,origin:0
+#: field:account.invoice.line,origin:0
msgid "Origin"
msgstr "来源"
@@ -316,7 +322,7 @@ msgstr "参考"
#. module: account
#: wizard_view:account.subscription.generate,init:0
msgid "Subscription Compute"
-msgstr "周期性计算"
+msgstr "周期性分录计算"
#. module: account
#: rml:account.central.journal:0
@@ -329,7 +335,8 @@ msgid "Delta Debit"
msgstr "第三借方"
#. module: account
-#: rml:account.invoice:0 field:account.invoice,amount_tax:0
+#: rml:account.invoice:0
+#: field:account.invoice,amount_tax:0
#: field:account.move.line,account_tax_id:0
msgid "Tax"
msgstr "税"
@@ -345,18 +352,20 @@ msgstr "借方交易"
#: field:account.move.line,analytic_account_id:0
#: field:report.hr.timesheet.invoice.journal,account_id:0
msgid "Analytic Account"
-msgstr "辅助核算项目"
+msgstr "辅助核算项"
#. module: account
-#: field:account.tax,child_depend:0 field:account.tax.template,child_depend:0
+#: field:account.tax,child_depend:0
+#: field:account.tax.template,child_depend:0
msgid "Tax on Children"
-msgstr "子税"
+msgstr "基于子税"
#. module: account
-#: rml:account.central.journal:0 rml:account.general.journal:0
+#: rml:account.central.journal:0
+#: rml:account.general.journal:0
#: field:account.journal,name:0
msgid "Journal Name"
-msgstr "分类帐名称"
+msgstr "分录集合名称"
#. module: account
#: view:account.payment.term:0
@@ -366,7 +375,7 @@ msgstr "发票说明"
#. module: account
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
-msgstr "错误!你不能创建递归的辅助核算项目"
+msgstr "错误! 你不能创建递归的辅助核算项"
#. module: account
#: field:account.bank.statement.reconcile,total_entry:0
@@ -388,17 +397,17 @@ msgstr "允许取消分录"
#: model:process.transition,name:account.process_transition_paymentorderbank0
#: model:process.transition,name:account.process_transition_paymentorderreconcilation0
msgid "Payment Reconcilation"
-msgstr "付款对帐"
+msgstr "付款对账"
#. module: account
#: model:account.journal,name:account.expenses_journal
msgid "Journal de frais"
-msgstr "费用日记账"
+msgstr "费用分录集合"
#. module: account
#: model:ir.actions.act_window,name:account.act_acc_analytic_acc_5_report_hr_timesheet_invoice_journal
msgid "All Analytic Entries"
-msgstr "所有分析分录"
+msgstr "所有辅助核算分录"
#. module: account
#: rml:account.overdue:0
@@ -421,8 +430,11 @@ msgid "Contra"
msgstr "反向"
#. module: account
-#: field:account.analytic.account,state:0 field:account.bank.statement,state:0
-#: field:account.invoice,state:0 view:account.move:0 view:account.move.line:0
+#: field:account.analytic.account,state:0
+#: field:account.bank.statement,state:0
+#: field:account.invoice,state:0
+#: view:account.move:0
+#: view:account.move.line:0
#: view:account.subscription:0
msgid "State"
msgstr "状态"
@@ -434,14 +446,15 @@ msgid "Unpaid Supplier Refunds"
msgstr "未支付的供应商退款"
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Special Computation"
msgstr "特殊计算"
#. module: account
#: model:process.transition,note:account.process_transition_confirmstatementfromdraft0
msgid "Confirm statement with/without reconciliation from draft statement"
-msgstr "从草稿确认将不对账"
+msgstr "从草稿确认与对/不对帐"
#. module: account
#: wizard_view:account.move.bank.reconcile,init:0
@@ -456,8 +469,10 @@ msgid "Disc.(%)"
msgstr "折扣(%)"
#. module: account
-#: rml:account.general.ledger:0 field:account.model,ref:0
-#: field:account.move,ref:0 rml:account.overdue:0
+#: rml:account.general.ledger:0
+#: field:account.model,ref:0
+#: field:account.move,ref:0
+#: rml:account.overdue:0
#: field:account.subscription,ref:0
msgid "Ref"
msgstr "参考"
@@ -472,23 +487,23 @@ msgstr "税用在"
msgid ""
"Set if the amount of tax must be included in the base amount before "
"computing the next taxes."
-msgstr "在下一个税额计算前,如果本税额必须包含在税基里,请设置"
+msgstr "如果这税额必须在计算下一个税的基础金额里, 请设置"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_periodical_processing
msgid "Periodical Processing"
-msgstr "期间处理"
+msgstr "定期处理"
#. module: account
#: view:report.hr.timesheet.invoice.journal:0
msgid "Analytic Entries Stats"
-msgstr "辅助核算凭证统计"
+msgstr "辅助核算分录统计"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_tax_code_template_form
#: model:ir.ui.menu,name:account.menu_action_account_tax_code_template_form
msgid "Tax Code Templates"
-msgstr "税务模板"
+msgstr "税代码模板"
#. module: account
#: view:account.invoice:0
@@ -499,7 +514,7 @@ msgstr "供应商发票"
#: model:process.transition,name:account.process_transition_reconcilepaid0
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
msgid "Reconcile Paid"
-msgstr "对账的付款"
+msgstr "对账支付"
#. module: account
#: wizard_field:account.chart,init,target_move:0
@@ -525,7 +540,7 @@ msgstr "递延方法"
#. module: account
#: field:account.tax.template,include_base_amount:0
msgid "Include in Base Amount"
-msgstr "基础金额"
+msgstr "包含在基础金额里"
#. module: account
#: field:account.tax,ref_base_code_id:0
@@ -541,21 +556,20 @@ msgstr "明细"
#. module: account
#: rml:account.analytic.account.cost_ledger:0
msgid "J.C. or Move name"
-msgstr "成本分类账或凭证名称"
+msgstr "成本分录集合或凭证名称"
#. module: account
#: selection:account.tax,applicable_type:0
#: selection:account.tax.template,applicable_type:0
msgid "True"
-msgstr "真"
+msgstr "Tue"
#. module: account
#: help:account.payment.term.line,days:0
msgid ""
"Number of days to add before computation of the day of month.If Date=15/01, "
"Number of Days=22, Day of Month=-1, then the due date is 28/02."
-msgstr ""
-"天数在计算前加入月的天数,如日期为01/15,天数是22,月是1,则应付日期是02/28"
+msgstr "在计算前加入的天数, 如日期为01/15, 天数是22, 月是1,则应付日期是02/28"
#. module: account
#: model:ir.model,name:account.model_account_tax
@@ -581,20 +595,20 @@ msgstr "账龄分析表"
#. module: account
#: view:account.journal:0
msgid "Entry Controls"
-msgstr "凭证控制"
+msgstr "分录控制"
#. module: account
#: help:account.model.line,sequence:0
msgid ""
"The sequence field is used to order the resources from lower sequences to "
"higher ones"
-msgstr "这序列字段使用从高到低排序"
+msgstr "这序列字段使用从低到高排序"
#. module: account
#: wizard_view:account.analytic.account.chart,init:0
#: wizard_view:account.analytic.line,init:0
msgid "(Keep empty to open the current situation)"
-msgstr "留空为打开当前状况"
+msgstr "(留空为打开当前状况)"
#. module: account
#: model:ir.model,name:account.model_account_fiscal_position_account
@@ -610,17 +624,17 @@ msgstr "联系"
#: selection:account.model.line,date:0
#: selection:account.model.line,date_maturity:0
msgid "Partner Payment Term"
-msgstr "业务伙伴付款条件"
+msgstr "业务伙伴付款条款"
#. module: account
#: view:account.move.reconcile:0
msgid "Account Entry Reconcile"
-msgstr "凭证对账"
+msgstr "分录对账"
#. module: account
#: wizard_button:account.move.bank.reconcile,init,open:0
msgid "Open for bank reconciliation"
-msgstr "打开银行对账"
+msgstr "开始银行对账"
#. module: account
#: field:account.invoice.line,discount:0
@@ -641,7 +655,7 @@ msgstr "如果这会计年度属于几个公司留空"
#. module: account
#: model:ir.ui.menu,name:account.menu_analytic_accounting
msgid "Analytic Accounting"
-msgstr "成本会计"
+msgstr "辅助核算会计"
#. module: account
#: rml:account.overdue:0
@@ -649,11 +663,12 @@ msgid "Sub-Total :"
msgstr "小计 :"
#. module: account
-#: field:account.analytic.account,line_ids:0 view:account.analytic.line:0
+#: field:account.analytic.account,line_ids:0
+#: view:account.analytic.line:0
#: model:ir.actions.act_window,name:account.action_account_analytic_line_form
#: model:ir.ui.menu,name:account.next_id_41
msgid "Analytic Entries"
-msgstr "辅助核算凭证"
+msgstr "辅助核算分录"
#. module: account
#: selection:account.subscription,period_type:0
@@ -678,10 +693,11 @@ msgstr "客户退款"
#. module: account
#: wizard_view:account.analytic.account.chart,init:0
msgid "Select the Period for Analysis"
-msgstr "选择核算会计期间"
+msgstr "选择辅助核算的会计期间"
#. module: account
-#: field:account.tax,ref_tax_sign:0 field:account.tax,tax_sign:0
+#: field:account.tax,ref_tax_sign:0
+#: field:account.tax,tax_sign:0
#: field:account.tax.template,ref_tax_sign:0
#: field:account.tax.template,tax_sign:0
msgid "Tax Code Sign"
@@ -713,17 +729,19 @@ msgid "Field Name"
msgstr "字段名"
#. module: account
-#: field:account.tax.code,sign:0 field:account.tax.code.template,sign:0
+#: field:account.tax.code,sign:0
+#: field:account.tax.code.template,sign:0
msgid "Sign for parent"
msgstr "上级符号"
#. module: account
#: field:account.fiscalyear,end_journal_period_id:0
msgid "End of Year Entries Journal"
-msgstr "年度期末分类帐"
+msgstr "结束会计年度分录集合"
#. module: account
-#: view:product.product:0 view:product.template:0
+#: view:product.product:0
+#: view:product.template:0
msgid "Purchase Properties"
msgstr "采购属性"
@@ -740,12 +758,15 @@ msgstr "部分支付"
#. module: account
#: wizard_view:account_use_models,create:0
msgid "Move Lines Created."
-msgstr "创建凭证明细"
+msgstr "创建的凭证明细"
#. module: account
-#: field:account.fiscalyear,state:0 field:account.journal.period,state:0
-#: field:account.move,state:0 field:account.move.line,state:0
-#: field:account.period,state:0 field:account.subscription,state:0
+#: field:account.fiscalyear,state:0
+#: field:account.journal.period,state:0
+#: field:account.move,state:0
+#: field:account.move.line,state:0
+#: field:account.period,state:0
+#: field:account.subscription,state:0
msgid "Status"
msgstr "状态"
@@ -763,7 +784,7 @@ msgstr "业务伙伴科目"
#. module: account
#: wizard_view:account.subscription.generate,init:0
msgid "Generate entries before:"
-msgstr "之前生成的凭证:"
+msgstr "之前生成的分录:"
#. module: account
#: rml:account.analytic.account.cost_ledger:0
@@ -790,14 +811,14 @@ msgstr "凭证明细"
#: model:ir.actions.act_window,name:account.report_account_analytic_journal_tree
#: model:ir.ui.menu,name:account.report_account_analytic_journal_print
msgid "Account cost and revenue by journal"
-msgstr "辅助核算项目统计"
+msgstr "科目成本与收益的分录集合"
#. module: account
#: help:account.account.template,user_type:0
msgid ""
"These types are defined according to your country. The type contain more "
"information about the account and it's specificities."
-msgstr "这定义的类型根据你的国家.这类型包含更多的信息如:科目和特定的信息"
+msgstr "这些类型的定义根据你的国家. 在类型上包含更多的信息: 科目和它的特点."
#. module: account
#: selection:account.automatic.reconcile,init,power:0
@@ -819,14 +840,14 @@ msgstr "科目模板"
#: model:ir.model,name:account.model_account_analytic_account
#: model:ir.ui.menu,name:account.account_analytic_def_account
msgid "Analytic Accounts"
-msgstr "辅助核算项目"
+msgstr "辅助核算项"
#. module: account
#: wizard_view:account.print.journal.report,init:0
#: model:ir.actions.wizard,name:account.wizard_print_journal
#: model:ir.ui.menu,name:account.menu_print_journal
msgid "Print Journal"
-msgstr "打印分类帐"
+msgstr "打印分录集合"
#. module: account
#: model:ir.model,name:account.model_account_bank_accounts_wizard
@@ -847,18 +868,18 @@ msgstr "取消发票"
#. module: account
#: field:account.journal.column,required:0
msgid "Required"
-msgstr "必须的"
+msgstr "必需"
#. module: account
#: field:product.category,property_account_expense_categ:0
#: field:product.template,property_account_expense:0
msgid "Expense Account"
-msgstr "采购科目"
+msgstr "费用科目"
#. module: account
#: wizard_field:account.move.line.reconcile,addendum,journal_id:0
msgid "Write-Off Journal"
-msgstr "补差额分类帐"
+msgstr "补差额分录集合"
#. module: account
#: field:account.model.line,amount_currency:0
@@ -881,7 +902,7 @@ msgstr "新的会计年度"
msgid ""
"If a default tax is given in the partner it only overrides taxes from "
"accounts (or products) in the same group."
-msgstr "如果默认税提供这业务伙伴的税只决定税来自科目(或产品)相同的分组"
+msgstr "如果默认税是业务伙伴只覆盖, 税款科目(或产品)在同一分组"
#. module: account
#: wizard_field:account.open_closed_fiscalyear,init,fyear_id:0
@@ -891,15 +912,17 @@ msgstr "打开会计年度"
#. module: account
#: view:account.config.wizard:0
msgid "Select Chart of Accounts"
-msgstr "选择科目表"
+msgstr "选择科目一览表"
#. module: account
#: field:account.analytic.account,quantity:0
#: rml:account.analytic.account.balance:0
#: rml:account.analytic.account.inverted.balance:0
#: rml:account.analytic.account.quantity_cost_ledger:0
-#: field:account.analytic.line,unit_amount:0 rml:account.invoice:0
-#: field:account.invoice.line,quantity:0 field:account.model.line,quantity:0
+#: field:account.analytic.line,unit_amount:0
+#: rml:account.invoice:0
+#: field:account.invoice.line,quantity:0
+#: field:account.model.line,quantity:0
#: field:account.move.line,quantity:0
msgid "Quantity"
msgstr "数量"
@@ -920,7 +943,7 @@ msgstr "基础代码金额"
#. module: account
#: help:account.journal,user_id:0
msgid "The user responsible for this journal"
-msgstr "这分类帐的责任用户"
+msgstr "这分录集合用户负责"
#. module: account
#: field:account.journal,default_debit_account_id:0
@@ -931,24 +954,27 @@ msgstr "默认借方科目"
#: model:ir.actions.act_window,name:account.action_bank_statement_tree
#: model:ir.ui.menu,name:account.menu_bank_statement_tree
msgid "Entries by Statements"
-msgstr "银行对账单"
+msgstr "对帐单"
#. module: account
#: model:process.transition,name:account.process_transition_analyticinvoice0
msgid "analytic Invoice"
-msgstr "核算发票"
+msgstr "辅助核算发票"
#. module: account
#: wizard_field:account.automatic.reconcile,init,period_id:0
#: field:account.bank.statement,period_id:0
#: wizard_field:account.central.journal.report,init,period_id:0
-#: view:account.fiscalyear:0 rml:account.general.journal:0
+#: view:account.fiscalyear:0
+#: rml:account.general.journal:0
#: wizard_field:account.general.journal.report,init,period_id:0
#: wizard_field:account.invoice.pay,init,period_id:0
-#: field:account.journal.period,period_id:0 field:account.move,period_id:0
+#: field:account.journal.period,period_id:0
+#: field:account.move,period_id:0
#: wizard_field:account.move.journal,init,period_id:0
#: field:account.move.line,period_id:0
-#: wizard_field:account.move.validate,init,period_id:0 view:account.period:0
+#: wizard_field:account.move.validate,init,period_id:0
+#: view:account.period:0
#: wizard_field:account.print.journal.report,init,period_id:0
#: field:account.subscription,period_nbr:0
msgid "Period"
@@ -957,7 +983,7 @@ msgstr "会计期间"
#. module: account
#: rml:account.partner.balance:0
msgid "Grand total"
-msgstr "合计"
+msgstr "总计"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_accounting
@@ -970,7 +996,8 @@ msgid "Net Total:"
msgstr "不含税合计:"
#. module: account
-#: view:account.fiscal.position:0 field:account.fiscal.position,name:0
+#: view:account.fiscal.position:0
+#: field:account.fiscal.position,name:0
#: field:account.fiscal.position.account,position_id:0
#: field:account.fiscal.position.account.template,position_id:0
#: field:account.fiscal.position.tax,position_id:0
@@ -1036,7 +1063,7 @@ msgstr "主序列"
#: model:ir.actions.act_window,name:account.action_account_analytic_journal_tree
#: model:ir.ui.menu,name:account.account_analytic_journal_print
msgid "Print Analytic Journals"
-msgstr "打印辅助核算分类帐"
+msgstr "打印辅助核算分录集合"
#. module: account
#: rml:account.tax.code.entries:0
@@ -1048,7 +1075,7 @@ msgstr "原始凭证编号"
msgid ""
"The sequence field is used to order the payment term lines from the lowest "
"sequences to the higher ones"
-msgstr "序列字段用于付款条款行的排序从低到高."
+msgstr "这序列字段用于付款条款的从低到高排序."
#. module: account
#: field:account.bank.statement.reconcile,total_new:0
@@ -1065,14 +1092,14 @@ msgstr "含税价计算代码"
#: model:ir.actions.act_window,name:account.action_tax_code_list
#: model:ir.ui.menu,name:account.menu_action_tax_code_list
msgid "Tax codes"
-msgstr "税代码"
+msgstr "税事务"
#. module: account
#: field:account.fiscal.position.template,chart_template_id:0
#: field:account.tax.template,chart_template_id:0
#: field:wizard.multi.charts.accounts,chart_template_id:0
msgid "Chart Template"
-msgstr "列表模板"
+msgstr "一览表模板"
#. module: account
#: field:account.chart.template,property_account_income_categ:0
@@ -1083,7 +1110,7 @@ msgstr "收入类科目"
#: model:ir.actions.act_window,name:account.analytic_account_form
#: model:ir.ui.menu,name:account.account_analytic_form
msgid "New Analytic Account"
-msgstr "新的辅助核算项目"
+msgstr "新辅助核算项"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_fiscal_position_template_form
@@ -1092,7 +1119,8 @@ msgid "Fiscal Position Templates"
msgstr "财务结构模板"
#. module: account
-#: rml:account.invoice:0 field:account.invoice.line,price_unit:0
+#: rml:account.invoice:0
+#: field:account.invoice.line,price_unit:0
msgid "Unit Price"
msgstr "单价"
@@ -1109,7 +1137,7 @@ msgstr "向导.多.一览表.科目"
#. module: account
#: model:account.journal,name:account.sales_journal
msgid "Journal de vente"
-msgstr "销售日记账"
+msgstr "销售分录集合"
#. module: account
#: help:account.model.line,amount_currency:0
@@ -1136,7 +1164,7 @@ msgstr "税务报表"
#: wizard_button:account.analytic.account.chart,init,open:0
#: wizard_button:account.chart,init,open:0
msgid "Open Charts"
-msgstr "打开科目表"
+msgstr "打开一览表"
#. module: account
#: wizard_view:account.fiscalyear.close.state,init:0
@@ -1146,7 +1174,7 @@ msgstr "你确定关闭这个会计年度?"
#. module: account
#: selection:account.move,type:0
msgid "Bank Receipt"
-msgstr "银行收入"
+msgstr "银行收据"
#. module: account
#: view:res.partner:0
@@ -1166,7 +1194,7 @@ msgstr "进项发票"
#. module: account
#: model:ir.actions.wizard,name:account.action_move_journal_line_form_select
msgid "Standard entry"
-msgstr "标准凭证"
+msgstr "普通分录"
#. module: account
#: help:account.account,currency_mode:0
@@ -1177,8 +1205,7 @@ msgid ""
"software system you may have to use the rate at date. Incoming transactions "
"always use the rate at date."
msgstr ""
-"这将选择将要兑换的当前计算汇率.在大多数国家法定为\"平均\"但只有少数软件系统能"
-"够管理.所以如果你导入另一个软件系统,你可能需要使用当日汇率"
+"这将选择将要兑换的当前货币汇率. 在大多数国家法定为\"平均\"但只有少数软件系统能够管理. 所以如果你导入另一个软件系统,你可能需要使用当日汇率."
#. module: account
#: field:account.account,company_currency_id:0
@@ -1193,7 +1220,7 @@ msgstr "财务结构模板科目一览"
#. module: account
#: field:account.analytic.account,parent_id:0
msgid "Parent Analytic Account"
-msgstr "上级辅助核算项目"
+msgstr "上级辅助核算项"
#. module: account
#: wizard_button:account.move.line.reconcile,init_partial,addendum:0
@@ -1218,7 +1245,7 @@ msgstr "期末结余"
#. module: account
#: view:product.product:0
msgid "Purchase Taxes"
-msgstr "购置税"
+msgstr "采购税"
#. module: account
#: field:account.payment.term.line,name:0
@@ -1244,10 +1271,11 @@ msgstr "部分对账"
#. module: account
#: wizard_field:account.automatic.reconcile,reconcile,unreconciled:0
msgid "Not reconciled transactions"
-msgstr "没对账的业务"
+msgstr "没对账的交易"
#. module: account
-#: view:account.fiscal.position:0 field:account.fiscal.position,tax_ids:0
+#: view:account.fiscal.position:0
+#: field:account.fiscal.position,tax_ids:0
#: field:account.fiscal.position.template,tax_ids:0
msgid "Tax Mapping"
msgstr "税一览"
@@ -1255,7 +1283,7 @@ msgstr "税一览"
#. module: account
#: view:account.config.wizard:0
msgid "Continue"
-msgstr "继续"
+msgstr "下一步"
#. module: account
#: field:account.payment.term.line,value:0
@@ -1269,7 +1297,8 @@ msgid "Write-Off account"
msgstr "补差额科目"
#. module: account
-#: field:account.model.line,model_id:0 field:account.subscription,model_id:0
+#: field:account.model.line,model_id:0
+#: field:account.subscription,model_id:0
msgid "Model"
msgstr "模型"
@@ -1295,9 +1324,11 @@ msgid "Select invoices you want to pay and manages advances"
msgstr "选择你要支付和管理的放款的发票"
#. module: account
-#: selection:account.account,type:0 selection:account.account.template,type:0
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
#: model:account.account.type,name:account.account_type_root
-#: selection:account.analytic.account,type:0 field:account.journal,view_id:0
+#: selection:account.analytic.account,type:0
+#: field:account.journal,view_id:0
msgid "View"
msgstr "视图"
@@ -1324,7 +1355,7 @@ msgstr "税金的计算方法"
#: model:process.node,note:account.process_node_accountingentries0
#: model:process.node,note:account.process_node_supplieraccountingentries0
msgid "Validated accounting entries."
-msgstr "审核凭证"
+msgstr "确认分录"
#. module: account
#: wizard_view:account.move.line.unreconcile,init:0
@@ -1332,7 +1363,7 @@ msgstr "审核凭证"
msgid ""
"If you unreconciliate transactions, you must also verify all the actions "
"that are linked to those transactions because they will not be disable"
-msgstr "如果进行未对账处理你必须检验处理的所有操作.因为他们不会被禁止."
+msgstr "如果进行未对账交易, 你必须检验交易的所有操作. 因为他们不会被禁止."
#. module: account
#: model:process.node,name:account.process_node_electronicfile0
@@ -1366,7 +1397,8 @@ msgstr "科目类型"
#: wizard_field:account.central.journal.report,init,journal_id:0
#: wizard_field:account.general.journal.report,init,journal_id:0
#: field:account.invoice,journal_id:0
-#: field:account.journal.period,journal_id:0 field:account.model,journal_id:0
+#: field:account.journal.period,journal_id:0
+#: field:account.model,journal_id:0
#: field:account.move,journal_id:0
#: wizard_field:account.move.bank.reconcile,init,journal_id:0
#: wizard_field:account.move.journal,init,journal_id:0
@@ -1379,17 +1411,18 @@ msgstr "科目类型"
#: wizard_field:populate_statement_from_inv,init,journal_id:0
#: field:report.hr.timesheet.invoice.journal,journal_id:0
msgid "Journal"
-msgstr "分类帐"
+msgstr "分录集合"
#. module: account
-#: field:account.account,child_id:0 field:account.analytic.account,child_ids:0
+#: field:account.account,child_id:0
+#: field:account.analytic.account,child_ids:0
msgid "Child Accounts"
msgstr "子科目"
#. module: account
#: field:account.account,check_history:0
msgid "Display History"
-msgstr "显示日志"
+msgstr "显示历史"
#. module: account
#: wizard_field:account.third_party_ledger.report,init,date1:0
@@ -1405,10 +1438,11 @@ msgstr "显示科目 "
#. module: account
#: model:ir.model,name:account.model_account_bank_statement_reconcile_line
msgid "Statement reconcile line"
-msgstr "对账单对账明细"
+msgstr "对帐单核销明细"
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Keep empty to use the income account"
msgstr "留空为使用收入科目"
@@ -1426,8 +1460,8 @@ msgid ""
"The partner bank account to pay\n"
"Keep empty to use the default"
msgstr ""
-"合作者用于付款的银行帐\n"
-"留空代表默认值"
+"付款时业务伙伴的银行帐号\n"
+"留空使用默认值"
#. module: account
#: field:res.partner,debit:0
@@ -1447,12 +1481,12 @@ msgstr "向导.公司.设置"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_analytic_account_line_extended_form
msgid "account.analytic.line.extended"
-msgstr "项目.辅助核算.明细.延伸"
+msgstr "项.辅助核算.明细.延伸"
#. module: account
#: field:account.journal,refund_journal:0
msgid "Refund Journal"
-msgstr "退款分类帐"
+msgstr "退款分录集合"
#. module: account
#: model:account.account.type,name:account.account_type_income
@@ -1462,7 +1496,7 @@ msgstr "收入"
#. module: account
#: selection:account.bank.statement.line,type:0
msgid "Supplier"
-msgstr "供货商"
+msgstr "供应商"
#. module: account
#: rml:account.invoice:0
@@ -1484,13 +1518,13 @@ msgstr "正数"
#: model:ir.actions.wizard,name:account.wizard_general_journal
#: model:ir.ui.menu,name:account.menu_general_journal
msgid "Print General Journal"
-msgstr "打印普通分类帐"
+msgstr "打印普通日记帐"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_chart_template_form
#: model:ir.ui.menu,name:account.menu_action_account_chart_template_form
msgid "Chart of Accounts Templates"
-msgstr "科目表模板"
+msgstr "科目一览表模板"
#. module: account
#: field:account.invoice,move_id:0
@@ -1502,12 +1536,12 @@ msgstr "发票进展"
#: model:ir.ui.menu,name:account.menu_wizard
#: view:wizard.multi.charts.accounts:0
msgid "Generate Chart of Accounts from a Chart Template"
-msgstr "从模板产生科目表"
+msgstr "从模板产生科目一览表"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_legal_statement
msgid "Legal Statements"
-msgstr "法定报表"
+msgstr "正规报表"
#. module: account
#: field:account.tax.code,parent_id:0
@@ -1523,7 +1557,7 @@ msgstr "打开对账"
#. module: account
#: model:account.journal,name:account.bilan_journal
msgid "Journal d'ouverture"
-msgstr "开始日记账"
+msgstr "分录集合开启"
#. module: account
#: selection:account.tax,tax_group:0
@@ -1537,9 +1571,10 @@ msgid "Account n°"
msgstr "科目编码"
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Keep empty to use the expense account"
-msgstr "留空为使用采购科目"
+msgstr "留空为使用费用科目"
#. module: account
#: wizard_field:account.automatic.reconcile,init,account_ids:0
@@ -1547,7 +1582,8 @@ msgid "Account to reconcile"
msgstr "科目进行对账"
#. module: account
-#: rml:account.invoice:0 field:account.model.line,partner_id:0
+#: rml:account.invoice:0
+#: field:account.model.line,partner_id:0
#: field:account.move.line,partner_id:0
msgid "Partner Ref."
msgstr "业务伙伴参考"
@@ -1559,12 +1595,14 @@ msgid "Receivable and Payable Accounts"
msgstr "应收款与应付款科目"
#. module: account
-#: view:account.subscription:0 field:account.subscription,lines_id:0
+#: view:account.subscription:0
+#: field:account.subscription,lines_id:0
msgid "Subscription Lines"
-msgstr "周期明细"
+msgstr "周期性分录明细"
#. module: account
-#: selection:account.analytic.journal,type:0 selection:account.journal,type:0
+#: selection:account.analytic.journal,type:0
+#: selection:account.journal,type:0
#: selection:account.tax,type_tax_use:0
#: selection:account.tax.template,type_tax_use:0
msgid "Purchase"
@@ -1589,7 +1627,7 @@ msgstr "关闭会计期间"
#. module: account
#: rml:account.overdue:0
msgid "Due"
-msgstr "应付"
+msgstr "到期"
#. module: account
#: rml:account.journal.period.print:0
@@ -1599,7 +1637,7 @@ msgstr "第三方"
#. module: account
#: view:account.journal:0
msgid "Accounts Type Allowed (empty for no control)"
-msgstr "科目类型允许(留空为为不限制)"
+msgstr "科目类型允许(留空为不限制)"
#. module: account
#: field:account.bank.statement,balance_start:0
@@ -1612,7 +1650,7 @@ msgstr "开始余额"
#: model:ir.actions.act_window,name:account.action_account_journal_period_tree
#: model:ir.ui.menu,name:account.menu_action_account_journal_period_tree
msgid "Journals"
-msgstr "分类帐"
+msgstr "分录集合"
#. module: account
#: rml:account.analytic.account.quantity_cost_ledger:0
@@ -1669,12 +1707,12 @@ msgstr "重开"
#. module: account
#: wizard_view:account.fiscalyear.close,init:0
msgid "Are you sure you want to create entries?"
-msgstr "你确定创建凭证?"
+msgstr "你确定创建分录?"
#. module: account
#: field:account.tax,include_base_amount:0
msgid "Include in base amount"
-msgstr "含基本金额"
+msgstr "包含在基本金额里"
#. module: account
#: rml:account.analytic.account.analytic.check:0
@@ -1685,7 +1723,7 @@ msgstr "第三贷方"
#: model:ir.actions.wizard,name:account.wizard_reconcile_unreconcile
#: model:ir.actions.wizard,name:account.wizard_unreconcile
msgid "Unreconcile Entries"
-msgstr "凭证转为未对账"
+msgstr "未对账分录"
#. module: account
#: model:process.node,note:account.process_node_supplierdraftinvoices0
@@ -1695,13 +1733,13 @@ msgstr "控制预先生成发票"
#. module: account
#: wizard_view:account.analytic.account.quantity_cost_ledger.report,init:0
msgid "Cost Legder for period"
-msgstr "会计期间的成本分类账"
+msgstr "成本分类账的会计期间"
#. module: account
#: model:ir.actions.act_window,name:account.action_bank_statement_tree2
#: model:ir.ui.menu,name:account.menu_bank_statement_tree2
msgid "New Statement"
-msgstr "新银行对账单"
+msgstr "新对帐单"
#. module: account
#: wizard_field:account.analytic.account.chart,init,from_date:0
@@ -1713,14 +1751,14 @@ msgstr "从"
#: model:process.node,note:account.process_node_reconciliation0
#: model:process.node,note:account.process_node_supplierreconciliation0
msgid "Reconciliation of entries from invoice(s) and payment(s)"
-msgstr "发票和付款的对账凭证"
+msgstr "发票和付款的对账分录"
#. module: account
#: wizard_view:account.central.journal.report,init:0
#: model:ir.actions.wizard,name:account.wizard_central_journal
#: model:ir.ui.menu,name:account.menu_central_journal
msgid "Print Central Journal"
-msgstr "打印分类帐(按科目)"
+msgstr "打印主要的分录集合"
#. module: account
#: wizard_field:account.aged.trial.balance,init,period_length:0
@@ -1728,7 +1766,8 @@ msgid "Period length (days)"
msgstr "会计期间长度(天数)"
#. module: account
-#: selection:account.payment.term.line,value:0 selection:account.tax,type:0
+#: selection:account.payment.term.line,value:0
+#: selection:account.tax,type:0
#: selection:account.tax.template,type:0
msgid "Percent"
msgstr "百分比"
@@ -1736,10 +1775,11 @@ msgstr "百分比"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_charts
msgid "Charts"
-msgstr "科目列表"
+msgstr "一览表"
#. module: account
-#: selection:account.analytic.journal,type:0 selection:account.journal,type:0
+#: selection:account.analytic.journal,type:0
+#: selection:account.journal,type:0
#: selection:account.tax,type_tax_use:0
#: selection:account.tax.template,type_tax_use:0
msgid "Sale"
@@ -1766,7 +1806,7 @@ msgstr "日期或者代码"
#. module: account
#: field:account.analytic.account,user_id:0
msgid "Account Manager"
-msgstr "项目管理员"
+msgstr "科目管理员"
#. module: account
#: rml:account.analytic.account.journal:0
@@ -1809,20 +1849,23 @@ msgstr "开始日期"
#. module: account
#: model:account.journal,name:account.refund_expenses_journal
msgid "x Expenses Credit Notes Journal"
-msgstr "x 费用贷方票据分类帐"
+msgstr "x 费用信用票据分录集合"
#. module: account
#: field:account.analytic.journal,type:0
-#: field:account.bank.statement.line,type:0 field:account.invoice,type:0
-#: field:account.journal,type:0 field:account.move,type:0
-#: field:account.move.reconcile,type:0 xsl:account.transfer:0
+#: field:account.bank.statement.line,type:0
+#: field:account.invoice,type:0
+#: field:account.journal,type:0
+#: field:account.move,type:0
+#: field:account.move.reconcile,type:0
+#: xsl:account.transfer:0
msgid "Type"
msgstr "类型"
#. module: account
#: view:account.journal:0
msgid "Accounts Allowed (empty for no control)"
-msgstr "科目允许(留空为为不限制)"
+msgstr "科目允许(留空为不限制)"
#. module: account
#: view:account.invoice:0
@@ -1838,7 +1881,7 @@ msgstr "发票税科目"
#. module: account
#: view:account.move.line:0
msgid "Analytic Lines"
-msgstr "辅助核算凭证明细"
+msgstr "辅助核算明细"
#. module: account
#: wizard_view:account.invoice.pay,init:0
@@ -1849,7 +1892,7 @@ msgstr "支付发票"
#. module: account
#: constraint:account.invoice:0
msgid "Error: Invalid Bvr Number (wrong checksum)."
-msgstr "错误:无效的Bvr号(错误的检验和)"
+msgstr "错误:无效的Bvr号(合计检查错误)"
#. module: account
#: model:ir.actions.act_window,name:account.action_invoice_tree5
@@ -1860,7 +1903,7 @@ msgstr "客户发票草稿"
#. module: account
#: model:ir.model,name:account.model_account_subscription_line
msgid "Account Subscription Line"
-msgstr "科目周期明细"
+msgstr "周期性分录明细的科目"
#. module: account
#: selection:account.account.balance.report,checktype,state:0
@@ -1888,7 +1931,7 @@ msgstr "排序按:"
#. module: account
#: field:account.move,to_check:0
msgid "To Be Verified"
-msgstr "待审核"
+msgstr "待确认"
#. module: account
#: help:res.partner,debit:0
@@ -1908,12 +1951,12 @@ msgstr "转移"
#. module: account
#: rml:account.overdue:0
msgid "Li."
-msgstr "在诉讼中"
+msgstr "Li."
#. module: account
#: wizard_view:account.chart,init:0
msgid "Account charts"
-msgstr "科目表"
+msgstr "科目一览表"
#. module: account
#: help:account.tax,name:0
@@ -1939,7 +1982,7 @@ msgstr " 开始日期"
#. module: account
#: wizard_view:account.analytic.account.journal.report,init:0
msgid "Analytic Journal Report"
-msgstr "辅助核算分类帐报表"
+msgstr "辅助核算分录集合报表"
#. module: account
#: model:ir.actions.act_window,name:account.action_invoice_tree3
@@ -1955,15 +1998,16 @@ msgstr "税金额"
#. module: account
#: rml:account.analytic.account.quantity_cost_ledger:0
msgid "J.C./Move name"
-msgstr "成本分类账或凭证名称"
+msgstr "成本分录集合/凭证名称"
#. module: account
#: field:account.journal.period,name:0
msgid "Journal-Period Name"
-msgstr "分类帐-会计期间名称"
+msgstr "分录集合 - 会计期间名称"
#. module: account
-#: field:account.tax.code,name:0 field:account.tax.code.template,name:0
+#: field:account.tax.code,name:0
+#: field:account.tax.code.template,name:0
msgid "Tax Case Name"
msgstr "税务名称"
@@ -1973,12 +2017,13 @@ msgid ""
"Check this box if you don't want new account moves to pass through the "
"'draft' state and instead goes directly to the 'posted state' without any "
"manual validation."
-msgstr "如果你不想新的凭证从草稿状态来生成而是直接通过手动确认到已审核状态"
+msgstr "勾选此项, 如果你不想新的凭证从草稿状态生成而是直接通过手动确认到已登记状态."
#. module: account
#: field:account.bank.statement.line,partner_id:0
#: field:account.bank.statement.reconcile,partner_id:0
-#: rml:account.general.ledger:0 field:account.invoice,partner_id:0
+#: rml:account.general.ledger:0
+#: field:account.invoice,partner_id:0
#: field:account.move,partner_id:0
#: wizard_field:account.partner.balance.report,init,result_selection:0
#: wizard_field:account.third_party_ledger.report,init,result_selection:0
@@ -1991,7 +2036,7 @@ msgstr "业务伙伴"
msgid ""
"Unique number of the invoice, computed automatically when the invoice is "
"created."
-msgstr "发票创建时自动计算唯一的发票编号"
+msgstr "发票创建时自动计算出唯一的发票编号"
#. module: account
#: rml:account.invoice:0
@@ -2026,14 +2071,14 @@ msgstr "财务结构备注:"
#. module: account
#: wizard_field:account.fiscalyear.close,init,period_id:0
msgid "Opening Entries Period"
-msgstr "会计期间开账凭证"
+msgstr "会计期间的开账分录"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_validate_account_moves
#: model:ir.actions.wizard,name:account.wizard_validate_account_moves_line
#: model:ir.ui.menu,name:account.menu_validate_account_moves
msgid "Validate Account Moves"
-msgstr "审核凭证"
+msgstr "确认凭证"
#. module: account
#: selection:account.subscription,period_type:0
@@ -2051,8 +2096,10 @@ msgstr "以前"
#: field:account.bank.statement,currency:0
#: field:account.bank.statement.reconcile,total_currency:0
#: field:account.bank.statement.reconcile,total_second_currency:0
-#: rml:account.general.ledger:0 field:account.invoice,currency_id:0
-#: field:account.journal,currency:0 field:account.model.line,currency_id:0
+#: rml:account.general.ledger:0
+#: field:account.invoice,currency_id:0
+#: field:account.journal,currency:0
+#: field:account.model.line,currency_id:0
#: field:account.move.line,currency_id:0
msgid "Currency"
msgstr "货币"
@@ -2071,13 +2118,13 @@ msgstr "付款对账"
#: model:ir.actions.act_window,name:account.action_bank_statement_reconciliation_form
#: model:ir.ui.menu,name:account.menu_action_account_bank_reconcile_tree
msgid "Statements reconciliation"
-msgstr "对账单对账"
+msgstr "对帐单对帐"
#. module: account
#: model:ir.actions.act_window,name:account.action_subscription_form_new
#: model:ir.ui.menu,name:account.menu_action_subscription_form_new
msgid "New Subscription"
-msgstr "新周期性凭证"
+msgstr "新周期性分录"
#. module: account
#: view:account.payment.term:0
@@ -2087,10 +2134,11 @@ msgstr "计算"
#. module: account
#: view:account.analytic.line:0
msgid "Analytic Entry"
-msgstr "辅助核算凭证"
+msgstr "辅助核算分录"
#. module: account
-#: view:res.company:0 field:res.company,overdue_msg:0
+#: view:res.company:0
+#: field:res.company,overdue_msg:0
msgid "Overdue Payments Message"
msgstr "逾期付款信息"
@@ -2103,12 +2151,12 @@ msgstr "税一览表"
#. module: account
#: field:account.payment.term.line,value_amount:0
msgid "Value Amount"
-msgstr "计算金额"
+msgstr "金额"
#. module: account
#: model:ir.actions.act_window,name:account.act_account_acount_move_line_reconcile_open
msgid "Reconciled entries"
-msgstr "对账的凭证"
+msgstr "对账分录"
#. module: account
#: field:account.invoice,address_contact_id:0
@@ -2123,7 +2171,7 @@ msgstr "创建季度"
#. module: account
#: view:account.invoice:0
msgid "(keep empty to use the current period)"
-msgstr "(留空为表示当前会计期间)"
+msgstr "(留空使用当前会计期间)"
#. module: account
#: model:ir.actions.act_window,name:account.action_invoice_tree8
@@ -2142,7 +2190,8 @@ msgid "Detail"
msgstr "详情"
#. module: account
-#: selection:account.account,type:0 selection:account.account.template,type:0
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
msgid "Consolidation"
msgstr "合并"
@@ -2171,23 +2220,23 @@ msgstr "增值税 :"
#: model:ir.ui.menu,name:account.menu_action_account_tree
#: model:ir.ui.menu,name:account.menu_action_account_tree2
msgid "Chart of Accounts"
-msgstr "科目表"
+msgstr "科目一览表"
#. module: account
#: model:account.journal,name:account.check_journal
msgid "x Checks Journal"
-msgstr "x 支票分类帐"
+msgstr "x 支票分录集合"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_generate_subscription
#: model:ir.ui.menu,name:account.menu_generate_subscription
msgid "Create subscription entries"
-msgstr "创建周期性凭证"
+msgstr "创建周期性分录"
#. module: account
#: wizard_field:account.fiscalyear.close,init,journal_id:0
msgid "Opening Entries Journal"
-msgstr "分类帐开账凭证"
+msgstr "分录集合开账分录"
#. module: account
#: view:account.config.wizard:0
@@ -2202,7 +2251,7 @@ msgstr "客户税"
#. module: account
#: field:account.invoice,date_invoice:0
msgid "Date Invoiced"
-msgstr "开票日期"
+msgstr "发票日期"
#. module: account
#: help:account.account.balance.report,checktype,periods:0
@@ -2234,16 +2283,21 @@ msgid "The account basis of the tax declaration."
msgstr "纳税申报的计税基准科目"
#. module: account
-#: rml:account.analytic.account.journal:0 field:account.analytic.line,date:0
+#: rml:account.analytic.account.journal:0
+#: field:account.analytic.line,date:0
#: field:account.bank.statement,date:0
#: field:account.bank.statement.line,date:0
-#: field:account.bank.statement.reconcile,name:0 rml:account.general.ledger:0
+#: field:account.bank.statement.reconcile,name:0
+#: rml:account.general.ledger:0
#: selection:account.general.ledger.report,checktype,sortbydate:0
-#: rml:account.journal.period.print:0 field:account.move,date:0
+#: rml:account.journal.period.print:0
+#: field:account.move,date:0
#: rml:account.overdue:0
#: wizard_field:account.subscription.generate,init,date:0
-#: field:account.subscription.line,date:0 rml:account.tax.code.entries:0
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: field:account.subscription.line,date:0
+#: rml:account.tax.code.entries:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
#: xsl:account.transfer:0
msgid "Date"
msgstr "日期"
@@ -2260,17 +2314,19 @@ msgid "Unreconcile"
msgstr "未对账"
#. module: account
-#: field:account.tax,type:0 field:account.tax.template,type:0
+#: field:account.tax,type:0
+#: field:account.tax.template,type:0
msgid "Tax Type"
msgstr "税类型"
#. module: account
#: model:process.transition,name:account.process_transition_statemententries0
msgid "Statement Entries"
-msgstr "凭证"
+msgstr "项"
#. module: account
-#: field:account.analytic.line,user_id:0 field:account.journal,user_id:0
+#: field:account.analytic.line,user_id:0
+#: field:account.journal,user_id:0
msgid "User"
msgstr "用户"
@@ -2283,12 +2339,12 @@ msgstr "科目模板"
#. module: account
#: view:account.chart.template:0
msgid "Chart of Accounts Template"
-msgstr "科目表模板"
+msgstr "科目一览表模板"
#. module: account
#: model:account.journal,name:account.refund_sales_journal
msgid "Journal d'extourne"
-msgstr "退款日记账"
+msgstr "退款分录集合"
#. module: account
#: rml:account.journal.period.print:0
@@ -2304,12 +2360,12 @@ msgstr "自动对账"
#. module: account
#: view:account.bank.statement:0
msgid "Import Invoice"
-msgstr "进项发票"
+msgstr "导入发票"
#. module: account
#: wizard_view:account.analytic.account.quantity_cost_ledger.report,init:0
msgid "and Journals"
-msgstr "和分类帐"
+msgstr "和分录集合"
#. module: account
#: view:account.tax:0
@@ -2331,19 +2387,19 @@ msgstr "科目No"
msgid ""
"Set if the tax computation is based on the computation of child taxes rather "
"than on the total amount."
-msgstr "设置如果税计算是基于子税而不是合计"
+msgstr "如果税计算是基于子税而不是总金额, 设置它"
#. module: account
#: rml:account.central.journal:0
msgid "Journal Code"
-msgstr "分类帐代码"
+msgstr "分录集合代码"
#. module: account
#: help:account.tax,applicable_type:0
msgid ""
"If not applicable (computed through a Python code), the tax won't appear on "
"the invoice."
-msgstr "税将不显示在这发票"
+msgstr "如果不适用(计算是通过python代码), 税将不显示在发票上"
#. module: account
#: field:account.model,lines_id:0
@@ -2356,22 +2412,24 @@ msgid "Date End"
msgstr "结束日期"
#. module: account
-#: view:account.bank.statement:0 field:account.move.reconcile,line_id:0
+#: view:account.bank.statement:0
+#: field:account.move.reconcile,line_id:0
#: model:ir.actions.act_window,name:account.action_move_line_search
#: model:ir.actions.act_window,name:account.action_move_line_tree1
#: model:ir.ui.menu,name:account.menu_action_move_line_search
msgid "Entry Lines"
-msgstr "凭证明细"
+msgstr "分录明细"
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Applicable Code (if type=code)"
msgstr "适用代码(如果类型=代码)"
#. module: account
#: wizard_button:account.move.journal,init,open:0
msgid "Open Journal"
-msgstr "打开分类帐"
+msgstr "打开分录集合"
#. module: account
#: rml:account.analytic.account.journal:0
@@ -2384,12 +2442,12 @@ msgstr "KI"
#: model:ir.ui.menu,name:account.account_entries_analytic_entries
#: model:ir.ui.menu,name:account.menu_action_move_journal_line_form
msgid "Entries Encoding by Line"
-msgstr "凭证"
+msgstr "分录明细"
#. module: account
#: help:account.chart.template,tax_template_ids:0
msgid "List of all the taxes that have to be installed by the wizard"
-msgstr "列出所有税款必须安装这向导"
+msgstr "这向导列出所有必须安装的税"
#. module: account
#: rml:account.analytic.account.cost_ledger:0
@@ -2402,7 +2460,7 @@ msgstr "会计期间从"
#: model:process.node,name:account.process_node_bankstatement0
#: model:process.node,name:account.process_node_supplierbankstatement0
msgid "Bank Statement"
-msgstr "银行对账单"
+msgstr "银行对帐单"
#. module: account
#: wizard_view:account.invoice.pay,addendum:0
@@ -2414,12 +2472,12 @@ msgstr "附加信息"
#: model:process.transition,name:account.process_transition_entriesreconcile0
#: model:process.transition,name:account.process_transition_supplierentriesreconcile0
msgid "Entries Reconcile"
-msgstr "凭证对账"
+msgstr "分录对账"
#. module: account
#: help:account.bank.statement.reconcile,total_second_amount:0
msgid "The amount in the currency of the journal"
-msgstr "分类帐使用货币的金额"
+msgstr "分录集合使用货币的金额"
#. module: account
#: wizard_field:account.general.ledger.report,checktype,landscape:0
@@ -2430,7 +2488,7 @@ msgstr "横向模式"
#: model:process.transition,note:account.process_transition_analyticinvoice0
#: model:process.transition,note:account.process_transition_supplieranalyticcost0
msgid "From analytic accounts, Create invoice."
-msgstr "从辅助核目项目创建发票"
+msgstr "从辅助核算项创建发票"
#. module: account
#: wizard_button:account.account.balance.report,account_selection,end:0
@@ -2453,9 +2511,11 @@ msgstr "从辅助核目项目创建发票"
#: wizard_button:account.general.journal.report,init,end:0
#: wizard_button:account.general.ledger.report,account_selection,end:0
#: wizard_button:account.general.ledger.report,checktype,end:0
-#: view:account.invoice:0 wizard_button:account.invoice.pay,addendum,end:0
+#: view:account.invoice:0
+#: wizard_button:account.invoice.pay,addendum,end:0
#: wizard_button:account.invoice.pay,init,end:0
-#: wizard_button:account.invoice.refund,init,end:0 view:account.move:0
+#: wizard_button:account.invoice.refund,init,end:0
+#: view:account.move:0
#: wizard_button:account.move.bank.reconcile,init,end:0
#: wizard_button:account.move.journal,init,end:0
#: wizard_button:account.move.line.reconcile,addendum,end:0
@@ -2474,7 +2534,8 @@ msgstr "从辅助核目项目创建发票"
#: wizard_button:account.third_party_ledger.report,init,end:0
#: wizard_button:account.vat.declaration,init,end:0
#: wizard_button:account_use_models,init_form,end:0
-#: view:wizard.company.setup:0 view:wizard.multi.charts.accounts:0
+#: view:wizard.company.setup:0
+#: view:wizard.multi.charts.accounts:0
msgid "Cancel"
msgstr "取消"
@@ -2484,8 +2545,10 @@ msgid "Acc. Type Name"
msgstr "科目类型名称"
#. module: account
-#: help:account.tax,base_code_id:0 help:account.tax,ref_base_code_id:0
-#: help:account.tax,ref_tax_code_id:0 help:account.tax,tax_code_id:0
+#: help:account.tax,base_code_id:0
+#: help:account.tax,ref_base_code_id:0
+#: help:account.tax,ref_tax_code_id:0
+#: help:account.tax,tax_code_id:0
#: help:account.tax.template,base_code_id:0
#: help:account.tax.template,ref_base_code_id:0
#: help:account.tax.template,ref_tax_code_id:0
@@ -2499,7 +2562,8 @@ msgid "Litigation"
msgstr "争议"
#. module: account
-#: view:account.move.line:0 wizard_view:account.move.validate,init:0
+#: view:account.move.line:0
+#: wizard_view:account.move.validate,init:0
#: view:account.payment.term:0
msgid "Information"
msgstr "信息"
@@ -2512,12 +2576,12 @@ msgstr "税务报表"
#. module: account
#: field:res.partner,property_account_payable:0
msgid "Account Payable"
-msgstr "应付账款"
+msgstr "应付账"
#. module: account
#: wizard_view:populate_statement_from_inv,init:0
msgid "Import Invoices in Statement"
-msgstr "对账单里的进项发票"
+msgstr "在对帐单里导入发票"
#. module: account
#: view:account.invoice:0
@@ -2538,7 +2602,7 @@ msgstr "付款单"
#: help:account.account.template,reconcile:0
msgid ""
"Check this option if you want the user to reconcile entries in this account."
-msgstr "允许要对账凭证在这科目"
+msgstr "勾选此项, 如果你想用户在这科目对账分录."
#. module: account
#: rml:account.analytic.account.journal:0
@@ -2561,7 +2625,7 @@ msgstr "资产净值"
#. module: account
#: field:wizard.company.setup,overdue_msg:0
msgid "Overdue Payment Message"
-msgstr "付款信息"
+msgstr "逾期付款信息"
#. module: account
#: model:ir.model,name:account.model_account_tax_code_template
@@ -2582,23 +2646,22 @@ msgid ""
"partners accounts (for debit/credit computations), closed for deprecated "
"accounts."
msgstr ""
-"这类型是用于特殊类型的不同类型.在系统中:视图能不显示所有条目.合并科目能合并多"
-"公司的子科目.业务伙伴的应收/应付账款科目(为借方贷方计算).关闭弃用科目."
+"这类型在系统中和特效一起用于不同的类型: 视图不能有记录. 合并科目能有多公司合并的子科目, 应收/应付的科目(为计算借方/贷方). 关闭弃用科目."
#. module: account
#: model:ir.ui.menu,name:account.menu_account_end_year_treatments
msgid "End of Year Treatments"
-msgstr "期末结账"
+msgstr "结束会计年度处理"
#. module: account
#: model:ir.ui.menu,name:account.menu_generic_report
msgid "Generic Reports"
-msgstr "普通报表"
+msgstr ""
#. module: account
#: wizard_field:account.automatic.reconcile,init,power:0
msgid "Power"
-msgstr "强制"
+msgstr "幂"
#. module: account
#: wizard_view:account.analytic.line,init:0
@@ -2608,10 +2671,11 @@ msgstr "辅助核算明细分析"
#. module: account
#: rml:account.invoice:0
msgid "Price"
-msgstr "价格"
+msgstr ""
#. module: account
-#: rml:account.analytic.account.journal:0 rml:account.third_party_ledger:0
+#: rml:account.analytic.account.journal:0
+#: rml:account.third_party_ledger:0
#: rml:account.third_party_ledger_other:0
msgid "-"
msgstr "-"
@@ -2628,17 +2692,17 @@ msgstr "asgfas"
#: model:ir.ui.menu,name:account.account_analytic_def_chart
#: model:ir.ui.menu,name:account.menu_action_analytic_account_tree2
msgid "Analytic Chart of Accounts"
-msgstr "辅助核算项目表"
+msgstr "辅助核算项一览表"
#. module: account
#: wizard_view:account.analytic.line,init:0
msgid "View Account Analytic Lines"
-msgstr "辅助科目核算明细视图"
+msgstr "辅助核算明细视图"
#. module: account
#: wizard_view:account.move.validate,init:0
msgid "Select Period and Journal for Validation"
-msgstr "选择会计期间和分类帐确认样"
+msgstr "选择会计期间和确认分录集合"
#. module: account
#: field:account.invoice,number:0
@@ -2648,7 +2712,7 @@ msgstr "发票号"
#. module: account
#: field:account.period,date_stop:0
msgid "End of Period"
-msgstr "期末日期"
+msgstr "结束会计期间"
#. module: account
#: wizard_button:populate_statement_from_inv,go,finish:0
@@ -2664,7 +2728,7 @@ msgstr "未完税"
#: model:ir.actions.report.xml,name:account.account_analytic_account_inverted_balance
#: model:ir.actions.wizard,name:account.account_analytic_account_inverted_balance_report
msgid "Inverted Analytic Balance"
-msgstr "反向核算余额"
+msgstr "反向辅助核算余额"
#. module: account
#: field:account.tax,applicable_type:0
@@ -2678,13 +2742,17 @@ msgid "Invoice Reference"
msgstr "发票参考"
#. module: account
-#: field:account.account,name:0 field:account.account.template,name:0
+#: field:account.account,name:0
+#: field:account.account.template,name:0
#: rml:account.analytic.account.inverted.balance:0
#: field:account.bank.statement,name:0
#: field:account.bank.statement.line,name:0
-#: field:account.chart.template,name:0 field:account.config.wizard,name:0
-#: field:account.model.line,name:0 field:account.move,name:0
-#: field:account.move.line,name:0 field:account.move.reconcile,name:0
+#: field:account.chart.template,name:0
+#: field:account.config.wizard,name:0
+#: field:account.model.line,name:0
+#: field:account.move,name:0
+#: field:account.move.line,name:0
+#: field:account.move.reconcile,name:0
#: field:account.subscription,name:0
msgid "Name"
msgstr "名称"
@@ -2693,7 +2761,7 @@ msgstr "名称"
#: wizard_view:account.move.line.reconcile,init_full:0
#: wizard_view:account.move.line.reconcile,init_partial:0
msgid "Reconciliation transactions"
-msgstr "对账处理"
+msgstr "对账交易"
#. module: account
#: wizard_field:account.aged.trial.balance,init,direction_selection:0
@@ -2721,14 +2789,15 @@ msgid ""
"The sequence field is used to order the taxes lines from lower sequences to "
"higher ones. The order is important if you have a tax that has several tax "
"children. In this case, the evaluation order is important."
-msgstr "序列字段用于税明细的排序从低到高.如果税中有子税这排序是重要的"
+msgstr "序列字段用于税从低到高排序, 如果税中有子税这排序是重要的"
#. module: account
-#: field:account.journal.column,view_id:0 view:account.journal.view:0
+#: field:account.journal.column,view_id:0
+#: view:account.journal.view:0
#: field:account.journal.view,name:0
#: model:ir.model,name:account.model_account_journal_view
msgid "Journal View"
-msgstr "分类帐视图"
+msgstr "分录集合视图"
#. module: account
#: selection:account.move.line,centralisation:0
@@ -2743,7 +2812,7 @@ msgstr "客户参考:"
#. module: account
#: xsl:account.transfer:0
msgid "Partner ID"
-msgstr "业务员伙伴ID"
+msgstr "业务伙伴ID"
#. module: account
#: wizard_view:account.automatic.reconcile,init:0
@@ -2783,7 +2852,7 @@ msgstr "最好的祝愿"
#. module: account
#: model:ir.model,name:account.model_report_hr_timesheet_invoice_journal
msgid "Analytic account costs and revenues"
-msgstr "辅助核算成本和收入"
+msgstr "辅助核算项成本和收入"
#. module: account
#: wizard_view:account.invoice.refund,init:0
@@ -2798,18 +2867,18 @@ msgstr "待处理状态"
#. module: account
#: field:account.journal,entry_posted:0
msgid "Skip 'Draft' State for Created Entries"
-msgstr "跳过'草稿'状态创建凭证"
+msgstr "跳过'草稿'状态创建分录"
#. module: account
#: field:account.invoice.tax,account_id:0
#: field:account.move.line,tax_code_id:0
msgid "Tax Account"
-msgstr "税科目"
+msgstr "税事务"
#. module: account
#: model:process.transition,note:account.process_transition_statemententries0
msgid "From statement, create entries"
-msgstr "从报表创建凭证"
+msgstr "从对帐单创建分录"
#. module: account
#: field:account.analytic.account,complete_name:0
@@ -2817,11 +2886,16 @@ msgid "Full Account Name"
msgstr "所有项目名称"
#. module: account
-#: rml:account.account.balance:0 rml:account.analytic.account.analytic.check:0
-#: rml:account.analytic.account.balance:0 rml:account.general.ledger:0
-#: rml:account.journal.period.print:0 rml:account.partner.balance:0
-#: rml:account.tax.code.entries:0 rml:account.third_party_ledger:0
-#: rml:account.third_party_ledger_other:0 rml:account.vat.declaration:0
+#: rml:account.account.balance:0
+#: rml:account.analytic.account.analytic.check:0
+#: rml:account.analytic.account.balance:0
+#: rml:account.general.ledger:0
+#: rml:account.journal.period.print:0
+#: rml:account.partner.balance:0
+#: rml:account.tax.code.entries:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
+#: rml:account.vat.declaration:0
msgid "1cm 27.7cm 20cm 27.7cm"
msgstr "1cm 27.7cm 20cm 27.7cm"
@@ -2829,7 +2903,7 @@ msgstr "1cm 27.7cm 20cm 27.7cm"
#: model:ir.actions.act_window,name:account.action_invoice_tree12
#: model:ir.ui.menu,name:account.menu_action_invoice_tree12
msgid "Draft Supplier Refunds"
-msgstr "采购退款草稿"
+msgstr "供应商退款草稿"
#. module: account
#: model:process.node,name:account.process_node_accountingstatemententries0
@@ -2839,10 +2913,12 @@ msgstr "会计报表"
#. module: account
#: rml:account.overdue:0
msgid "Document: Customer account statement"
-msgstr "文档:客户科目的表"
+msgstr "文档:客户科目"
#. module: account
-#: view:product.product:0 view:product.template:0 view:res.partner:0
+#: view:product.product:0
+#: view:product.template:0
+#: view:res.partner:0
msgid "Accounting"
msgstr "会计"
@@ -2855,20 +2931,20 @@ msgstr "税一览"
#: wizard_view:account.move.line.unreconcile,init:0
#: wizard_view:account.reconcile.unreconcile,init:0
msgid "Unreconciliation transactions"
-msgstr "未对账处理"
+msgstr "未对账交易"
#. module: account
#: model:process.transition,note:account.process_transition_paymentorderbank0
#: model:process.transition,note:account.process_transition_paymentorderreconcilation0
msgid "Reconcilation of entries from payment order."
-msgstr "付款单凭证对账"
+msgstr "付款单的对账分录"
#. module: account
#: field:account.bank.statement,move_line_ids:0
#: model:ir.actions.act_window,name:account.act_account_journal_2_account_move_line
#: model:ir.model,name:account.model_account_move_line
msgid "Entry lines"
-msgstr "凭证明细"
+msgstr "分录明细"
#. module: account
#: wizard_view:account.automatic.reconcile,init:0
@@ -2887,8 +2963,10 @@ msgid "Centralisation"
msgstr "汇总"
#. module: account
-#: field:account.invoice.tax,tax_code_id:0 field:account.tax,description:0
-#: field:account.tax,tax_code_id:0 field:account.tax.template,tax_code_id:0
+#: field:account.invoice.tax,tax_code_id:0
+#: field:account.tax,description:0
+#: field:account.tax,tax_code_id:0
+#: field:account.tax.template,tax_code_id:0
#: model:ir.model,name:account.model_account_tax_code
msgid "Tax Code"
msgstr "税代码"
@@ -2896,7 +2974,7 @@ msgstr "税代码"
#. module: account
#: rml:account.analytic.account.journal:0
msgid "Analytic Journal -"
-msgstr "辅助核算分类帐 -"
+msgstr "辅助核算分录集合 -"
#. module: account
#: rml:account.analytic.account.analytic.check:0
@@ -2906,7 +2984,7 @@ msgstr "辅助核算借方"
#. module: account
#: field:account.account,currency_mode:0
msgid "Outgoing Currencies Rate"
-msgstr "兑换汇率"
+msgstr "兑出汇率"
#. module: account
#: model:ir.actions.act_window,name:account.action_invoice_tree10
@@ -2925,16 +3003,17 @@ msgid ""
"The maturity date of the generated entries for this model. You can chosse "
"between the date of the creation action or the the date of the creation of "
"the entries plus the partner payment terms."
-msgstr ""
-"这月产生凭证的最后一天.你能选择在创建日期到合作伙伴付款条件的日期之间的一天."
+msgstr "这模型在付款到期日产生分录. 你能从创建日期到到付款期限间选择."
#. module: account
-#: selection:account.analytic.journal,type:0 selection:account.journal,type:0
+#: selection:account.analytic.journal,type:0
+#: selection:account.journal,type:0
msgid "Situation"
msgstr "状况"
#. module: account
-#: rml:account.invoice:0 xsl:account.transfer:0
+#: rml:account.invoice:0
+#: xsl:account.transfer:0
msgid "Document"
msgstr "单据"
@@ -2951,20 +3030,20 @@ msgstr "计量单位"
#. module: account
#: field:account.chart.template,property_account_receivable:0
msgid "Receivable Account"
-msgstr "应收款科目"
+msgstr ""
#. module: account
#: help:account.journal,group_invoice_lines:0
msgid ""
"If this box is checked, the system will try to group the accounting lines "
"when generating them from invoices."
-msgstr "如果勾选此项系统将试图在产生发票时把凭证明细分组"
+msgstr "如果勾选此项, 系统将试图在从发票生成分录明细时分组"
#. module: account
#: wizard_field:account.move.line.reconcile,init_full,trans_nbr:0
#: wizard_field:account.move.line.reconcile,init_partial,trans_nbr:0
msgid "# of Transaction"
-msgstr "处理号#"
+msgstr ""
#. module: account
#: model:ir.actions.wizard,name:account.wizard_invoice_state_cancel
@@ -2972,22 +3051,23 @@ msgid "Cancel selected invoices"
msgstr "取消所选发票"
#. module: account
-#: view:account.analytic.journal:0 field:account.analytic.line,journal_id:0
+#: view:account.analytic.journal:0
+#: field:account.analytic.line,journal_id:0
#: field:account.journal,analytic_journal_id:0
#: model:ir.actions.report.xml,name:account.analytic_journal_print
#: model:ir.actions.wizard,name:account.account_analytic_account_journal_report
msgid "Analytic Journal"
-msgstr "辅助核算分类帐"
+msgstr "辅助核算分录集合"
#. module: account
#: rml:account.general.ledger:0
msgid "Entry Label"
-msgstr "凭证标签"
+msgstr "分录标签"
#. module: account
#: model:process.transition,note:account.process_transition_paymentreconcile0
msgid "Reconcilate the entries from payment"
-msgstr "付款凭证对账"
+msgstr "付款的对账分录"
#. module: account
#: rml:account.tax.code.entries:0
@@ -2995,23 +3075,28 @@ msgid "("
msgstr "("
#. module: account
-#: view:account.invoice:0 view:account.period:0 view:account.subscription:0
+#: view:account.invoice:0
+#: view:account.period:0
+#: view:account.subscription:0
msgid "Set to Draft"
msgstr "设为草稿"
#. module: account
-#: help:account.invoice,origin:0 help:account.invoice.line,origin:0
+#: help:account.invoice,origin:0
+#: help:account.invoice.line,origin:0
msgid "Reference of the document that produced this invoice."
-msgstr "发票上产品单据的参考"
+msgstr "发票上单据产品的参考"
#. module: account
-#: selection:account.account,type:0 selection:account.account.template,type:0
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
#: selection:account.aged.trial.balance,init,result_selection:0
msgid "Payable"
msgstr "应付的"
#. module: account
-#: rml:account.invoice:0 field:account.invoice.tax,base:0
+#: rml:account.invoice:0
+#: field:account.invoice.tax,base:0
msgid "Base"
msgstr "基础"
@@ -3021,7 +3106,8 @@ msgid "Model Name"
msgstr "模型名称"
#. module: account
-#: selection:account.account,type:0 selection:account.account.template,type:0
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
msgid "Others"
msgstr "其它"
@@ -3031,20 +3117,22 @@ msgid "8"
msgstr "8"
#. module: account
-#: view:account.invoice:0 view:account.move:0
+#: view:account.invoice:0
+#: view:account.move:0
#: wizard_button:account.move.validate,init,validate:0
msgid "Validate"
msgstr "确认"
#. module: account
-#: view:account.model:0 field:account.model,legend:0
+#: view:account.model:0
+#: field:account.model,legend:0
msgid "Legend"
msgstr "说明"
#. module: account
#: model:process.node,note:account.process_node_draftinvoices0
msgid "Proposed invoice to be checked, validated and printed"
-msgstr "被提交的发票已检验、已验证和已打印"
+msgstr "计划的发票已检验、已确认和已打印"
#. module: account
#: model:ir.actions.act_window,name:account.action_move_line_select
@@ -3052,14 +3140,17 @@ msgid "account.move.line.select"
msgstr "account.move.line.select"
#. module: account
-#: view:account.account:0 rml:account.account.balance:0
+#: view:account.account:0
+#: rml:account.account.balance:0
#: wizard_field:account.account.balance.report,account_selection,Account_list:0
#: wizard_field:account.automatic.reconcile,init,writeoff_acc_id:0
#: field:account.bank.statement.line,account_id:0
#: field:account.bank.statement.reconcile.line,account_id:0
-#: field:account.invoice,account_id:0 field:account.invoice.line,account_id:0
+#: field:account.invoice,account_id:0
+#: field:account.invoice.line,account_id:0
#: field:account.journal,account_control_ids:0
-#: field:account.model.line,account_id:0 field:account.move.line,account_id:0
+#: field:account.model.line,account_id:0
+#: field:account.move.line,account_id:0
#: wizard_field:account.move.line.reconcile.select,init,account_id:0
#: wizard_field:account.move.line.unreconcile.select,init,account_id:0
#: model:ir.model,name:account.model_account_account
@@ -3069,7 +3160,7 @@ msgstr "科目"
#. module: account
#: model:account.journal,name:account.bank_journal
msgid "Journal de Banque CHF"
-msgstr "银行日记账"
+msgstr "银行分录集合"
#. module: account
#: selection:account.account.balance.report,checktype,state:0
@@ -3080,9 +3171,12 @@ msgid "By Date and Period"
msgstr "按日期和会计期间"
#. module: account
-#: view:account.account:0 view:account.account.template:0
-#: view:account.bank.statement:0 field:account.bank.statement.line,note:0
-#: field:account.fiscal.position,note:0 view:account.invoice.line:0
+#: view:account.account:0
+#: view:account.account.template:0
+#: view:account.bank.statement:0
+#: field:account.bank.statement.line,note:0
+#: field:account.fiscal.position,note:0
+#: view:account.invoice.line:0
#: field:account.invoice.line,note:0
msgid "Notes"
msgstr "备注"
@@ -3092,10 +3186,11 @@ msgstr "备注"
msgid ""
"The account moves of the invoice have been reconciled with account moves of "
"the payment(s)."
-msgstr "发票对账凭证跟着付款凭证."
+msgstr "发票凭证与付款凭证对账."
#. module: account
-#: rml:account.invoice:0 view:account.invoice:0
+#: rml:account.invoice:0
+#: view:account.invoice:0
#: field:account.invoice.line,invoice_line_tax_id:0
#: model:ir.actions.act_window,name:account.action_tax_form
#: model:ir.ui.menu,name:account.menu_action_tax_form
@@ -3106,7 +3201,7 @@ msgstr "税"
#. module: account
#: wizard_view:account.fiscalyear.close,init:0
msgid "Close Fiscal Year with new entries"
-msgstr "关闭会计年度的新凭证"
+msgstr "用新分录关闭会计年度"
#. module: account
#: selection:account.account,currency_mode:0
@@ -3117,18 +3212,24 @@ msgstr "平均汇率"
#: model:process.node,note:account.process_node_bankstatement0
#: model:process.node,note:account.process_node_supplierbankstatement0
msgid "Statement encoding produces payment entries"
-msgstr "对账单产生的付款凭证"
+msgstr "产品付款分录对帐单"
#. module: account
-#: field:account.account,code:0 rml:account.account.balance:0
-#: field:account.account.template,code:0 field:account.account.type,code:0
+#: field:account.account,code:0
+#: rml:account.account.balance:0
+#: field:account.account.template,code:0
+#: field:account.account.type,code:0
#: rml:account.analytic.account.analytic.check:0
#: rml:account.analytic.account.balance:0
#: rml:account.analytic.account.inverted.balance:0
-#: rml:account.analytic.account.journal:0 field:account.analytic.line,code:0
-#: field:account.config.wizard,code:0 field:account.fiscalyear,code:0
-#: rml:account.general.journal:0 field:account.journal,code:0
-#: rml:account.partner.balance:0 field:account.period,code:0
+#: rml:account.analytic.account.journal:0
+#: field:account.analytic.line,code:0
+#: field:account.config.wizard,code:0
+#: field:account.fiscalyear,code:0
+#: rml:account.general.journal:0
+#: field:account.journal,code:0
+#: rml:account.partner.balance:0
+#: field:account.period,code:0
msgid "Code"
msgstr "代码"
@@ -3138,7 +3239,8 @@ msgid "Financial Management"
msgstr "财务管理"
#. module: account
-#: selection:account.account.type,close_method:0 selection:account.tax,type:0
+#: selection:account.account.type,close_method:0
+#: selection:account.tax,type:0
#: selection:account.tax.template,type:0
msgid "None"
msgstr "无"
@@ -3147,17 +3249,17 @@ msgstr "无"
#: model:ir.actions.wizard,name:account.wizard_fiscalyear_close
#: model:ir.ui.menu,name:account.menu_wizard_fy_close
msgid "Generate Fiscal Year Opening Entries"
-msgstr "年度结转"
+msgstr "产生会计年度开账分录"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_reconcile
msgid "Reconcile Entries"
-msgstr "凭证对账"
+msgstr "对账分录"
#. module: account
#: wizard_view:account.wizard_paid_open,init:0
msgid "(Invoice should be unreconciled if you want to open it)"
-msgstr "(如果你要打开它"
+msgstr "(如果你想打开它发票应未对账)"
#. module: account
#: view:account.invoice:0
@@ -3165,7 +3267,8 @@ msgid "Additionnal Information"
msgstr "附加信息"
#. module: account
-#: field:account.tax,name:0 field:account.tax.template,name:0
+#: field:account.tax,name:0
+#: field:account.tax.template,name:0
#: rml:account.vat.declaration:0
msgid "Tax Name"
msgstr "税名称"
@@ -3194,7 +3297,7 @@ msgstr "错误:需要BVR参照"
#: field:account.tax.code,notprintable:0
#: field:account.tax.code.template,notprintable:0
msgid "Not Printable in Invoice"
-msgstr "没可打印的发票"
+msgstr "不打印在发票上"
#. module: account
#: field:account.move.line,move_id:0
@@ -3205,13 +3308,13 @@ msgstr "凭证"
#: field:account.fiscal.position.tax,tax_src_id:0
#: field:account.fiscal.position.tax.template,tax_src_id:0
msgid "Tax Source"
-msgstr "税来源"
+msgstr "源税"
#. module: account
#: model:ir.actions.report.xml,name:account.account_analytic_account_balance
#: model:ir.actions.wizard,name:account.account_analytic_account_balance_report
msgid "Analytic Balance"
-msgstr "核算余额"
+msgstr "辅助核算余额"
#. module: account
#: view:account.move.line:0
@@ -3242,7 +3345,8 @@ msgid "Partner Balance"
msgstr "业务伙伴余额"
#. module: account
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
msgid "Third Party Ledger"
msgstr "第三方分类账"
@@ -3255,7 +3359,8 @@ msgstr "这科目将用于替换当前业务伙伴的默认应收款科目"
#. module: account
#: selection:account.tax,applicable_type:0
-#: field:account.tax,python_applicable:0 field:account.tax,python_compute:0
+#: field:account.tax,python_applicable:0
+#: field:account.tax,python_compute:0
#: selection:account.tax,type:0
#: selection:account.tax.template,applicable_type:0
#: field:account.tax.template,python_applicable:0
@@ -3267,32 +3372,33 @@ msgstr "Python代码"
#. module: account
#: model:ir.actions.act_window,name:account.act_account_journal_2_account_bank_statement
msgid "Bank statements"
-msgstr "银行对账单"
+msgstr "银行对帐单"
#. module: account
#: model:ir.ui.menu,name:account.next_id_22
msgid "Partner Accounts"
-msgstr "应收应付"
+msgstr "业务伙伴帐目"
#. module: account
#: help:account.tax.template,tax_group:0
msgid ""
"If a default tax if given in the partner it only override taxes from account "
"(or product) of the same group."
-msgstr "如果默认税提供这业务伙伴的税只决定税来自科目(或产品)相同的分组"
+msgstr "如果默认税是业务伙伴只覆盖, 税款科目(或产品)在同一分组"
#. module: account
#: view:account.bank.statement:0
msgid "Real Entries"
-msgstr "实际凭证"
+msgstr "实际分录"
#. module: account
#: model:process.node,name:account.process_node_importinvoice0
msgid "Import invoice"
-msgstr "进项发票"
+msgstr "导入发票"
#. module: account
-#: view:account.invoice:0 view:wizard.company.setup:0
+#: view:account.invoice:0
+#: view:wizard.company.setup:0
#: view:wizard.multi.charts.accounts:0
msgid "Create"
msgstr "创建"
@@ -3300,7 +3406,7 @@ msgstr "创建"
#. module: account
#: model:process.transition.action,name:account.process_transition_action_createentries0
msgid "Create entry"
-msgstr "创建凭证"
+msgstr "创建分录"
#. module: account
#: model:ir.model,name:account.model_account_invoice_line
@@ -3308,7 +3414,8 @@ msgid "Invoice line"
msgstr "发票明细"
#. module: account
-#: field:account.account,shortcut:0 field:account.account.template,shortcut:0
+#: field:account.account,shortcut:0
+#: field:account.account.template,shortcut:0
msgid "Shortcut"
msgstr "快捷键"
@@ -3317,7 +3424,7 @@ msgstr "快捷键"
msgid ""
"All draft account entries in this journal and period will be validated. It "
"means you won't be able to modify their accouting fields."
-msgstr "确认分类帐和会计期间的所有凭证草稿.这意味你将不能修改它的会计字段."
+msgstr "在分录集合和会计期间中将确认所有草稿分录. 这意味你将不能修改它的会计字段."
#. module: account
#: selection:account.model.line,date:0
@@ -3330,16 +3437,18 @@ msgstr "日期中的一天"
msgid ""
"The amount expressed in an optional other currency if it is a multi-currency "
"entry."
-msgstr "如果它是一个多货币凭证这金额示一个可选的的其它货币"
+msgstr "如果它是一个多货币分录这金额表示一个可选的的其它货币"
#. module: account
-#: field:account.tax,parent_id:0 field:account.tax.template,parent_id:0
+#: field:account.tax,parent_id:0
+#: field:account.tax.template,parent_id:0
msgid "Parent Tax Account"
-msgstr "上级税类科目"
+msgstr "上级税科目"
#. module: account
#: field:account.account,user_type:0
-#: field:account.account.template,user_type:0 view:account.account.type:0
+#: field:account.account.template,user_type:0
+#: view:account.account.type:0
#: field:account.analytic.account,type:0
#: model:ir.model,name:account.model_account_account_type
msgid "Account Type"
@@ -3348,7 +3457,7 @@ msgstr "科目类型"
#. module: account
#: view:res.partner:0
msgid "Bank account owner"
-msgstr "银行账户所有者"
+msgstr "银行帐号所有者"
#. module: account
#: wizard_view:account.account.balance.report,checktype:0
@@ -3361,7 +3470,7 @@ msgstr "会计期间过滤"
#. module: account
#: field:res.partner,property_account_receivable:0
msgid "Account Receivable"
-msgstr "应收账款"
+msgstr "应收账"
#. module: account
#: wizard_button:account.invoice.pay,addendum,reconcile:0
@@ -3372,17 +3481,18 @@ msgstr "支付和对账"
#: rml:account.central.journal:0
#: model:ir.actions.report.xml,name:account.account_central_journal
msgid "Central Journal"
-msgstr "总账"
+msgstr "主要的分录集合"
#. module: account
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
msgid "Balance brought forward"
-msgstr "余额转结"
+msgstr "余额结转"
#. module: account
#: field:account.account,child_consol_ids:0
msgid "Consolidated Children"
-msgstr "合并子科目"
+msgstr "合并的子科目"
#. module: account
#: wizard_field:account.account.balance.report,checktype,fiscalyear:0
@@ -3402,7 +3512,7 @@ msgstr "余额:"
#: selection:account.account.balance.report,checktype,display_account:0
#: selection:account.general.ledger.report,checktype,display_account:0
msgid "With balance is not equal to 0"
-msgstr "差额不为0"
+msgstr "余额不为0"
#. module: account
#: selection:account.automatic.reconcile,init,power:0
@@ -3428,7 +3538,7 @@ msgstr "新的供应商退款"
#. module: account
#: view:account.model:0
msgid "Entry Model"
-msgstr "凭证模型"
+msgstr "分录模型"
#. module: account
#: wizard_field:account.general.ledger.report,checktype,amount_currency:0
@@ -3438,22 +3548,23 @@ msgstr "币别"
#. module: account
#: view:account.account:0
msgid "Chart of accounts"
-msgstr "科目表"
+msgstr "科目一览表"
#. module: account
#: field:account.subscription.line,subscription_id:0
msgid "Subscription"
-msgstr "周期"
+msgstr "周期性分录"
#. module: account
#: field:account.analytic.journal,code:0
msgid "Journal code"
-msgstr "分类帐代码"
+msgstr "分录集合代码"
#. module: account
-#: wizard_button:account.fiscalyear.close,init,close:0 view:account.model:0
+#: wizard_button:account.fiscalyear.close,init,close:0
+#: view:account.model:0
msgid "Create entries"
-msgstr "创建凭证"
+msgstr "创建分录"
#. module: account
#: view:account.analytic.line:0
@@ -3478,20 +3589,20 @@ msgstr "计算税"
#. module: account
#: field:wizard.multi.charts.accounts,code_digits:0
msgid "# of Digits"
-msgstr "数字"
+msgstr "数字 #"
#. module: account
#: help:res.partner,property_payment_term:0
msgid ""
"This payment term will be used instead of the default one for the current "
"partner"
-msgstr "当前这付款条件对当前的业务伙伴将用来替代默认"
+msgstr "当前业务伙伴将替代为这默认的付款条款"
#. module: account
#: wizard_field:account.invoice.pay,addendum,comment:0
#: wizard_field:account.invoice.pay,init,name:0
msgid "Entry Name"
-msgstr "凭证名称"
+msgstr "分录名称"
#. module: account
#: help:account.invoice,account_id:0
@@ -3504,14 +3615,17 @@ msgstr "用在这发票的业务伙伴"
msgid ""
"Check this box if you don't want any VAT related to this Tax Code to appear "
"on invoices"
-msgstr "如果你不想发票显示有关的增值税"
+msgstr "勾选此项, 如果你不想发票显示任何增值税."
#. module: account
-#: field:account.account.type,sequence:0 field:account.invoice.tax,sequence:0
-#: field:account.journal.column,sequence:0 field:account.model.line,sequence:0
+#: field:account.account.type,sequence:0
+#: field:account.invoice.tax,sequence:0
+#: field:account.journal.column,sequence:0
+#: field:account.model.line,sequence:0
#: field:account.payment.term.line,sequence:0
#: field:account.sequence.fiscalyear,sequence_id:0
-#: field:account.tax,sequence:0 field:account.tax.template,sequence:0
+#: field:account.tax,sequence:0
+#: field:account.tax.template,sequence:0
#: field:fiscalyear.seq,sequence_id:0
msgid "Sequence"
msgstr "序列"
@@ -3524,7 +3638,7 @@ msgstr "财务结构模板"
#. module: account
#: view:account.bank.statement:0
msgid "Entry encoding"
-msgstr "凭证编号"
+msgstr "明细"
#. module: account
#: wizard_view:account.invoice.refund,init:0
@@ -3550,19 +3664,19 @@ msgstr "季度"
#. module: account
#: wizard_view:account.move.journal,init:0
msgid "Standard entries"
-msgstr "标准凭证"
+msgstr "普通分录"
#. module: account
#: help:account.account,check_history:0
msgid ""
"Check this box if you want to print all entries when printing the General "
"Ledger, otherwise it will only print its balance."
-msgstr "如果你想打印总账时打印所有凭证勾选此项.否则打印总账"
+msgstr "如果你想打印总账时打印所有分录, 勾选此项. 否则打印它的余额"
#. module: account
#: model:ir.model,name:account.model_account_payment_term_line
msgid "Payment Term Line"
-msgstr "付款条件明细"
+msgstr "付款条款明细"
#. module: account
#: selection:account.config.wizard,period:0
@@ -3573,18 +3687,19 @@ msgstr "月"
#. module: account
#: model:ir.model,name:account.model_account_subscription
msgid "Account Subscription"
-msgstr "科目周期"
+msgstr "周期性分录科目"
#. module: account
#: field:account.model.line,date_maturity:0
-#: field:account.move.line,date_maturity:0 rml:account.overdue:0
+#: field:account.move.line,date_maturity:0
+#: rml:account.overdue:0
msgid "Maturity date"
-msgstr "到期日期"
+msgstr "付款到期日"
#. module: account
#: view:account.subscription:0
msgid "Entry Subscription"
-msgstr "凭证周期"
+msgstr "周期性分录"
#. module: account
#: selection:account.print.journal.report,init,sort_selection:0
@@ -3597,7 +3712,8 @@ msgid "Account Configure Wizard "
msgstr "科目设置向导 "
#. module: account
-#: field:account.config.wizard,date1:0 field:account.fiscalyear,date_start:0
+#: field:account.config.wizard,date1:0
+#: field:account.fiscalyear,date_start:0
#: field:account.subscription,date_start:0
msgid "Start Date"
msgstr "开始日期"
@@ -3605,13 +3721,13 @@ msgstr "开始日期"
#. module: account
#: wizard_view:account.general.ledger.report,account_selection:0
msgid "Select Chart"
-msgstr "选择科目表"
+msgstr "选择一览表"
#. module: account
#: selection:account.chart,init,target_move:0
#: model:ir.actions.report.xml,name:account.account_move_line_list
msgid "All Entries"
-msgstr "所有凭证"
+msgstr "所有分录"
#. module: account
#: model:process.node,name:account.process_node_draftinvoices0
@@ -3635,7 +3751,8 @@ msgid "Unreconciled"
msgstr "未对账"
#. module: account
-#: field:account.account,note:0 field:account.account.template,note:0
+#: field:account.account,note:0
+#: field:account.account.template,note:0
msgid "Note"
msgstr "备注"
@@ -3653,47 +3770,48 @@ msgid ""
" "
msgstr ""
"财务和会计模块包括:\n"
-" 一般会计\n"
-" 成本/核算会计\n"
+" 普通会计\n"
+" 成本/辅助核算会计\n"
" 第三方会计\n"
" 税务管理\n"
" 预算\n"
" 客户和供应商发票\n"
-" 银行对账单\n"
+" 银行对帐单\n"
" "
#. module: account
#: field:account.journal,sequence_id:0
msgid "Entry Sequence"
-msgstr "凭证序列"
+msgstr "分录序列"
#. module: account
-#: selection:account.account,type:0 selection:account.account.template,type:0
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
msgid "Closed"
msgstr "已关闭"
#. module: account
#: model:process.node,name:account.process_node_paymententries0
msgid "Payment Entries"
-msgstr "付款凭证"
+msgstr "付款分录"
#. module: account
#: help:account.move.line,tax_code_id:0
msgid "The Account can either be a base tax code or tax code account."
-msgstr "这科目可以选免税科目和不含税科目"
+msgstr "可以选基于的税务代码或税务代码"
#. module: account
#: help:account.automatic.reconcile,init,account_ids:0
msgid ""
"If no account is specified, the reconciliation will be made using every "
"accounts that can be reconcilied"
-msgstr "如果没有指定科目,对账将需要每个科目都能被对账."
+msgstr "如果没有指定科目,对账将可用任何一个能对账的科目"
#. module: account
#: model:ir.actions.act_window,name:account.action_wizard_company_setup_form
#: view:wizard.company.setup:0
msgid "Overdue Payment Report Message"
-msgstr "逾期付款信息"
+msgstr "逾期付款打印信息"
#. module: account
#: selection:account.tax,tax_group:0
@@ -3707,7 +3825,7 @@ msgstr "其它"
#: model:ir.actions.wizard,name:account.wizard_general_ledger_report
#: model:ir.ui.menu,name:account.menu_general_ledger
msgid "General Ledger"
-msgstr "总账"
+msgstr "总分类帐"
#. module: account
#: field:account.journal.view,columns_id:0
@@ -3729,7 +3847,7 @@ msgstr "这会计期间可以重叠"
msgid ""
"This account will be used instead of the default one to value outgoing stock "
"for the current product"
-msgstr "这科目将用于当前产品分类的采购科目"
+msgstr "这科目将替换当前产品的默认出仓"
#. module: account
#: model:process.node,note:account.process_node_manually0
@@ -3740,7 +3858,7 @@ msgstr "手动报表"
#: model:ir.actions.act_window,name:account.action_account_journal_form
#: model:ir.ui.menu,name:account.menu_action_account_journal_form
msgid "Financial Journals"
-msgstr "帐簿"
+msgstr "财务分录集合"
#. module: account
#: selection:account.account.balance.report,checktype,state:0
@@ -3768,7 +3886,7 @@ msgstr "最大数量"
#. module: account
#: field:account.period,name:0
msgid "Period Name"
-msgstr "会计期间"
+msgstr "会计期间名称"
#. module: account
#: help:account.analytic.journal,type:0
@@ -3776,9 +3894,7 @@ msgid ""
"Gives the type of the analytic journal. When a document (eg: an invoice) "
"needs to create analytic entries, Open ERP will look for a matching journal "
"of the same type."
-msgstr ""
-"给出这辅助核算分类帐类型如:(发票)需要创建辅助核算凭证.系统将寻找匹配同一类型"
-"的分类帐."
+msgstr "给出这辅助核算分录集的类型. 当单据(如发票)需要创建辅助核算分录. 系统将寻找同一类型匹配的分录集合."
#. module: account
#: field:account.journal,groups_id:0
@@ -3791,9 +3907,12 @@ msgid "Code/Date"
msgstr "代码/日期"
#. module: account
-#: field:account.account,active:0 field:account.analytic.account,active:0
-#: field:account.analytic.journal,active:0 field:account.journal,active:0
-#: field:account.journal.period,active:0 field:account.payment.term,active:0
+#: field:account.account,active:0
+#: field:account.analytic.account,active:0
+#: field:account.analytic.journal,active:0
+#: field:account.journal,active:0
+#: field:account.journal.period,active:0
+#: field:account.payment.term,active:0
#: field:account.tax,active:0
msgid "Active"
msgstr "有效"
@@ -3801,7 +3920,7 @@ msgstr "有效"
#. module: account
#: model:process.node,note:account.process_node_electronicfile0
msgid "Import from your bank statements"
-msgstr "从你的银行对账单导入"
+msgstr "从你的银行对帐单导入"
#. module: account
#: view:account.chart.template:0
@@ -3816,12 +3935,12 @@ msgstr "客户会计属性"
#. module: account
#: view:account.bank.statement:0
msgid "Select entries"
-msgstr "选择凭证"
+msgstr "选择分录"
#. module: account
#: selection:account.chart,init,target_move:0
msgid "All Posted Entries"
-msgstr "所有已审核的凭证"
+msgstr "所有已登帐的分录"
#. module: account
#: wizard_field:account.vat.declaration,init,based_on:0
@@ -3845,15 +3964,20 @@ msgid "Secondary Currency"
msgstr "外币"
#. module: account
-#: field:account.account,credit:0 rml:account.account.balance:0
+#: field:account.account,credit:0
+#: rml:account.account.balance:0
#: field:account.analytic.account,credit:0
#: rml:account.analytic.account.balance:0
#: rml:account.analytic.account.cost_ledger:0
#: rml:account.analytic.account.inverted.balance:0
-#: rml:account.central.journal:0 rml:account.journal.period.print:0
-#: field:account.model.line,credit:0 field:account.move.line,credit:0
-#: rml:account.partner.balance:0 rml:account.tax.code.entries:0
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: rml:account.central.journal:0
+#: rml:account.journal.period.print:0
+#: field:account.model.line,credit:0
+#: field:account.move.line,credit:0
+#: rml:account.partner.balance:0
+#: rml:account.tax.code.entries:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
#: rml:account.vat.declaration:0
#: field:report.hr.timesheet.invoice.journal,cost:0
msgid "Credit"
@@ -3864,7 +3988,7 @@ msgstr "贷方"
msgid ""
"Indicate if the tax computation is based on the value computed for the "
"computation of child taxes or based on the total amount."
-msgstr "表明如果税务计算是基于计算下级税或基于金额合计计算"
+msgstr "如果税计算是基于计算子税或基于总金额, 显示"
#. module: account
#: field:account.tax,account_paid_id:0
@@ -3881,10 +4005,11 @@ msgstr "子代码"
#. module: account
#: field:account.invoice,move_name:0
msgid "Account Move"
-msgstr "凭证编号"
+msgstr "凭证"
#. module: account
-#: view:account.bank.statement:0 field:account.bank.statement,line_ids:0
+#: view:account.bank.statement:0
+#: field:account.bank.statement,line_ids:0
msgid "Statement lines"
msgstr "对帐单明细"
@@ -3913,19 +4038,19 @@ msgstr "一般科目"
msgid ""
"The optional quantity expressed by this line, eg: number of product sold. "
"The quantity is not a legal requirement but is very usefull for some reports."
-msgstr "此行的可选数量表示:已销售产品的数量.这数量用于非正式但非常有用的报表."
+msgstr "此行的可选数量表示: 售出产品数量. 这数量虽然不是必须但对于一些报表有用."
#. module: account
#: wizard_field:account.third_party_ledger.report,init,reconcil:0
msgid " Include Reconciled Entries"
-msgstr " 包括已对账凭证"
+msgstr " 包括已对账分录"
#. module: account
#: help:account.move.line,blocked:0
msgid ""
"You can check this box to mark the entry line as a litigation with the "
"associated partner"
-msgstr "你能通过勾选"
+msgstr "你能勾选此项去标记与有关业务伙伴的分录明细存在争议"
#. module: account
#: model:ir.actions.act_window,name:account.action_invoice_tree1
@@ -3957,34 +4082,37 @@ msgstr "一般"
#. module: account
#: rml:account.general.journal:0
msgid "Credit Trans."
-msgstr "贷方交易"
+msgstr "信用交易"
#. module: account
#: field:wizard.multi.charts.accounts,seq_journal:0
msgid "Separated Journal Sequences"
-msgstr "分散的分类帐的序列"
+msgstr "分散的分录集合序列"
#. module: account
#: help:account.bank.statement.reconcile,total_second_currency:0
msgid "The currency of the journal"
-msgstr "分类帐使用的货币"
+msgstr "分录集合使用的货币"
#. module: account
#: view:account.journal.column:0
#: model:ir.model,name:account.model_account_journal_column
msgid "Journal Column"
-msgstr "分类帐栏"
+msgstr "分录集合栏"
#. module: account
-#: selection:account.fiscalyear,state:0 selection:account.invoice,state:0
-#: selection:account.journal.period,state:0 selection:account.period,state:0
+#: selection:account.fiscalyear,state:0
+#: selection:account.invoice,state:0
+#: selection:account.journal.period,state:0
+#: selection:account.period,state:0
#: selection:account.subscription,state:0
msgid "Done"
msgstr "完成"
#. module: account
#: wizard_field:account.account.balance.report,checktype,periods:0
-#: field:account.config.wizard,period:0 view:account.fiscalyear:0
+#: field:account.config.wizard,period:0
+#: view:account.fiscalyear:0
#: field:account.fiscalyear,period_ids:0
#: wizard_field:account.general.ledger.report,checktype,periods:0
#: wizard_field:account.partner.balance.report,init,periods:0
@@ -3997,7 +4125,8 @@ msgid "Periods"
msgstr "会计期间"
#. module: account
-#: rml:account.invoice:0 view:account.invoice:0
+#: rml:account.invoice:0
+#: view:account.invoice:0
#: field:account.move.line,invoice:0
#: model:ir.model,name:account.model_account_invoice
#: model:res.request.link,name:account.req_link_invoice
@@ -4015,16 +4144,17 @@ msgstr "待处理"
#. module: account
#: model:ir.ui.menu,name:account.next_id_29
msgid "Search Entries"
-msgstr "凭证查询"
+msgstr "查询分录集合"
#. module: account
#: model:process.node,note:account.process_node_analytic0
#: model:process.node,note:account.process_node_analyticcost0
msgid "Analytic costs to reinvoice purchases, timesheets, ..."
-msgstr "辅助核算采购再开发票成本"
+msgstr "再开发票, 采购, 时间表的辅助核算成本"
#. module: account
-#: field:account.account,tax_ids:0 field:account.account.template,tax_ids:0
+#: field:account.account,tax_ids:0
+#: field:account.account.template,tax_ids:0
msgid "Default Taxes"
msgstr "默认税"
@@ -4040,7 +4170,7 @@ msgid ""
"Allows you to change the sign of the balance amount displayed in the "
"reports, so that you can see positive figures instead of negative ones in "
"expenses accounts."
-msgstr "允许你修改报表显示的余额的符号,所以你能够看见正数的数字替代科目的负数"
+msgstr "允许你修改报表显示的余额的符号,所以你能看见费用科目为正数"
#. module: account
#: help:account.config.wizard,code:0
@@ -4052,7 +4182,7 @@ msgstr "报表上显示的会计年度名称"
msgid ""
"This field is used for payable and receivable entries. You can put the limit "
"date for the payment of this entry line."
-msgstr "这字段用于应付账款和应收账款凭证.你可以放入支付凭证行的限制日期"
+msgstr "这字段用于应付和应收分录. 你可以放入该分录明细的付款限定日期"
#. module: account
#: rml:account.tax.code.entries:0
@@ -4067,7 +4197,7 @@ msgstr "上级左"
#. module: account
#: help:account.journal,sequence_id:0
msgid "The sequence gives the display order for a list of journals"
-msgstr "这序列给出分类帐列表的显示顺序"
+msgstr "这序列提供分录集合列表的显示顺序"
#. module: account
#: field:account.journal,type_control_ids:0
@@ -4077,7 +4207,8 @@ msgstr "类型控制"
#. module: account
#: field:account.analytic.account,name:0
#: rml:account.analytic.account.analytic.check:0
-#: rml:account.analytic.account.balance:0 rml:account.central.journal:0
+#: rml:account.analytic.account.balance:0
+#: rml:account.central.journal:0
msgid "Account Name"
msgstr "科目名称"
@@ -4133,12 +4264,12 @@ msgstr "会计期间"
#. module: account
#: wizard_field:account.invoice.pay,init,journal_id:0
msgid "Journal/Payment Mode"
-msgstr "分类帐/付款方式"
+msgstr "分录集合/付款方式"
#. module: account
#: rml:account.invoice:0
msgid "Canceled Invoice"
-msgstr "取消发票"
+msgstr "已取消的发票"
#. module: account
#: view:account.subscription:0
@@ -4165,10 +4296,11 @@ msgstr "年合计"
#. module: account
#: model:process.transition,note:account.process_transition_filestatement0
msgid "Import file from your bank statement"
-msgstr "从你的银行对账单导入文件"
+msgstr "从你的银行对帐单导入文件"
#. module: account
-#: field:account.account,type:0 field:account.account.template,type:0
+#: field:account.account,type:0
+#: field:account.account.template,type:0
msgid "Internal Type"
msgstr "内部类型"
@@ -4181,25 +4313,27 @@ msgstr "9"
#: model:ir.actions.act_window,name:account.action_subscription_form_running
#: model:ir.ui.menu,name:account.menu_action_subscription_form_running
msgid "Running Subscriptions"
-msgstr "运行中的周期性凭证"
+msgstr "运行中的周期性分录"
#. module: account
#: selection:account.move,type:0
msgid "Bank Payment"
-msgstr "银行付款"
+msgstr "银行转帐"
#. module: account
#: selection:account.move,state:0
msgid "Posted"
-msgstr "已审核"
+msgstr "已登帐"
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Credit Notes"
-msgstr "贷方票据"
+msgstr "贷方备注"
#. module: account
-#: field:account.config.wizard,date2:0 field:account.fiscalyear,date_stop:0
+#: field:account.config.wizard,date2:0
+#: field:account.fiscalyear,date_stop:0
msgid "End Date"
msgstr "结束日期"
@@ -4207,7 +4341,7 @@ msgstr "结束日期"
#: model:ir.actions.wizard,name:account.wizard_open_closed_fiscalyear
#: model:ir.ui.menu,name:account.menu_wizard_open_closed_fy
msgid "Cancel Opening Entries"
-msgstr "取消开账凭证"
+msgstr "取消开账分录"
#. module: account
#: model:process.transition,name:account.process_transition_invoicemanually0
@@ -4220,7 +4354,8 @@ msgid "Day of the Month"
msgstr "月天数"
#. module: account
-#: field:account.analytic.journal,line_ids:0 field:account.tax.code,line_ids:0
+#: field:account.analytic.journal,line_ids:0
+#: field:account.tax.code,line_ids:0
msgid "Lines"
msgstr "明细"
@@ -4235,17 +4370,18 @@ msgid ""
"The sequence field is used to order the tax lines from the lowest sequences "
"to the higher ones. The order is important if you have a tax with several "
"tax children. In this case, the evaluation order is important."
-msgstr "序列字段用于税明细的排序从低到高.如果税中有子税这排序是重要的"
+msgstr "序列字段用于税从低到高排序. 如果税中有子税这排序很重要"
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Tax Declaration"
-msgstr "税申报"
+msgstr "税说明"
#. module: account
#: model:process.transition,name:account.process_transition_filestatement0
msgid "File statement"
-msgstr "文件表"
+msgstr "文件声明"
#. module: account
#: view:ir.sequence:0
@@ -4255,7 +4391,7 @@ msgstr "会计年度序列"
#. module: account
#: view:account.model.line:0
msgid "Entry Model Line"
-msgstr "凭证模型明细"
+msgstr "分录模型明细"
#. module: account
#: view:account.tax.template:0
@@ -4265,7 +4401,7 @@ msgstr "税模板"
#. module: account
#: help:account.model,name:0
msgid "This is a model for recurring accounting entries"
-msgstr "这是一个经常性凭证的模型"
+msgstr "这是一个循环分录模型"
#. module: account
#: wizard_view:account.wizard_paid_open,init:0
@@ -4275,12 +4411,12 @@ msgstr "打开发票"
#. module: account
#: model:process.node,note:account.process_node_draftstatement0
msgid "Set starting and ending balance for control"
-msgstr "设置开始和结束的余额控制"
+msgstr "设置开始和结束的控制余额"
#. module: account
#: wizard_view:account.wizard_paid_open,init:0
msgid "Are you sure you want to open this invoice ?"
-msgstr "你确定要开这发票?"
+msgstr "你确定要打开这发票?"
#. module: account
#: model:ir.actions.report.xml,name:account.account_3rdparty_ledger_other
@@ -4295,15 +4431,17 @@ msgstr "供应商借方"
#. module: account
#: help:account.model.line,quantity:0
msgid "The optional quantity on entries"
-msgstr "凭证的可选数量"
+msgstr "可选数量"
#. module: account
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
msgid "JNRL"
msgstr "JNRL"
#. module: account
-#: view:account.fiscalyear:0 view:account.period:0
+#: view:account.fiscalyear:0
+#: view:account.period:0
msgid "States"
msgstr "状态"
@@ -4312,7 +4450,7 @@ msgstr "状态"
#: model:process.node,name:account.process_node_accountingentries0
#: model:process.node,name:account.process_node_supplieraccountingentries0
msgid "Accounting Entries"
-msgstr "凭证"
+msgstr "会计分录"
#. module: account
#: model:ir.actions.act_window,name:account.act_account_partner_account_move_unreconciled
@@ -4339,7 +4477,8 @@ msgstr "开始日期"
#: rml:account.analytic.account.balance:0
#: rml:account.analytic.account.inverted.balance:0
#: rml:account.analytic.account.quantity_cost_ledger:0
-#: field:account.invoice,amount_total:0 field:account.invoice,check_total:0
+#: field:account.invoice,amount_total:0
+#: field:account.invoice,check_total:0
msgid "Total"
msgstr "合计"
@@ -4347,20 +4486,20 @@ msgstr "合计"
#: model:process.transition,note:account.process_transition_customerinvoice0
#: model:process.transition,note:account.process_transition_suppliercustomerinvoice0
msgid "Number of entries are generated"
-msgstr "产生凭证编号"
+msgstr "产生编号"
#. module: account
#: model:process.transition,name:account.process_transition_suppliervalidentries0
#: model:process.transition,name:account.process_transition_validentries0
msgid "Valid Entries"
-msgstr "有效凭证"
+msgstr "有效分录"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_account_use_model
#: model:ir.actions.wizard,name:account.wizard_line_account_use_model
#: model:ir.ui.menu,name:account.menu_account_use_model
msgid "Create Entries From Models"
-msgstr "按模型创建凭证"
+msgstr "按模型创建分录"
#. module: account
#: field:account.account.template,reconcile:0
@@ -4384,7 +4523,7 @@ msgstr "供应商退款"
#. module: account
#: help:account.model.line,date:0
msgid "The date of the generated entries"
-msgstr "凭证产生的日期"
+msgstr "产生的日期"
#. module: account
#: wizard_button:account.invoice.refund,init,modify_invoice:0
@@ -4399,14 +4538,14 @@ msgstr "供应商会计属性"
#. module: account
#: view:account.analytic.account:0
msgid "Analytic Account Statistics"
-msgstr "辅助核算项目统计"
+msgstr "辅助核算项统计"
#. module: account
#: view:wizard.multi.charts.accounts:0
msgid ""
"This will automatically configure your chart of accounts, bank accounts, "
"taxes and journals according to the selected template"
-msgstr "这将根据你选择的模板自动设置你的科目表、银行账号、税和分类帐"
+msgstr "将根据选择的模板自动设置你的科目一览表、银行帐号、税和分录集合"
#. module: account
#: view:account.bank.statement:0
@@ -4424,7 +4563,7 @@ msgstr "凭证列表"
#. module: account
#: wizard_view:account.analytic.account.chart,init:0
msgid "Analytic Account Charts"
-msgstr "辅助核算项目表"
+msgstr "辅助核算项一览表"
#. module: account
#: wizard_field:account.aged.trial.balance,init,result_selection:0
@@ -4440,13 +4579,13 @@ msgstr "含税价"
#: model:ir.actions.act_window,name:account.action_account_analytic_journal_tree2
#: model:ir.ui.menu,name:account.account_analytic_journal_entries
msgid "Analytic Entries by Journal"
-msgstr "管理会计凭证列表"
+msgstr "辅助核算分录集合"
#. module: account
#: model:process.transition,note:account.process_transition_suppliervalidentries0
#: model:process.transition,note:account.process_transition_validentries0
msgid "Valid entries from invoice"
-msgstr "发票有效凭证"
+msgstr "发票有效分录"
#. module: account
#: field:account.account,company_id:0
@@ -4456,9 +4595,11 @@ msgstr "发票有效凭证"
#: field:account.fiscal.position,company_id:0
#: field:account.fiscalyear,company_id:0
#: wizard_field:account.general.ledger.report,checktype,company_id:0
-#: field:account.invoice,company_id:0 field:account.journal,company_id:0
+#: field:account.invoice,company_id:0
+#: field:account.journal,company_id:0
#: wizard_field:account.partner.balance.report,init,company_id:0
-#: field:account.tax,company_id:0 field:account.tax.code,company_id:0
+#: field:account.tax,company_id:0
+#: field:account.tax.code,company_id:0
#: wizard_field:account.third_party_ledger.report,init,company_id:0
#: wizard_field:account.vat.declaration,init,company_id:0
#: field:wizard.company.setup,company_id:0
@@ -4481,22 +4622,22 @@ msgstr "运行中"
msgid ""
"Indicate if the amount of tax must be included in the base amount for the "
"computation of the next taxes"
-msgstr "表明如果金额必须含税.用于计算下一个税"
+msgstr "指出如果税额必须在计算下一个税的基础金额里"
#. module: account
#: model:process.node,name:account.process_node_draftstatement0
msgid "Draft statement"
-msgstr "报表草稿"
+msgstr "对帐单草稿"
#. module: account
#: field:account.analytic.journal,name:0
msgid "Journal name"
-msgstr "分类帐名称"
+msgstr "分录集合名称"
#. module: account
#: model:process.transition,note:account.process_transition_invoiceimport0
msgid "Import invoice from statement"
-msgstr "来自对账单的进项发票"
+msgstr "从对帐单导入发票"
#. module: account
#: selection:account.automatic.reconcile,init,power:0
@@ -4519,7 +4660,7 @@ msgstr "从发票或者付款导入"
#: model:ir.actions.wizard,name:account.wizard_reconcile_select
#: model:ir.ui.menu,name:account.menu_reconcile_select
msgid "Reconcile entries"
-msgstr "对账的凭证"
+msgstr "对账分录"
#. module: account
#: xsl:account.transfer:0
@@ -4534,7 +4675,7 @@ msgstr "图标"
#. module: account
#: model:ir.model,name:account.model_account_journal_period
msgid "Journal - Period"
-msgstr "分类帐-会计期间"
+msgstr "分录集合 - 会计期间"
#. module: account
#: wizard_field:account.move.line.reconcile,init_full,credit:0
@@ -4550,12 +4691,15 @@ msgstr "创建月度会计期间"
#. module: account
#: wizard_button:account.aged.trial.balance,init,print:0
msgid "Print Aged Trial Balance"
-msgstr "打印账龄分析表"
+msgstr "打印过去的试算表"
#. module: account
-#: field:account.analytic.line,ref:0 field:account.bank.statement.line,ref:0
-#: field:account.model.line,ref:0 field:account.move.line,ref:0
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: field:account.analytic.line,ref:0
+#: field:account.bank.statement.line,ref:0
+#: field:account.model.line,ref:0
+#: field:account.move.line,ref:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
msgid "Ref."
msgstr "参考"
@@ -4575,7 +4719,7 @@ msgid ""
"Check this box to determine that each entry of this journal won't create a "
"new counterpart but will share the same counterpart. This is used in fiscal "
"year closing."
-msgstr "勾选此项"
+msgstr "勾选此项, 在会计年度关闭时, 确定每个分录集合的分录不会产生新副本, 而是共享同一副本."
#. module: account
#: selection:account.invoice,state:0
@@ -4586,7 +4730,7 @@ msgstr "已取消"
#: model:ir.actions.act_window,name:account.action_bank_statement_draft_tree
#: model:ir.ui.menu,name:account.menu_bank_statement_draft_tree
msgid "Draft statements"
-msgstr "银行对账单草稿"
+msgstr "对帐单草稿"
#. module: account
#: wizard_field:populate_statement_from_inv,init,date:0
@@ -4602,7 +4746,7 @@ msgstr "帐号"
#: model:ir.actions.act_window,name:account.report_account_analytic_journal_tree_month
#: model:ir.ui.menu,name:account.report_account_analytic_journal_print_month
msgid "Account cost and revenue by journal (This Month)"
-msgstr "辅助核算项目本月统计"
+msgstr "项成本和收入的分录集合(这月)"
#. module: account
#: selection:account.partner.balance.report,init,result_selection:0
@@ -4619,7 +4763,7 @@ msgstr "打开未对账"
#: field:account.bank.statement.reconcile,statement_line:0
#: model:ir.model,name:account.model_account_bank_statement_line
msgid "Bank Statement Line"
-msgstr "银行对账单明细"
+msgstr "银行对帐单明细"
#. module: account
#: wizard_button:account.automatic.reconcile,reconcile,end:0
@@ -4632,10 +4776,11 @@ msgid "Control Invoice"
msgstr "控制发票"
#. module: account
-#: selection:account.account,type:0 selection:account.account.template,type:0
+#: selection:account.account,type:0
+#: selection:account.account.template,type:0
#: selection:account.aged.trial.balance,init,result_selection:0
msgid "Receivable"
-msgstr "应收账款"
+msgstr "应收的"
#. module: account
#: model:ir.actions.report.xml,name:account.account_account_balance
@@ -4659,7 +4804,8 @@ msgstr "增值税"
#. module: account
#: rml:account.analytic.account.cost_ledger:0
#: rml:account.analytic.account.quantity_cost_ledger:0
-#: rml:account.central.journal:0 rml:account.general.journal:0
+#: rml:account.central.journal:0
+#: rml:account.general.journal:0
#: rml:account.invoice:0
msgid "Total:"
msgstr "合计:"
@@ -4667,10 +4813,11 @@ msgstr "合计:"
#. module: account
#: model:ir.model,name:account.model_account_analytic_journal
msgid "account.analytic.journal"
-msgstr "项目.辅助核算.分类帐"
+msgstr "项. 辅助核算. 分录集合"
#. module: account
-#: view:account.fiscal.position:0 field:account.fiscal.position,account_ids:0
+#: view:account.fiscal.position:0
+#: field:account.fiscal.position,account_ids:0
#: field:account.fiscal.position.template,account_ids:0
msgid "Account Mapping"
msgstr "科目一览"
@@ -4686,9 +4833,10 @@ msgid "Account Reconciliation"
msgstr "科目对账"
#. module: account
-#: view:account.bank.statement:0 selection:account.bank.statement,state:0
+#: view:account.bank.statement:0
+#: selection:account.bank.statement,state:0
msgid "Confirm"
-msgstr "确认"
+msgstr "确定"
#. module: account
#: wizard_view:account.account.balance.report,account_selection:0
@@ -4701,7 +4849,8 @@ msgid "Parent Account Template"
msgstr "上级科目模板"
#. module: account
-#: help:account.tax,domain:0 help:account.tax.template,domain:0
+#: help:account.tax,domain:0
+#: help:account.tax.template,domain:0
msgid ""
"This field is only used if you develop your own module allowing developers "
"to create specific taxes in a custom domain."
@@ -4716,10 +4865,11 @@ msgstr "付款金额"
#. module: account
#: view:account.analytic.account:0
msgid "Analytic account"
-msgstr "辅助核算项目"
+msgstr "辅助核算项"
#. module: account
-#: rml:account.invoice:0 selection:account.invoice,type:0
+#: rml:account.invoice:0
+#: selection:account.invoice,type:0
msgid "Supplier Invoice"
msgstr "供应商发票"
@@ -4729,16 +4879,22 @@ msgid "Valid"
msgstr "有效"
#. module: account
-#: field:account.account,debit:0 rml:account.account.balance:0
+#: field:account.account,debit:0
+#: rml:account.account.balance:0
#: field:account.analytic.account,debit:0
#: rml:account.analytic.account.balance:0
#: rml:account.analytic.account.cost_ledger:0
#: rml:account.analytic.account.inverted.balance:0
-#: rml:account.central.journal:0 rml:account.general.ledger:0
-#: rml:account.journal.period.print:0 field:account.model.line,debit:0
-#: field:account.move.line,debit:0 rml:account.partner.balance:0
-#: rml:account.tax.code.entries:0 rml:account.third_party_ledger:0
-#: rml:account.third_party_ledger_other:0 rml:account.vat.declaration:0
+#: rml:account.central.journal:0
+#: rml:account.general.ledger:0
+#: rml:account.journal.period.print:0
+#: field:account.model.line,debit:0
+#: field:account.move.line,debit:0
+#: rml:account.partner.balance:0
+#: rml:account.tax.code.entries:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
+#: rml:account.vat.declaration:0
#: field:report.hr.timesheet.invoice.journal,revenue:0
msgid "Debit"
msgstr "借方"
@@ -4761,17 +4917,17 @@ msgstr "发票明细"
#. module: account
#: field:account.period,date_start:0
msgid "Start of Period"
-msgstr "期初日期"
+msgstr "开始会计期间"
#. module: account
#: wizard_field:account.fiscalyear.close,init,report_name:0
msgid "Name of new entries"
-msgstr "新凭证名称"
+msgstr "新名称"
#. module: account
#: wizard_button:account_use_models,init_form,create:0
msgid "Create Entries"
-msgstr "创建凭证"
+msgstr "创建"
#. module: account
#: field:account.tax,ref_tax_code_id:0
@@ -4787,20 +4943,21 @@ msgstr "税说明"
#. module: account
#: help:account.invoice,move_id:0
msgid "Link to the automatically generated account moves."
-msgstr "链接动生成的凭证"
+msgstr "连接自动产生的凭证"
#. module: account
#: wizard_field:account.automatic.reconcile,reconcile,reconciled:0
msgid "Reconciled transactions"
-msgstr "已对账的处理"
+msgstr "已对账交易"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_reporting
msgid "Reporting"
-msgstr "内部报表"
+msgstr "报表"
#. module: account
-#: rml:account.third_party_ledger:0 rml:account.third_party_ledger_other:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
msgid "/"
msgstr "/"
@@ -4808,7 +4965,7 @@ msgstr "/"
#: model:process.node,note:account.process_node_invoiceinvoice0
#: model:process.node,note:account.process_node_supplierinvoiceinvoice0
msgid "Have a number and entries are generated"
-msgstr "生成凭证和一个数字"
+msgstr "生成记录和一个数字"
#. module: account
#: rml:account.analytic.account.analytic.check:0
@@ -4823,7 +4980,7 @@ msgstr "科目余额 -"
#. module: account
#: field:account.journal,group_invoice_lines:0
msgid "Group invoice lines"
-msgstr "分票组"
+msgstr "按发票明细分组"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_configuration
@@ -4831,30 +4988,31 @@ msgid "Configuration"
msgstr "设置"
#. module: account
-#: view:account.analytic.line:0 view:account.invoice:0
+#: view:account.analytic.line:0
+#: view:account.invoice:0
msgid "Total amount"
-msgstr "合计"
+msgstr "金额合计"
#. module: account
#: view:account.journal:0
msgid "Account Journal"
-msgstr "分类帐"
+msgstr "分录集合"
#. module: account
#: view:account.subscription.line:0
msgid "Subscription lines"
-msgstr "周期明细"
+msgstr "周期性分录明细"
#. module: account
#: field:account.chart.template,property_account_income:0
msgid "Income Account on Product Template"
-msgstr "产品收入科目模板"
+msgstr "产品模板的收入科目"
#. module: account
#: help:account.account,currency_id:0
#: help:account.account.template,currency_id:0
msgid "Force all moves for this account to have this secondary currency."
-msgstr "强制对所有凭证含此外币"
+msgstr "强制所有凭证用这外币"
#. module: account
#: wizard_button:populate_statement_from_inv,go,end:0
@@ -4872,7 +5030,7 @@ msgstr "选择日期-会计期间"
#. module: account
#: rml:account.analytic.account.inverted.balance:0
msgid "Inverted Analytic Balance -"
-msgstr "反向核算余额 -"
+msgstr "反向辅助核算余额 -"
#. module: account
#: model:process.node,name:account.process_node_paidinvoice0
@@ -4881,12 +5039,14 @@ msgid "Paid invoice"
msgstr "支付发票"
#. module: account
-#: view:account.tax:0 view:account.tax.template:0
+#: view:account.tax:0
+#: view:account.tax.template:0
msgid "Tax Definition"
msgstr "税定义"
#. module: account
-#: field:account.tax,tax_group:0 field:account.tax.template,tax_group:0
+#: field:account.tax,tax_group:0
+#: field:account.tax.template,tax_group:0
msgid "Tax Group"
msgstr "税组"
@@ -4901,12 +5061,12 @@ msgstr "新的客户退款"
msgid ""
"Check this box if you want to use a different sequence for each created "
"journal. Otherwise, all will use the same sequence."
-msgstr "如果你想每个创建的分类帐使用一个不同的序列勾选此项.否则将使用同一序列"
+msgstr "勾选此项, 如果你想每个新建的分录集合使用不同的序列. 否则将使用同一序列"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_populate_statement_from_inv
msgid "Import invoices"
-msgstr "进项发票"
+msgstr "导入发票"
#. module: account
#: wizard_view:account.move.line.unreconcile,init:0
@@ -4924,27 +5084,28 @@ msgstr "维护发票序列与会计年度"
#: selection:account.account.balance.report,checktype,display_account:0
#: selection:account.general.ledger.report,checktype,display_account:0
msgid "With movements"
-msgstr "一致"
+msgstr "进展"
#. module: account
-#: field:account.tax,domain:0 field:account.tax.template,domain:0
+#: field:account.tax,domain:0
+#: field:account.tax.template,domain:0
msgid "Domain"
-msgstr "分类"
+msgstr "域"
#. module: account
#: view:account.analytic.account:0
msgid "Account Data"
-msgstr "项目信息"
+msgstr "项信息"
#. module: account
#: view:account.tax.code.template:0
msgid "Account Tax Code Template"
-msgstr "税代码模板"
+msgstr "科目税代码模板"
#. module: account
#: view:account.subscription:0
msgid "Subscription Periods"
-msgstr "周期的会计期间"
+msgstr "周期性分录的会计期间"
#. module: account
#: model:process.node,name:account.process_node_manually0
@@ -4952,7 +5113,9 @@ msgid "Manually"
msgstr "手动"
#. module: account
-#: view:account.invoice:0 view:account.tax:0 view:account.tax.template:0
+#: view:account.invoice:0
+#: view:account.tax:0
+#: view:account.tax.template:0
#: selection:account.vat.declaration,init,based_on:0
#: model:ir.actions.act_window,name:account.act_res_partner_2_account_invoice_opened
#: model:ir.actions.act_window,name:account.action_invoice_tree
@@ -4969,14 +5132,15 @@ msgid "Payable Accounts"
msgstr "应付款科目"
#. module: account
-#: view:account.invoice.line:0 field:account.invoice.tax,invoice_id:0
+#: view:account.invoice.line:0
+#: field:account.invoice.tax,invoice_id:0
msgid "Invoice Line"
msgstr "发票明细"
#. module: account
#: wizard_field:account.invoice.pay,addendum,writeoff_journal_id:0
msgid "Write-Off journal"
-msgstr "补差额分类帐"
+msgstr "补差额分录集合"
#. module: account
#: wizard_button:account.invoice.pay,init,writeoff_check:0
@@ -4986,7 +5150,7 @@ msgstr "全部付款"
#. module: account
#: selection:account.move,type:0
msgid "Journal Purchase"
-msgstr "采购分类帐"
+msgstr "采购分录集合"
#. module: account
#: selection:account.move,type:0
@@ -5002,7 +5166,7 @@ msgstr "替代的税"
#. module: account
#: model:process.transition,note:account.process_transition_invoicemanually0
msgid "Encode manually statement comes into the draft statement"
-msgstr "从手动生效为草稿"
+msgstr "从手动转为草稿"
#. module: account
#: model:ir.ui.menu,name:account.next_id_43
@@ -5017,10 +5181,11 @@ msgstr "报表上的符号"
#. module: account
#: help:account.move.line,currency_id:0
msgid "The optional other currency if it is a multi-currency entry."
-msgstr "如果是一个多货币凭证这是可选的其他货币"
+msgstr "如果是一个多货币凭证可选其它货币"
#. module: account
-#: view:account.invoice:0 field:account.invoice,payment_ids:0
+#: view:account.invoice:0
+#: field:account.invoice,payment_ids:0
#: selection:account.vat.declaration,init,based_on:0
msgid "Payments"
msgstr "付款"
@@ -5028,7 +5193,7 @@ msgstr "付款"
#. module: account
#: model:process.node,note:account.process_node_accountingstatemententries0
msgid "Accounting entries at statement's confirmation"
-msgstr "确认报表"
+msgstr "在确认对帐单产生的会计分录"
#. module: account
#: wizard_view:account_use_models,create:0
@@ -5043,12 +5208,12 @@ msgstr "否"
#. module: account
#: model:ir.actions.act_window,name:account.act_account_partner_account_move
msgid "All account entries"
-msgstr "所有凭证"
+msgstr "所分录"
#. module: account
#: help:account.invoice.tax,tax_code_id:0
msgid "The tax basis of the tax declaration."
-msgstr "纳税申报的计税基准"
+msgstr "税说明的税基"
#. module: account
#: wizard_view:account.account.balance.report,checktype:0
@@ -5061,14 +5226,17 @@ msgstr "日期过滤"
#. module: account
#: wizard_view:populate_statement_from_inv,init:0
msgid "Choose Journal and Payment Date"
-msgstr "选择分类帐和付款日期"
+msgstr "选择分录集合和付款日期"
#. module: account
#: selection:account.analytic.account,state:0
#: selection:account.bank.statement,state:0
-#: selection:account.fiscalyear,state:0 selection:account.invoice,state:0
-#: selection:account.journal.period,state:0 selection:account.move,state:0
-#: selection:account.move.line,state:0 selection:account.period,state:0
+#: selection:account.fiscalyear,state:0
+#: selection:account.invoice,state:0
+#: selection:account.journal.period,state:0
+#: selection:account.move,state:0
+#: selection:account.move.line,state:0
+#: selection:account.period,state:0
#: selection:account.subscription,state:0
msgid "Draft"
msgstr "草稿"
@@ -5095,19 +5263,20 @@ msgid "Are you sure ?"
msgstr "你确定吗?"
#. module: account
-#: rml:account.invoice:0 view:account.invoice:0
+#: rml:account.invoice:0
+#: view:account.invoice:0
msgid "PRO-FORMA"
msgstr "形式发票"
#. module: account
#: field:account.move.reconcile,line_partial_ids:0
msgid "Partial Entry lines"
-msgstr "部分凭证明细"
+msgstr "部分分录明细"
#. module: account
#: help:account.move.line,statement_id:0
msgid "The bank statement used for bank reconciliation"
-msgstr "这银行对账单用于银行对账"
+msgstr "这银行对帐单用于银行对帐"
#. module: account
#: view:account.fiscalyear:0
@@ -5117,7 +5286,7 @@ msgstr "会计年度"
#. module: account
#: wizard_button:account.analytic.line,init,open:0
msgid "Open Entries"
-msgstr "打开凭证"
+msgstr "打开分录"
#. module: account
#: selection:account.analytic.account,type:0
@@ -5131,32 +5300,39 @@ msgid "Supplier Invoice Process"
msgstr "供应商发票处理"
#. module: account
-#: rml:account.account.balance:0 rml:account.analytic.account.analytic.check:0
-#: rml:account.analytic.account.balance:0 rml:account.general.ledger:0
-#: rml:account.journal.period.print:0 rml:account.partner.balance:0
-#: rml:account.tax.code.entries:0 rml:account.third_party_ledger:0
-#: rml:account.third_party_ledger_other:0 rml:account.vat.declaration:0
+#: rml:account.account.balance:0
+#: rml:account.analytic.account.analytic.check:0
+#: rml:account.analytic.account.balance:0
+#: rml:account.general.ledger:0
+#: rml:account.journal.period.print:0
+#: rml:account.partner.balance:0
+#: rml:account.tax.code.entries:0
+#: rml:account.third_party_ledger:0
+#: rml:account.third_party_ledger_other:0
+#: rml:account.vat.declaration:0
msgid "Page"
msgstr "页"
#. module: account
-#: view:account.move:0 view:account.move.line:0
+#: view:account.move:0
+#: view:account.move.line:0
msgid "Optional Information"
-msgstr "其它信息"
+msgstr "可选信息"
#. module: account
#: model:ir.actions.act_window,name:account.action_payment_term_form
#: model:ir.ui.menu,name:account.menu_action_payment_term_form
msgid "Payment Terms"
-msgstr "付款条件"
+msgstr "付款条款"
#. module: account
#: selection:account.aged.trial.balance,init,result_selection:0
msgid "Receivable and Payable"
-msgstr "应收款和应付款"
+msgstr "应收和应付"
#. module: account
-#: rml:account.account.balance:0 rml:account.general.journal:0
+#: rml:account.account.balance:0
+#: rml:account.general.journal:0
msgid ":"
msgstr ":"
@@ -5176,11 +5352,11 @@ msgid ""
"If the Tax account is tax code account, this field will contain the taxed "
"amount.If the tax account is base tax code, this field "
"will contain the basic amount(without tax)."
-msgstr ""
-"如果这科目是免税科目,这字段将含税.如果这科目是普通税科目这字段将不含税."
+msgstr "如果这税科目是免税科目, 这字段将含税款. 如果这科目是基本税代码这字段将含基础金额(不含税)."
#. module: account
-#: view:account.bank.statement:0 view:account.bank.statement.reconcile:0
+#: view:account.bank.statement:0
+#: view:account.bank.statement.reconcile:0
#: view:account.subscription:0
msgid "Compute"
msgstr "计算"
@@ -5188,18 +5364,18 @@ msgstr "计算"
#. module: account
#: help:account.invoice.line,account_id:0
msgid "The income or expense account related to the selected product."
-msgstr "选择产品的收入和采购科目"
+msgstr "选择产品的收入和费用科目"
#. module: account
#: field:account.tax,type_tax_use:0
msgid "Tax Application"
-msgstr "税应用"
+msgstr "税适用"
#. module: account
#: model:ir.actions.act_window,name:account.action_subscription_form
#: model:ir.ui.menu,name:account.menu_action_subscription_form
msgid "Subscription Entries"
-msgstr "周期性凭证"
+msgstr "周期性分录"
#. module: account
#: model:ir.actions.act_window,name:account.action_invoice_tree6
@@ -5221,21 +5397,23 @@ msgstr "会计期间数"
#: wizard_field:account.analytic.account.quantity_cost_ledger.report,init,date2:0
#: wizard_field:account.automatic.reconcile,init,date2:0
msgid "End of period"
-msgstr "期末日期"
+msgstr "结束会计期间"
#. module: account
-#: view:account.move:0 model:ir.model,name:account.model_account_move
+#: view:account.move:0
+#: model:ir.model,name:account.model_account_move
msgid "Account Entry"
-msgstr "凭证"
+msgstr "分录"
#. module: account
#: rml:account.general.journal:0
#: model:ir.actions.report.xml,name:account.account_general_journal
msgid "General Journal"
-msgstr "普通分类帐"
+msgstr "一般分录集合"
#. module: account
-#: field:account.account,balance:0 rml:account.account.balance:0
+#: field:account.account,balance:0
+#: rml:account.account.balance:0
#: selection:account.account.type,close_method:0
#: field:account.analytic.account,balance:0
#: rml:account.analytic.account.balance:0
@@ -5243,9 +5421,12 @@ msgstr "普通分类帐"
#: rml:account.analytic.account.inverted.balance:0
#: field:account.bank.statement,balance_end:0
#: field:account.bank.statement.reconcile,total_balance:0
-#: rml:account.general.ledger:0 field:account.move.line,balance:0
-#: rml:account.partner.balance:0 selection:account.payment.term.line,value:0
-#: selection:account.tax,type:0 rml:account.third_party_ledger:0
+#: rml:account.general.ledger:0
+#: field:account.move.line,balance:0
+#: rml:account.partner.balance:0
+#: selection:account.payment.term.line,value:0
+#: selection:account.tax,type:0
+#: rml:account.third_party_ledger:0
#: rml:account.third_party_ledger_other:0
msgid "Balance"
msgstr "余额"
@@ -5264,7 +5445,7 @@ msgstr "发票税"
#: model:ir.actions.act_window,name:account.action_account_analytic_journal_form
#: model:ir.ui.menu,name:account.account_def_analytic_journal
msgid "Analytic Journal Definition"
-msgstr "定义辅助核算分类帐"
+msgstr "定义辅助核算分录集合"
#. module: account
#: model:ir.model,name:account.model_account_tax_template
@@ -5274,7 +5455,7 @@ msgstr "科目.税.模板"
#. module: account
#: field:wizard.multi.charts.accounts,bank_accounts_id:0
msgid "Bank Accounts"
-msgstr "银行账号"
+msgstr "银行帐号"
#. module: account
#: constraint:account.period:0
@@ -5286,11 +5467,14 @@ msgstr "无效会计期间!一些会计期间重复或者会计期间不在这
#. module: account
#: help:account.journal,invoice_sequence_id:0
msgid "The sequence used for invoice numbers in this journal."
-msgstr "这序列用于这分类帐发票号"
+msgstr "这序列用于这分录集合的发票号"
#. module: account
-#: view:account.account:0 view:account.account.template:0
-#: view:account.journal:0 view:account.move:0 view:account.move.line:0
+#: view:account.account:0
+#: view:account.account.template:0
+#: view:account.journal:0
+#: view:account.move:0
+#: view:account.move.line:0
msgid "General Information"
msgstr "一般信息"
@@ -5300,14 +5484,12 @@ msgid ""
"This field allow you to choose the accounting journals you want for "
"filtering the invoices. If you left this field empty, it will search on all "
"sale, purchase and cash journals."
-msgstr ""
-"这字段允许你选择会计分类帐要过滤的发票.如果你设为空将搜索所有销售采购和现金分"
-"类帐"
+msgstr "这字段允许你选择要过滤的发票的会计分录集合. 如果为空将搜索所有销售, 采购和现金分录集合."
#. module: account
#: constraint:account.fiscalyear:0
msgid "Error ! The duration of the Fiscal Year is invalid. "
-msgstr "错误!会计年度无效 "
+msgstr "错误!会计年度的期限无效 "
#. module: account
#: selection:account.analytic.account,state:0
@@ -5317,7 +5499,7 @@ msgstr "关闭"
#. module: account
#: field:account.bank.statement.line,move_ids:0
msgid "Moves"
-msgstr "凭证编号"
+msgstr "凭证"
#. module: account
#: selection:account.invoice,state:0
@@ -5331,7 +5513,8 @@ msgid "List of Accounts"
msgstr "科目列表"
#. module: account
-#: view:product.product:0 view:product.template:0
+#: view:product.product:0
+#: view:product.template:0
msgid "Sales Properties"
msgstr "销售属性"
@@ -5349,7 +5532,7 @@ msgstr "成本分类账(只有数量)"
#. module: account
#: wizard_view:account.move.validate,init:0
msgid "Validate Account Entries"
-msgstr "审核凭证"
+msgstr "确认"
#. module: account
#: selection:account.print.journal.report,init,sort_selection:0
@@ -5370,7 +5553,7 @@ msgstr "到"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_analytic_journal_open_form
msgid "Entries of Open Analytic Journals"
-msgstr "待处理辅助核算分类帐"
+msgstr "打开的辅助核算分录集合分录"
#. module: account
#: view:account.invoice.tax:0
@@ -5385,7 +5568,7 @@ msgstr "当前日期"
#. module: account
#: selection:account.move,type:0
msgid "Journal Sale"
-msgstr "销售分类帐"
+msgstr "销售分录集合"
#. module: account
#: wizard_field:account.fiscalyear.close,init,fy_id:0
@@ -5403,7 +5586,7 @@ msgstr "关闭会计年度"
#: wizard_field:account.analytic.account.quantity_cost_ledger.report,init,date1:0
#: wizard_field:account.automatic.reconcile,init,date1:0
msgid "Start of period"
-msgstr "期初日期"
+msgstr "开始会计期间"
#. module: account
#: model:ir.ui.menu,name:account.account_template_folder
@@ -5424,11 +5607,15 @@ msgstr "IntraCom"
#: view:account.analytic.account:0
#: field:account.analytic.account,description:0
#: field:account.analytic.line,name:0
-#: field:account.bank.statement.reconcile.line,name:0 rml:account.invoice:0
-#: field:account.invoice,name:0 field:account.invoice.line,name:0
+#: field:account.bank.statement.reconcile.line,name:0
+#: rml:account.invoice:0
+#: field:account.invoice,name:0
+#: field:account.invoice.line,name:0
#: wizard_field:account.invoice.refund,init,description:0
-#: rml:account.overdue:0 field:account.payment.term,note:0
-#: field:account.tax.code,info:0 field:account.tax.code.template,info:0
+#: rml:account.overdue:0
+#: field:account.payment.term,note:0
+#: field:account.tax.code,info:0
+#: field:account.tax.code.template,info:0
msgid "Description"
msgstr "说明"
@@ -5437,7 +5624,7 @@ msgstr "说明"
msgid ""
"This account will be used instead of the default one to value incoming stock "
"for the current product"
-msgstr "这科目将用于当前产品的默认销售收入科目"
+msgstr "这科目将替换当前产品的默认进仓"
#. module: account
#: field:account.tax,child_ids:0
@@ -5452,12 +5639,12 @@ msgstr "上级右"
#. module: account
#: model:ir.ui.menu,name:account.account_account_menu
msgid "Financial Accounts"
-msgstr "会计科目"
+msgstr "财务科目"
#. module: account
#: model:ir.model,name:account.model_account_chart_template
msgid "Templates for Account Chart"
-msgstr "科目表"
+msgstr "科目一览表模板"
#. module: account
#: view:account.config.wizard:0
@@ -5469,10 +5656,11 @@ msgstr "科目设置"
msgid ""
"This account will be used instead of the default one as the payable account "
"for the current partner"
-msgstr "这科目将用于当前业务伙伴的默认应付科目"
+msgstr "这科目将替换当前业务伙伴的默认支付科目"
#. module: account
-#: field:account.tax.code,code:0 field:account.tax.code.template,code:0
+#: field:account.tax.code,code:0
+#: field:account.tax.code.template,code:0
msgid "Case Code"
msgstr "事务代码"
@@ -5490,12 +5678,12 @@ msgstr "收入科目"
#. module: account
#: field:account.period,special:0
msgid "Opening/Closing Period"
-msgstr "开启会计期间"
+msgstr "打开/关闭会计期间"
#. module: account
#: rml:account.analytic.account.balance:0
msgid "Analytic Balance -"
-msgstr "核算余额 -"
+msgstr "辅助核算余额 -"
#. module: account
#: wizard_field:account_use_models,init_form,model:0
@@ -5527,34 +5715,35 @@ msgstr "会计属性"
#. module: account
#: model:ir.model,name:account.model_account_sequence_fiscalyear
msgid "account.sequence.fiscalyear"
-msgstr "科目.序号.会计年度"
+msgstr "科目.序列.会计年度"
#. module: account
#: wizard_field:account.print.journal.report,init,sort_selection:0
msgid "Entries Sorted By"
-msgstr "凭证排序按"
+msgstr "分录排序按"
#. module: account
#: rml:account.journal.period.print:0
msgid "Print Journal -"
-msgstr "打印分类帐 -"
+msgstr "打印分录集合 -"
#. module: account
#: field:account.bank.accounts.wizard,bank_account_id:0
#: field:account.chart.template,bank_account_view_id:0
#: field:account.invoice,partner_bank:0
msgid "Bank Account"
-msgstr "银行账号"
+msgstr "银行帐号"
#. module: account
#: model:ir.actions.act_window,name:account.action_model_form
#: model:ir.ui.menu,name:account.menu_action_model_form
msgid "Models Definition"
-msgstr "模型定义"
+msgstr "分录模型定义"
#. module: account
#: model:account.account.type,name:account.account_type_cash_moves
-#: selection:account.analytic.journal,type:0 selection:account.journal,type:0
+#: selection:account.analytic.journal,type:0
+#: selection:account.journal,type:0
msgid "Cash"
msgstr "现金"
@@ -5567,7 +5756,7 @@ msgstr "目标科目"
#. module: account
#: rml:account.overdue:0
msgid "Maturity"
-msgstr "到期"
+msgstr "到期日期"
#. module: account
#: field:account.fiscalyear,name:0
@@ -5594,7 +5783,8 @@ msgid "Keep empty for all open fiscal year"
msgstr "留空为所有开启的会计年度"
#. module: account
-#: rml:account.invoice:0 selection:account.invoice,type:0
+#: rml:account.invoice:0
+#: selection:account.invoice,type:0
msgid "Supplier Refund"
msgstr "供应商退款"
@@ -5602,12 +5792,12 @@ msgstr "供应商退款"
#: model:process.transition,note:account.process_transition_entriesreconcile0
#: model:process.transition,note:account.process_transition_supplierentriesreconcile0
msgid "Reconcile Entries."
-msgstr "对账凭证"
+msgstr "对账分录"
#. module: account
#: field:account.subscription.line,move_id:0
msgid "Entry"
-msgstr "凭证"
+msgstr "分录"
#. module: account
#: model:process.node,note:account.process_node_paidinvoice0
@@ -5615,7 +5805,7 @@ msgstr "凭证"
#: model:process.transition,note:account.process_transition_reconcilepaid0
#: model:process.transition,note:account.process_transition_supplierreconcilepaid0
msgid "Paid invoice when reconciled."
-msgstr "支付发票时对账"
+msgstr "对账时支付发票"
#. module: account
#: field:account.tax,python_compute_inv:0
@@ -5638,11 +5828,13 @@ msgstr "科目一览"
msgid ""
"This account will be used to value outgoing stock for the current product "
"category"
-msgstr "这科目将用于当前产品分类的采购科目"
+msgstr "这科目将替换当前产品分类的默认出仓"
#. module: account
-#: help:account.tax,base_sign:0 help:account.tax,ref_base_sign:0
-#: help:account.tax,ref_tax_sign:0 help:account.tax,tax_sign:0
+#: help:account.tax,base_sign:0
+#: help:account.tax,ref_base_sign:0
+#: help:account.tax,ref_tax_sign:0
+#: help:account.tax,tax_sign:0
#: help:account.tax.template,base_sign:0
#: help:account.tax.template,ref_base_sign:0
#: help:account.tax.template,ref_tax_sign:0
@@ -5658,7 +5850,7 @@ msgstr "银行详情"
#. module: account
#: field:account.chart.template,property_account_expense:0
msgid "Expense Account on Product Template"
-msgstr "产品采购科目模板"
+msgstr "产品模板的费用科目"
#. module: account
#: rml:account.analytic.account.analytic.check:0
@@ -5668,7 +5860,7 @@ msgstr "一般借方"
#. module: account
#: field:account.analytic.account,code:0
msgid "Account Code"
-msgstr "辅助核算代码"
+msgstr "辅助核算项代码"
#. module: account
#: help:account.config.wizard,name:0
@@ -5676,13 +5868,15 @@ msgid "Name of the fiscal year as displayed on screens."
msgstr "屏幕上显示的会计年度名称"
#. module: account
-#: field:account.invoice,payment_term:0 view:account.payment.term:0
-#: field:account.payment.term,name:0 view:account.payment.term.line:0
+#: field:account.invoice,payment_term:0
+#: view:account.payment.term:0
+#: field:account.payment.term,name:0
+#: view:account.payment.term.line:0
#: field:account.payment.term.line,payment_id:0
#: model:ir.model,name:account.model_account_payment_term
#: field:res.partner,property_payment_term:0
msgid "Payment Term"
-msgstr "付款条件"
+msgstr "付款条款"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_fiscal_position_form
@@ -5693,12 +5887,12 @@ msgstr "财务结构"
#. module: account
#: model:process.process,name:account.process_process_statementprocess0
msgid "Statement Process"
-msgstr "对账单处理"
+msgstr "对帐单处理"
#. module: account
#: model:ir.model,name:account.model_account_bank_statement_reconcile
msgid "Statement reconcile"
-msgstr "对账单对账"
+msgstr "对帐单核销"
#. module: account
#: wizard_field:account.fiscalyear.close,init,sure:0
@@ -5712,7 +5906,7 @@ msgstr "勾选此项"
msgid ""
"Check this if the price you use on the product and invoices includes this "
"tax."
-msgstr "在产品和发票中使用含税价"
+msgstr "勾选, 如果你使用的产品和发票价格含税."
#. module: account
#: field:account.journal.column,name:0
@@ -5734,8 +5928,9 @@ msgstr "是"
#. module: account
#: help:account.account,reconcile:0
-msgid "Check this if the user is allowed to reconcile entries in this account."
-msgstr "用户允许在这科目对账凭证"
+msgid ""
+"Check this if the user is allowed to reconcile entries in this account."
+msgstr "勾选, 如果用户可以在这科目对账分录."
#. module: account
#: wizard_button:account.subscription.generate,init,generate:0
@@ -5745,7 +5940,7 @@ msgstr "计算日期"
#. module: account
#: view:board.board:0
msgid "Analytic accounts to close"
-msgstr "关闭辅助核算项目"
+msgstr "关闭辅助核算项"
#. module: account
#: view:board.board:0
@@ -5759,15 +5954,16 @@ msgid "Accounting Dashboard"
msgstr "会计控制台"
#. module: account
-#: view:board.board:0 model:ir.actions.act_window,name:account.act_my_account
+#: view:board.board:0
+#: model:ir.actions.act_window,name:account.act_my_account
msgid "Accounts to invoice"
-msgstr "发票科目"
+msgstr "科目开发票"
#. module: account
#: view:board.board:0
#: model:ir.actions.act_window,name:account.action_account_analytic_line_to_invoice
msgid "Costs to invoice"
-msgstr "成本发票"
+msgstr "成本开发票"
#. module: account
#: view:board.board:0
@@ -5812,7 +6008,7 @@ msgstr "所有科目"
#. module: account
#: wizard_field:account.balance.account.balance.report,init,period_manner:0
msgid "Entries Selection Based on"
-msgstr "凭证选择基于"
+msgstr "分录选择基于"
#. module: account
#: wizard_view:account.balance.account.balance.report,backtoinit:0
@@ -5829,7 +6025,7 @@ msgstr "财务会计期间"
#: model:ir.actions.report.xml,name:account.account_account_balance
#: model:ir.actions.report.xml,name:account.account_account_balance_landscape
msgid "Account balance"
-msgstr "科目结余"
+msgstr "科目余额"
#. module: account
#: wizard_view:account.balance.account.balance.report,init:0
@@ -5839,27 +6035,27 @@ msgstr "选择会计期间"
#. module: account
#: selection:account.balance.account.balance.report,init,compare_pattern:0
msgid "Percentage"
-msgstr "百分率"
+msgstr "百分比"
#. module: account
#: wizard_field:account.balance.account.balance.report,init,compare_pattern:0
msgid "Compare Selected Years In Terms Of"
-msgstr "选定比较年份"
+msgstr "比较选择的会计年度"
#. module: account
#: wizard_view:account.balance.account.balance.report,init:0
msgid "Select Fiscal Year(s)(Maximum Three Years)"
-msgstr "选择会计年度度(最大值为三年)"
+msgstr "选择会计年度(最大值为三年)"
#. module: account
#: wizard_field:account.balance.account.balance.report,init,select_account:0
msgid "Select Reference Account(for % comparision)"
-msgstr "选择参考科目(为比较)"
+msgstr "选择参考科目(比较%)"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_account_balance_report
msgid "Account balance-Compare Years"
-msgstr "科目结余年度比较"
+msgstr "科目结余会计年度比较"
#. module: account
#: model:ir.module.module,description:account.module_meta_information
@@ -5911,7 +6107,12 @@ msgstr "合计:"
#. module: account
#: wizard_field:account.balance.account.balance.report,init,format_perc:0
msgid "Show Comparision in %"
-msgstr "显示对比在 %"
+msgstr "显示对比 %"
+
+#. module: account
+#: wizard_view:account.balance.account.balance.report,init:0
+msgid "Select Period"
+msgstr "选择会计期间"
#. module: account
#: wizard_view:account.balance.account.balance.report,init:0
@@ -5954,18 +6155,18 @@ msgstr "请勾选此项你最多能选择3年"
msgid ""
"3. You have selected 'Percentage' option with more than 2 years, but you "
"have not selected landscape format."
-msgstr "你已经选择‘百分率’选项这要2年以上.你没选择规定格式."
+msgstr "你已经选择‘百分比’选项这要2年以上. 但你没选择规定格式."
#. module: account
#: wizard_view:account.balance.account.balance.report,backtoinit:0
msgid ""
"You might have done following mistakes. Please correct them and try again."
-msgstr "你可能犯以下错误.请纠正后再试."
+msgstr "你可能存在以下错误. 请纠正后再试."
#. module: account
#: help:account.balance.account.balance.report,init,select_account:0
msgid "Keep empty for comparision to its parent"
-msgstr "留空为比较其母公司"
+msgstr "留空为比较母公司"
#. module: account
#: selection:account.balance.account.balance.report,init,period_manner:0
@@ -5977,16 +6178,15 @@ msgstr "创建日期"
msgid ""
"2. You have not selected 'Percentage' option, but you have selected more "
"than 2 years."
-msgstr "你尚未选择‘百分率’选项你要选择2年以上."
+msgstr "你选择2年以上, 但未选‘百分比’选项"
#. module: account
#: wizard_view:account.balance.account.balance.report,zero_years:0
msgid ""
-"You may have selected the compare options with more than 1 year with credit/"
-"debit columns and % option.This can lead contents to be printed out of the "
-"paper.Please try again."
-msgstr ""
-"你必须要选择比较选项一年以上的借方/贷方栏和%选项这才能产生打印的内容请再试."
+"You may have selected the compare options with more than 1 year with "
+"credit/debit columns and % option.This can lead contents to be printed out "
+"of the paper.Please try again."
+msgstr "你必须要选择比较选项一年以上的借方/贷方栏和%选项, 这才能产生打印的内容请再试."
#. module: account
#: wizard_view:account.balance.account.balance.report,zero_years:0
@@ -6004,14 +6204,14 @@ msgid "Month Range"
msgstr "月度"
#. module: account
-#: model:ir.actions.act_window,name:account.action_view_created_invoice_dashboard
+#: model:ir.actions.act_window,name:report_account.action_view_created_invoice_dashboard
msgid "Invoices Created Within Past 15 Days"
-msgstr "发票建立在15天前"
+msgstr "发票建立要在15天前"
#. module: account
-#: model:ir.model,name:account.model_report_invoice_created
+#: model:ir.model,name:report_account.model_report_invoice_created
msgid "Report of Invoices Created within Last 15 days"
-msgstr "最近15天创建的发票报表"
+msgstr "最近15天创建发票的报表"
#. module: account
#: view:report.invoice.created:0
@@ -6021,15 +6221,15 @@ msgstr "金额合计"
#. module: account
#: view:report.account.receivable:0
msgid "Accounts by type"
-msgstr "科目类型"
+msgstr "按类型划分的科目"
#. module: account
-#: model:ir.model,name:account.model_report_aged_receivable
+#: model:ir.model,name:report_account.model_report_aged_receivable
msgid "Aged Receivable Till Today"
-msgstr "到今天旧的应收款"
+msgstr "直到今天的应收款"
#. module: account
-#: model:ir.model,name:account.model_report_account_receivable
+#: model:ir.model,name:report_account.model_report_account_receivable
msgid "Receivable accounts"
msgstr "应收款科目"
@@ -6039,33 +6239,33 @@ msgid "Range"
msgstr "范围"
#. module: account
-#: model:ir.module.module,description:account.module_meta_information
+#: model:ir.module.module,description:report_account.module_meta_information
msgid "A module that adds new reports based on the account module."
-msgstr "在基础账户模块里增加新的报表模块"
+msgstr "新的报表模块"
#. module: account
-#: model:ir.module.module,shortdesc:account.module_meta_information
+#: model:ir.module.module,shortdesc:report_account.module_meta_information
msgid "Account Reporting - Reporting"
msgstr "科目报表-报表"
#. module: account
-#: model:ir.actions.act_window,name:account.action_account_receivable_graph
-#: model:ir.ui.menu,name:account.menu_account_receivable_graph
+#: model:ir.actions.act_window,name:report_account.action_account_receivable_graph
+#: model:ir.ui.menu,name:report_account.menu_account_receivable_graph
msgid "Balance by Type of Account"
-msgstr "科目余额"
+msgstr "科目类型余额"
#. module: account
#: field:report.account.receivable,name:0
msgid "Week of Year"
-msgstr "年里的周"
+msgstr "会计年度里的周"
#. module: account
#: field:report.invoice.created,create_date:0
msgid "Create Date"
-msgstr "建立日期"
+msgstr "创建日期"
#. module: account
-#: model:ir.actions.act_window,name:account.action_aged_receivable_graph
+#: model:ir.actions.act_window,name:report_account.action_aged_receivable_graph
#: view:report.aged.receivable:0
msgid "Aged Receivable"
msgstr "旧的应收款"
@@ -6102,34 +6302,8 @@ msgstr "未完税金额"
#~ msgid "Check if you want to display Accounts with 0 balance too."
#~ msgstr "科目余额为0的科目也显示"
-#~ msgid "Select Period"
-#~ msgstr "选会计期间"
-
#~ msgid "x Bank Journal"
#~ msgstr "x银行分类帐"
#~ msgid "x Expenses Journal"
#~ msgstr "x费用分类帐"
-
-#~ msgid ""
-#~ "\n"
-#~ " This module creates a dashboards for accountants that includes:\n"
-#~ " * List of analytic accounts to close\n"
-#~ " * List of uninvoiced quotations\n"
-#~ " * List of invoices to confirm\n"
-#~ " * Graph of costs to invoice\n"
-#~ " * Graph of aged receivables\n"
-#~ " * Graph of aged incomes\n"
-#~ " "
-#~ msgstr ""
-#~ "\n"
-#~ " 这模块将创建一个会计人员的控制台包括:\n"
-#~ " *关闭的辅助核算项目列表\n"
-#~ " *未开发票报价单\n"
-#~ " *待确认发票\n"
-#~ " *费用发票图表\n"
-#~ " *旧的收入图表\n"
-#~ " "
-
-#~ msgid "A Temporary table used for Dashboard view"
-#~ msgstr "控制台视图使用的临时表"
diff --git a/addons/account/invoice.py b/addons/account/invoice.py
index 261ec4c3c0d..62f998fa751 100644
--- a/addons/account/invoice.py
+++ b/addons/account/invoice.py
@@ -45,11 +45,11 @@ class account_invoice(osv.osv):
res[invoice.id]['amount_total'] = res[invoice.id]['amount_tax'] + res[invoice.id]['amount_untaxed']
return res
- def _get_journal(self, cr, uid, context):
+ def _get_journal(self, cr, uid, context=None):
if context is None:
context = {}
type_inv = context.get('type', 'out_invoice')
- user = self.pool.get('res.users').browse(cr, uid, uid)
+ user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
company_id = context.get('company_id', user.company_id.id)
type2journal = {'out_invoice': 'sale', 'in_invoice': 'purchase', 'out_refund': 'sale_refund', 'in_refund': 'purchase_refund'}
refund_journal = {'out_invoice': False, 'in_invoice': False, 'out_refund': True, 'in_refund': True}
@@ -63,7 +63,7 @@ class account_invoice(osv.osv):
else:
return False
- def _get_currency(self, cr, uid, context):
+ def _get_currency(self, cr, uid, context=None):
user = pooler.get_pool(cr.dbname).get('res.users').browse(cr, uid, [uid])[0]
if user.company_id:
return user.company_id.currency_id.id
@@ -81,10 +81,9 @@ class account_invoice(osv.osv):
def _get_type(self, cr, uid, context=None):
if context is None:
context = {}
- type = context.get('type', 'out_invoice')
- return type
+ return context.get('type', 'out_invoice')
- def _reconciled(self, cr, uid, ids, name, args, context):
+ def _reconciled(self, cr, uid, ids, name, args, context=None):
res = {}
for id in ids:
res[id] = self.test_paid(cr, uid, [id])
@@ -95,8 +94,11 @@ class account_invoice(osv.osv):
def _amount_residual(self, cr, uid, ids, name, args, context=None):
res = {}
- data_inv = self.browse(cr, uid, ids)
cur_obj = self.pool.get('res.currency')
+ data_inv = self.browse(cr, uid, ids)
+ if context is None:
+ context = {}
+
for inv in data_inv:
debit = credit = 0.0
context.update({'date':inv.date_invoice})
@@ -188,7 +190,7 @@ class account_invoice(osv.osv):
result[invoice.id] = lines
return result
- def _get_invoice_from_line(self, cr, uid, ids, context={}):
+ def _get_invoice_from_line(self, cr, uid, ids, context=None):
move = {}
for line in self.pool.get('account.move.line').browse(cr, uid, ids):
if line.reconcile_partial_id:
@@ -202,7 +204,7 @@ class account_invoice(osv.osv):
invoice_ids = self.pool.get('account.invoice').search(cr, uid, [('move_id','in',move.keys())], context=context)
return invoice_ids
- def _get_invoice_from_reconcile(self, cr, uid, ids, context={}):
+ def _get_invoice_from_reconcile(self, cr, uid, ids, context=None):
move = {}
for r in self.pool.get('account.move.reconcile').browse(cr, uid, ids):
for line in r.line_partial_ids:
@@ -317,12 +319,12 @@ class account_invoice(osv.osv):
_defaults = {
'type': _get_type,
#'date_invoice': lambda *a: time.strftime('%Y-%m-%d'),
- 'state': lambda *a: 'draft',
+ 'state': 'draft',
'journal_id': _get_journal,
'currency_id': _get_currency,
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'account.invoice', context=c),
- 'reference_type': lambda *a: 'none',
- 'check_total': lambda *a: 0.0,
+ 'reference_type': 'none',
+ 'check_total': 0.0,
'user_id': lambda s, cr, u, c: u,
}
@@ -339,16 +341,15 @@ class account_invoice(osv.osv):
view_id = self.pool.get('ir.ui.view').search(cr,uid,[('name','=','account.invoice.form')])[0]
return super(account_invoice,self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar, submenu=submenu)
- def create(self, cr, uid, vals, context={}):
+ def create(self, cr, uid, vals, context=None):
try:
res = super(account_invoice, self).create(cr, uid, vals, context)
return res
- except Exception,e:
+ except Exception, e:
if '"journal_id" viol' in e.args[0]:
raise orm.except_orm(_('Configuration Error!'),
_('There is no Accounting Journal of type Sale/Purchase defined!'))
else:
- raise
raise orm.except_orm(_('UnknownError'), str(e))
def confirm_paid(self, cr, uid, ids, context=None):
@@ -767,6 +768,8 @@ class account_invoice(osv.osv):
cur_obj = self.pool.get('res.currency')
context = {}
for inv in self.browse(cr, uid, ids):
+ if not inv.journal_id.invoice_sequence_id:
+ raise osv.except_osv(_('Error !'), _('Please define invoice sequence on invoice journal'))
if not inv.invoice_line:
raise osv.except_osv(_('No Invoice Lines !'), _('Please create some invoice lines.'))
if inv.move_id:
@@ -790,7 +793,7 @@ class account_invoice(osv.osv):
# one move line per tax line
iml += ait_obj.move_line_get(cr, uid, inv.id)
-
+
entry_type=''
if inv.type in ('in_invoice', 'in_refund'):
ref = inv.reference
@@ -922,7 +925,7 @@ class account_invoice(osv.osv):
if not number:
if obj_inv.journal_id.invoice_sequence_id:
sid = obj_inv.journal_id.invoice_sequence_id.id
- number = self.pool.get('ir.sequence').get_id(cr, uid, sid, 'id=%s', {'fiscalyear_id': obj_inv.period_id.fiscalyear_id.id})
+ number = self.pool.get('ir.sequence').get_id(cr, uid, sid, 'id', {'fiscalyear_id': obj_inv.period_id.fiscalyear_id.id})
else:
number = self.pool.get('ir.sequence').get(cr, uid,
'account.invoice.' + invtype)
@@ -1028,7 +1031,7 @@ class account_invoice(osv.osv):
def refund(self, cr, uid, ids, date=None, period_id=None, description=None):
invoices = self.read(cr, uid, ids, ['name', 'type', 'number', 'reference', 'comment', 'date_due', 'partner_id', 'address_contact_id', 'address_invoice_id', 'partner_contact', 'partner_insite', 'partner_ref', 'payment_term', 'account_id', 'currency_id', 'invoice_line', 'tax_line', 'journal_id'])
-
+
new_ids = []
for invoice in invoices:
del invoice['id']
@@ -1224,8 +1227,8 @@ class account_invoice_line(osv.osv):
'partner_id': fields.related('invoice_id','partner_id',type='many2one',relation='res.partner',string='Partner',store=True)
}
_defaults = {
- 'quantity': lambda *a: 1,
- 'discount': lambda *a: 0.0,
+ 'quantity': 1,
+ 'discount': 0.0,
'price_unit': _price_unit_default,
}
@@ -1568,4 +1571,7 @@ class res_partner(osv.osv):
_columns = {
'invoice_ids': fields.one2many('account.invoice.line', 'partner_id', 'Invoices', readonly=True),
}
+
res_partner()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/account/partner.py b/addons/account/partner.py
index bfd74889c1c..cd4d34976d4 100644
--- a/addons/account/partner.py
+++ b/addons/account/partner.py
@@ -191,7 +191,4 @@ class res_partner(osv.osv):
}
res_partner()
-
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/account/project/project_view.xml b/addons/account/project/project_view.xml
index 53ba5453742..f36baf8a07d 100644
--- a/addons/account/project/project_view.xml
+++ b/addons/account/project/project_view.xml
@@ -207,7 +207,6 @@
-
@@ -342,7 +341,6 @@
account.analytic.line
form
tree,form
- [('journal_id','=',active_id)]
@@ -14,17 +13,6 @@
-
- All Analytic Accounts
- account.analytic.account
- form
- tree,form,graph
-
-
- []
-
-
-
Overpassed Accounts
account.analytic.account
diff --git a/addons/account_analytic_analysis/account_analytic_analysis_view.xml b/addons/account_analytic_analysis/account_analytic_analysis_view.xml
index 64c71c1a2e2..a82f3b1b5c9 100644
--- a/addons/account_analytic_analysis/account_analytic_analysis_view.xml
+++ b/addons/account_analytic_analysis/account_analytic_analysis_view.xml
@@ -24,7 +24,6 @@
-
@@ -38,13 +37,12 @@
-
+
-
@@ -81,20 +79,18 @@
+
account.analytic.account.tree
account.analytic.account
-
tree
-
-
@@ -110,7 +106,6 @@
-
diff --git a/addons/account_analytic_analysis/i18n/nb.po b/addons/account_analytic_analysis/i18n/nb.po
index 3deb56e7e65..ca34e1040b7 100644
--- a/addons/account_analytic_analysis/i18n/nb.po
+++ b/addons/account_analytic_analysis/i18n/nb.po
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-11-17 06:50+0000\n"
-"Last-Translator: Tor Syversen \n"
+"PO-Revision-Date: 2010-07-03 18:41+0000\n"
+"Last-Translator: Mathias Bøhn Grytemark \n"
"Language-Team: Norwegian Bokmal \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-22 04:10+0000\n"
+"X-Launchpad-Export-Date: 2010-07-07 03:39+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_analytic_analysis
@@ -32,7 +32,7 @@ msgstr "Timer, summert pr. bruker"
#. module: account_analytic_analysis
#: field:account.analytic.account,last_invoice_date:0
msgid "Last Invoice Date"
-msgstr ""
+msgstr "Forrige fakturadato"
#. module: account_analytic_analysis
#: help:account.analytic.account,remaining_ca:0
@@ -58,7 +58,7 @@ msgstr "Mine nåværende konti"
#. module: account_analytic_analysis
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr ""
+msgstr "Ugyldig XML for visningsarkitektur!"
#. module: account_analytic_analysis
#: help:account.analytic.account,last_invoice_date:0
@@ -84,7 +84,7 @@ msgstr ""
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
-msgstr ""
+msgstr "Objektets navn må starte med x_ og ikke inneholde spesialkarakterer!"
#. module: account_analytic_analysis
#: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_new
@@ -123,7 +123,7 @@ msgstr ""
#. module: account_analytic_analysis
#: model:ir.ui.menu,name:account_analytic_analysis.menu_invoicing
msgid "Invoicing"
-msgstr ""
+msgstr "Fakturering"
#. module: account_analytic_analysis
#: field:account.analytic.account,last_worked_date:0
@@ -145,7 +145,7 @@ msgstr ""
#. module: account_analytic_analysis
#: field:account.analytic.account,remaining_hours:0
msgid "Remaining Hours"
-msgstr ""
+msgstr "Gjenværende timer"
#. module: account_analytic_analysis
#: help:account.analytic.account,ca_theorical:0
@@ -159,7 +159,7 @@ msgstr ""
#: field:account.analytic.account,user_ids:0
#: field:account_analytic_analysis.summary.user,user:0
msgid "User"
-msgstr ""
+msgstr "Bruker"
#. module: account_analytic_analysis
#: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_managed_pending
@@ -182,7 +182,7 @@ msgstr ""
#: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_managed
#: model:ir.ui.menu,name:account_analytic_analysis.menu_analytic_account_managed
msgid "My Accounts"
-msgstr ""
+msgstr "Mine kontoer"
#. module: account_analytic_analysis
#: model:ir.module.module,description:account_analytic_analysis.module_meta_information
@@ -195,7 +195,7 @@ msgstr ""
#. module: account_analytic_analysis
#: field:account.analytic.account,hours_qtt_non_invoiced:0
msgid "Uninvoiced Hours"
-msgstr ""
+msgstr "Ufakturerte timer"
#. module: account_analytic_analysis
#: field:account.analytic.account,hours_quantity:0
diff --git a/addons/account_analytic_default/__init__.py b/addons/account_analytic_default/__init__.py
index 5206ec18324..1734f02dc57 100644
--- a/addons/account_analytic_default/__init__.py
+++ b/addons/account_analytic_default/__init__.py
@@ -20,4 +20,5 @@
##############################################################################
import account_analytic_default
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account_analytic_default/__openerp__.py b/addons/account_analytic_default/__openerp__.py
index 9c3982990b3..3f735ebaa6c 100644
--- a/addons/account_analytic_default/__openerp__.py
+++ b/addons/account_analytic_default/__openerp__.py
@@ -19,11 +19,10 @@
#
##############################################################################
-
{
- 'name': 'Account Analytic Default',
- 'version': '1.0',
- 'category': 'Generic Modules/Accounting',
+ 'name' : 'Account Analytic Default',
+ 'version' : '1.0',
+ 'category' : 'Generic Modules/Accounting',
'description': """
Allows to automatically select analytic accounts based on criterions:
* Product
@@ -32,14 +31,15 @@ Allows to automatically select analytic accounts based on criterions:
* Company
* Date
""",
- 'author': 'Tiny',
- 'website': 'http://www.openerp.com',
- 'depends': ['account', 'sale'],
- 'init_xml': [],
+ 'author' : 'Tiny',
+ 'website' : 'http://www.openerp.com',
+ 'depends' : ['sale'],
+ 'init_xml' : [],
'update_xml': ['security/ir.model.access.csv', 'account_analytic_default_view.xml'],
- 'demo_xml': [],
+ 'demo_xml' : [],
'installable': True,
'active': False,
'certificate': '0074229833581',
}
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account_analytic_default/account_analytic_default.py b/addons/account_analytic_default/account_analytic_default.py
index 1db16ca8787..43e3d2eb248 100644
--- a/addons/account_analytic_default/account_analytic_default.py
+++ b/addons/account_analytic_default/account_analytic_default.py
@@ -19,10 +19,10 @@
#
##############################################################################
-from osv import fields,osv
-from osv import orm
import time
+from osv import fields,osv
+
class account_analytic_default(osv.osv):
_name = 'account.analytic.default'
_description = 'Analytic Distribution'
@@ -38,7 +38,8 @@ class account_analytic_default(osv.osv):
'date_start': fields.date('Start Date'),
'date_stop': fields.date('End Date'),
}
- def account_get(self, cr, uid, product_id=None, partner_id=None, user_id=None, date=None, context={}):
+
+ def account_get(self, cr, uid, product_id=None, partner_id=None, user_id=None, date=None, context=None):
domain = []
if product_id:
domain += ['|',('product_id','=',product_id)]
@@ -65,20 +66,22 @@ class account_analytic_default(osv.osv):
res = rec
best_index = index
return res
+
account_analytic_default()
class account_invoice_line(osv.osv):
_inherit = 'account.invoice.line'
_description = 'Invoice Line'
- def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, fposition=False, price_unit=False, address_invoice_id=False, currency_id=False, context={}):
- res_prod = super(account_invoice_line,self).product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, fposition, price_unit, address_invoice_id, currency_id=currency_id, context=context)
+ def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, fiscal_position=False, price_unit=False, address_invoice_id=False, currency_id=False, context=None):
+ res_prod = super(account_invoice_line,self).product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, fiscal_position, price_unit, address_invoice_id, currency_id=currency_id, context=context)
rec = self.pool.get('account.analytic.default').account_get(cr, uid, product, partner_id, uid, time.strftime('%Y-%m-%d'), context)
if rec:
res_prod['value'].update({'account_analytic_id':rec.analytic_id.id})
else:
res_prod['value'].update({'account_analytic_id':False})
return res_prod
+
account_invoice_line()
@@ -101,22 +104,20 @@ class sale_order_line(osv.osv):
_inherit = 'sale.order.line'
# Method overridden to set the analytic account by default on criterion match
- def invoice_line_create(self, cr, uid, ids, context={}):
+ def invoice_line_create(self, cr, uid, ids, context=None):
create_ids = super(sale_order_line,self).invoice_line_create(cr, uid, ids, context)
if not ids:
return create_ids
- sale_line_obj = self.browse(cr, uid, ids[0], context)
- pool_inv_line = self.pool.get('account.invoice.line')
-
- for line in pool_inv_line.browse(cr, uid, create_ids, context):
- rec = self.pool.get('account.analytic.default').account_get(cr, uid, line.product_id.id, sale_line_obj.order_id.partner_id.id, uid, time.strftime('%Y-%m-%d'), context)
+ sale_line = self.browse(cr, uid, ids[0], context)
+ inv_line_obj = self.pool.get('account.invoice.line')
+ anal_def_obj = self.pool.get('account.analytic.default')
+ for line in inv_line_obj.browse(cr, uid, create_ids, context):
+ rec = anal_def_obj.account_get(cr, uid, line.product_id.id, sale_line.order_id.partner_id.id, uid, time.strftime('%Y-%m-%d'), context)
if rec:
- pool_inv_line.write(cr, uid, [line.id], {'account_analytic_id':rec.analytic_id.id}, context=context)
+ inv_line_obj.write(cr, uid, [line.id], {'account_analytic_id':rec.analytic_id.id}, context=context)
return create_ids
sale_order_line()
-
-
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account_analytic_default/account_analytic_default_view.xml b/addons/account_analytic_default/account_analytic_default_view.xml
index a15ec5df775..d49fa04dffb 100644
--- a/addons/account_analytic_default/account_analytic_default_view.xml
+++ b/addons/account_analytic_default/account_analytic_default_view.xml
@@ -52,6 +52,7 @@
+
Analytic Defaults
account.analytic.default
@@ -59,10 +60,6 @@
tree,form
-
-
-
-
',False)])
if pids:
raise osv.except_osv(_('Error'), _('A model having this name and code already exists !'))
-
- res = self.pool.get('account.analytic.plan.line').search(cr, uid, [('plan_id','=',journal.plan_id.id)])
+
+ acct_anal_acct = self.pool.get('account.analytic.account')
+ acct_anal_plan_line_obj = self.pool.get('account.analytic.plan.line')
+ res = acct_anal_plan_line_obj.search(cr, uid, [('plan_id','=',journal.plan_id.id)])
for i in res:
total_per_plan = 0
- item = self.pool.get('account.analytic.plan.line').browse(cr, uid, i)
+ item = acct_anal_plan_line_obj.browse(cr, uid, i)
temp_list=['account1_ids','account2_ids','account3_ids','account4_ids','account5_ids','account6_ids']
for l in temp_list:
if vals.has_key(l):
for tempo in vals[l]:
- if self.pool.get('account.analytic.account').search(cr, uid, [('parent_id','child_of',[item.root_analytic_id.id]),('id','=',tempo[2]['analytic_account_id'])]):
+ if acct_anal_acct.search(cr, uid, [('parent_id','child_of',[item.root_analytic_id.id]),('id','=',tempo[2]['analytic_account_id'])]):
total_per_plan += tempo[2]['rate']
if total_per_plan < item.min_required or total_per_plan > item.max_required:
raise osv.except_osv(_('Value Error') ,_('The Total Should be Between %s and %s') % (str(item.min_required), str(item.max_required)))
return super(account_analytic_plan_instance, self).create(cr, uid, vals, context)
- def write(self, cr, uid, ids, vals, context={}, check=True, update_check=True):
+ def write(self, cr, uid, ids, vals, context=None, check=True, update_check=True):
this = self.browse(cr, uid, ids[0])
if this.plan_id and not vals.has_key('plan_id'):
#this instance is a model, so we have to create a new plan instance instead of modifying it
@@ -237,9 +237,9 @@ class account_analytic_plan_instance_line(osv.osv):
'rate':fields.float('Rate (%)', required=True),
}
_defaults = {
- 'rate': lambda *args: 100.0
+ 'rate': 100.0
}
- def name_get(self, cr, uid, ids, context={}):
+ def name_get(self, cr, uid, ids, context=None):
if not len(ids):
return []
reads = self.read(cr, uid, ids, ['analytic_account_id'], context)
@@ -256,6 +256,7 @@ class account_journal(osv.osv):
_columns = {
'plan_id':fields.many2one('account.analytic.plan', 'Analytic Plans'),
}
+
account_journal()
class account_invoice_line(osv.osv):
@@ -281,6 +282,7 @@ class account_invoice_line(osv.osv):
if rec and rec.analytics_id:
res_prod['value'].update({'analytics_id':rec.analytics_id.id})
return res_prod
+
account_invoice_line()
class account_move_line(osv.osv):
@@ -297,7 +299,7 @@ class account_move_line(osv.osv):
del(data['analytics_id'])
return data
- def create_analytic_lines(self, cr, uid, ids, context={}):
+ def create_analytic_lines(self, cr, uid, ids, context=None):
super(account_move_line, self).create_analytic_lines(cr, uid, ids, context)
analytic_line_obj = self.pool.get('account.analytic.line')
for line in self.browse(cr, uid, ids, context):
@@ -333,7 +335,7 @@ class account_invoice(osv.osv):
_name = "account.invoice"
_inherit="account.invoice"
- def line_get_convert(self, cr, uid, x, part, date, context={}):
+ def line_get_convert(self, cr, uid, x, part, date, context=None):
res=super(account_invoice,self).line_get_convert(cr, uid, x, part, date, context)
res['analytics_id']=x.get('analytics_id',False)
return res
@@ -349,6 +351,7 @@ class account_invoice(osv.osv):
sign = -1
iml = self.pool.get('account.invoice.line').move_line_get(cr, uid, inv.id)
+ acct_ins_obj = self.pool.get('account.analytic.plan.instance')
for il in iml:
if il['analytics_id']:
@@ -357,14 +360,14 @@ class account_invoice(osv.osv):
ref = inv.reference
else:
ref = self._convert_ref(cr, uid, inv.number)
- obj_move_line=self.pool.get('account.analytic.plan.instance').browse(cr, uid, il['analytics_id'])
- amount_calc=cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, il['price'], context={'date': inv.date_invoice}) * sign
- qty=il['quantity']
+ obj_move_line = acct_ins_obj.browse(cr, uid, il['analytics_id'])
+ amount_calc = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, il['price'], context={'date': inv.date_invoice}) * sign
+ qty = il['quantity']
il['analytic_lines']=[]
for line2 in obj_move_line.account_ids:
- amt=amount_calc * (line2.rate/100)
- qtty=qty* (line2.rate/100)
- al_vals={
+ amt = amount_calc * (line2.rate/100)
+ qtty = qty* (line2.rate/100)
+ al_vals = {
'name': il['name'],
'date': inv['date_invoice'],
'unit_amount':qtty,
@@ -393,23 +396,25 @@ class analytic_default(osv.osv):
_columns = {
'analytics_id': fields.many2one('account.analytic.plan.instance', 'Analytic Distribution'),
}
+
analytic_default()
class sale_order_line(osv.osv):
_inherit = 'sale.order.line'
# Method overridden to set the analytic account by default on criterion match
- def invoice_line_create(self, cr, uid, ids, context={}):
+ def invoice_line_create(self, cr, uid, ids, context=None):
create_ids = super(sale_order_line,self).invoice_line_create(cr, uid, ids, context)
if ids:
- sale_line_obj = self.browse(cr, uid, ids[0], context)
- pool_inv_line = self.pool.get('account.invoice.line')
-
- for line in pool_inv_line.browse(cr, uid, create_ids, context):
- rec = self.pool.get('account.analytic.default').account_get(cr, uid, line.product_id.id, sale_line_obj.order_id.partner_id.id, uid, time.strftime('%Y-%m-%d'), context)
+ sale_line = self.browse(cr, uid, ids[0], context)
+ inv_line_obj = self.pool.get('account.invoice.line')
+ acct_anal_def_obj = self.pool.get('account.analytic.default')
+
+ for line in inv_line_obj.browse(cr, uid, create_ids, context):
+ rec = acct_anal_def_obj.account_get(cr, uid, line.product_id.id, sale_line.order_id.partner_id.id, uid, time.strftime('%Y-%m-%d'), context)
if rec:
- pool_inv_line.write(cr, uid, [line.id], {'analytics_id':rec.analytics_id.id}, context=context)
+ inv_line_obj.write(cr, uid, [line.id], {'analytics_id':rec.analytics_id.id}, context=context)
return create_ids
sale_order_line()
diff --git a/addons/account_analytic_plans/account_analytic_plans_report.xml b/addons/account_analytic_plans/account_analytic_plans_report.xml
index ee2bb1e2a87..663e0eeab13 100644
--- a/addons/account_analytic_plans/account_analytic_plans_report.xml
+++ b/addons/account_analytic_plans/account_analytic_plans_report.xml
@@ -11,13 +11,6 @@
auto="False"
menu="False"/>
-
-
diff --git a/addons/account_analytic_plans/account_analytic_plans_view.xml b/addons/account_analytic_plans/account_analytic_plans_view.xml
index e93e3cd18a8..d5085b009da 100644
--- a/addons/account_analytic_plans/account_analytic_plans_view.xml
+++ b/addons/account_analytic_plans/account_analytic_plans_view.xml
@@ -89,7 +89,11 @@
-
+
+
+
+
+
@@ -124,16 +128,11 @@
-
-
-
-
-
-
+
account.analytic.plan.instance.line.form
account.analytic.plan.instance.line
@@ -234,7 +233,7 @@
-
+
account.analytic.default.form.plans
diff --git a/addons/account_analytic_plans/report/__init__.py b/addons/account_analytic_plans/report/__init__.py
index 512ea3239d2..2d401a6f1d8 100644
--- a/addons/account_analytic_plans/report/__init__.py
+++ b/addons/account_analytic_plans/report/__init__.py
@@ -20,5 +20,6 @@
##############################################################################
import crossovered_analytic
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account_analytic_plans/report/crossovered_analytic.py b/addons/account_analytic_plans/report/crossovered_analytic.py
index 8f5d4b33317..e0414e4c954 100644
--- a/addons/account_analytic_plans/report/crossovered_analytic.py
+++ b/addons/account_analytic_plans/report/crossovered_analytic.py
@@ -19,20 +19,20 @@
#
##############################################################################
-import pooler
import time
+
from report import report_sxw
class crossovered_analytic(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
- super(crossovered_analytic, self).__init__(cr, uid, name, context=context)
+ super(crossovered_analytic, self).__init__(cr, uid, name, context = context)
self.localcontext.update( {
'time': time,
'lines': self._lines,
'ref_lines' : self._ref_lines,
'find_children':self.find_children,
})
- self.base_amount=0.00
+ self.base_amount = 0.00
def find_children(self,ref_ids):
to_return_ids = []
@@ -153,23 +153,23 @@ class crossovered_analytic(report_sxw.rml_parse):
if not form['empty_line']:
res.append(result)
else:
- result={}
- res=[]
- result['id']=acc_id
+ result = {}
+ res = []
+ result['id'] = acc_id
data_account = acc_pool.browse(self.cr,self.uid,acc_id)
- result['acc_name']=data_account.name
+ result['acc_name'] = data_account.name
result['code'] = data_account.code
- result['amt']=result['qty']=result['perc']=0.00
+ result['amt'] = result['qty'] = result['perc'] = 0.00
if not form['empty_line']:
res.append(result)
for item in res:
- obj_acc=acc_pool.name_get(self.cr,self.uid,[item['id']])
- item['acc_name']=obj_acc[0][1]
+ obj_acc = acc_pool.name_get(self.cr,self.uid,[item['id']])
+ item['acc_name'] = obj_acc[0][1]
final.append(item)
return final
-report_sxw.report_sxw('report.account.analytic.account.crossovered.analytic', 'account.analytic.account', 'addons/account_analytic_plans/report/crossovered_analytic.rml',parser=crossovered_analytic, header=False)
+report_sxw.report_sxw('report.account.analytic.account.crossovered.analytic', 'account.analytic.account', 'addons/account_analytic_plans/report/crossovered_analytic.rml',parser = crossovered_analytic, header = False)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account_analytic_plans/wizard/__init__.py b/addons/account_analytic_plans/wizard/__init__.py
index c91a0251b33..f5c73701ae1 100644
--- a/addons/account_analytic_plans/wizard/__init__.py
+++ b/addons/account_analytic_plans/wizard/__init__.py
@@ -21,5 +21,6 @@
import analytic_plan_create_model
import account_crossovered_analytic
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account_analytic_plans/wizard/account_crossovered_analytic_view.xml b/addons/account_analytic_plans/wizard/account_crossovered_analytic_view.xml
index 8c860169f56..5b20c2a6448 100644
--- a/addons/account_analytic_plans/wizard/account_crossovered_analytic_view.xml
+++ b/addons/account_analytic_plans/wizard/account_crossovered_analytic_view.xml
@@ -8,17 +8,19 @@
form
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/account_anglo_saxon/__init__.py b/addons/account_anglo_saxon/__init__.py
index dd9a9262710..07b514d0327 100644
--- a/addons/account_anglo_saxon/__init__.py
+++ b/addons/account_anglo_saxon/__init__.py
@@ -22,4 +22,5 @@ import product
import stock
import purchase
import invoice
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/account_anglo_saxon/__openerp__.py b/addons/account_anglo_saxon/__openerp__.py
index 7a867d2a6a9..735bc9e0007 100644
--- a/addons/account_anglo_saxon/__openerp__.py
+++ b/addons/account_anglo_saxon/__openerp__.py
@@ -17,11 +17,12 @@
# along with this program. If not, see .
#
##############################################################################
+
{
- "name" : "Stock Accounting for Anglo Saxon countries",
- "version" : "1.2",
- "author" : "Tiny, Veritos",
- "website" : "http://tinyerp.com - http://veritos.nl",
+ "name" : "Stock Accounting for Anglo Saxon countries",
+ "version" : "1.2",
+ "author" : "Tiny, Veritos",
+ "website" : "http://tinyerp.com - http://veritos.nl",
"description" : """This module will support the Anglo-Saxons accounting methodology by
changing the accounting logic with stock transactions. The difference between the Anglo-Saxon accounting countries
and the Rhine or also called Continental accounting countries is the moment of taking the Cost of Goods Sold versus Cost of Sales.
@@ -29,12 +30,13 @@
This module will add this functionality by using a interim account, to store the value of shipped goods and will contra book this interim account
when the invoice is created to transfer this amount to the debtor or creditor account.
Secondly, price differences between actual purchase price and fixed product standard price are booked on a seperate account""",
- "depends" : ["product", "account", "sale", "purchase", "stock"],
- "category" : "Generic Modules/Inventory Control",
- "init_xml" : [],
- "demo_xml" : [],
+ "depends" : ["product", "purchase"],
+ "category" : "Generic Modules/Inventory Control",
+ "init_xml" : [],
+ "demo_xml" : [],
"update_xml" : ["product_view.xml",],
- "active": False,
+ "active" : False,
"installable": True
}
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/account_anglo_saxon/product_view.xml b/addons/account_anglo_saxon/product_view.xml
index f744d5084b5..71288ad5c3b 100644
--- a/addons/account_anglo_saxon/product_view.xml
+++ b/addons/account_anglo_saxon/product_view.xml
@@ -5,13 +5,11 @@
product.normal.form.inherit.stock
product.product
form
-
+
-
-
@@ -20,13 +18,11 @@
product.template.product.form.inherit
product.template
form
-
+
-
-
@@ -41,8 +37,6 @@
-
-
diff --git a/addons/account_budget/__init__.py b/addons/account_budget/__init__.py
index 4330278d2be..4eea62cb2d8 100644
--- a/addons/account_budget/__init__.py
+++ b/addons/account_budget/__init__.py
@@ -22,5 +22,6 @@
import crossovered_budget
import report
import wizard
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account_budget/crossovered_budget.py b/addons/account_budget/crossovered_budget.py
index 187d4999c0a..209e42ff32c 100644
--- a/addons/account_budget/crossovered_budget.py
+++ b/addons/account_budget/crossovered_budget.py
@@ -20,14 +20,9 @@
##############################################################################
from osv import osv,fields
-import tools
-import netsvc
-from mx import DateTime
-import time
import datetime
from tools.translate import _
-
def strToDate(dt):
dt_date=datetime.date(int(dt[0:4]),int(dt[5:7]),int(dt[8:10]))
return dt_date
@@ -127,13 +122,6 @@ class crossovered_budget(osv.osv):
'creating_user_id': lambda self,cr,uid,context: uid,
}
-# def action_set_to_draft(self, cr, uid, ids, *args):
-# self.write(cr, uid, ids, {'state': 'draft'})
-# wf_service = netsvc.LocalService('workflow')
-# for id in ids:
-# wf_service.trg_create(uid, self._name, id, cr)
-# return True
-
def budget_confirm(self, cr, uid, ids, *args):
self.write(cr, uid, ids, {
'state':'confirm'
diff --git a/addons/account_cancel/__openerp__.py b/addons/account_cancel/__openerp__.py
index b38865f04ef..fda719a8178 100644
--- a/addons/account_cancel/__openerp__.py
+++ b/addons/account_cancel/__openerp__.py
@@ -19,17 +19,16 @@
#
##############################################################################
-
{
"name" : "Account Cancel",
"version" : "1.1",
- "depends" : ["account"],
"author" : "Tiny",
"category": 'Generic Modules/Accounting',
"description": """
- Module Add Allow cancelling entries field on form view of account journal if it set to true it allows user to cancel entries & invoices.
+ Module adds 'Allow cancelling entries' field on form view of account journal. If set to true it allows user to cancel entries & invoices.
""",
'website': 'http://www.openerp.com',
+ "depends" : ["account"],
'init_xml': [],
'update_xml': ['account_cancel_view.xml' ],
'demo_xml': [],
@@ -37,4 +36,5 @@
'active': False,
}
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account_cancel/account_cancel_view.xml b/addons/account_cancel/account_cancel_view.xml
index 82eae01347c..bcb9fb4d34e 100644
--- a/addons/account_cancel/account_cancel_view.xml
+++ b/addons/account_cancel/account_cancel_view.xml
@@ -7,7 +7,7 @@
form
-
+
diff --git a/addons/account_coda/__init__.py b/addons/account_coda/__init__.py
index 8f76e8912b4..758417591e3 100644
--- a/addons/account_coda/__init__.py
+++ b/addons/account_coda/__init__.py
@@ -21,5 +21,6 @@
import account_coda
import wizard
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account_coda/__openerp__.py b/addons/account_coda/__openerp__.py
index 5582955bf4f..2a7f30248bb 100644
--- a/addons/account_coda/__openerp__.py
+++ b/addons/account_coda/__openerp__.py
@@ -20,23 +20,24 @@
##############################################################################
{
- "name":"Account CODA - import bank statements from coda file",
- "version":"1.0",
- "author":"Tiny",
- "category":"Account CODA",
- "description":"""
+ "name" : "Account CODA - import bank statements from coda file",
+ "version" : "1.0",
+ "author" : "Tiny",
+ "category" : "Account CODA",
+ "description": """
Module provides functionality to import
bank statements from coda files.
""",
- "depends":["base", "account"],
- "demo_xml":["account_coda_demo.xml"],
- "init_xml":[],
- "update_xml" : ["security/ir.model.access.csv",
+ "depends" : ["account"],
+ "demo_xml" : [],
+ "init_xml" : [],
+ "update_xml": ["security/ir.model.access.csv",
"wizard/account_coda_import.xml",
"account_coda_view.xml"],
- "active":False,
- "installable":True,
+ "active" : False,
+ "installable" : True,
}
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account_coda/account_coda.py b/addons/account_coda/account_coda.py
index 1cfd75ffb63..43d3db2a0ae 100644
--- a/addons/account_coda/account_coda.py
+++ b/addons/account_coda/account_coda.py
@@ -26,25 +26,26 @@ class account_coda(osv.osv):
_name = "account.coda"
_description = "coda for an Account"
_columns = {
- 'name': fields.binary('Coda file', readonly=True ,help="Store the detail of bank statements"),
- 'statement_ids': fields.one2many('account.bank.statement','coda_id','Generated Bank Statements', readonly=True),
+ 'name': fields.binary('Coda file', readonly=True, help="Store the detail of bank statements"),
+ 'statement_ids': fields.one2many('account.bank.statement', 'coda_id', 'Generated Bank Statements', readonly=True),
'note': fields.text('Import log', readonly=True),
- 'journal_id': fields.many2one('account.journal','Journal', readonly=True, select=True,help="Bank Journal"),
+ 'journal_id': fields.many2one('account.journal', 'Journal', readonly=True, select=True, help="Bank Journal"),
'date': fields.date('Date', readonly=True, select=True, help="Import Date"),
- 'user_id': fields.many2one('res.users','User', readonly=True, select=True),
+ 'user_id': fields.many2one('res.users', 'User', readonly=True, select=True),
}
_defaults = {
'date': time.strftime('%Y-%m-%d'),
'user_id': lambda self,cr,uid,context: uid,
}
+
account_coda()
class account_bank_statement(osv.osv):
_inherit = "account.bank.statement"
_columns = {
- 'coda_id':fields.many2one('account.coda','Coda'),
+ 'coda_id':fields.many2one('account.coda', 'Coda'),
}
+
account_bank_statement()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/account_coda/statement_coda.txt b/addons/account_coda/test_coda_file/statement_coda.txt
similarity index 100%
rename from addons/account_coda/statement_coda.txt
rename to addons/account_coda/test_coda_file/statement_coda.txt
diff --git a/addons/account_coda/wizard/account_coda_import.py b/addons/account_coda/wizard/account_coda_import.py
index de817d1a40d..297534542b1 100644
--- a/addons/account_coda/wizard/account_coda_import.py
+++ b/addons/account_coda/wizard/account_coda_import.py
@@ -21,7 +21,6 @@
##############################################################################
import time
-from mx import DateTime
import base64
from osv import fields
@@ -54,7 +53,8 @@ class account_coda_import(osv.osv_memory):
'coda': fields.binary('Coda File', required=True),
'note':fields.text('Log'),
}
- def coda_parsing(self, cr, uid, ids, context):
+
+ def coda_parsing(self, cr, uid, ids, context=None):
journal_obj=self.pool.get('account.journal')
account_period_obj = self.pool.get('account.period')
@@ -65,10 +65,12 @@ class account_coda_import(osv.osv_memory):
statement_reconcile_obj = self.pool.get('account.bank.statement.reconcile')
account_coda_obj = self.pool.get('account.coda')
mod_obj = self.pool.get('ir.model.data')
-
+
+ if not context:
+ context = {}
+
data = self.read(cr, uid, ids)[0]
-
codafile = data['coda']
journal_code = journal_obj.browse(cr, uid, data['journal_id'], context).code
@@ -265,6 +267,7 @@ class account_coda_import(osv.osv_memory):
context.update({ 'statment_ids':bkst_list})
model_data_ids = mod_obj.search(cr, uid, [('model', '=', 'ir.ui.view'), ('name', '=', 'account_coda_note_view')], context=context)
resource_id = mod_obj.read(cr, uid, model_data_ids, fields=['res_id'], context=context)[0]['res_id']
+
return {
'name': _('Result'),
'res_id': ids[0],
@@ -277,7 +280,10 @@ class account_coda_import(osv.osv_memory):
'context': context,
'type': 'ir.actions.act_window',
}
- def action_open_window(self, cr, uid, data, context):
+
+ def action_open_window(self, cr, uid, data, context=None):
+ if not context:
+ cotext = {}
return {
'domain':"[('id','in',%s)]"%(context.get('statment_ids', False)),
'name': 'Statement',
@@ -287,6 +293,7 @@ class account_coda_import(osv.osv_memory):
'view_id': False,
'type': 'ir.actions.act_window',
}
+
account_coda_import()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/account_followup/__init__.py b/addons/account_followup/__init__.py
index 3065bef0130..b0067573a2f 100644
--- a/addons/account_followup/__init__.py
+++ b/addons/account_followup/__init__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,14 +15,13 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
+# along with this program. If not, see .
#
##############################################################################
-import followup
-import followup_report
+import account_followup
+import account_followup_report
import wizard
import report
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/account_followup/__openerp__.py b/addons/account_followup/__openerp__.py
index 81a5cb79cee..5aefa0abc96 100644
--- a/addons/account_followup/__openerp__.py
+++ b/addons/account_followup/__openerp__.py
@@ -19,7 +19,6 @@
#
##############################################################################
-
{
'name': 'Accounting follow-ups management',
'version': '1.0',
@@ -36,11 +35,10 @@
It will generate a PDF with all the letters according the the
different levels of recall defined. You can define different policies
- for different companies.
-
+ for different companies. You can send also mail to the customer.
Note that if you want to change the followup level for a given partner/account entry, you can do it in the menu:
- Financial Management/Reporting/Follow-Ups/All receivable entries
+ Accounting/Reporting/Follow-Ups/All receivable entries
""",
'author': 'Tiny',
@@ -50,13 +48,14 @@
'update_xml': [
'security/ir.model.access.csv',
'wizard/account_followup_print_view.xml',
- 'followup_report_view.xml',
- 'followup_view.xml',
- 'followup_data.xml'
+ 'account_followup_report.xml',
+ 'account_followup_view.xml',
+ 'account_followup_data.xml'
],
- 'demo_xml': ['followup_demo.xml'],
+ 'demo_xml': ['account_followup_demo.xml'],
'installable': True,
'active': False,
'certificate': '0072481076453',
}
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account_followup/followup.py b/addons/account_followup/account_followup.py
similarity index 89%
rename from addons/account_followup/followup.py
rename to addons/account_followup/account_followup.py
index c8bf9537f13..02986acb184 100644
--- a/addons/account_followup/followup.py
+++ b/addons/account_followup/account_followup.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
+# along with this program. If not, see .
#
##############################################################################
@@ -23,13 +23,17 @@ from osv import fields, osv
class followup(osv.osv):
_name = 'account_followup.followup'
- _description = 'Follow-Up'
+ _description = 'Account Follow Up'
_columns = {
'name': fields.char('Name', size=64, required=True),
'description': fields.text('Description'),
'followup_line': fields.one2many('account_followup.followup.line', 'followup_id', 'Follow-Up'),
'company_id': fields.many2one('res.company', 'Company'),
}
+ _defaults = {
+ 'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'account_followup.followup', context=c),
+ }
+
followup()
class followup_line(osv.osv):
@@ -42,26 +46,27 @@ class followup_line(osv.osv):
'start': fields.selection([('days','Net Days'),('end_of_month','End of Month')], 'Type of Term', size=64, required=True),
'followup_id': fields.many2one('account_followup.followup', 'Follow Ups', required=True, ondelete="cascade"),
'description': fields.text('Printed Message', translate=True),
- }
+ }
+
followup_line()
class account_move_line(osv.osv):
- _name = 'account.move.line'
_inherit = 'account.move.line'
_columns = {
'followup_line_id': fields.many2one('account_followup.followup.line', 'Follow-up Level'),
'followup_date': fields.date('Latest Follow-up'),
- }
+ }
+
account_move_line()
class res_company(osv.osv):
_inherit = "res.company"
_columns = {
'follow_up_msg' : fields.text('Follow-up Message', translate=True),
- }
+ }
_defaults = {
- 'overdue_msg': lambda *a: '''
+ 'overdue_msg': '''
Date : %(date)s
Dear %(partner_name)s,
@@ -75,8 +80,8 @@ Thanks,
%(user_signature)s
%(company_name)s
'''
- }
+ }
+
res_company()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/account_followup/followup_data.xml b/addons/account_followup/account_followup_data.xml
similarity index 100%
rename from addons/account_followup/followup_data.xml
rename to addons/account_followup/account_followup_data.xml
diff --git a/addons/account_followup/followup_demo.xml b/addons/account_followup/account_followup_demo.xml
similarity index 100%
rename from addons/account_followup/followup_demo.xml
rename to addons/account_followup/account_followup_demo.xml
diff --git a/addons/account_followup/followup_report.py b/addons/account_followup/account_followup_report.py
similarity index 100%
rename from addons/account_followup/followup_report.py
rename to addons/account_followup/account_followup_report.py
diff --git a/addons/account_followup/followup_report_view.xml b/addons/account_followup/account_followup_report.xml
similarity index 100%
rename from addons/account_followup/followup_report_view.xml
rename to addons/account_followup/account_followup_report.xml
diff --git a/addons/account_followup/followup_view.xml b/addons/account_followup/account_followup_view.xml
similarity index 85%
rename from addons/account_followup/followup_view.xml
rename to addons/account_followup/account_followup_view.xml
index ae31f7253a2..50c1cb5df34 100644
--- a/addons/account_followup/followup_view.xml
+++ b/addons/account_followup/account_followup_view.xml
@@ -1,7 +1,7 @@
-
+
account_followup.followup.line.tree
account_followup.followup.line
@@ -15,40 +15,39 @@
-
+
account_followup.followup.line.form
account_followup.followup.line
form
-
-
-
-
+
+
+
+
-
+
-
-
+
-
-
+
+
-
+
account_followup.followup.form
account_followup.followup
form
-
-
+
+
-
-
+
+
@@ -66,17 +65,30 @@
+
+ account.followup.select
+ account_followup.followup
+ search
+
+
+
+
+
+
+
+
+
Follow-Ups
ir.actions.act_window
account_followup.followup
+
form
-
+
-
-
+
account.move.line.partner.tree
account.move.line
@@ -99,7 +111,7 @@
-
+
account.move.line.form.followup
account.move.line
@@ -111,7 +123,7 @@
-
+
account.move.line.tree.followup
account.move.line
@@ -123,17 +135,17 @@
-
+
-
+
-
+
-
+
-
+
-
+
res.company.followup.form.inherit
@@ -146,5 +158,6 @@
+
diff --git a/addons/account_followup/i18n/bs.po b/addons/account_followup/i18n/bs.po
index e7a438ee562..bcf9815bf0e 100644
--- a/addons/account_followup/i18n/bs.po
+++ b/addons/account_followup/i18n/bs.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-11-17 09:32+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
+"PO-Revision-Date: 2010-07-07 09:15+0000\n"
+"Last-Translator: Bojan Markovic \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: 2010-06-22 04:02+0000\n"
+"X-Launchpad-Export-Date: 2010-07-08 03:50+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_followup
@@ -29,7 +29,7 @@ msgstr "Partneri"
#. module: account_followup
#: rml:account_followup.followup.print:0
msgid "Customer Ref :"
-msgstr ""
+msgstr "Refernca kupca:"
#. module: account_followup
#: model:ir.actions.act_window,name:account_followup.act_account_partner_account_move_payable_all
@@ -102,7 +102,7 @@ msgstr ""
#. module: account_followup
#: wizard_view:account_followup.followup.print.all,next:0
msgid "%(followup_amount)s: Total Amount Due"
-msgstr ""
+msgstr "%(followup_amount): Ukupan dospjeli iznos"
#. module: account_followup
#: view:account_followup.followup.line:0
@@ -280,12 +280,12 @@ msgstr "Linije"
#: model:ir.actions.wizard,name:account_followup.action_account_followup_all_wizard
#: model:ir.ui.menu,name:account_followup.account_followup_wizard_menu
msgid "Send followups"
-msgstr ""
+msgstr "Pošaljite napomene"
#. module: account_followup
#: field:account.move.line,followup_line_id:0
msgid "Follow-up Level"
-msgstr ""
+msgstr "Stupanj napomene"
#. module: account_followup
#: field:account_followup.stat,credit:0
@@ -331,7 +331,7 @@ msgstr ""
#. module: account_followup
#: wizard_view:account_followup.followup.print.all,next:0
msgid "%(company_currency)s: User's Company Currency"
-msgstr ""
+msgstr "%(company_currency): Valuta poduzeća korisnika"
#. module: account_followup
#: field:account_followup.stat,balance:0
@@ -412,7 +412,7 @@ msgstr "Dospijeće"
#. module: account_followup
#: model:ir.actions.report.xml,name:account_followup.account_followup_followup_report
msgid "Followup Report"
-msgstr ""
+msgstr "Izvještaj o napomenama"
#. module: account_followup
#: model:account_followup.followup.line,description:account_followup.demo_followup_line3
@@ -454,7 +454,7 @@ msgstr "Sekvenca"
#. module: account_followup
#: wizard_view:account_followup.followup.print.all,next:0
msgid "%(heading)s: Move line header"
-msgstr ""
+msgstr "%(heading)s: Zaglavlje retka izmjena"
#. module: account_followup
#: view:account_followup.followup.line:0
diff --git a/addons/account_followup/report/report_followup_print.py b/addons/account_followup/report/report_followup_print.py
index 4f1df09c302..08c572a5ba9 100644
--- a/addons/account_followup/report/report_followup_print.py
+++ b/addons/account_followup/report/report_followup_print.py
@@ -30,12 +30,12 @@ class report_rappel(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
super(report_rappel, self).__init__(cr, uid, name, context=context)
self.localcontext.update( {
- 'time' : time,
+ 'time': time,
'ids_to_objects': self._ids_to_objects,
- 'adr_get' : self._adr_get,
- 'getLines' : self._lines_get,
- 'get_text' : self._get_text
- })
+ 'adr_get': self._adr_get,
+ 'getLines': self._lines_get,
+ 'get_text': self._get_text
+ })
def _ids_to_objects(self, partners_ids):
pool = pooler.get_pool(self.cr.dbname)
@@ -91,10 +91,8 @@ class report_rappel(report_sxw.rml_parse):
return text
-
report_sxw.report_sxw('report.account_followup.followup.print',
'res.partner', 'addons/account_followup/report/rappel.rml',
parser=report_rappel)
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/account_followup/wizard/account_followup_print.py b/addons/account_followup/wizard/account_followup_print.py
index d7327638669..868249365ee 100644
--- a/addons/account_followup/wizard/account_followup_print.py
+++ b/addons/account_followup/wizard/account_followup_print.py
@@ -34,25 +34,32 @@ class account_followup_print(osv.osv_memory):
}
def _get_followup(self, cr, uid, context=None):
+ if context is None:
+ context = {}
+ if context.get('active_model', 'ir.ui.menu') == 'account_followup.followup':
+ return context.get('active_id', False)
company_id = self.pool.get('res.users').browse(cr, uid, uid).company_id.id
- tmp = self.pool.get('account_followup.followup').search(cr, uid, [('company_id', '=', company_id)])
- return tmp and tmp[0] or False
+ followp_id = self.pool.get('account_followup.followup').search(cr, uid, [('company_id', '=', company_id)], context=context)
+ return followp_id and followp_id[0] or False
def do_continue(self, cr, uid, ids, context=None):
mod_obj = self.pool.get('ir.model.data')
+
+ if context is None:
+ context = {}
data = self.read(cr, uid, ids, [])[0]
model_data_ids = mod_obj.search(cr, uid, [('model','=','ir.ui.view'),('name','=','view_account_followup_print_all')], context=context)
resource_id = mod_obj.read(cr, uid, model_data_ids, fields=['res_id'], context=context)[0]['res_id']
context.update({'followup_id': data['followup_id'], 'date':data['date']})
return {
- 'name': _('Select partners'),
- 'view_type': 'form',
- 'context': context,
- 'view_mode': 'tree,form',
- 'res_model': 'account.followup.print.all',
- 'views': [(resource_id,'form')],
- 'type': 'ir.actions.act_window',
- 'target': 'new',
+ 'name': _('Select Partners'),
+ 'view_type': 'form',
+ 'context': context,
+ 'view_mode': 'tree,form',
+ 'res_model': 'account.followup.print.all',
+ 'views': [(resource_id,'form')],
+ 'type': 'ir.actions.act_window',
+ 'target': 'new',
}
_defaults = {
@@ -74,10 +81,12 @@ class account_followup_print_all(osv.osv_memory):
'summary': fields.text('Summary', required=True, readonly=True)
}
def _get_summary(self, cr, uid, context=None):
+ if context is None:
+ context = {}
return context.get('summary', '')
def _get_partners(self, cr, uid, context=None):
- return self._get_partners_followp(cr, uid, [], context)['partner_ids']
+ return self._get_partners_followp(cr, uid, [], context=context)['partner_ids']
def _get_msg(self, cr, uid, context=None):
return self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.follow_up_msg
@@ -168,6 +177,9 @@ class account_followup_print_all(osv.osv_memory):
move_obj = self.pool.get('account.move.line')
user_obj = self.pool.get('res.users')
line_obj = self.pool.get('account_followup.stat')
+
+ if context is None:
+ context = {}
data = self.read(cr, uid, ids, [])[0]
model_data_ids = mod_obj.search(cr, uid, [('model','=','ir.ui.view'),('name','=','view_account_followup_print_all_msg')], context=context)
resource_id = mod_obj.read(cr, uid, model_data_ids, fields=['res_id'], context=context)[0]['res_id']
@@ -252,8 +264,9 @@ class account_followup_print_all(osv.osv_memory):
context.update({'summary': summary})
else:
context.update({'summary': '\n\n\nE-Mail has not been sent to any partner. If you want to send it, please tick send email confirmation on wizard.'})
+
return {
- 'name': _('Summary'),
+ 'name': _('Follwoup Summary'),
'view_type': 'form',
'context': context,
'view_mode': 'tree,form',
@@ -265,6 +278,8 @@ class account_followup_print_all(osv.osv_memory):
}
def do_print(self, cr, uid, ids, context=None):
+ if context is None:
+ context = {}
data = self.read(cr, uid, ids, [])[0]
res = self._get_partners_followp(cr, uid, ids, context)['to_update']
to_update = res
@@ -284,6 +299,7 @@ class account_followup_print_all(osv.osv_memory):
'model': 'account_followup.followup',
'form': data
}
+
return {
'type': 'ir.actions.report.xml',
'report_name': 'account_followup.followup.print',
diff --git a/addons/account_followup/wizard/account_followup_print_view.xml b/addons/account_followup/wizard/account_followup_print_view.xml
index 9e0c34c8bf5..a97e54347cb 100644
--- a/addons/account_followup/wizard/account_followup_print_view.xml
+++ b/addons/account_followup/wizard/account_followup_print_view.xml
@@ -2,17 +2,6 @@
-
-
-
account.followup.print.form
account.followup.print
diff --git a/addons/account_invoice_layout/i18n/bs.po b/addons/account_invoice_layout/i18n/bs.po
index fadbbad845e..91f8f8eff7b 100644
--- a/addons/account_invoice_layout/i18n/bs.po
+++ b/addons/account_invoice_layout/i18n/bs.po
@@ -7,172 +7,173 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-02-03 06:45+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
+"PO-Revision-Date: 2010-07-07 09:53+0000\n"
+"Last-Translator: Bojan Markovic \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: 2010-06-22 04:10+0000\n"
+"X-Launchpad-Export-Date: 2010-07-08 03:50+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_invoice_layout
#: selection:account.invoice.line,state:0
msgid "Sub Total"
-msgstr ""
+msgstr "Suma"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Invoice Date:"
-msgstr ""
+msgstr "Datum Fakture:"
#. module: account_invoice_layout
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
+"Naziv objekta mora počinjati sa x_ i ne smije sadržavati specijalne znakove!"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Cancelled Invoice"
-msgstr ""
+msgstr "Poništena faktura"
#. module: account_invoice_layout
#: selection:account.invoice.line,state:0
#: field:notify.message,name:0
msgid "Title"
-msgstr ""
+msgstr "Naslov"
#. module: account_invoice_layout
#: model:ir.actions.wizard,name:account_invoice_layout.wizard_notify_message
msgid "Invoices with Layout and Message"
-msgstr ""
+msgstr "Fakture sa izgledom i porukom"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Disc. (%)"
-msgstr ""
+msgstr "Rab. (%)"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "(Incl. taxes):"
-msgstr ""
+msgstr "(Uklj. porez):"
#. module: account_invoice_layout
#: selection:account.invoice.line,state:0
msgid "Note"
-msgstr ""
+msgstr "Bilješka"
#. module: account_invoice_layout
#: wizard_button:wizard.notify_message,init,print:0
msgid "Print"
-msgstr ""
+msgstr "Ispis"
#. module: account_invoice_layout
#: help:notify.message,msg:0
msgid ""
"This notification will appear at the bottom of the Invoices when printed."
-msgstr ""
+msgstr "Ova napomena će se pojaviti na dnu fakture prilikom ispisa."
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Unit Price"
-msgstr ""
+msgstr "Jedinična cijena"
#. module: account_invoice_layout
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Neispravan naziv modela u definiciji zadatka."
#. module: account_invoice_layout
#: model:ir.model,name:account_invoice_layout.model_notify_message
msgid "Notify By Messages"
-msgstr ""
+msgstr "Napomeni po porukama"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "PRO-FORMA"
-msgstr ""
+msgstr "PRO-FORMA"
#. module: account_invoice_layout
#: field:account.invoice,abstract_line_ids:0
msgid "Invoice Lines"
-msgstr ""
+msgstr "Stavke fakture"
#. module: account_invoice_layout
#: view:account.invoice.line:0
msgid "Seq."
-msgstr ""
+msgstr "Sek."
#. module: account_invoice_layout
#: model:ir.ui.menu,name:account_invoice_layout.menu_finan_config_notify_message
msgid "Notification Message"
-msgstr ""
+msgstr "Poruka napomene"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Customer Ref:"
-msgstr ""
+msgstr "Referenca kupca"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid ")"
-msgstr ""
+msgstr ")"
#. module: account_invoice_layout
#: field:account.invoice.line,state:0
msgid "Type"
-msgstr ""
+msgstr "Vrsta"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Price"
-msgstr ""
+msgstr "Cijena"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "/ ("
-msgstr ""
+msgstr "/ ("
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Taxes:"
-msgstr ""
+msgstr "Porezi:"
#. module: account_invoice_layout
#: field:account.invoice.line,functional_field:0
msgid "Source Account"
-msgstr ""
+msgstr "Izvorni konto"
#. module: account_invoice_layout
#: model:ir.actions.act_window,name:account_invoice_layout.notify_mesage_tree_form
msgid "Write Messages"
-msgstr ""
+msgstr "Unesi poruke"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Base"
-msgstr ""
+msgstr "Osnovica"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Fax :"
-msgstr ""
+msgstr "Fax :"
#. module: account_invoice_layout
#: field:notify.message,msg:0
msgid "Special Message"
-msgstr ""
+msgstr "Posebna poruka"
#. module: account_invoice_layout
#: view:notify.message:0
msgid "Write a notification or a wishful message."
-msgstr ""
+msgstr "Unesi napomenu ili molbu."
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Tel. :"
-msgstr ""
+msgstr "Tel. :"
#. module: account_invoice_layout
#: constraint:ir.ui.view:0
@@ -187,77 +188,77 @@ msgstr ""
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Document:"
-msgstr ""
+msgstr "Dokument:"
#. module: account_invoice_layout
#: wizard_view:wizard.notify_message,init:0
msgid "Select Message"
-msgstr ""
+msgstr "Odaberi poruku"
#. module: account_invoice_layout
#: view:notify.message:0
msgid "Messages"
-msgstr ""
+msgstr "Poruke"
#. module: account_invoice_layout
#: selection:account.invoice.line,state:0
msgid "Product"
-msgstr ""
+msgstr "Proizvod"
#. module: account_invoice_layout
#: model:ir.actions.report.xml,name:account_invoice_layout.account_invoices_1
msgid "Invoices with Layout"
-msgstr ""
+msgstr "Fakture sa izgledom"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Description / Taxes"
-msgstr ""
+msgstr "Opis / Porezi"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Amount"
-msgstr ""
+msgstr "Iznos"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Description/Taxes"
-msgstr ""
+msgstr "Opis/Porezi"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Draft Invoice"
-msgstr ""
+msgstr "Predračun"
#. module: account_invoice_layout
#: field:account.invoice.line,sequence:0
msgid "Sequence Number"
-msgstr ""
+msgstr "Broj sekvence"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Quantity"
-msgstr ""
+msgstr "Količina"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Refund"
-msgstr ""
+msgstr "Povrat"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "VAT :"
-msgstr ""
+msgstr "PDV :"
#. module: account_invoice_layout
#: selection:account.invoice.line,state:0
msgid "Separator Line"
-msgstr ""
+msgstr "Linija za razdvajanje"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Supplier Invoice"
-msgstr ""
+msgstr "Faktura dobavljača"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
@@ -267,7 +268,7 @@ msgstr ""
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Tax"
-msgstr ""
+msgstr "Porez"
#. module: account_invoice_layout
#: model:ir.module.module,shortdesc:account_invoice_layout.module_meta_information
@@ -277,34 +278,34 @@ msgstr ""
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Total (Excl. taxes):"
-msgstr ""
+msgstr "Ukupno (bez poreza):"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Invoice"
-msgstr ""
+msgstr "Faktura"
#. module: account_invoice_layout
#: wizard_button:wizard.notify_message,init,end:0
msgid "Cancel"
-msgstr ""
+msgstr "Poništi"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Supplier Refund"
-msgstr ""
+msgstr "Povrat dobavljača"
#. module: account_invoice_layout
#: wizard_field:wizard.notify_message,init,message:0
msgid "Message"
-msgstr ""
+msgstr "Poruka"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Total"
-msgstr ""
+msgstr "Ukupno"
#. module: account_invoice_layout
#: model:ir.ui.menu,name:account_invoice_layout.menu_notify_mesage_tree_form
msgid "All Notification Messages"
-msgstr ""
+msgstr "Sve napomene"
diff --git a/addons/account_payment/account_payment_view.xml b/addons/account_payment/account_payment_view.xml
index cb6c29aa47f..29798d34b91 100644
--- a/addons/account_payment/account_payment_view.xml
+++ b/addons/account_payment/account_payment_view.xml
@@ -299,8 +299,8 @@
form
-
-
+
+
diff --git a/addons/account_report/i18n/bs.po b/addons/account_report/i18n/bs.po
index a7820881168..3fd898408ff 100644
--- a/addons/account_report/i18n/bs.po
+++ b/addons/account_report/i18n/bs.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-02-03 07:29+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
+"PO-Revision-Date: 2010-07-07 09:59+0000\n"
+"Last-Translator: Bojan Markovic \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: 2010-06-22 03:55+0000\n"
+"X-Launchpad-Export-Date: 2010-07-08 03:50+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_report
@@ -41,7 +41,7 @@ msgstr ""
#. module: account_report
#: field:account.report.report,parent_id:0
msgid "Parent"
-msgstr ""
+msgstr "Sintetika"
#. module: account_report
#: field:account.report.report,disp_graph:0
@@ -56,7 +56,7 @@ msgstr ""
#. module: account_report
#: selection:account.report.report,type:0
msgid "Others"
-msgstr ""
+msgstr "Ostali"
#. module: account_report
#: view:account.report.report:0
@@ -76,7 +76,7 @@ msgstr ""
#. module: account_report
#: view:account.report.report:0
msgid "= Goodness Indicator Limit:"
-msgstr ""
+msgstr "= Limit indikatora dobrote:"
#. module: account_report
#: view:account.report.report:0
@@ -87,7 +87,7 @@ msgstr ""
#: field:account.report.history,val:0
#: field:account.report.report,amount:0
msgid "Value"
-msgstr ""
+msgstr "Vrijednost"
#. module: account_report
#: view:account.report.report:0
@@ -133,12 +133,12 @@ msgstr ""
#. module: account_report
#: view:account.report.report:0
msgid "Report Amount:"
-msgstr ""
+msgstr "Iznos izvještaja:"
#. module: account_report
#: model:ir.actions.report.xml,name:account_report.fiscal_statements
msgid "Fiscal Statements"
-msgstr ""
+msgstr "Fiskalni izvod"
#. module: account_report
#: wizard_button:print.indicators,init,next:0
@@ -148,7 +148,7 @@ msgstr ""
#. module: account_report
#: model:ir.module.module,shortdesc:account_report.module_meta_information
msgid "Reporting for accounting"
-msgstr ""
+msgstr "Izvještavanje za računovodstvo"
#. module: account_report
#: wizard_button:print.indicators,next,print:0
@@ -164,7 +164,7 @@ msgstr ""
#. module: account_report
#: model:ir.actions.report.xml,name:account_report.report_indicator_pdf
msgid "Print Indicators in PDF"
-msgstr ""
+msgstr "Ispiši indikatore u PDF"
#. module: account_report
#: view:account.report.report:0
@@ -249,7 +249,7 @@ msgstr ""
#. module: account_report
#: selection:account.report.report,status:0
msgid "Normal"
-msgstr ""
+msgstr "Normalno"
#. module: account_report
#: view:account.report.report:0
@@ -284,7 +284,7 @@ msgstr ""
#. module: account_report
#: rml:print.indicators:0
msgid "Expression :"
-msgstr ""
+msgstr "Izraz :"
#. module: account_report
#: view:account.report.report:0
@@ -294,7 +294,7 @@ msgstr ""
#. module: account_report
#: field:account.report.report,expression:0
msgid "Expression"
-msgstr ""
+msgstr "Izraz"
#. module: account_report
#: view:account.report.report:0
diff --git a/addons/account_report/report/print_indicator.py b/addons/account_report/report/print_indicator.py
index ef94c9161f9..4245bf40415 100644
--- a/addons/account_report/report/print_indicator.py
+++ b/addons/account_report/report/print_indicator.py
@@ -113,7 +113,6 @@ class accounting_report_indicator(report_sxw.rml_parse):
else:
temp_head = [str(x[0:3]) for x in self.header_name]
head_dict = dict(zip(temp_head,temp_head))
- print "head_dict",head_dict
return [head_dict]
def getarray(self,data,object,array_header=''):
diff --git a/addons/account_reporting/i18n/bs.po b/addons/account_reporting/i18n/bs.po
index 3e787f6bc54..9c9a849642e 100644
--- a/addons/account_reporting/i18n/bs.po
+++ b/addons/account_reporting/i18n/bs.po
@@ -7,19 +7,19 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-02-03 08:09+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
+"PO-Revision-Date: 2010-07-07 09:23+0000\n"
+"Last-Translator: Bojan Markovic \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: 2010-06-22 04:15+0000\n"
+"X-Launchpad-Export-Date: 2010-07-08 03:50+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_reporting
#: field:color.rml,code:0
msgid "code"
-msgstr ""
+msgstr "šifra"
#. module: account_reporting
#: constraint:ir.model:0
@@ -61,7 +61,7 @@ msgstr ""
#. module: account_reporting
#: selection:account.report.bs,font_style:0
msgid "Courier"
-msgstr ""
+msgstr "Courier"
#. module: account_reporting
#: selection:account.report.bs,font_style:0
@@ -98,7 +98,7 @@ msgstr ""
#. module: account_reporting
#: selection:account.report.bs,report_type:0
msgid "Report Objects With Accounts"
-msgstr ""
+msgstr "Objekti izvještaja sa kontima"
#. module: account_reporting
#: selection:account.report.bs,font_style:0
@@ -144,12 +144,12 @@ msgstr ""
#. module: account_reporting
#: selection:account.report.bs,font_style:0
msgid "Courier-Bold"
-msgstr ""
+msgstr "Courier-Bold"
#. module: account_reporting
#: selection:account.report.bs,font_style:0
msgid "Times-Italic"
-msgstr ""
+msgstr "Times-Italic"
#. module: account_reporting
#: selection:account.report.bs,report_type:0
@@ -184,12 +184,12 @@ msgstr ""
#. module: account_reporting
#: selection:account.report.bs,font_style:0
msgid "Times-Bold"
-msgstr ""
+msgstr "Times-Bold"
#. module: account_reporting
#: view:account.report.bs:0
msgid "General"
-msgstr ""
+msgstr "Općenito"
#. module: account_reporting
#: wizard_field:account.account.balancesheet.report,init,fiscalyear:0
@@ -205,7 +205,7 @@ msgstr ""
#. module: account_reporting
#: wizard_field:account.account.balancesheet.report,init,periods:0
msgid "Periods"
-msgstr ""
+msgstr "Periodi"
#. module: account_reporting
#: field:account.report.bs,color_back:0
diff --git a/addons/account_tax_include/__openerp__.py b/addons/account_tax_include/__openerp__.py
index a963b0b5118..0981da4888e 100644
--- a/addons/account_tax_include/__openerp__.py
+++ b/addons/account_tax_include/__openerp__.py
@@ -40,4 +40,5 @@ This module implement the modification on the invoice form.
'active': False,
'certificate': '0070514190381',
}
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account_tax_include/account_tax_include.py b/addons/account_tax_include/account_tax_include.py
index 5cb58619a76..597050f9b2c 100644
--- a/addons/account_tax_include/account_tax_include.py
+++ b/addons/account_tax_include/account_tax_include.py
@@ -21,7 +21,6 @@
import time
from osv import fields, osv
-import decimal_precision as dp
class account_invoice(osv.osv):
_inherit = "account.invoice"
@@ -117,7 +116,7 @@ class account_invoice_line(osv.osv):
return super(account_invoice_line, self)._price_unit_default(cr, uid, context)
return 0
- def _get_invoice(self, cr, uid, ids, context):
+ def _get_invoice(self, cr, uid, ids, context=None):
result = {}
for inv in self.pool.get('account.invoice').browse(cr, uid, ids, context=context):
for line in inv.invoice_line:
@@ -126,9 +125,9 @@ class account_invoice_line(osv.osv):
_columns = {
'price_subtotal': fields.function(_amount_line2, method=True, string='Subtotal w/o tax', multi='amount',
- store={'account.invoice':(_get_invoice,['price_type'],10), 'account.invoice.line': (lambda self, cr, uid, ids, c={}: ids, None,10)}),
+ store={'account.invoice':(_get_invoice,['price_type'], 10), 'account.invoice.line': (lambda self, cr, uid, ids, c={}: ids, None,10)}),
'price_subtotal_incl': fields.function(_amount_line2, method=True, string='Subtotal', multi='amount',
- store={'account.invoice':(_get_invoice,['price_type'],10), 'account.invoice.line': (lambda self, cr, uid, ids, c={}: ids, None,10)}),
+ store={'account.invoice':(_get_invoice,['price_type'], 10), 'account.invoice.line': (lambda self, cr, uid, ids, c={}: ids, None,10)}),
}
_defaults = {
diff --git a/addons/account_voucher/__openerp__.py b/addons/account_voucher/__openerp__.py
index 408df2ee031..aa2dd4cecd4 100644
--- a/addons/account_voucher/__openerp__.py
+++ b/addons/account_voucher/__openerp__.py
@@ -31,15 +31,10 @@
""",
"category" : "Generic Modules/Accounting",
"website" : "http://tinyerp.com",
- "depends" : [
- "base",
- "account"
- ],
- "init_xml" : [
- ],
+ "depends" : ["account"],
+ "init_xml" : [],
- "demo_xml" : [
- ],
+ "demo_xml" : [],
"update_xml" : [
"security/ir.model.access.csv",
diff --git a/addons/account_voucher/report/rml_parse.py b/addons/account_voucher/report/rml_parse.py
index dc29ee9f404..721c87fbcf5 100644
--- a/addons/account_voucher/report/rml_parse.py
+++ b/addons/account_voucher/report/rml_parse.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
+# along with this program. If not, see .
#
##############################################################################
@@ -41,7 +41,6 @@ class rml_parse(report_sxw.rml_parse):
})
def comma_me(self,amount):
- #print "#" + str(amount) + "#"
if not amount:
amount = 0.0
if type(amount) is float :
@@ -56,14 +55,14 @@ class rml_parse(report_sxw.rml_parse):
return new
else:
return self.comma_me(new)
-
+
def _ellipsis(self, string, maxlen=100, ellipsis = '...'):
ellipsis = ellipsis or ''
try:
return string[:maxlen - len(ellipsis) ] + (ellipsis, '')[len(string) < maxlen]
except Exception, e:
return False
-
+
def _strip_name(self, name, maxlen=50):
return self._ellipsis(name, maxlen, '...')
@@ -100,14 +99,13 @@ class rml_parse(report_sxw.rml_parse):
try:
Stringer = str.encode("utf-16")
except UnicodeDecodeError:
- print "UTF_16 Error"
Stringer = str
else:
return Stringer
else:
return Stringer
return Stringer
-
+
def explode_this(self,chaine,length):
#chaine = self.repair_string(chaine)
chaine = rstrip(chaine)
@@ -118,20 +116,18 @@ class rml_parse(report_sxw.rml_parse):
i = i + length
chaine = str("".join(ast))
return chaine
-
+
def repair_string(self,chaine):
ast = list(chaine)
UnicodeAst = []
_previouslyfound = False
i = 0
- #print str(ast)
while i < len(ast):
elem = ast[i]
try:
Stringer = elem.encode("utf-8")
except UnicodeDecodeError:
to_reencode = elem + ast[i+1]
- print str(to_reencode)
Good_char = to_reencode.decode('utf-8')
UnicodeAst.append(Good_char)
i += i +2
@@ -141,17 +137,13 @@ class rml_parse(report_sxw.rml_parse):
return "".join(UnicodeAst)
def ReencodeAscii(self,str):
- print sys.stdin.encoding
try:
Stringer = str.decode("ascii")
except UnicodeEncodeError:
- print "REENCODING ERROR"
return str.encode("ascii")
except UnicodeDecodeError:
- print "DECODING ERROR"
return str.encode("ascii")
else:
- print Stringer
return Stringer
def _add_header(self, node, header=1):
diff --git a/addons/account_voucher/security/ir.model.access.csv b/addons/account_voucher/security/ir.model.access.csv
index 1291eeb4092..8ea4401d6d9 100644
--- a/addons/account_voucher/security/ir.model.access.csv
+++ b/addons/account_voucher/security/ir.model.access.csv
@@ -1,7 +1,5 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_account_voucher_user","account.voucher","model_account_voucher","account.group_account_user",1,0,0,0
"access_account_voucher_line_user","account.voucher.line","model_account_voucher_line","account.group_account_user",1,0,0,0
-"access_account_open_voucher_user","account.open.voucher","model_account_open_voucher","account.group_account_user",1,0,0,0
"access_account_voucher_manager","account.voucher","model_account_voucher","account.group_account_manager",1,1,1,1
"access_account_voucher_line_manager","account.voucher.line","model_account_voucher_line","account.group_account_manager",1,1,1,1
-"access_account_open_voucher_manager","account.open.voucher","model_account_open_voucher","account.group_account_manager",1,1,1,1
diff --git a/addons/account_voucher/voucher.py b/addons/account_voucher/voucher.py
index b40c859385f..00d12f8063b 100644
--- a/addons/account_voucher/voucher.py
+++ b/addons/account_voucher/voucher.py
@@ -20,14 +20,17 @@
##############################################################################
import time
-import netsvc
from osv import fields
from osv import osv
-import ir
-import pooler
-import mx.DateTime
-from mx.DateTime import RelativeDateTime
-from tools import config
+
+journal2type = {
+ 'cash':'rec_voucher',
+ 'bank':'bank_rec_voucher',
+ 'cash':'pay_voucher',
+ 'sale':'journal_sale_vou',
+ 'purchase':'journal_pur_voucher',
+ 'general':'journal_voucher'
+}
type2journal = {
'rec_voucher': 'cash',
@@ -51,7 +54,7 @@ ir_sequence_type()
class account_journal(osv.osv):
_inherit = "account.journal"
_columns = {
- 'max_amount': fields.float('Verify Transaction', digits=(16, int(config['price_accuracy'])), help="Validate voucher entry twice before posting it, if transection amount more then entered here"),
+ 'max_amount': fields.float('Verify Transaction', digits=(16, 2), help="Validate voucher entry twice before posting it, if transection amount more then entered here"),
}
account_journal()
@@ -68,8 +71,9 @@ class account_voucher(osv.osv):
return False
def _get_type(self, cr, uid, context={}):
- type = context.get('type', 'bank_rec_voucher')
- return type
+ vtype = context.get('type', 'bank')
+ voucher_type = journal2type.get(vtype)
+ return voucher_type
def _get_reference_type(self, cursor, user, context=None):
return [('none', 'Free Reference')]
@@ -91,15 +95,15 @@ class account_voucher(osv.osv):
return False
def _get_currency(self, cr, uid, context):
- user = pooler.get_pool(cr.dbname).get('res.users').browse(cr, uid, uid)
+ user = self.pool.get('res.users').browse(cr, uid, uid)
if user.company_id:
return user.company_id.currency_id.id
else:
- return pooler.get_pool(cr.dbname).get('res.currency').search(cr, uid, [('rate','=',1.0)])[0]
+ return self.pool.get('res.currency').search(cr, uid, [('rate','=',1.0)])[0]
_name = 'account.voucher'
_description = 'Accounting Voucher'
- _order = "number"
+ _order = "id desc"
_columns = {
'name':fields.char('Name', size=256, required=True, readonly=True, states={'draft':[('readonly',False)]}),
'type': fields.selection([
@@ -107,7 +111,7 @@ class account_voucher(osv.osv):
('bank_pay_voucher','Bank Payment'),
('rec_voucher','Cash Receipt'),
('bank_rec_voucher','Bank Receipt'),
- ('cont_voucher','Contra'),
+# ('cont_voucher','Contra'),
('journal_sale_vou','Journal Sale'),
('journal_pur_voucher','Journal Purchase'),
('journal_voucher','Journal Voucher'),
@@ -117,7 +121,7 @@ class account_voucher(osv.osv):
'account_id':fields.many2one('account.account', 'Account', required=True, readonly=True, states={'draft':[('readonly',False)]}, domain=[('type','<>','view')]),
'payment_ids':fields.one2many('account.voucher.line','voucher_id','Voucher Lines', readonly=False, states={'proforma':[('readonly',True)]}),
'period_id': fields.many2one('account.period', 'Period', required=True, readonly=True, states={'posted':[('readonly',True)]}),
- 'narration':fields.text('Narration', readonly=True, states={'draft':[('readonly',False)]}, required=True),
+ 'narration':fields.text('Narration', readonly=True, states={'draft':[('readonly',False)]}, required=False),
'currency_id': fields.many2one('res.currency', 'Currency', required=True, readonly=True, states={'draft':[('readonly',False)]}),
'company_id': fields.many2one('res.company', 'Company', required=True),
'state':fields.selection(
@@ -133,10 +137,10 @@ class account_voucher(osv.osv):
\n* The \'Posted\' state is used when user create voucher,a voucher number is generated and voucher entries are created in account \
\n* The \'Cancelled\' state is used when user cancel voucher.'),
'amount':fields.float('Amount', readonly=True),
- 'number':fields.char('Number', size=32, readonly=True),
'reference': fields.char('Voucher Reference', size=64),
'reference_type': fields.selection(_get_reference_type, 'Reference Type',
required=True),
+ 'number': fields.related('move_id', 'name', type="char", readonly=True, string='Number'),
'move_id':fields.many2one('account.move', 'Account Entry'),
'move_ids':fields.many2many('account.move.line', 'voucher_id', 'account_id', 'rel_account_move', 'Real Entry'),
'partner_id':fields.many2one('res.partner', 'Partner', readonly=True, states={'draft':[('readonly',False)]})
@@ -147,24 +151,17 @@ class account_voucher(osv.osv):
'type': _get_type,
'journal_id':_get_journal,
'currency_id': _get_currency,
-
'state': lambda *a: 'draft',
'date' : lambda *a: time.strftime('%Y-%m-%d'),
'reference_type': lambda *a: "none",
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'account.voucher',context=c),
}
-# def _get_analityc_lines(self, cr, uid, id):
-# inv = self.browse(cr, uid, [id])[0]
-# cur_obj = self.pool.get('res.currency')
-
def onchange_account(self, cr, uid, ids, account_id):
-
if not account_id:
return {
'value':{'amount':False}
}
-
account = self.pool.get('account.account').browse(cr, uid, account_id)
balance=account.balance
return {
@@ -176,7 +173,6 @@ class account_voucher(osv.osv):
return {
'value':{'account_id':False}
}
-
journal = self.pool.get('account.journal')
if journal_id and (type in ('rec_voucher','bank_rec_voucher','journal_pur_voucher','journal_voucher')):
@@ -196,30 +192,45 @@ class account_voucher(osv.osv):
}
def open_voucher(self, cr, uid, ids, context={}):
- obj = self.pool.get('account.voucher').browse(cr, uid, ids)
+ voucher = self.pool.get('account.voucher').browse(cr, uid, ids)[0]
total = 0
- for i in obj[0].payment_ids:
- total += i.amount
+ for line in voucher.payment_ids:
+ total += line.amount
+
if total != 0:
- self.write(cr, uid, ids, {'amount':total, 'state':'proforma'})
+ res = {
+ 'amount':total,
+ 'state':'proforma'
+ }
+ self.write(cr, uid, ids, res)
else:
raise osv.except_osv('Invalid action !', 'You cannot post to Pro-Forma a voucher with Total amount = 0 !')
return True
def proforma_voucher(self, cr, uid, ids, context={}):
- self.action_number(cr, uid, ids)
self.action_move_line_create(cr, uid, ids)
self.write(cr, uid, ids, {'state':'posted'})
return True
-
- def cancel_voucher(self, cr, uid, ids, context={}):
- self.action_cancel(cr, uid, ids)
- self.write(cr, uid, ids, {'state':'cancel'})
- return True
-
+
def action_cancel_draft(self, cr, uid, ids, *args):
self.write(cr, uid, ids, {'state':'draft'})
return True
+
+ def cancel_voucher(self, cr, uid, ids, context={}):
+ move_pool = self.pool.get('account.move')
+
+ for voucher in self.browse(cr, uid, ids):
+ if voucher.move_id:
+ move_pool.button_cancel(cr, uid, [voucher.move_id.id])
+ move_pool.unlink(cr, uid, [voucher.move_id.id])
+
+ res = {
+ 'state':'cancel',
+ 'move_id':False,
+ 'move_ids':[(6, 0,[])]
+ }
+ self.write(cr, uid, ids, res)
+ return True
def unlink(self, cr, uid, ids, context=None):
vouchers = self.read(cr, uid, ids, ['state'])
@@ -231,237 +242,126 @@ class account_voucher(osv.osv):
raise osv.except_osv('Invalid action !', 'Cannot delete Voucher(s) which are already opened or paid !')
return super(account_voucher, self).unlink(cr, uid, unlink_ids, context=context)
- def _get_analytic_lines(self, cr, uid, id):
- inv = self.browse(cr, uid, [id])[0]
- cur_obj = self.pool.get('res.currency')
-
- company_currency = inv.company_id.currency_id.id
- if inv.type in ('rec_voucher'):
- sign = 1
- else:
- sign = -1
-
- iml = self.pool.get('account.voucher.line').move_line_get(cr, uid, inv.id)
-
- for il in iml:
- if il['account_analytic_id']:
- if inv.type in ('pay_voucher', 'rec_voucher','cont_voucher','bank_pay_voucher','bank_rec_voucher','journal_sale_vou','journal_pur_voucher'):
- ref = inv.reference
- else:
- ref = self._convert_ref(cr, uid, inv.number)
-
- il['analytic_lines'] = [(0, 0, {
- 'name': il['name'],
- 'date': inv['date'],
- 'account_id': il['account_analytic_id'],
- 'amount': inv['amount'] * sign,
- 'general_account_id': il['account_id'] or False,
- 'journal_id': self.pool.get('account.voucher').browse(cr, uid, id).journal_id.analytic_journal_id.id or False,
- 'ref': ref,
- })]
- return iml
-
def action_move_line_create(self, cr, uid, ids, *args):
+ journal_pool = self.pool.get('account.journal')
+ sequence_pool = self.pool.get('ir.sequence')
+ move_pool = self.pool.get('account.move')
+ move_line_pool = self.pool.get('account.move.line')
+ analytic_pool = self.pool.get('account.analytic.line')
+ currency_pool = self.pool.get('res.currency')
+
for inv in self.browse(cr, uid, ids):
if inv.move_id:
continue
-
+
company_currency = inv.company_id.currency_id.id
-
- line_ids = self.read(cr, uid, [inv.id], ['payment_ids'])[0]['payment_ids']
- ils = self.pool.get('account.voucher.line').read(cr, uid, line_ids)
-
- iml = self._get_analytic_lines(cr, uid, inv.id)
-
diff_currency_p = inv.currency_id.id <> company_currency
-
- total = 0
- if inv.type in ('pay_voucher', 'journal_voucher', 'rec_voucher','cont_voucher','bank_pay_voucher','bank_rec_voucher','journal_sale_vou','journal_pur_voucher'):
- ref = inv.reference
- else:
- ref = self._convert_ref(cr, uid, inv.number)
-
- acc_id = None
- date = inv.date
- total_currency = 0
- acc_id = None
- for i in iml:
- partner_id=i['partner_id']
- acc_id = i['account_id']
- if inv.currency_id.id != company_currency:
- i['currency_id'] = inv.currency_id.id
- i['amount_currency'] = i['amount']
- else:
- i['amount_currency'] = False
- i['currency_id'] = False
- if inv.type in ('rec_voucher','bank_rec_voucher','journal_pur_voucher','journal_voucher'):
- total += i['amount']
- total_currency += i['amount_currency'] or i['amount']
- i['amount'] = - i['amount']
- else:
- total -= i['amount']
- total_currency -= i['amount_currency'] or i['amount']
-
- name = inv['name'] or '/'
- totlines = False
-
- iml.append({
- 'type': 'dest',
- 'name': name,
- 'amount': total or False,
- 'account_id': acc_id,
- 'amount_currency': diff_currency_p \
- and total_currency or False,
- 'currency_id': diff_currency_p \
- and inv.currency_id.id or False,
- 'ref': ref,
- 'partner_id':partner_id or False,
- })
-
- date = inv.date
- inv.amount=total
-
- line = map(lambda x:(0,0,self.line_get_convert(cr, uid, x,date, context={})) ,iml)
- an_journal_id=inv.journal_id.analytic_journal_id.id
- journal_id = inv.journal_id.id
-
- journal = self.pool.get('account.journal').browse(cr, uid, journal_id)
+ ref = inv.reference
+
+ journal = journal_pool.browse(cr, uid, inv.journal_id.id)
if journal.sequence_id:
- name = self.pool.get('ir.sequence').get_id(cr, uid, journal.sequence_id.id)
-
+ name = sequence_pool.get_id(cr, uid, journal.sequence_id.id)
+
move = {
'name' : name,
- 'journal_id': journal_id,
+ 'journal_id': journal.id,
'type' : inv.type,
- 'narration' : inv.narration,
+ 'narration' : inv.narration and inv.narration or inv.name,
'date':inv.date
}
+
if inv.period_id:
- move['period_id'] = inv.period_id.id
- for i in line:
- i[2]['period_id'] = inv.period_id.id
- move_id = self.pool.get('account.move').create(cr, uid, move)
- ref = move['name']
- amount=0.0
-
- #create the first line our self
+ move.update({
+ 'period_id': inv.period_id.id
+ })
+
+ move_id = move_pool.create(cr, uid, move)
+
+ #create the first line manually
move_line = {
'name': inv.name,
'debit': False,
'credit':False,
'account_id': inv.account_id.id or False,
- 'move_id':move_id ,
- 'journal_id':journal_id ,
- 'period_id':inv.period_id.id,
+ 'move_id': move_id ,
+ 'journal_id': inv.journal_id.id,
+ 'period_id': inv.period_id.id,
'partner_id': False,
'ref': ref,
'date': inv.date
}
+ if diff_currency_p:
+ amount_currency = currency_pool.compute(cr, uid, inv.currency_id.id, company_currency, inv.amount)
+ inv.amount = amount_currency
+ move_line.update({
+ 'amount_currency':amount_currency,
+ 'currency_id':inv.currency_id.id
+ })
+
if inv.type in ('rec_voucher', 'bank_rec_voucher', 'journal_pur_voucher', 'journal_voucher'):
move_line['debit'] = inv.amount
else:
- move_line['credit'] = inv.amount * (-1)
- self.pool.get('account.move.line').create(cr, uid, move_line)
-
+ move_line['credit'] = inv.amount
+
+ line_ids = []
+ line_ids += [move_line_pool.create(cr, uid, move_line)]
for line in inv.payment_ids:
-
+ amount=0.0
move_line = {
- 'name':line.name,
- 'debit':False,
- 'credit':False,
- 'account_id':line.account_id.id or False,
- 'move_id':move_id ,
- 'journal_id':journal_id ,
- 'period_id':inv.period_id.id,
- 'partner_id':line.partner_id.id or False,
- 'ref':ref,
- 'date':inv.date
- }
-
- if line.type == 'dr':
- move_line['debit'] = line.amount or False
- amount=line.amount
- elif line.type == 'cr':
- move_line['credit'] = line.amount or False
- amount=line.amount * (-1)
-
- move_line['analytic_account_id'] = line.account_analytic_id.id or False
- ml_id=self.pool.get('account.move.line').create(cr, uid, move_line)
-
- if inv.narration:
- line.name = inv.narration
- else:
- line.name = line.name
-
+ 'name': line.name,
+ 'debit': False,
+ 'credit': False,
+ 'account_id': line.account_id.id or False,
+ 'move_id': move_id ,
+ 'journal_id': inv.journal_id.id,
+ 'period_id': inv.period_id.id,
+ 'partner_id': line.partner_id.id or False,
+ 'ref': ref,
+ 'date': inv.date,
+ 'analytic_account_id': False
+ }
+
+ if diff_currency_p:
+ amount_currency = currency_pool.compute(cr, uid, inv.currency_id.id, company_currency, line.amount)
+ line.amount = amount_currency
+ move_line.update({
+ 'amount_currency':amount_currency,
+ 'currency_id':inv.currency_id.id
+ })
+
if line.account_analytic_id:
- an_line = {
- 'name':line.name,
- 'date':inv.date,
- 'amount':amount,
- 'account_id':line.account_analytic_id.id or False,
- 'move_id':ml_id,
- 'journal_id':an_journal_id ,
- 'general_account_id':line.account_id.id,
- 'ref':ref
- }
- self.pool.get('account.analytic.line').create(cr, uid, an_line)
-
- self.write(cr, uid, [inv.id], {'move_id': move_id})
- obj=self.pool.get('account.move').browse(cr, uid, move_id)
-
- for line in obj.line_id :
- cr.execute('insert into voucher_id (account_id,rel_account_move) values (%d, %d)',(int(ids[0]),int(line.id)))
+ move_line.update({
+ 'analytic_account_id':line.account_analytic_id.id
+ })
+
+ if line.type == 'dr':
+ move_line.update({
+ 'debit': line.amount or False
+ })
+ amount = line.amount
+
+ elif line.type == 'cr':
+ move_line.update({
+ 'credit': line.amount or False
+ })
+ amount = line.amount * (-1)
+ move_line_id = move_line_pool.create(cr, uid, move_line)
+ line_ids += [move_line_id]
+
+ rec = {
+ 'move_id': move_id,
+ 'move_ids':[(6, 0,line_ids)]
+ }
+ self.write(cr, uid, [inv.id], rec)
+
return True
-
- def line_get_convert(self, cr, uid, x, date, context={}):
- return {
- 'date':date,
- 'date_maturity': x.get('date_maturity', False),
- 'partner_id':x.get('partner_id',False),
- 'name':x['name'][:64],
- 'debit':x['amount']>0 and x['amount'],
- 'credit':x['amount']<0 and -x['amount'],
- 'account_id':x['account_id'],
- 'analytic_lines':x.get('analytic_lines', []),
- 'amount_currency':x.get('amount_currency', False),
- 'currency_id':x.get('currency_id', False),
- 'tax_code_id': x.get('tax_code_id', False),
- 'tax_amount': x.get('tax_amount', False),
- 'ref':x.get('ref',False)
- }
-
def _convert_ref(self, cr, uid, ref):
return (ref or '').replace('/','')
- def action_number(self, cr, uid, ids, *args):
- cr.execute('SELECT id, type, number, move_id, reference ' \
- 'FROM account_voucher ' \
- 'WHERE id IN %s',(tuple(ids),))
- for (id, invtype, number, move_id, reference) in cr.fetchall():
- if not number:
- number = self.pool.get('ir.sequence').get(cr, uid, invtype)
-
- if type in ('pay_voucher', 'journal_voucher', 'rec_voucher','cont_voucher','bank_pay_voucher','bank_rec_voucher','journal_sale_vou','journal_pur_voucher'):
- ref = reference
- else:
- ref = self._convert_ref(cr, uid, number)
-
- cr.execute('UPDATE account_voucher SET number=%s ' \
- 'WHERE id=%s', (number, id))
- cr.execute('UPDATE account_move_line SET ref=%s ' \
- 'WHERE move_id=%s AND (ref is null OR ref = \'\')',
- (ref, move_id))
- cr.execute('UPDATE account_analytic_line SET ref=%s ' \
- 'FROM account_move_line ' \
- 'WHERE account_move_line.move_id = %s ' \
- 'AND account_analytic_line.move_id = account_move_line.id',
- (ref, move_id))
- return True
-
def name_get(self, cr, uid, ids, context={}):
if not len(ids):
return []
@@ -498,19 +398,6 @@ class account_voucher(osv.osv):
default['date'] = time.strftime('%Y-%m-%d')
return super(account_voucher, self).copy(cr, uid, id, default, context)
- def action_cancel(self, cr, uid, ids, *args):
- account_move_obj = self.pool.get('account.move')
- voucher = self.read(cr, uid, ids, ['move_id'])
- for i in voucher:
- if i['move_id']:
- account_move_obj.button_cancel(cr, uid, [i['move_id'][0]])
- # delete the move this invoice was pointing to
- # Note that the corresponding move_lines and move_reconciles
- # will be automatically deleted too
- account_move_obj.unlink(cr, uid, [i['move_id'][0]])
- self.write(cr, uid, ids, {'state':'cancel', 'move_id':False})
- return True
-
account_voucher()
class account_voucher_line(osv.osv):
@@ -530,176 +417,52 @@ class account_voucher_line(osv.osv):
'type': lambda *a: 'cr'
}
- def move_line_get(self, cr, uid, voucher_id, context={}):
- res = []
-
- cur_obj = self.pool.get('res.currency')
- inv = self.pool.get('account.voucher').browse(cr, uid, voucher_id)
- company_currency = inv.company_id.currency_id.id
- cur = inv.currency_id
-
- for line in inv.payment_ids:
- res.append(self.move_line_get_item(cr, uid, line, context))
- return res
-
def onchange_partner(self, cr, uid, ids, partner_id, ttype ,type1):
+ vals = {}
+
if not partner_id:
- return {'value' : {'account_id' : False, 'type' : False ,'amount':False}}
- obj = self.pool.get('res.partner')
+ vals.update({
+ 'account_id': False,
+ 'type': False ,
+ 'amount': False
+ })
+ return {
+ 'value' : vals
+ }
+
+ partner_pool = self.pool.get('res.partner')
account_id = False
+
+ partner = partner_pool.browse(cr, uid, partner_id)
+
if type1 in ('rec_voucher','bank_rec_voucher', 'journal_voucher'):
- account_id = obj.browse(cr, uid, partner_id).property_account_receivable
- balance = obj.browse(cr,uid,partner_id).credit
+ account_id = partner.property_account_receivable.id
+ balance = partner.credit
ttype = 'cr'
+
elif type1 in ('pay_voucher','bank_pay_voucher','cont_voucher') :
- account_id = obj.browse(cr, uid, partner_id).property_account_payable
- balance = obj.browse(cr,uid,partner_id).debit
+ account_id = partner.property_account_payable.id
+ balance = partner.debit
ttype = 'dr'
+
elif type1 in ('journal_sale_vou') :
- account_id = obj.browse(cr, uid, partner_id).property_account_receivable
- balance = obj.browse(cr,uid,partner_id).credit
+ account_id = partner.property_account_receivable.id
+ balance = partner.credit
ttype = 'dr'
+
elif type1 in ('journal_pur_voucher') :
- account_id = obj.browse(cr, uid, partner_id).property_account_payable
- balance = obj.browse(cr,uid,partner_id).debit
+ account_id = partner.property_account_payable.id
+ balance = partner.debit
ttype = 'cr'
-
+
+ vals.update({
+ 'account_id': account_id,
+ 'type': ttype,
+ 'amount':balance
+ })
+
return {
- 'value' : {'account_id' : account_id.id, 'type' : ttype, 'amount':balance}
+ 'value' : vals
}
-
- def onchange_amount(self, cr, uid, ids, partner_id, amount, type, type1):
- if not amount:
- return {'value' : {}}
- if partner_id:
- obj = self.pool.get('res.partner')
- if type1 in ('rec_voucher', 'bank_rec_voucher', 'journal_voucher'):
- if amount < 0 :
- account_id = obj.browse(cr, uid, partner_id).property_account_payable
- type = 'dr'
- else:
- account_id = obj.browse(cr, uid, partner_id).property_account_receivable
- type = 'cr'
-
- elif type1 in ('pay_voucher','bank_pay_voucher','cont_voucher') :
- if amount < 0 :
- account_id = obj.browse(cr, uid, partner_id).property_account_receivable
- type = 'cr'
- else:
- account_id = obj.browse(cr, uid, partner_id).property_account_payable
- type = 'dr'
-
- elif type1 in ('journal_sale_vou') :
- if amount < 0 :
- account_id = obj.browse(cr, uid, partner_id).property_account_payable
- type = 'cr'
- else:
- account_id = obj.browse(cr, uid, partner_id).property_account_receivable
- type = 'dr'
-
- elif type1 in ('journal_pur_voucher') :
- if amount< 0 :
- account_id = obj.browse(cr, uid, partner_id).property_account_receivable
- type = 'dr'
- else:
- account_id = obj.browse(cr, uid, partner_id).property_account_payable
- type = 'cr'
- else:
- if type1 in ('rec_voucher', 'bank_rec_voucher', 'journal_voucher'):
- if amount < 0 :
- type = 'dr'
- else:
- type = 'cr'
- elif type1 in ('pay_voucher','bank_pay_voucher','cont_voucher') :
- if amount < 0 :
- type = 'cr'
- else:
- type = 'dr'
- elif type1 in ('journal_sale_vou') :
- if amount < 0 :
- type = 'cr'
- else:
- type = 'dr'
- elif type1 in ('journal_pur_voucher') :
- if amount< 0 :
- type = 'dr'
- else:
- type = 'cr'
-
- return {
- 'value' : { 'type' : type , 'amount':amount}
- }
-
- def onchange_type(self, cr, uid, ids, partner_id, amount, type, type1):
- if partner_id:
- obj = self.pool.get('res.partner')
- if type1 in ('rec_voucher','bank_rec_voucher', 'journal_voucher'):
- if type == 'dr' :
- account_id = obj.browse(cr, uid, partner_id).property_account_payable
- total=amount*(-1)
- else:
- account_id = obj.browse(cr, uid, partner_id).property_account_receivable
- total=amount*(-1)
-
- elif type1 in ('pay_voucher','bank_pay_voucher','cont_voucher') :
- if type == 'cr' :
- account_id = obj.browse(cr, uid, partner_id).property_account_receivable
- total=amount*(-1)
- else:
- account_id = obj.browse(cr, uid, partner_id).property_account_payable
- total=amount*(-1)
-
- elif type1 in ('journal_sale_vou') :
- if type == 'cr' :
- account_id = obj.browse(cr, uid, partner_id).property_account_payable
- total=amount*(-1)
- else:
- account_id = obj.browse(cr, uid, partner_id).property_account_receivable
- total=amount*(-1)
- elif type1 in ('journal_pur_voucher') :
- if type == 'dr' :
- account_id = obj.browse(cr, uid, partner_id).property_account_receivable
- total=amount*(-1)
- else:
- account_id = obj.browse(cr, uid, partner_id).property_account_payable
- total=amount*(-1)
- else:
- if type1 in ('rec_voucher','bank_rec_voucher', 'journal_voucher'):
- if type == 'dr' :
- total=amount*(-1)
- else:
- total=amount*(-1)
-
- elif type1 in ('pay_voucher','bank_pay_voucher','cont_voucher') :
- if type == 'cr' :
- total=amount*(-1)
- else:
- total=amount*(-1)
-
- elif type1 in ('journal_sale_vou') :
- if type == 'cr' :
- total=amount*(-1)
- else:
- total=amount*(-1)
- elif type1 in ('journal_pur_voucher') :
- if type == 'dr' :
- total=amount*(-1)
- else:
- total=amount*(-1)
-
- return {
- 'value' : {'type' : type , 'amount':total}
- }
-
- def move_line_get_item(self, cr, uid, line, context={}):
- return {
- 'type':'src',
- 'name': line.name[:64],
- 'amount':line.amount,
- 'account_id':line.account_id.id,
- 'partner_id':line.partner_id.id or False ,
- 'account_analytic_id':line.account_analytic_id.id or False,
- 'ref' : line.ref
- }
-
+
account_voucher_line()
diff --git a/addons/account_voucher/voucher_view.xml b/addons/account_voucher/voucher_view.xml
index 91038bba0bb..9f9ce13276c 100644
--- a/addons/account_voucher/voucher_view.xml
+++ b/addons/account_voucher/voucher_view.xml
@@ -35,32 +35,19 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -71,6 +58,15 @@
+
+
+
+
+
+
+
+
+
@@ -136,14 +132,15 @@
-
+
- Customer Vouchers
+ Receivable Vouchers
account.voucher
form
tree,form
[('journal_id.type','=','sale')]
+ {'type':'sale'}
diff --git a/addons/association/security/ir.model.access.csv b/addons/association/security/ir.model.access.csv
index 2fb5590818e..0343f29f43a 100644
--- a/addons/association/security/ir.model.access.csv
+++ b/addons/association/security/ir.model.access.csv
@@ -1,2 +1 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_profile_association_wizard_install","profile association wizard install","model_profile_association_config_install_modules_wizard","base.group_system",1,1,1,1
diff --git a/addons/auction/barcode/code128.py b/addons/auction/barcode/code128.py
index 0cd75e2ddcc..e19193bf6c6 100644
--- a/addons/auction/barcode/code128.py
+++ b/addons/auction/barcode/code128.py
@@ -177,7 +177,7 @@ class Code128(MultiWidthBarcode):
Code 128 can also encode digits at double density (2 per byte)
and has a mandatory checksum. Code 128 is well supported and
commonly used -- for example, by UPS for tracking labels.
-
+
Because of these qualities, Code 128 is probably the best choice
for a linear symbology today (assuming you have a choice).
@@ -185,11 +185,11 @@ class Code128(MultiWidthBarcode):
value (int, or numeric string. required.):
The value to encode.
-
+
xdim (float, default .0075):
X-Dimension, or width of the smallest element
Minumum is .0075 inch (7.5 mils).
-
+
height (float, see default below):
Height of the symbol. Default is the height of the two
bearer bars (if they exist) plus the greater of .25 inch
@@ -197,14 +197,14 @@ class Code128(MultiWidthBarcode):
quiet (bool, default 1):
Wether to include quiet zones in the symbol.
-
+
lquiet (float, see default below):
Quiet zone size to left of code, if quiet is true.
Default is the greater of .25 inch, or 10 xdim
-
+
rquiet (float, defaults as above):
Quiet zone size to right left of code, if quiet is true.
-
+
Sources of Information on Code 128:
http://www.semiconductor.agilent.com/barcode/sg/Misc/code_128.html
@@ -223,7 +223,7 @@ class Code128(MultiWidthBarcode):
if type(value) is type(1):
value = str(value)
-
+
for (k, v) in args.items():
setattr(self, k, v)
@@ -288,12 +288,11 @@ class Code128(MultiWidthBarcode):
if l[1] in tos:
l[:2] = ['START_' + l[1][-1]]
-# print `l`
# encode into numbers
start, set, shset = setmap[l[0]]
e = [start]
-
+
l = l[1:-1]
while l:
c = l[0]
diff --git a/addons/auction/barcode/test.py b/addons/auction/barcode/test.py
index 135f4ae2641..068562c75bd 100644
--- a/addons/auction/barcode/test.py
+++ b/addons/auction/barcode/test.py
@@ -34,8 +34,6 @@ def run():
story.append(Extended93("L@@K! Code 93 :-)")) #, xdim=0.005 * inch))
story.append(Paragraph('Code 128', styleN))
c=Code128("AB-12345678") #, xdim=0.005 * inch)
- #print 'WIDTH =', (c.width / inch), 'XDIM =', (c.xdim / inch)
- #print 'LQ =', (c.lquiet / inch), 'RQ =', (c.rquiet / inch)
story.append(c)
story.append(Paragraph('USPS FIM', styleN))
story.append(FIM("A"))
diff --git a/addons/auction/board_auction_view.xml b/addons/auction/board_auction_view.xml
index 674b5821309..ca4b30bd688 100644
--- a/addons/auction/board_auction_view.xml
+++ b/addons/auction/board_auction_view.xml
@@ -58,8 +58,7 @@
menu
-
-
+
).
#
@@ -15,7 +15,7 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
+# along with this program. If not, see .
#
##############################################################################
@@ -132,12 +132,6 @@ class report_custom(report_rml):
# file('/tmp/terp.xml','wb+').write(xml)
# end_time = time.clock()
-# print "db:", mid_time-start_time
-# print "addition:", mid_time2-mid_time
-# print "buyer costs:", mid_time3-mid_time2
-# print "seller costs:", mid_time4-mid_time3
-# print "rest:", end_time-mid_time4
-# print "total:", end_time-start_time
return self.post_process_xml_data(cr, uid, xml, context)
report_custom('report.auction.total', 'auction.lots', '', 'addons/auction/report/total.xsl')
diff --git a/addons/auction/security/ir.model.access.csv b/addons/auction/security/ir.model.access.csv
index 9dac045a449..642209edd05 100644
--- a/addons/auction/security/ir.model.access.csv
+++ b/addons/auction/security/ir.model.access.csv
@@ -22,4 +22,3 @@
"access_report_object_encoded","report.object.encoded","model_report_object_encoded","base.group_user",1,0,0,0
"access_report_object_encoded_manager","report.object.encoded.manager","model_report_object_encoded_manager","base.group_user",1,0,0,0
"access_report_unclassified_objects","report.unclassified.objects","model_report_unclassified_objects","base.group_user",1,0,0,0
-"access_auction_lots_buyer_map_user","auction_lots_buyer_map_user","model_auction_lots_buyer_map","base.group_user",1,0,0,0
diff --git a/addons/auction/wizard/auction_pay_buy.py b/addons/auction/wizard/auction_pay_buy.py
index 28028f45538..ef8d5a98887 100644
--- a/addons/auction/wizard/auction_pay_buy.py
+++ b/addons/auction/wizard/auction_pay_buy.py
@@ -29,14 +29,14 @@ class auction_pay_buy(osv.osv_memory):
_description = "Pay buy"
_columns= {
- 'amount': fields.float('Amount paid', digits= (16, int(tools.config['price_accuracy']))),
+ 'amount': fields.float('Amount paid', digits= (16, 2)),
'buyer_id':fields.many2one('res.partner', 'Buyer'),
'statement_id1':fields.many2one('account.bank.statement', 'Statement', required=True),
- 'amount2': fields.float('Amount paid', digits= (16, int(tools.config['price_accuracy']))),
+ 'amount2': fields.float('Amount paid', digits= (16, 2)),
'statement_id2':fields.many2one('account.bank.statement', 'Statement'),
- 'amount3': fields.float('Amount paid', digits = (16, int(tools.config['price_accuracy']))),
+ 'amount3': fields.float('Amount paid', digits = (16, 2)),
'statement_id3':fields.many2one('account.bank.statement', 'Statement'),
- 'total': fields.float('Amount paid', digits = (16, int(tools.config['price_accuracy'])), readonly =True),
+ 'total': fields.float('Amount paid', digits = (16, 2), readonly =True),
}
def default_get(self, cr, uid, fields, context):
diff --git a/addons/auction/wizard/auction_pay_sel.py b/addons/auction/wizard/auction_pay_sel.py
index 6873092c7e9..711cb8dcedc 100644
--- a/addons/auction/wizard/auction_pay_sel.py
+++ b/addons/auction/wizard/auction_pay_sel.py
@@ -27,7 +27,7 @@ class auction_pay_sel(osv.osv_memory):
_description = "Pay Invoice"
_columns= {
- 'amount': fields.float('Amount paid', digits= (16, int(tools.config['price_accuracy'])), required=True),
+ 'amount': fields.float('Amount paid', digits= (16, 2), required=True),
'dest_account_id':fields.many2one('account.account', 'Payment to Account', required=True, domain= [('type', '=', 'cash')]),
'journal_id':fields.many2one('account.journal', 'Journal', required=True),
'period_id':fields.many2one('account.period', 'Period', required=True),
diff --git a/addons/base_action_rule/base_action_rule.py b/addons/base_action_rule/base_action_rule.py
index 405c3155619..be1a53046a7 100644
--- a/addons/base_action_rule/base_action_rule.py
+++ b/addons/base_action_rule/base_action_rule.py
@@ -21,8 +21,6 @@
from datetime import datetime
from osv import fields, osv, orm
-from osv.orm import except_orm
-from osv.osv import osv_pool
from tools.translate import _
import mx.DateTime
import pooler
@@ -42,17 +40,14 @@ class base_action_rule(osv.osv):
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@param context: A standard dictionary for contextual values """
-
return self.state_get(cr, uid, context=context)
-
def state_get(self, cr, uid, context={}):
""" Get State
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@param context: A standard dictionary for contextual values """
-
return [('', '')]
def priority_get(self, cr, uid, context={}):
@@ -61,14 +56,13 @@ class base_action_rule(osv.osv):
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@param context: A standard dictionary for contextual values """
-
return [('', '')]
_columns = {
'name': fields.many2one('ir.model', 'Object', required=True),
'max_level': fields.integer('Max Level', help='Specifies maximum level.'),
'create_date': fields.datetime('Create Date', readonly=1),
- 'active': fields.boolean('Active', help="If the active field is set to true,\
+ 'active': fields.boolean('Active', help="If the active field is set to False,\
it will allow you to hide the rule without removing it."),
'sequence': fields.integer('Sequence', help="Gives the sequence order \
when displaying a list of rules."),
@@ -85,10 +79,7 @@ specifies you can put a negative number. If you need a delay before the \
trigger date, like sending a reminder 15 minutes before a meeting."),
'trg_date_range_type': fields.selection([('minutes', 'Minutes'), ('hour', 'Hours'), \
('day', 'Days'), ('month', 'Months')], 'Delay type'),
-
-
'trg_user_id': fields.many2one('res.users', 'Responsible'),
-
'trg_partner_id': fields.many2one('res.partner', 'Partner'),
'trg_partner_categ_id': fields.many2one('res.partner.category', 'Partner Category'),
'trg_state_from': fields.selection(_state_get, 'State', size=16),
@@ -136,7 +127,9 @@ the rule to mark CC(mail to any other person defined in actions)."),
def pre_action(self, cr, uid, ids, model, context=None):
# Searching for action rules
- cr.execute("SELECT model.model, rule.id FROM base_action_rule rule LEFT JOIN ir_model model on (model.id = rule.name)")
+ cr.execute("SELECT model.model, rule.id FROM base_action_rule rule \
+ LEFT JOIN ir_model model on (model.id = rule.name) \
+ where active")
res = cr.fetchall()
# Check if any rule matching with current object
for obj_name, rule_id in res:
@@ -171,10 +164,9 @@ the rule to mark CC(mail to any other person defined in actions)."),
def _register_hook(self, cr, uid, ids, context=None):
if not context:
context = {}
- model_pool = self.pool.get('ir.model')
for action_rule in self.browse(cr, uid, ids, context=context):
model = action_rule.name.model
- obj_pool = self.pool.get(model)
+ obj_pool = self.pool.get(model)
obj_pool.__setattr__('create', self._create(obj_pool.create, model, context=context))
obj_pool.__setattr__('write', self._write(obj_pool.write, model, context=context))
return True
@@ -194,7 +186,7 @@ the rule to mark CC(mail to any other person defined in actions)."),
"""
This Function is call by scheduler.
"""
- rule_pool= self.pool.get('base.action.rule')
+ rule_pool = self.pool.get('base.action.rule')
rule_ids = rule_pool.search(cr, uid, [], context=context)
return self._register_hook(cr, uid, rule_ids, context=context)
@@ -202,7 +194,6 @@ the rule to mark CC(mail to any other person defined in actions)."),
def format_body(self, body):
""" Foramat Action rule's body
@param self: The object pointer """
-
return body and tools.ustr(body) or ''
def format_mail(self, obj, body):
@@ -392,7 +383,7 @@ the rule to mark CC(mail to any other person defined in actions)."),
obj.date_action_next = dt
model_obj.write(cr, uid, [obj.id], {'date_action_next': dt}, context)
else:
- ok = action.trg_date_type=='none'
+ ok = action.trg_date_type == 'none'
if ok:
self.do_action(cr, uid, action, model_obj, obj, context)
@@ -431,7 +422,7 @@ class ir_cron(osv.osv):
def _poolJobs(self, db_name, check=False):
try:
- db, pool = pooler.get_db_and_pool(db_name)
+ db = pooler.get_db(db_name)
except:
return False
cr = db.cursor()
@@ -439,12 +430,12 @@ class ir_cron(osv.osv):
next = datetime.now().strftime('%Y-%m-%d %H:00:00')
# Putting nextcall always less than current time in order to call it every time
cr.execute('UPDATE ir_cron set nextcall = \'%s\' where numbercall<>0 and active and model=\'base.action.rule\' ' % (next))
- cr.commit()
- res = super(ir_cron, self)._poolJobs(db_name, check=check)
finally:
cr.commit()
cr.close()
+ super(ir_cron, self)._poolJobs(db_name, check=check)
+
ir_cron()
diff --git a/addons/base_action_rule/base_action_rule_view.xml b/addons/base_action_rule/base_action_rule_view.xml
index 4f502a4406b..c9164962439 100644
--- a/addons/base_action_rule/base_action_rule_view.xml
+++ b/addons/base_action_rule/base_action_rule_view.xml
@@ -57,22 +57,18 @@
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
-
diff --git a/addons/base_action_rule/security/ir.model.access.csv b/addons/base_action_rule/security/ir.model.access.csv
index a8e43372e23..c3a69f93e4c 100644
--- a/addons/base_action_rule/security/ir.model.access.csv
+++ b/addons/base_action_rule/security/ir.model.access.csv
@@ -1,3 +1,3 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_base_action_rule","base.action.rule","model_base_action_rule",,1,0,0,0
-"access_base_action_rule_config","base.action.rule config","model_base_action_rule",base.group_system,1,0,0,0
+"access_base_action_rule_config","base.action.rule config","model_base_action_rule",base.group_system,1,1,1,1
\ No newline at end of file
diff --git a/addons/base_calendar/__openerp__.py b/addons/base_calendar/__openerp__.py
index 2c6c8bf3f9b..2d18f675c6f 100644
--- a/addons/base_calendar/__openerp__.py
+++ b/addons/base_calendar/__openerp__.py
@@ -24,10 +24,10 @@
"version" : "1.0",
"depends" : ["base"],
'description': """Full featured calendar system that supports:
-
+ - Calendar of events
- Alerts (create requests)
- - Recurring events (*)
- - Invitations to others people""",
+ - Recurring events
+ - Invitations to people""",
"author" : "Tiny",
'category': 'Generic Modules/Others',
'website': 'http://www.openerp.com',
@@ -42,7 +42,7 @@
'wizard/base_calendar_set_exrule_view.xml',
'base_calendar_view.xml'
],
- # "test" : ['test/base_calendar_test.yml'],
+ "test" : ['test/base_calendar_test.yml'],
"installable" : True,
"active" : False,
}
diff --git a/addons/base_calendar/base_calendar.py b/addons/base_calendar/base_calendar.py
index 229e7b11fc7..f9f6567747f 100644
--- a/addons/base_calendar/base_calendar.py
+++ b/addons/base_calendar/base_calendar.py
@@ -50,15 +50,17 @@ def get_recurrent_dates(rrulestring, exdate, startdate=None, exrule=None):
if not startdate:
startdate = datetime.now()
- rset1 = rrule.rrulestr(rrulestring, dtstart=startdate, forceset=True)
+ if not exdate:
+ exdate = []
+ rset1 = rrule.rrulestr(str(rrulestring), dtstart=startdate, forceset=True)
for date in exdate:
datetime_obj = todate(date)
rset1._exdate.append(datetime_obj)
if exrule:
rset1.exrule(rrule.rrulestr(str(exrule), dtstart=startdate))
- re_dates = map(lambda x:x.strftime('%Y-%m-%d %H:%M:%S'), rset1._iter())
- return re_dates
+
+ return list(rset1._iter())
def base_calendar_id2real_id(base_calendar_id=None, with_date=False):
"""
@@ -375,7 +377,7 @@ property or property parameter."),
'availability': fields.selection([('free', 'Free'), ('busy', 'Busy')], 'Free/Busy', readonly="True"),
}
_defaults = {
- 'state': lambda *x: 'needs-action',
+ 'state': 'needs-action',
}
def copy(self, cr, uid, id, default=None, context=None):
@@ -524,8 +526,7 @@ property or property parameter."),
@param *args: Get Tupple value
@param context: A standard dictionary for contextual values
"""
-
- self.write(cr, uid, ids, {'state': 'tentative'}, context)
+ return self.write(cr, uid, ids, {'state': 'tentative'}, context)
def do_accept(self, cr, uid, ids, context=None, *args):
"""
@@ -561,7 +562,7 @@ property or property parameter."),
@param *args: Get Tupple value
@param context: A standard dictionary for contextual values """
- self.write(cr, uid, ids, {'state': 'declined'}, context)
+ return self.write(cr, uid, ids, {'state': 'declined'}, context)
def create(self, cr, uid, vals, context=None):
""" Overrides orm create method.
@@ -576,7 +577,7 @@ property or property parameter."),
if not vals.get("email") and vals.get("cn"):
cnval = vals.get("cn").split(':')
email = filter(lambda x:x.__contains__('@'), cnval)
- vals['email'] = email[0]
+ vals['email'] = email and email[0] or ''
vals['cn'] = vals.get("cn")
res = super(calendar_attendee, self).create(cr, uid, vals, context)
return res
@@ -608,11 +609,11 @@ are both optional, but if one occurs, so MUST the other"""),
true, it will allow you to hide the event alarm information without removing it.")
}
_defaults = {
- 'trigger_interval': lambda *x: 'minutes',
- 'trigger_duration': lambda *x: 5,
- 'trigger_occurs': lambda *x: 'before',
- 'trigger_related': lambda *x: 'start',
- 'active': lambda *x: 1,
+ 'trigger_interval': 'minutes',
+ 'trigger_duration': 5,
+ 'trigger_occurs': 'before',
+ 'trigger_related': 'start',
+ 'active': 1,
}
def do_alarm_create(self, cr, uid, ids, model, date, context=None):
@@ -629,6 +630,7 @@ true, it will allow you to hide the event alarm information without removing it.
if not context:
context = {}
alarm_obj = self.pool.get('calendar.alarm')
+ res_alarm_obj = self.pool.get('res.alarm')
ir_obj = self.pool.get('ir.model')
model_id = ir_obj.search(cr, uid, [('model', '=', model)])[0]
@@ -636,9 +638,31 @@ true, it will allow you to hide the event alarm information without removing it.
for data in model_obj.browse(cr, uid, ids, context):
basic_alarm = data.alarm_id
- if not context.get('alarm_id', False):
- self.do_alarm_unlink(cr, uid, [data.id], model)
- return True
+ cal_alarm = data.base_calendar_alarm_id
+ if (not basic_alarm and cal_alarm) or (basic_alarm and cal_alarm):
+ new_res_alarm = None
+ # Find for existing res.alarm
+ duration = cal_alarm.trigger_duration
+ interval = cal_alarm.trigger_interval
+ occurs = cal_alarm.trigger_occurs
+ related = cal_alarm.trigger_related
+ domain = [('trigger_duration', '=', duration), ('trigger_interval', '=', interval), ('trigger_occurs', '=', occurs), ('trigger_related', '=', related)]
+ alarm_ids = res_alarm_obj.search(cr, uid, domain, context=context)
+ if not alarm_ids:
+ val = {
+ 'trigger_duration': duration,
+ 'trigger_interval': interval,
+ 'trigger_occurs': occurs,
+ 'trigger_related': related,
+ 'name': str(duration) + ' ' + str(interval) + ' ' + str(occurs)
+ }
+ new_res_alarm = res_alarm_obj.create(cr, uid, val, context=context)
+ else:
+ new_res_alarm = alarm_ids[0]
+ cr.execute('Update %s set base_calendar_alarm_id=%s, alarm_id=%s \
+ where id=%s' % (model_obj._table, \
+ cal_alarm.id, new_res_alarm, data.id))
+
self.do_alarm_unlink(cr, uid, [data.id], model)
if basic_alarm:
vals = {
@@ -730,8 +754,8 @@ class calendar_alarm(osv.osv):
}
_defaults = {
- 'action': lambda *x: 'email',
- 'state': lambda *x: 'run',
+ 'action': 'email',
+ 'state': 'run',
}
def create(self, cr, uid, vals, context=None):
@@ -769,61 +793,100 @@ class calendar_alarm(osv.osv):
@param use_new_cursor: False or the dbname
@param context: A standard dictionary for contextual values
"""
-
if not context:
context = {}
- current_datetime = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
- cr.execute("select alarm.id as id \
- from calendar_alarm alarm \
- where alarm.state = %s and alarm.trigger_date <= %s", ('run', current_datetime))
- res = cr.dictfetchall()
- alarm_ids = map(lambda x: x['id'], res)
- #attendee_obj = self.pool.get('calendar.attendee')
+ current_datetime = datetime.now()
request_obj = self.pool.get('res.request')
+ alarm_ids = self.search(cr, uid, [('state', '!=', 'done')], context=context)
+
mail_to = []
- for alarm in self.browse(cr, uid, alarm_ids):
- if alarm.action == 'display':
- value = {
- 'name': alarm.name,
- 'act_from': alarm.user_id.id,
- 'act_to': alarm.user_id.id,
- 'body': alarm.description,
- 'trigger_date': alarm.trigger_date,
- 'ref_doc1': '%s,%s' % (alarm.model_id.model, alarm.res_id)
- }
- request_id = request_obj.create(cr, uid, value)
- request_ids = [request_id]
- for attendee in alarm.attendee_ids:
- if attendee.user_id:
- value['act_to'] = attendee.user_id.id
- request_id = request_obj.create(cr, uid, value)
- request_ids.append(request_id)
- request_obj.request_send(cr, uid, request_ids)
- if alarm.action == 'email':
- sub = '[Openobject Remainder] %s' % (alarm.name)
- body = """
- Name: %s
- Date: %s
- Description: %s
+ for alarm in self.browse(cr, uid, alarm_ids, context=context):
+ next_trigger_date = None
+ update_vals = {}
+ model_obj = self.pool.get(alarm.model_id.model)
+ res_obj = model_obj.browse(cr, uid, alarm.res_id, context=context)
+ re_dates = []
- From:
- %s
- %s
+ if res_obj.rrule:
+ event_date = datetime.strptime(res_obj.date, '%Y-%m-%d %H:%M:%S')
+ recurrent_dates = get_recurrent_dates(res_obj.rrule, res_obj.exdate, event_date, res_obj.exrule)
- """ % (alarm.name, alarm.trigger_date, alarm.description, \
- alarm.user_id.name, alarm.user_id.signature)
- mail_to = [alarm.user_id.address_id.email]
- for att in alarm.attendee_ids:
- mail_to.append(att.user_id.address_id.email)
- if mail_to:
- tools.email_send(
- tools.config.get('email_from', False),
- mail_to,
- sub,
- body
- )
- self.write(cr, uid, [alarm.id], {'state':'done'})
+ trigger_interval = alarm.trigger_interval
+ if trigger_interval == 'days':
+ delta = timedelta(days=alarm.trigger_duration)
+ if trigger_interval == 'hours':
+ delta = timedelta(hours=alarm.trigger_duration)
+ if trigger_interval == 'minutes':
+ delta = timedelta(minutes=alarm.trigger_duration)
+ delta = alarm.trigger_occurs == 'after' and delta or -delta
+
+ for rdate in recurrent_dates:
+ if rdate + delta > current_datetime:
+ break
+ if rdate + delta <= current_datetime:
+ re_dates.append(rdate.strftime("%Y-%m-%d %H:%M:%S"))
+ rest_dates = recurrent_dates[len(re_dates):]
+ next_trigger_date = rest_dates and rest_dates[0] or None
+
+ else:
+ re_dates = [alarm.trigger_date]
+
+ for r_date in re_dates:
+ ref = alarm.model_id.model + ',' + str(alarm.res_id)
+
+ # search for alreay sent requests
+ if request_obj.search(cr, uid, [('trigger_date', '=', r_date), ('ref_doc1', '=', ref)], context=context):
+ continue
+
+ if alarm.action == 'display':
+ value = {
+ 'name': alarm.name,
+ 'act_from': alarm.user_id.id,
+ 'act_to': alarm.user_id.id,
+ 'body': alarm.description,
+ 'trigger_date': r_date,
+ 'ref_doc1': ref
+ }
+ request_id = request_obj.create(cr, uid, value)
+ request_ids = [request_id]
+ for attendee in res_obj.attendee_ids:
+ if attendee.user_id:
+ value['act_to'] = attendee.user_id.id
+ request_id = request_obj.create(cr, uid, value)
+ request_ids.append(request_id)
+ request_obj.request_send(cr, uid, request_ids)
+
+ if alarm.action == 'email':
+ sub = '[Openobject Reminder] %s' % (alarm.name)
+ body = """
+Event: %s
+Event Date: %s
+Description: %s
+
+From:
+ %s
+
+----
+%s
+
+""" % (alarm.name, alarm.trigger_date, alarm.description, \
+ alarm.user_id.name, alarm.user_id.signature)
+ mail_to = [alarm.user_id.address_id.email]
+ for att in alarm.attendee_ids:
+ mail_to.append(att.user_id.address_id.email)
+ if mail_to:
+ tools.email_send(
+ tools.config.get('email_from', False),
+ mail_to,
+ sub,
+ body
+ )
+ if next_trigger_date:
+ update_vals.update({'trigger_date': next_trigger_date})
+ else:
+ update_vals.update({'state': 'done'})
+ self.write(cr, uid, [alarm.id], update_vals)
return True
calendar_alarm()
@@ -1020,7 +1083,10 @@ class calendar_event(osv.osv):
'location': fields.char('Location', size=264, help="Location of Event", states={'done': [('readonly', True)]}),
'show_as': fields.selection([('free', 'Free'), ('busy', 'Busy')], \
'Show as', states={'done': [('readonly', True)]}),
- 'base_calendar_url': fields.char('Caldav URL', size=264),
+ 'base_calendar_url': fields.char('Caldav URL', size=264),
+ 'state': fields.selection([('tentative', 'Tentative'),
+ ('confirmed', 'Confirmed'),
+ ('cancelled', 'Cancelled')], 'State', readonly=True),
'exdate': fields.text('Exception Date/Times', help="This property \
defines the list of date/time exceptions for arecurring calendar component."),
'exrule': fields.char('Exception Rule', size=352, help="defines a \
@@ -1078,13 +1144,14 @@ true, it will allow you to hide the event alarm information without removing it.
}
_defaults = {
- 'class': lambda *a: 'public',
- 'show_as': lambda *a: 'busy',
- 'freq': lambda *x: 'None',
- 'select1': lambda *x: 'date',
- 'interval': lambda *x: 1,
- 'active': lambda *x: 1,
- }
+ 'state': 'tentative',
+ 'class': 'public',
+ 'show_as': 'busy',
+ 'freq': 'None',
+ 'select1': 'date',
+ 'interval': 1,
+ 'active': 1,
+ }
def open_event(self, cr, uid, ids, context=None):
"""
@@ -1247,13 +1314,12 @@ true, it will allow you to hide the event alarm information without removing it.
new_rrule_str.append(new_rule)
new_rrule_str = ';'.join(new_rrule_str)
rdates = get_recurrent_dates(str(new_rrule_str), exdate, start_date, data['exrule'])
- for rdate in rdates:
- r_date = datetime.strptime(rdate, "%Y-%m-%d %H:%M:%S")
+ for r_date in rdates:
if start_date and r_date < start_date:
continue
if until_date and r_date > until_date:
continue
- idval = real_id2base_calendar_id(data['id'], rdate)
+ idval = real_id2base_calendar_id(data['id'], r_date.strftime("%Y-%m-%d %H:%M:%S"))
result.append(idval)
count += 1
if result:
@@ -1309,7 +1375,7 @@ true, it will allow you to hide the event alarm information without removing it.
yearstring = bymonth + bystring
if datas.get('end_date'):
- datas['end_date'] = ''.join((re.compile('\d')).findall(datas.get('end_date'))) + '235959Z'
+ datas['end_date'] = ''.join((re.compile('\d')).findall(datas.get('end_date'))) + 'T235959Z'
enddate = (datas.get('count') and (';COUNT=' + str(datas.get('count'))) or '') +\
((datas.get('end_date') and (';UNTIL=' + datas.get('end_date'))) or '')
@@ -1387,9 +1453,10 @@ true, it will allow you to hide the event alarm information without removing it.
new_ids.append(event_id)
res = super(calendar_event, self).write(cr, uid, new_ids, vals, context=context)
- if vals.has_key('alarm_id') or vals.has_key('base_calendar_alarm_id'):
+ if (vals.has_key('alarm_id') or vals.has_key('base_calendar_alarm_id'))\
+ or (vals.has_key('date') or vals.has_key('duration') or vals.has_key('date_deadline')):
+ # change alarm details
alarm_obj = self.pool.get('res.alarm')
- context.update({'alarm_id': vals.get('alarm_id')})
alarm_obj.do_alarm_create(cr, uid, new_ids, self._name, 'date', \
context=context)
return res
@@ -1439,7 +1506,7 @@ true, it will allow you to hide the event alarm information without removing it.
fields.append('date')
for base_calendar_id, real_id in select:
res = super(calendar_event, self).read(cr, uid, real_id, fields=fields, context=context, load=load)
- ls = base_calendar_id2real_id(base_calendar_id, with_date=res.get('duration', 0))
+ ls = base_calendar_id2real_id(base_calendar_id, with_date=res and res.get('duration', 0) or 0)
if not isinstance(ls, (str, int, long)) and len(ls) >= 2:
res['date'] = ls[1]
res['date_deadline'] = ls[2]
@@ -1463,7 +1530,7 @@ true, it will allow you to hide the event alarm information without removing it.
context = {}
res = super(calendar_event, self).copy(cr, uid, base_calendar_id2real_id(id), default, context)
alarm_obj = self.pool.get('res.alarm')
- alarm_obj.do_alarm_create(cr, uid, [res], self._name, 'date')
+ alarm_obj.do_alarm_create(cr, uid, [res], self._name, 'date', context=context)
return res
@@ -1477,27 +1544,23 @@ true, it will allow you to hide the event alarm information without removing it.
@return: True
"""
res = False
- for id in ids:
- ls = base_calendar_id2real_id(id)
- if not isinstance(ls, (str, int, long)) and len(ls) >= 2:
- date_new = ls[1]
- for record in self.read(cr, uid, [base_calendar_id2real_id(id)], \
- ['date', 'rrule', 'exdate']):
- if record['rrule']:
- exdate = (record['exdate'] and (record['exdate'] + ',') or '') + ''.join((re.compile('\d')).findall(date_new)) + 'Z'
- if record['date'] == date_new:
- res = self.write(cr, uid, [base_calendar_id2real_id(id)], {'exdate': exdate})
- else:
- ids = map(lambda x: base_calendar_id2real_id(x), ids)
- res = super(calendar_event, self).unlink(cr, uid, \
- base_calendar_id2real_id(ids))
- alarm_obj = self.pool.get('res.alarm')
- alarm_obj.do_alarm_unlink(cr, uid, ids, self._name)
- else:
- ids = map(lambda x: base_calendar_id2real_id(x), ids)
- res = super(calendar_event, self).unlink(cr, uid, ids)
- alarm_obj = self.pool.get('res.alarm')
- alarm_obj.do_alarm_unlink(cr, uid, ids, self._name)
+ for event_id in ids:
+ if isinstance(event_id, (int, long)):
+ res = super(calendar_event, self).unlink(cr, uid, event_id)
+ self.pool.get('res.alarm').do_alarm_unlink(cr, uid, [event_id], self._name)
+ continue
+ event_id, date_new = event_id.split('-')
+ event_id = [int(event_id)]
+ for record in self.read(cr, uid, event_id, ['date', 'rrule', 'exdate']):
+ if record['rrule']:
+ # Remove one of the recurrent event
+ date_new = time.strftime("%Y-%m-%d %H:%M:%S", \
+ time.strptime(date_new, "%Y%m%d%H%M%S"))
+ exdate = (record['exdate'] and (record['exdate'] + ',') or '') + ''.join((re.compile('\d')).findall(date_new)) + 'Z'
+ res = self.write(cr, uid, event_id, {'exdate': exdate})
+ else:
+ res = super(calendar_event, self).unlink(cr, uid, event_id)
+ self.pool.get('res.alarm').do_alarm_unlink(cr, uid, event_id, self._name)
return res
def create(self, cr, uid, vals, context=None):
@@ -1514,8 +1577,41 @@ true, it will allow you to hide the event alarm information without removing it.
context = {}
res = super(calendar_event, self).create(cr, uid, vals, context)
alarm_obj = self.pool.get('res.alarm')
- alarm_obj.do_alarm_create(cr, uid, [res], self._name, 'date')
+ alarm_obj.do_alarm_create(cr, uid, [res], self._name, 'date', context=context)
return res
+
+ def do_tentative(self, cr, uid, ids, context=None, *args):
+ """ Makes event invitation as Tentative
+ @param self: The object pointer
+ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks,
+ @param ids: List of Event IDs
+ @param *args: Get Tupple value
+ @param context: A standard dictionary for contextual values
+ """
+ return self.write(cr, uid, ids, {'state': 'tentative'}, context)
+
+ def do_cancel(self, cr, uid, ids, context=None, *args):
+ """ Makes event invitation as Tentative
+ @param self: The object pointer
+ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks,
+ @param ids: List of Event IDs
+ @param *args: Get Tupple value
+ @param context: A standard dictionary for contextual values
+ """
+ return self.write(cr, uid, ids, {'state': 'cancelled'}, context)
+
+ def do_confirm(self, cr, uid, ids, context=None, *args):
+ """ Makes event invitation as Tentative
+ @param self: The object pointer
+ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks,
+ @param ids: List of Event IDs
+ @param *args: Get Tupple value
+ @param context: A standard dictionary for contextual values
+ """
+ return self.write(cr, uid, ids, {'state': 'confirmed'}, context)
calendar_event()
diff --git a/addons/base_calendar/base_calendar_view.xml b/addons/base_calendar/base_calendar_view.xml
index 5f79e0f2681..7e2368658df 100644
--- a/addons/base_calendar/base_calendar_view.xml
+++ b/addons/base_calendar/base_calendar_view.xml
@@ -206,7 +206,7 @@
+ colspan="4" required="1" />
-
+
+
+
+
+
+
+
+
@@ -393,6 +412,10 @@
domain="[('user_id','=',uid)]"
help="My Events" />
+
+
@@ -403,6 +426,8 @@
+
-
+
-
+
-
+
@@ -37,25 +37,25 @@
-
+
-
+
-
+
-
+
@@ -66,73 +66,73 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/addons/base_contact/base_contact_view.xml b/addons/base_contact/base_contact_view.xml
index 9050f05acaf..c336b3e35fe 100644
--- a/addons/base_contact/base_contact_view.xml
+++ b/addons/base_contact/base_contact_view.xml
@@ -29,37 +29,39 @@
form
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
-
-
+
+
-
+
-
+
+
@@ -81,16 +83,18 @@
-
+
+
+
+
+
-
-
-
+
@@ -174,13 +178,14 @@
-
+
-
+
+
diff --git a/addons/base_contact/test/base_contact00.yml b/addons/base_contact/test/base_contact00.yml
index 5a76e25c424..335f525f92f 100644
--- a/addons/base_contact/test/base_contact00.yml
+++ b/addons/base_contact/test/base_contact00.yml
@@ -10,7 +10,7 @@
!record {model: res.lang, id: res_lang_french0}:
code: fr_BE
date_format: '%m/%d/%Y'
- decimal_point: .
+ decimal_point: '.'
direction: ltr
grouping: '[]'
name: French
@@ -30,7 +30,6 @@
lang_id: res_lang_french0
mobile: (+32).10.45.18.77
name: Williams
- title: Mss
- |
Now in order to assign this contact to partner I will create one partner assign contact laura to this partner
-
@@ -51,7 +50,7 @@
lang: fr_BE
name: Laura's Company
ref: LC
- title: ltd
+
- |
Now I will check that the new job is assigned properly to contact or not
-
@@ -74,7 +73,7 @@
lang_id: res_lang_french0
mobile: (+32).23.44.32.12
name: Pauwels
- title: M.
+
- |
In order to check one contact working at one partner with different functions
I will create contact with 2 different jobs with different function but the same address
@@ -92,5 +91,4 @@
lang_id: base_contact.res_lang_french0
mobile: (+32).10.45.18.77
name: Mortier
- title: Mss
diff --git a/addons/base_iban/i18n/ru.po b/addons/base_iban/i18n/ru.po
index efaf18578fc..7b75130d154 100644
--- a/addons/base_iban/i18n/ru.po
+++ b/addons/base_iban/i18n/ru.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2008-10-30 04:07+0000\n"
-"Last-Translator: Sergei Kostigoff \n"
+"PO-Revision-Date: 2010-07-07 22:35+0000\n"
+"Last-Translator: Pomazan Bogdan \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: 2010-06-22 03:55+0000\n"
+"X-Launchpad-Export-Date: 2010-07-08 03:49+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base_iban
@@ -55,7 +55,7 @@ msgstr ""
#. module: base_iban
#: model:res.partner.bank.type,name:base_iban.bank_iban
msgid "IBAN Account"
-msgstr ""
+msgstr "IBAN Аккаунт"
#. module: base_iban
#: model:res.partner.bank.type.field,name:base_iban.bank_acc_number_field
diff --git a/addons/base_report_creator/__openerp__.py b/addons/base_report_creator/__openerp__.py
index 22d7adffe8b..8e1ba708850 100644
--- a/addons/base_report_creator/__openerp__.py
+++ b/addons/base_report_creator/__openerp__.py
@@ -38,7 +38,6 @@ the "Dashboard" menu.
'update_xml': [
'security/ir.model.access.csv',
'wizard/report_menu_create_view.xml',
- 'wizard/report_open_view.xml',
'base_report_creator_wizard.xml',
'base_report_creator_view.xml'
],
diff --git a/addons/base_report_creator/base_report_creator.py b/addons/base_report_creator/base_report_creator.py
index 764753f5cc2..3ba79bad2c0 100644
--- a/addons/base_report_creator/base_report_creator.py
+++ b/addons/base_report_creator/base_report_creator.py
@@ -98,7 +98,7 @@ class report_creator(osv.osv):
if context is None:
context = {}
- data = context and context.get('report_id', False) or False
+ data = context and context.get('report_id', False) or False
if (not context) or 'report_id' not in context:
return super(report_creator, self).fields_view_get(cr, user, view_id, view_type, context, toolbar=toolbar, submenu=submenu)
report = self.browse(cr, user, data)
@@ -114,7 +114,7 @@ class report_creator(osv.osv):
else:
fields['column_count'] = {'readonly': True, 'type': 'integer', 'string': 'Count', 'size': 64, 'name': 'column_count'}
- arch = '\n'
+ arch = ''
if view_type == 'graph':
orientation_eval = {'horz':'horizontal','vert' :'vertical'}
orientation = eval(report.view_graph_orientation,orientation_eval)
@@ -163,14 +163,14 @@ class report_creator(osv.osv):
arch += '''>'''
arch += ''.join(temp_list)
else:
- arch += '<%s string="%s">\n' % (view_type, report.name)
+ arch += '<%s string="%s">' % (view_type, report.name)
i = 0
for f in report.field_ids:
if f.field_id.model:
- arch += ' ' % ('field' + str(i),)
+ arch += ' ' % ('field' + str(i),)
i += 1
else:
- arch += ' ' % ('column_count',)
+ arch += ' ' % ('column_count',)
arch += '%s>' % (view_type,)
result = {
'arch': arch,
@@ -181,7 +181,6 @@ class report_creator(osv.osv):
'action': [],
'relate': []
}
-
return result
def read(self, cr, user, ids, fields = None, context = None, load = '_classic_read'):
@@ -406,55 +405,85 @@ class report_creator(osv.osv):
return result
_columns = {
- 'name': fields.char('Report Name', size=64, required=True),
+ 'name': fields.char('Report Name', size=64, required=True),
'type': fields.selection([('list', 'Rows And Columns Report'), ], 'Report Type', required=True), #('sum','Summation Report')
- 'active': fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the report without removing it."),
- 'view_type1': fields.selection([('form', 'Form'),
- ('tree', 'Tree'),
- ('graph', 'Graph'),
- ('calendar', 'Calendar')], 'First View', required=True),
- 'view_type2': fields.selection([('', '/'),
- ('form', 'Form'),
- ('tree', 'Tree'),
- ('graph', 'Graph'),
- ('calendar', 'Calendar')], 'Second View'),
- 'view_type3': fields.selection([('', '/'),
- ('form', 'Form'),
- ('tree', 'Tree'),
- ('graph', 'Graph'),
- ('calendar', 'Calendar')], 'Third View'),
- 'view_graph_type': fields.selection([('pie', 'Pie Chart'),
- ('bar', 'Bar Chart')], 'Graph Type', required=True),
- 'view_graph_orientation': fields.selection([('horz', 'Horizontal'),
- ('vert', 'Vertical')], 'Graph Orientation', required=True),
- 'model_ids': fields.many2many('ir.model', 'base_report_creator_report_model_rel', 'report_id', 'model_id', 'Reported Objects'),
- 'field_ids': fields.one2many('base_report_creator.report.fields', 'report_id', 'Fields to Display'),
- 'filter_ids': fields.one2many('base_report_creator.report.filter', 'report_id', 'Filters'),
- 'state': fields.selection([
- ('draft', 'Draft'),
- ('valid', 'Valid')],
- 'State', required=True,
- help=' * The \'Draft\' state is used when a user is encoding a new and unconfirmed custom report. \
- \n* The \'Valid\' state is used when user validates the custom report.'),
- 'sql_query': fields.function(_sql_query_get, method=True, type="text", string='SQL Query', store=True),
- 'group_ids': fields.many2many('res.groups', 'base_report_creator_group_rel', 'report_id', 'group_id', 'Authorized Groups'),
+ 'active': fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the report without removing it."),
+ 'view_type1': fields.selection([('form', 'Form'),
+ ('tree', 'Tree'),
+ ('graph', 'Graph'),
+ ('calendar', 'Calendar')], 'First View', required=True),
+ 'view_type2': fields.selection([('', '/'),
+ ('form', 'Form'),
+ ('tree', 'Tree'),
+ ('graph', 'Graph'),
+ ('calendar', 'Calendar')], 'Second View'),
+ 'view_type3': fields.selection([('', '/'),
+ ('form', 'Form'),
+ ('tree', 'Tree'),
+ ('graph', 'Graph'),
+ ('calendar', 'Calendar')], 'Third View'),
+ 'view_graph_type': fields.selection([('pie', 'Pie Chart'),
+ ('bar', 'Bar Chart')], 'Graph Type', required=True),
+ 'view_graph_orientation': fields.selection([('horz', 'Horizontal'),
+ ('vert', 'Vertical')], 'Graph Orientation', required=True),
+ 'model_ids': fields.many2many('ir.model', 'base_report_creator_report_model_rel', 'report_id', 'model_id', 'Reported Objects'),
+ 'field_ids': fields.one2many('base_report_creator.report.fields', 'report_id', 'Fields to Display'),
+ 'filter_ids': fields.one2many('base_report_creator.report.filter', 'report_id', 'Filters'),
+ 'sql_query': fields.function(_sql_query_get, method=True, type="text", string='SQL Query', store=True),
+ 'group_ids': fields.many2many('res.groups', 'base_report_creator_group_rel', 'report_id', 'group_id', 'Authorized Groups'),
+ 'menu_id': fields.many2one('ir.ui.menu', "Menu", readonly=True),
}
_defaults = {
- 'type': lambda *args: 'list',
- 'state': lambda *args: 'draft',
- 'active': lambda *args: True,
- 'view_type1': lambda *args: 'tree',
- 'view_type2': lambda *args: 'graph',
- 'view_graph_type': lambda *args: 'bar',
- 'view_graph_orientation': lambda *args: 'horz',
+ 'type': lambda *args: 'list',
+ 'active': lambda *args: True,
+ 'view_type1': lambda *args: 'tree',
+ 'view_type2': lambda *args: 'graph',
+ 'view_graph_type': lambda *args: 'bar',
+ 'view_graph_orientation': lambda *args: 'horz',
}
+
+ def open_report(self, cr, uid, ids, context=None):
+ """
+ This Function opens base creator report view
+ @param self: The object pointer
+ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks,
+ @param ids: List of report open's IDs
+ @param context: A standard dictionary for contextual values
+ @return : Dictionary value for base creator report form
+ """
+ if not context:
+ context = {}
+
+ rep = self.browse(cr, uid, ids, context=context)
+ if not rep:
+ return False
+
+ rep = rep[0]
+ view_mode = rep.view_type1
+ if rep.view_type2:
+ view_mode += ',' + rep.view_type2
+ if rep.view_type3:
+ view_mode += ',' + rep.view_type3
+ value = {
+ 'name': rep.name,
+ 'view_type': 'form',
+ 'view_mode': view_mode,
+ 'res_model': 'base_report_creator.report',
+ 'type': 'ir.actions.act_window',
+ 'context': "{'report_id':%d}" % (rep.id,),
+ 'nodestroy': True,
+ }
+
+ return value
+
def _function_field(self, cr, uid, ids):
"""
- constraints function which specify that
+ constraints function which specify that
not display field which are not stored in Database.
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
- @param ids: List of Report creator's id.
+ @param ids: List of Report creator's id.
@return: True if display field which are stored in database.
or false if display field which are not store in dtabase.
"""
@@ -514,10 +543,11 @@ class report_creator(osv.osv):
return False
return True
+
_constraints = [
- (_function_field, 'You can not display field which are not stored in Database.', ['field_ids']),
- (_aggregation_error, 'You can apply aggregate function to the non calculated field.', ['field_ids']),
- (_calander_view_error, "You must have to give calendar view's color,start date and delay.", ['field_ids']),
+ (_function_field, 'You can not display field which are not stored in Database.', ['field_ids']),
+ (_aggregation_error, 'You can apply aggregate function to the non calculated field.', ['field_ids']),
+ (_calander_view_error, "You must have to give calendar view's color,start date and delay.", ['field_ids']),
]
report_creator()
@@ -531,25 +561,25 @@ class report_creator_field(osv.osv):
_rec_name = 'field_id'
_order = "sequence,id"
_columns = {
- 'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of fields."),
- 'field_id': fields.many2one('ir.model.fields', 'Field'),
- 'report_id': fields.many2one('base_report_creator.report', 'Report', on_delete='cascade'),
- 'group_method': fields.selection([('group', 'Grouped'),
- ('sum', 'Sum'),
- ('min', 'Minimum'),
- ('count', 'Count'),
- ('max', 'Maximum'),
- ('avg', 'Average')], 'Grouping Method', required=True),
- 'graph_mode': fields.selection([('', '/'),
- ('x', 'X Axis'),
- ('y', 'Y Axis')], 'Graph Mode'),
- 'calendar_mode': fields.selection([('', '/'),
- ('date_start', 'Starting Date'),
- ('date_end', 'Ending Date'), ('date_delay', 'Delay'), ('date_stop', 'End Date'), ('color', 'Unique Colors')], 'Calendar Mode'),
+ 'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of fields."),
+ 'field_id': fields.many2one('ir.model.fields', 'Field'),
+ 'report_id': fields.many2one('base_report_creator.report', 'Report', on_delete='cascade'),
+ 'group_method': fields.selection([('group', 'Grouped'),
+ ('sum', 'Sum'),
+ ('min', 'Minimum'),
+ ('count', 'Count'),
+ ('max', 'Maximum'),
+ ('avg', 'Average')], 'Grouping Method', required=True),
+ 'graph_mode': fields.selection([('', '/'),
+ ('x', 'X Axis'),
+ ('y', 'Y Axis')], 'Graph Mode'),
+ 'calendar_mode': fields.selection([('', '/'),
+ ('date_start', 'Starting Date'),
+ ('date_end', 'Ending Date'), ('date_delay', 'Delay'), ('date_stop', 'End Date'), ('color', 'Unique Colors')], 'Calendar Mode'),
}
_defaults = {
- 'group_method': lambda *args: 'group',
- 'graph_mode': lambda *args: '',
+ 'group_method': lambda *args: 'group',
+ 'graph_mode': lambda *args: '',
}
report_creator_field()
@@ -561,14 +591,14 @@ class report_creator_filter(osv.osv):
_name = "base_report_creator.report.filter"
_description = "Report Filters"
_columns = {
- 'name': fields.char('Filter Name', size=64, required=True),
- 'expression': fields.text('Value', required=True, help='Provide an expression for the field based on which you want to filter the records.\n e.g. res_partner.id=3'),
- 'report_id': fields.many2one('base_report_creator.report', 'Report', on_delete='cascade'),
- 'condition': fields.selection([('and', 'AND'),
+ 'name': fields.char('Filter Name', size=64, required=True),
+ 'expression': fields.text('Value', required=True, help='Provide an expression for the field based on which you want to filter the records.\n e.g. res_partner.id=3'),
+ 'report_id': fields.many2one('base_report_creator.report', 'Report', on_delete='cascade'),
+ 'condition': fields.selection([('and', 'AND'),
('or', 'OR')], 'Condition')
}
_defaults = {
- 'condition': lambda *args: 'and',
+ 'condition': lambda *args: 'and',
}
report_creator_filter()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/base_report_creator/base_report_creator_demo.xml b/addons/base_report_creator/base_report_creator_demo.xml
index da44979f26d..3ec5cfbe987 100644
--- a/addons/base_report_creator/base_report_creator_demo.xml
+++ b/addons/base_report_creator/base_report_creator_demo.xml
@@ -10,7 +10,6 @@
-
diff --git a/addons/base_report_creator/base_report_creator_view.xml b/addons/base_report_creator/base_report_creator_view.xml
index 021bcbb5998..8752a573725 100644
--- a/addons/base_report_creator/base_report_creator_view.xml
+++ b/addons/base_report_creator/base_report_creator_view.xml
@@ -23,7 +23,6 @@
-
@@ -42,12 +41,21 @@
-
-
-
+ context="{'model_ids':model_ids}" nolabel="1" />
+
+
+
+
+
+
+
+
+
+
@@ -112,6 +120,17 @@
+
+ Report Name
+ base_report_creator.report
+ search
+
+
+
+
+
+
+
@@ -119,6 +138,7 @@
base_report_creator.report
form
tree,form
+
-
-
-
diff --git a/addons/base_report_creator/base_report_creator_wizard.xml b/addons/base_report_creator/base_report_creator_wizard.xml
index a8dad6f9b41..68ab122edb0 100644
--- a/addons/base_report_creator/base_report_creator_wizard.xml
+++ b/addons/base_report_creator/base_report_creator_wizard.xml
@@ -3,6 +3,5 @@
-
diff --git a/addons/base_report_creator/wizard/__init__.py b/addons/base_report_creator/wizard/__init__.py
index d2ff1dc5fea..5616c82a370 100644
--- a/addons/base_report_creator/wizard/__init__.py
+++ b/addons/base_report_creator/wizard/__init__.py
@@ -21,6 +21,5 @@
import wiz_set_filter_fields
import report_menu_create
-import report_open
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/base_report_creator/wizard/base_report_creator_open.py b/addons/base_report_creator/wizard/base_report_creator_open.py
deleted file mode 100644
index be7420c5744..00000000000
--- a/addons/base_report_creator/wizard/base_report_creator_open.py
+++ /dev/null
@@ -1,64 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-
-import wizard
-import netsvc
-import time
-import pooler
-from osv import osv
-from tools.translate import _
-
-
-
-class report_creator_open(wizard.interface):
- def _open_report(self, cr, uid, data, context):
- pool = pooler.get_pool(cr.dbname)
- if context.get('report_id',False):
- raise wizard.except_wizard(_('UserError'),_('No Wizards available for this object!'))
- rep = pool.get('base_report_creator.report').browse(cr, uid, data['id'], context)
- view_mode = rep.view_type1
- if rep.view_type2:
- view_mode += ','+rep.view_type2
- if rep.view_type3:
- view_mode += ','+rep.view_type3
- value = {
- 'name': rep.name,
- 'view_type': 'form',
- 'view_mode': view_mode,
- 'res_model': 'base_report_creator.report',
- 'context': {'report_id': data['id']},
- 'view_id': False,
- 'type': 'ir.actions.act_window'
- }
- return value
-
- states = {
- 'init' : {
- 'actions' : [],
- 'result' : {'type':'action', 'action':_open_report, 'state':'end'}
- }
- }
-report_creator_open('base_report_creator.report.open')
-
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/base_report_creator/wizard/report_menu_create.py b/addons/base_report_creator/wizard/report_menu_create.py
index 06e48b2ee8f..84b952f976a 100644
--- a/addons/base_report_creator/wizard/report_menu_create.py
+++ b/addons/base_report_creator/wizard/report_menu_create.py
@@ -43,31 +43,41 @@ class report_menu_create(osv.osv_memory):
if not context:
context = {}
context_id = context and context.get('active_id', False) or False
+ obj_menu = self.pool.get('ir.ui.menu')
+ data_obj = self.pool.get('ir.model.data')
+ obj_board = self.pool.get('base_report_creator.report')
if context_id:
- board = self.pool.get('base_report_creator.report').browse(cr, uid, context_id)
+ data = self.browse(cr, uid, ids, context=context)
+ if not data:
+ return {}
+ data = data[0]
+
+ board = obj_board.browse(cr, uid, context_id)
view = board.view_type1
if board.view_type2:
view += ',' + board.view_type2
if board.view_type3:
view += ',' + board.view_type3
+
+ result = data_obj._get_id(cr, uid, 'base_report_creator', 'view_report_filter')
+ res = data_obj.read(cr, uid, result, ['res_id'])
action_id = self.pool.get('ir.actions.act_window').create(cr, uid, {
'name': board.name,
'view_type':'form',
'view_mode':view,
'context': "{'report_id':%d}" % (board.id,),
- 'res_model': 'base_report_creator.report'
- })
- obj_menu = self.pool.get('ir.ui.menu')
- #start Loop
- for data in self.read(cr, uid, ids):
- obj_menu.create(cr, uid, {
- 'name': data.get('menu_name'),
- 'parent_id': data.get('menu_parent_id'),
+ 'res_model': 'base_report_creator.report',
+ 'search_view_id': res['res_id']
+ })
+
+ menu_id = obj_menu.create(cr, uid, {
+ 'name': data.menu_name,
+ 'parent_id': data.menu_parent_id.id,
'icon': 'STOCK_SELECT_COLOR',
'action': 'ir.actions.act_window, ' + str(action_id)
}, context=context)
- return {}
- #End Loop
+ obj_board.write(cr, uid, context_id, {'menu_id': menu_id})
+ return {}
report_menu_create()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/base_report_creator/wizard/report_open.py b/addons/base_report_creator/wizard/report_open.py
deleted file mode 100644
index 4476c9d4e93..00000000000
--- a/addons/base_report_creator/wizard/report_open.py
+++ /dev/null
@@ -1,71 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-from osv import fields, osv
-
-class report_open(osv.osv_memory):
- """
- Open report
- """
- _name = "report.open"
- _description = __doc__
-
- def open_report(self, cr, uid, ids, context=None):
- """
- This Function opens base creator report view
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param ids: List of report open's IDs
- @param context: A standard dictionary for contextual values
- @return : Dictionary value for base creator report form
- """
-
- if not context:
- context = {}
-
- context_id = context and context.get('active_id', False) or False
-
- if context.get('report_id', False):
- raise osv.except_osv(_('UserError'), _('No Wizards available for this object!'))
-
- rep = self.pool.get('base_report_creator.report').browse(cr, uid, context_id, context)
- view_mode = rep.view_type1
-
- if rep.view_type2:
- view_mode += ',' + rep.view_type2
- if rep.view_type3:
- view_mode += ',' + rep.view_type3
- value = {
- 'name': rep.name,
- 'view_type': 'form',
- 'view_mode': view_mode,
- 'res_model': 'base_report_creator.report',
- 'context': {'report_id': context_id},
- 'view_id': False,
- 'type': 'ir.actions.act_window'
- }
-
- return value
-
-report_open()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/base_report_creator/wizard/report_open_view.xml b/addons/base_report_creator/wizard/report_open_view.xml
deleted file mode 100644
index 941bcf73b6e..00000000000
--- a/addons/base_report_creator/wizard/report_open_view.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
-
-
-
- report.open.form
- report.open
- form
-
-
-
-
-
-
-
-
-
-
-
-
- Open Report
- report.open
- form
- tree,form
-
- new
-
-
-
-
diff --git a/addons/base_setup/base_setup_installer.xml b/addons/base_setup/base_setup_installer.xml
index 6608cea061b..bb9f8d23bf7 100644
--- a/addons/base_setup/base_setup_installer.xml
+++ b/addons/base_setup/base_setup_installer.xml
@@ -31,7 +31,7 @@
-
+
diff --git a/addons/base_setup/base_setup_todo.xml b/addons/base_setup/base_setup_todo.xml
index 0bf0fbb09be..ae7ae7f23c7 100644
--- a/addons/base_setup/base_setup_todo.xml
+++ b/addons/base_setup/base_setup_todo.xml
@@ -67,7 +67,7 @@
- 1
+ 3
onskip
diff --git a/addons/base_setup/gtk_contact_form.xml b/addons/base_setup/gtk_contact_form.xml
index fcbaa9867e7..f03d8f6cc9d 100644
--- a/addons/base_setup/gtk_contact_form.xml
+++ b/addons/base_setup/gtk_contact_form.xml
@@ -10,50 +10,50 @@
Contact Information
-
- To receive more information, please fill in the form about you and your company. Documentation and/or information will be sent to you as soon as possible.
-
-
- Would you like more information or documentation ?
- 4
-
-
- 22
-
-
+
+ To receive more information, please fill in the form about you and your company. Documentation and/or information will be sent to you as soon as possible.
+
+
+ Would you like more information or documentation ?
+ 4
+
+
+ 22
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -70,7 +70,7 @@
- 1
+ 5
never
diff --git a/addons/base_setup/installer.py b/addons/base_setup/installer.py
index 0ab47197d66..c95fa98d8fc 100644
--- a/addons/base_setup/installer.py
+++ b/addons/base_setup/installer.py
@@ -78,7 +78,7 @@ class base_setup_installer(osv.osv_memory):
'product_expiry':fields.boolean('Food Industry',
help="Installs a preselected set of OpenERP "
"applications which will help you manage foods."),
- 'profile_association':fields.boolean('Associations',
+ 'association':fields.boolean('Associations',
help="Installs a preselected set of OpenERP "
"applications which will help you manage your association "
"more efficiently."),
diff --git a/addons/board/board_view.xml b/addons/board/board_view.xml
index a1dd41ae5ae..c7e1a37b8fa 100644
--- a/addons/board/board_view.xml
+++ b/addons/board/board_view.xml
@@ -3,6 +3,8 @@
+
diff --git a/addons/caldav/calendar.py b/addons/caldav/calendar.py
index 409ffa6b5ad..c9f40e418a1 100644
--- a/addons/caldav/calendar.py
+++ b/addons/caldav/calendar.py
@@ -117,7 +117,7 @@ def get_attribute_mapping(cr, uid, calname, context={}):
res['uid']['type'] = "integer"
return res
-def map_data(cr, uid, obj):
+def map_data(cr, uid, obj, context=None):
""" Map Data
@param self: The object pointer
@param cr: the current row, from the database cursor,"""
@@ -144,7 +144,7 @@ def map_data(cr, uid, obj):
model = obj.__attribute__[map_dict].get('object', False)
modobj = obj.pool.get(model)
for map_vall in map_val:
- id = modobj.create(cr, uid, map_vall)
+ id = modobj.create(cr, uid, map_vall, context=context)
ids.append(id)
vals[field] = [(6, 0, ids)]
continue
@@ -155,7 +155,15 @@ def map_data(cr, uid, obj):
continue
model = obj.__attribute__[map_dict].get('object', False)
modobj = obj.pool.get(model)
- id = modobj.create(cr, uid, map_val)
+ # check if the record exists or not
+ key1 = map_val.keys()
+ value1 = map_val.values()
+ domain = [(key1[i], '=', value1[i]) for i in range(len(key1)) if value1[i]]
+ exist_id = modobj.search(cr, uid, domain, context=context)
+ if exist_id:
+ id = exist_id[0]
+ else:
+ id = modobj.create(cr, uid, map_val, context=context)
vals[field] = id
continue
if field_type == 'timedelta':
@@ -245,7 +253,7 @@ class CalDAV(object):
if cal_data.params.get('X-VOBJ-ORIGINAL-TZID'):
self.ical_set('vtimezone', cal_data.params.get('X-VOBJ-ORIGINAL-TZID'), 'value')
self.ical_set(cal_data.name.lower(), cal_data.value, 'value')
- vals = map_data(cr, uid, self)
+ vals = map_data(cr, uid, self, context=context)
return vals
def create_ics(self, cr, uid, datas, name, ical, context=None):
@@ -874,7 +882,7 @@ class Timezone(CalDAV, osv.osv_memory):
if child.name.lower() == 'tzid':
tzname = child.value
self.ical_set(child.name.lower(), tzname, 'value')
- vals = map_data(cr, uid, self)
+ vals = map_data(cr, uid, self, context=context)
return vals
Timezone()
@@ -969,7 +977,7 @@ class Alarm(CalDAV, osv.osv_memory):
self.ical_set('trigger_related', child.params.get('related')[0].lower(), 'value')
else:
self.ical_set(child.name.lower(), child.value.lower(), 'value')
- vals = map_data(cr, uid, self)
+ vals = map_data(cr, uid, self, context=context)
return vals
Alarm()
@@ -1013,7 +1021,7 @@ class Attendee(CalDAV, osv.osv_memory):
self.ical_set(para.lower(), ical_data.params[para][0].lower(), 'value')
if not ical_data.params.get('CN'):
self.ical_set('cn', ical_data.value, 'value')
- vals = map_data(cr, uid, self)
+ vals = map_data(cr, uid, self, context=context)
return vals
def export_cal(self, cr, uid, model, attendee_ids, vevent, context={}):
diff --git a/addons/claim_from_delivery/__init__.py b/addons/claim_from_delivery/__init__.py
index b10828031a8..801c814fdf9 100644
--- a/addons/claim_from_delivery/__init__.py
+++ b/addons/claim_from_delivery/__init__.py
@@ -18,5 +18,6 @@
#
##############################################################################
import claim_delivery
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/claim_from_delivery/__openerp__.py b/addons/claim_from_delivery/__openerp__.py
index 86d357834ff..c530a5605fb 100644
--- a/addons/claim_from_delivery/__openerp__.py
+++ b/addons/claim_from_delivery/__openerp__.py
@@ -21,7 +21,7 @@
"name" : "Claim from delivery",
"version" : "1.0",
"author" : "Tiny",
- "category" : "Enterprise Specific Modules/Food Industries",
+ "category" : "Generic Modules/Inventory Control",
"depends" : ["base", "crm_claim", "stock"],
"init_xml" : [],
"demo_xml" : [],
@@ -31,5 +31,6 @@
"active": False,
"installable": True
}
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/claim_from_delivery/claim_delivery.py b/addons/claim_from_delivery/claim_delivery.py
index 4e81a0a3067..67e6f0baae2 100644
--- a/addons/claim_from_delivery/claim_delivery.py
+++ b/addons/claim_from_delivery/claim_delivery.py
@@ -24,6 +24,10 @@ from osv import fields, osv
class stock_picking(osv.osv):
_inherit = "stock.picking"
_columns = {
- 'partner_id': fields.related('address_id','partner_id',type='many2one', relation="res.partner", string="Partner"),
+ 'partner_id': fields.related('address_id', 'partner_id', type='many2one', relation="res.partner", string="Partner"),
}
+
stock_picking()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/claim_from_delivery/claim_delivery_view.xml b/addons/claim_from_delivery/claim_delivery_view.xml
index 7fb68cc6348..d2fe510460d 100644
--- a/addons/claim_from_delivery/claim_delivery_view.xml
+++ b/addons/claim_from_delivery/claim_delivery_view.xml
@@ -14,19 +14,11 @@
-
-
-
-
- {'default_partner_address_id': address_id, 'default_partner_id': partner_id}
-
+
diff --git a/addons/crm/board_crm_statistical_view.xml b/addons/crm/board_crm_statistical_view.xml
index 0851a32ad66..1baf673990d 100644
--- a/addons/crm/board_crm_statistical_view.xml
+++ b/addons/crm/board_crm_statistical_view.xml
@@ -96,11 +96,12 @@
+
diff --git a/addons/crm/board_crm_view.xml b/addons/crm/board_crm_view.xml
index 30caaeb5ac9..c90ecb28e03 100644
--- a/addons/crm/board_crm_view.xml
+++ b/addons/crm/board_crm_view.xml
@@ -89,13 +89,9 @@
menu
-
+
-
diff --git a/addons/crm/crm.py b/addons/crm/crm.py
index 8d63bc2933e..5cee0052297 100644
--- a/addons/crm/crm.py
+++ b/addons/crm/crm.py
@@ -22,7 +22,7 @@
import time
from datetime import datetime
from datetime import timedelta
-
+import base64
import tools
from osv import fields
from osv import osv
@@ -214,7 +214,7 @@ class crm_case(object):
def _history(self, cr, uid, cases, keyword, history=False, subject=None, email=False, details=None, email_from=False, message_id=False, attach=[], context={}):
mailgate_pool = self.pool.get('mailgate.thread')
- return mailgate_pool._history(cr, uid, cases, keyword, history=history,\
+ return mailgate_pool.history(cr, uid, cases, keyword, history=history,\
subject=subject, email=email, \
details=details, email_from=email_from,\
message_id=message_id, attach=attach, \
@@ -342,7 +342,6 @@ class crm_case(object):
destination=False)
def remind_user(self, cr, uid, ids, context={}, attach=False,destination=True):
-
"""
@param self: The object pointer
@param cr: the current row, from the database cursor,
@@ -359,34 +358,35 @@ class crm_case(object):
if case.section_id.reply_to and case.email_from:
src = case.email_from
dest = case.section_id.reply_to
- body = ""
- body = case.email_last or case.description
+ body = case.description or ""
+ if case.message_ids:
+ body = case.message_ids[0].description or ""
if not destination:
src, dest = dest, src
if body and case.user_id.signature:
body += '\n\n%s' % (case.user_id.signature)
body = self.format_body(body)
- dest = [dest]
attach_to_send = None
if attach:
- attach_ids = self.pool.get('ir.attachment').search(cr, uid, [('res_model', '=', 'mailgate.thread'), ('res_id', '=', case.id)])
+ attach_ids = self.pool.get('ir.attachment').search(cr, uid, [('res_model', '=', self._name), ('res_id', '=', case.id)])
attach_to_send = self.pool.get('ir.attachment').read(cr, uid, attach_ids, ['datas_fname','datas'])
attach_to_send = map(lambda x: (x['datas_fname'], base64.decodestring(x['datas'])), attach_to_send)
# Send an email
+ subject = "Reminder: [%s] %s" % (str(case.id), case.name, )
flag = tools.email_send(
src,
- dest,
- "Reminder: [%s] %s" % (str(case.id), case.name, ),
+ [dest],
+ subject,
body,
reply_to=case.section_id.reply_to,
openobject_id=str(case.id),
attach=attach_to_send
)
- self._history(cr, uid, [case], _('Send'), history=True, email=dest, details=body, email_from=src)
+ self._history(cr, uid, [case], _('Send'), history=True, subject=subject, email=dest, details=body, email_from=src)
return True
def _check(self, cr, uid, ids=False, context={}):
diff --git a/addons/crm/crm_action_rule.py b/addons/crm/crm_action_rule.py
index 2c0c5327e5d..1f11f2c4c0c 100644
--- a/addons/crm/crm_action_rule.py
+++ b/addons/crm/crm_action_rule.py
@@ -115,26 +115,22 @@ this if you want the rule to send an email to the partner."),
def state_get(self, cr, uid, context={}):
-
- """@param self: The object pointer
+ """Gets available states for crm
+ @param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@param context: A standard dictionary for contextual values """
-
res = super(base_action_rule, self).state_get(cr, uid, context=context)
return res + crm.AVAILABLE_STATES
def priority_get(self, cr, uid, context={}):
-
"""@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@param context: A standard dictionary for contextual values """
-
res = super(base_action_rule, self).priority_get(cr, uid, context=context)
return res + crm.AVAILABLE_PRIORITIES
-
base_action_rule()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/crm/crm_action_rule_view.xml b/addons/crm/crm_action_rule_view.xml
index 96f8d2f04bf..21bbef50e50 100644
--- a/addons/crm/crm_action_rule_view.xml
+++ b/addons/crm/crm_action_rule_view.xml
@@ -53,7 +53,7 @@
form
-
+
diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py
index bf6d391ab82..6708f3e8f0e 100644
--- a/addons/crm/crm_lead.py
+++ b/addons/crm/crm_lead.py
@@ -168,6 +168,9 @@ and users"),
"""
res = super(crm_lead, self).case_open(cr, uid, ids, *args)
self.write(cr, uid, ids, {'date_open': time.strftime('%Y-%m-%d %H:%M:%S')})
+ for (id, name) in self.name_get(cr, uid, ids):
+ message = _('Lead ') + " '" + name + "' "+ _("is Open.")
+ self.log(cr, uid, id, message)
return res
def case_close(self, cr, uid, ids, *args):
@@ -180,6 +183,9 @@ and users"),
"""
res = super(crm_lead, self).case_close(cr, uid, ids, args)
self.write(cr, uid, ids, {'date_closed': time.strftime('%Y-%m-%d %H:%M:%S')})
+ for (id, name) in self.name_get(cr, uid, ids):
+ message = _('Lead ') + " '" + name + "' "+ _("is Closed.")
+ self.log(cr, uid, id, message)
return res
def convert_opportunity(self, cr, uid, ids, context=None):
@@ -276,7 +282,10 @@ and users"),
vals.update(res)
res = self.create(cr, uid, vals, context)
-
+
+ message = _('A Lead created') + " '" + subject + "' " + _("from Mailgate.")
+ self.log(cr, uid, res, message)
+
attachents = msg.get('attachments', [])
for attactment in attachents or []:
data_attach = {
diff --git a/addons/crm/crm_lead_demo.xml b/addons/crm/crm_lead_demo.xml
index 5336f52a000..7101473589b 100644
--- a/addons/crm/crm_lead_demo.xml
+++ b/addons/crm/crm_lead_demo.xml
@@ -12,7 +12,7 @@
lead
-
+
@@ -21,13 +21,14 @@
+
lead
-
+
@@ -36,13 +37,14 @@
+
lead
-
+
@@ -67,13 +69,14 @@
+
lead
-
+
@@ -82,6 +85,7 @@
+
@@ -91,7 +95,7 @@
lead
-
+
@@ -107,7 +111,7 @@
lead
-
+
@@ -115,5 +119,107 @@
+
+
+
+
+ lead
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ lead
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ lead
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ lead
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ lead
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml
index 379644e72b1..c429810e31f 100644
--- a/addons/crm/crm_lead_view.xml
+++ b/addons/crm/crm_lead_view.xml
@@ -5,7 +5,7 @@
- Lead Stages
+ Stages
crm.case.stage
form
@@ -19,9 +19,8 @@
-
- Lead Resource Type
+ Lead Sources
crm.case.resource.type
form
@@ -30,12 +29,11 @@
-
CRM - Leads Form
crm.lead
@@ -159,16 +157,17 @@
-
+
-
+
-
-
+
+
+
@@ -179,7 +178,7 @@
@@ -226,9 +225,9 @@
-
-
@@ -292,13 +291,11 @@
+ domain="[('create_date','<', time.strftime('%%Y-%%m-%%d 23:59:59')), ('create_date','>=', time.strftime('%%Y-%%m-%%d 00:00:00'))]"
+ help="Todays' Leads" />
@@ -314,7 +311,7 @@
+ help="My Sales Team"/>
-
-
-
-
- Opportunity Categories
- crm.case.categ
- form
-
- [('object_id.model', '=', 'crm.lead')]
- {'object_id':'crm.lead'}
-
-
-
-
-
-
-
- Opportunity Stages
- crm.case.stage
- form
-
- [('object_id.model', '=', 'crm.lead')]
- {'object_id':'crm.lead'}
-
-
-
-
-
-
-
- Opportunity Resource Type
- crm.case.resource.type
- form
-
- [('object_id.model', '=', 'crm.lead')]
- {'object_id':'crm.lead'}
-
-
-
-
-
Opportunities
crm.lead
@@ -149,11 +102,13 @@
-
-
+
+
-
+
+
+
@@ -161,14 +116,16 @@
-
+
-
-
-
+
+
+
+
+
@@ -251,9 +208,9 @@
-
-
@@ -315,12 +272,11 @@
domain="[('state','=','pending')]"/>
@@ -329,6 +285,7 @@
domain="[('user_id','=', False)]"
help="Unassigned Opportunities" />
+
+ help="My Sales Team" />
-
-
-
@@ -77,11 +74,16 @@
- Sales Team
+ Sales Teams
crm.case.section
form
+
+
+
@@ -167,12 +169,10 @@
form
-
-
-
-
+
+
@@ -339,14 +339,14 @@
- Segmentations
+ Segmentation
crm.segmentation
form
- Segmentations
+ Segmentation
crm.segmentation
form
tree,form
@@ -354,8 +354,8 @@
+ groups="base.group_extended" sequence="3"
+ parent="base.menu_config_address_book" />
view.users.form.crm.modif.inherited1
diff --git a/addons/crm/report/crm_lead_report.py b/addons/crm/report/crm_lead_report.py
index f7cd5bae694..208054b3f4d 100644
--- a/addons/crm/report/crm_lead_report.py
+++ b/addons/crm/report/crm_lead_report.py
@@ -51,7 +51,7 @@ class crm_lead_report(osv.osv):
for case in self.browse(cr, uid, ids, context):
if field_name != 'avg_answers':
state = field_name[5:]
- cr.execute("select count(id) from crm_opportunity where \
+ cr.execute("select count(id) from crm_lead where \
section_id =%s and state='%s'"%(case.section_id.id, state))
state_cases = cr.fetchone()[0]
perc_state = (state_cases / float(case.nbr)) * 100
@@ -146,7 +146,7 @@ class crm_lead_report(osv.osv):
0 as avg_answers,
0.0 as perc_done,
0.0 as perc_cancel,
- (SELECT count(id) FROM mailgate_message WHERE model='crm.lead' AND res_id=c.id) AS email,
+ (SELECT count(id) FROM mailgate_message WHERE model='crm.lead' AND res_id=c.id AND history=True) AS email,
date_trunc('day',c.create_date) as create_date,
extract('epoch' from (c.date_closed-c.create_date))/(3600*24) as delay_close,
extract('epoch' from (c.date_deadline - c.date_closed))/(3600*24) as delay_expected,
diff --git a/addons/crm/report/crm_lead_report_view.xml b/addons/crm/report/crm_lead_report_view.xml
index 1372553a7b7..4086a04ee9d 100644
--- a/addons/crm/report/crm_lead_report_view.xml
+++ b/addons/crm/report/crm_lead_report_view.xml
@@ -41,12 +41,25 @@
-
+
+
+ crm.opportunity.report.graph
+ crm.lead.report
+ graph
+
+
+
+
+
+
+
+
+
@@ -56,15 +69,6 @@
-
-
-
+ domain="[('state','in',('draft','open'))]"/>
@@ -96,7 +100,7 @@
-
+
@@ -149,7 +153,7 @@
crm.lead.report
tree
-
+
@@ -181,7 +185,7 @@
form
{'search_default_lead':1, "search_default_user":1,"search_default_this_month":1,'group_by_no_leaf':1,'group_by':[]}
tree,graph
- []
+ [('type', '=', 'lead')]
@@ -204,7 +208,7 @@
form
{"search_default_opportunity": 1, "search_default_user":1,"search_default_this_month":1,'group_by_no_leaf':1,'group_by':[]}
tree,graph
- []
+ [('type', '=', 'opportunity')]
@@ -217,7 +221,7 @@
graph
-
+
diff --git a/addons/crm/report/crm_phonecall_report.py b/addons/crm/report/crm_phonecall_report.py
index 25e62fb2342..00d13c7216c 100644
--- a/addons/crm/report/crm_phonecall_report.py
+++ b/addons/crm/report/crm_phonecall_report.py
@@ -53,7 +53,7 @@ class crm_phonecall_report(osv.osv):
for case in self.browse(cr, uid, ids, context):
if field_name != 'avg_answers':
state = field_name[5:]
- cr.execute("select count(*) from crm_opportunity where \
+ cr.execute("select count(*) from crm_lead where \
section_id =%s and state='%s'"%(case.section_id.id, state))
state_cases = cr.fetchone()[0]
perc_state = (state_cases / float(case.nbr)) * 100
@@ -143,7 +143,6 @@ class crm_phonecall_report(osv.osv):
extract('epoch' from (c.date_open-c.create_date))/(3600*24) as delay_open
from
crm_phonecall c
- where c.categ_id in (select res_id from ir_model_data where (name = 'categ_phone1' or name ='categ_phone2') and model = 'crm.case.categ')
)""")
crm_phonecall_report()
diff --git a/addons/crm/report/crm_phonecall_report_view.xml b/addons/crm/report/crm_phonecall_report_view.xml
index 0f06a5acacb..5e809d16472 100644
--- a/addons/crm/report/crm_phonecall_report_view.xml
+++ b/addons/crm/report/crm_phonecall_report_view.xml
@@ -114,7 +114,7 @@
-
+
diff --git a/addons/crm/test/test_crm_lead.yml b/addons/crm/test/test_crm_lead.yml
index 13706c7bb17..97c54b5ef2b 100644
--- a/addons/crm/test/test_crm_lead.yml
+++ b/addons/crm/test/test_crm_lead.yml
@@ -29,7 +29,6 @@
mobile: (333) 715-1450
section_id: crm.section_sales_department
referred: False
- title: M.
- |
I check that the lead is in 'draft' state,
-
diff --git a/addons/crm/wizard/crm_forward_to_partner.py b/addons/crm/wizard/crm_forward_to_partner.py
index cf0463af66b..fb607eefdbc 100644
--- a/addons/crm/wizard/crm_forward_to_partner.py
+++ b/addons/crm/wizard/crm_forward_to_partner.py
@@ -204,6 +204,7 @@ class crm_lead_forward_to_partner(osv.osv_memory):
if this.history == 'latest':
msgs = msgs[:1]
attachments.extend(itertools.chain(*[m.attachment_ids for m in msgs]))
+ attach = [(a.datas_fname or a.name, base64.decodestring(a.datas)) for a in attachments if a.datas]
result = tools.email_send(
email_from,
@@ -211,12 +212,12 @@ class crm_lead_forward_to_partner(osv.osv_memory):
this.subject,
body,
openobject_id=str(case.id),
- attach=[(a.datas_fname or a.name, base64.decodestring(a.datas)) for a in attachments if a.datas],
+ attach=attach,
reply_to=case.section_id.reply_to,
)
if result:
- case_pool._history(cr, uid, [case], _('Forward'), history=True, email=this.email_to, subject=this.subject, details=body, email_from=email_from)
+ case_pool.history(cr, uid, [case], _('Forward'), history=True, email=this.email_to, subject=this.subject, details=body, email_from=email_from, attach=attach)
else:
raise osv.except_osv(_('Error!'), _('Unable to send mail. Please check SMTP is configured properly.'))
diff --git a/addons/crm/wizard/crm_lead_to_opportunity.py b/addons/crm/wizard/crm_lead_to_opportunity.py
index 5560ec507bf..7f47e27a4ff 100644
--- a/addons/crm/wizard/crm_lead_to_opportunity.py
+++ b/addons/crm/wizard/crm_lead_to_opportunity.py
@@ -82,11 +82,12 @@ class crm_lead2opportunity(osv.osv_memory):
'type': 'opportunity'
}
lead_obj.write(cr, uid, lead.id, vals, context=context)
- lead_obj._history(cr, uid, [lead], _('Opportunity'), details='Converted to Opportunity', context=context)
+ lead_obj.history(cr, uid, [lead], _('Opportunity'), details='Converted to Opportunity', context=context)
if lead.partner_id:
msg_ids = [ x.id for x in lead.message_ids]
self.pool.get('mailgate.message').write(cr, uid, msg_ids, {'partner_id': lead.partner_id.id}, context=context)
-
+ message = _('Lead ') + " '" + lead.name + "' "+ _("is converted to Opportunity.")
+ self.log(cr, uid, lead.id, message)
value = {
'name': _('Opportunity'),
'view_type': 'form',
@@ -99,6 +100,7 @@ class crm_lead2opportunity(osv.osv_memory):
'type': 'ir.actions.act_window',
'search_view_id': res['res_id']
}
+
return value
_columns = {
diff --git a/addons/crm/wizard/crm_send_email.py b/addons/crm/wizard/crm_send_email.py
index 01e14375d89..83b1959b196 100644
--- a/addons/crm/wizard/crm_send_email.py
+++ b/addons/crm/wizard/crm_send_email.py
@@ -23,7 +23,6 @@
from osv import osv, fields
from tools.translate import _
import base64
-import time
import tools
from crm import crm
@@ -45,17 +44,17 @@ class crm_send_new_email_attachment(osv.osv_memory):
crm_send_new_email_attachment()
-class crm_send_new_email(osv.osv_memory):
+class crm_send_new_email2(osv.osv_memory):
""" Sends new email for the case"""
_name = "crm.send.mail"
_description = "Send new email"
_columns = {
- 'email_to' : fields.char('To', size=64, required=True),
- 'email_from' : fields.char('From', size=64, required=True),
- 'email_cc' : fields.char('CC', size=128, help="Carbon Copy: list of recipients that will receive"\
+ 'email_to' : fields.char('To', size=512, required=True),
+ 'email_from' : fields.char('From', size=128, required=True),
+ 'email_cc' : fields.char('CC', size=512, help="Carbon Copy: list of recipients that will receive"\
" a copy of this mail, and future communication related to this case"),
- 'subject': fields.char('Subject', size=128, required=True),
+ 'subject': fields.char('Subject', size=512, required=True),
'text': fields.text('Message', required=True),
'state': fields.selection(crm.AVAILABLE_STATES, string='Set New State To', required=True),
@@ -72,7 +71,6 @@ class crm_send_new_email(osv.osv_memory):
"""
hist_obj = self.pool.get('mailgate.message')
- smtp_pool = self.pool.get('email.smtpclient')
if not context:
context = {}
@@ -90,6 +88,7 @@ class crm_send_new_email(osv.osv_memory):
]
message_id = None
+ ref_id = None
case = case_pool.browse(cr, uid, res_id)
if context.get('mail', 'new') == 'new':
@@ -101,9 +100,10 @@ class crm_send_new_email(osv.osv_memory):
model = hist.model
model_pool = self.pool.get(model)
res_id = hist.res_id
+ ref_id = hist.ref_id
case = model_pool.browse(cr, uid, res_id)
emails = [obj.email_to]
- email_cc = (obj.email_cc or '').split(',')
+ email_cc = obj.email_cc and obj.email_cc.split(',') or ''
emails = filter(None, emails)
body = obj.text
@@ -128,10 +128,11 @@ class crm_send_new_email(osv.osv_memory):
if not flag:
raise osv.except_osv(_('Error!'), _('Unable to send mail. Please check SMTP is configured properly.'))
if flag:
- case_pool._history(cr, uid, [case], _('Send'), history=True, \
+ case_pool.history(cr, uid, [case], _('Send'), history=True, \
email=obj.email_to, details=body, \
subject=obj.subject, email_from=email_from, \
- message_id=message_id, attach=attach)
+ email_cc=email_cc, message_id=message_id, \
+ references=ref_id or message_id, attach=attach)
if obj.state == 'unchanged':
pass
elif obj.state == 'done':
@@ -155,7 +156,7 @@ class crm_send_new_email(osv.osv_memory):
if not context.get('model'):
raise osv.except_osv(_('Error'), _('Can not send mail!'))
- res = super(crm_send_new_email, self).default_get(cr, uid, fields, context=context)
+ res = super(crm_send_new_email2, self).default_get(cr, uid, fields, context=context)
if context.get('mail') == 'reply':
res.update(self.get_reply_defaults(cr, uid, fields, context=context))
@@ -170,17 +171,17 @@ class crm_send_new_email(osv.osv_memory):
for case in mod_obj.browse(cr, uid, res_id):
if 'email_to' in fields:
- res.update({'email_to': case.email_from})
+ res.update({'email_to': tools.ustr(case.email_from)})
if 'email_from' in fields:
- res.update({'email_from': user_mail_from})
+ res.update({'email_from': tools.ustr(user_mail_from)})
if 'subject' in fields:
res.update({'subject': tools.ustr(context.get('subject', case.name) or '')})
if 'email_cc' in fields:
- res.update({'email_cc': case.email_cc or ''})
+ res.update({'email_cc': tools.ustr(case.email_cc or '')})
if 'text' in fields:
- res.update({'text': '\n\n'+(case.user_id.signature or '')})
+ res.update({'text': u'\n'+(tools.ustr(case.user_id.signature or ''))})
if 'state' in fields:
- res.update({'state': 'pending'})
+ res.update({'state': u'pending'})
return res
@@ -207,28 +208,28 @@ class crm_send_new_email(osv.osv_memory):
res_id = hist.res_id
case = model_pool.browse(cr, uid, res_id)
if 'email_to' in fields:
- res.update({'email_to': hist.email_from or False})
+ res.update({'email_to': case.email_from and tools.ustr(case.email_from) or False})
if 'email_from' in fields:
- res.update({'email_from': user_mail_from})
+ res.update({'email_from': user_mail_from and tools.ustr(user_mail_from) or False})
- signature = '\n' + (case.user_id.signature or '')
+ signature = u'\n' + (tools.ustr(case.user_id.signature or '')) + u'\n'
original = [signature]
if include_original == True and 'text' in fields:
- header = '-------- Original Message --------'
- sender = 'From: %s' %(hist.email_from or '')
- to = 'To: %s' % (hist.email_to or '')
- sentdate = 'Date: %s' % (hist.date)
- desc = '\n%s'%(hist.description)
+ header = u'-------- Original Message --------'
+ sender = u'From: %s' %(tools.ustr(hist.email_from or ''))
+ to = u'To: %s' % (tools.ustr(hist.email_to or ''))
+ sentdate = u'Date: %s' % (tools.ustr(hist.date))
+ desc = u'\n%s'%(tools.ustr(hist.description))
- original = [header, sender, to, sentdate, desc, signature]
+ original = [signature, header, sender, to, sentdate, desc]
- res['text']= '\n\n\n' + '\n'.join(original)
+ res['text']= u'\n' + u'\n'.join(original)
if 'subject' in fields:
- res.update({'subject': 'Re: %s' %(hist.name or '')})
+ res.update({u'subject': u'Re: %s' %(tools.ustr(hist.name or ''))})
if 'state' in fields:
- res['state']='pending'
+ res['state'] = u'pending'
return res
def view_init(self, cr, uid, fields_list, context=None):
@@ -246,13 +247,7 @@ class crm_send_new_email(osv.osv_memory):
if not context.get('model'):
raise osv.except_osv(_('Error'), _('Can not send mail!'))
- model = context.get('model')
- mod_obj = self.pool.get(model)
- if context.get('mail') == 'reply':
- return True
- if tools.config.get('email_from'):
- return True
return True
-crm_send_new_email()
+crm_send_new_email2()
diff --git a/addons/crm/wizard/crm_send_email_view.xml b/addons/crm/wizard/crm_send_email_view.xml
index b5af4004801..3dfde724bdf 100644
--- a/addons/crm/wizard/crm_send_email_view.xml
+++ b/addons/crm/wizard/crm_send_email_view.xml
@@ -18,7 +18,7 @@
-
+
diff --git a/addons/crm_helpdesk/crm_helpdesk.py b/addons/crm_helpdesk/crm_helpdesk.py
index f6106db5903..38352691db0 100644
--- a/addons/crm_helpdesk/crm_helpdesk.py
+++ b/addons/crm_helpdesk/crm_helpdesk.py
@@ -76,7 +76,9 @@ class crm_helpdesk(osv.osv, crm.crm_case):
help='The state is set to \'Draft\', when a case is created.\
\nIf the case is in progress the state is set to \'Open\'.\
\nWhen the case is over, the state is set to \'Done\'.\
- \nIf the case needs to be reviewed then the state is set to \'Pending\'.'),
+ \nIf the case needs to be reviewed then the state is set to \'Pending\'.'),
+ 'message_ids': fields.one2many('mailgate.message', 'res_id', 'Messages', domain=[('history', '=', True),('model','=',_name)]),
+ 'log_ids': fields.one2many('mailgate.message', 'res_id', 'Logs', domain=[('history', '=', False),('model','=',_name)]),
}
_defaults = {
diff --git a/addons/document/board_document_view.xml b/addons/document/board_document_view.xml
index 4d89f96cbfb..0b85dc8039c 100644
--- a/addons/document/board_document_view.xml
+++ b/addons/document/board_document_view.xml
@@ -50,11 +50,13 @@
-
+
diff --git a/addons/document/document_view.xml b/addons/document/document_view.xml
index e4355987fbb..1a5a4c8e1e3 100644
--- a/addons/document/document_view.xml
+++ b/addons/document/document_view.xml
@@ -158,7 +158,7 @@
-
+
@@ -299,7 +299,7 @@
tree
-
+
@@ -318,7 +318,7 @@
Document
form
-
+
-
+
diff --git a/addons/email_template/__init__.py b/addons/email_template/__init__.py
index c959f7204da..6d99e9a4492 100644
--- a/addons/email_template/__init__.py
+++ b/addons/email_template/__init__.py
@@ -1,3 +1,25 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2009 Sharoon Thomas
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
import email_template_account
import email_template
import email_template_mailbox
diff --git a/addons/email_template/__openerp__.py b/addons/email_template/__openerp__.py
index ef50f631e3e..917df3dde70 100644
--- a/addons/email_template/__openerp__.py
+++ b/addons/email_template/__openerp__.py
@@ -1,7 +1,29 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2009 Sharoon Thomas
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
{
"name" : "Email Template for Open ERP",
"version" : "0.7 RC",
- "author" : "Open ERP",
+ "author" : "Sharoon Thomas, Openlabs",
"website" : "http://openerp.com",
"category" : "Added functionality",
"depends" : ['base'],
diff --git a/addons/email_template/email_template.py b/addons/email_template/email_template.py
index 0ca89a5bbb8..730502bc549 100644
--- a/addons/email_template/email_template.py
+++ b/addons/email_template/email_template.py
@@ -1,3 +1,25 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2009 Sharoon Thomas
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
import base64
import random
import time
@@ -41,7 +63,6 @@ import tools
import report
import pooler
-
def get_value(cursor, user, recid, message=None, template=None, context=None):
"""
Evaluates an expression and returns its value
diff --git a/addons/email_template/email_template_account.py b/addons/email_template/email_template_account.py
index 9ea1cd5b8fa..e5bbe0f5e56 100644
--- a/addons/email_template/email_template_account.py
+++ b/addons/email_template/email_template_account.py
@@ -1,3 +1,25 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2009 Sharoon Thomas
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
from osv import osv, fields
from html2text import html2text
import re
diff --git a/addons/email_template/email_template_engines.py b/addons/email_template/email_template_engines.py
index 2fc58310e9b..cd6aedade39 100644
--- a/addons/email_template/email_template_engines.py
+++ b/addons/email_template/email_template_engines.py
@@ -1,3 +1,25 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2009 Sharoon Thomas
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
# To change this template, choose Tools | Templates
# and open the template in the editor.
from osv import fields,osv
diff --git a/addons/email_template/email_template_mailbox.py b/addons/email_template/email_template_mailbox.py
index b20fa9f76bf..d594a01c087 100644
--- a/addons/email_template/email_template_mailbox.py
+++ b/addons/email_template/email_template_mailbox.py
@@ -1,3 +1,25 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2009 Sharoon Thomas
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
from osv import osv, fields
import time
import email_template_engines
diff --git a/addons/event/__openerp__.py b/addons/event/__openerp__.py
index c1f61bcff8f..7cd7d4ae2c6 100644
--- a/addons/event/__openerp__.py
+++ b/addons/event/__openerp__.py
@@ -51,6 +51,7 @@
'security/event_security.xml',
'security/ir.model.access.csv',
'wizard/event_make_invoice_view.xml',
+ 'wizard/partner_event_registration_view.xml',
'board_association_view.xml',
],
'demo_xml': ['event_demo.xml', 'board_association_demo.xml'],
diff --git a/addons/event/board_association_view.xml b/addons/event/board_association_view.xml
index aba85e420d0..157db407ab8 100644
--- a/addons/event/board_association_view.xml
+++ b/addons/event/board_association_view.xml
@@ -13,7 +13,7 @@
string="New members"
name="%(membership.action_report_partner_member_year_tree)d"
view_mode="graph,tree" colspan="4"/>-->
-
+
Registration Event report
report.event.registration
@@ -26,15 +26,15 @@
-
-
+
+
Events On Registrations
report.event.registration
form
graph,tree
-
+
Next Events
@@ -42,12 +42,12 @@
event.event
form
tree,form
-
-
+
+
associations
-
+
board.associations.manager.form
board.board
@@ -68,10 +68,10 @@
-
+ colspan="4"/>
+
-
+
@@ -84,8 +84,7 @@
form
-
-
+
2008-01-01 19:00:00
2008-01-01 23:00:00
+ 68.00
500
@@ -91,6 +92,7 @@
2008-03-05 18:00:00
2008-03-05 21:00:00
+ 24.00
350
@@ -102,6 +104,7 @@
2008-09-09 14:00:00
2008-09-09 16:30:00
+ 15.50
200
diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml
index 41c0fef5cfb..20047d00f73 100644
--- a/addons/event/event_view.xml
+++ b/addons/event/event_view.xml
@@ -51,10 +51,17 @@
-
+
+
+
+
+
+
+
+
@@ -95,6 +102,10 @@
+
+
+
+
@@ -118,6 +129,34 @@
+
+
+ event.event.calendar
+ event.event
+ calendar
+
+
+
+
+
+
+
+
+
+
+
+
+ Event Graph
+ event.event
+ graph
+
+
+
+
+
+
+
+
Events
@@ -160,7 +199,7 @@
ir.actions.act_window
event.event
form
- tree,form
+ tree,form,calendar,graph
{"search_default_draft": "1"}
@@ -170,9 +209,18 @@
name="Registration"
res_model="event.registration"
src_model="event.event"
- view_mode="tree,form"
+ view_mode="tree,form,calendar,graph"
domain="[('event_id', '=', active_id)]"
view_type="form"/>
+
+
@@ -203,29 +251,32 @@
+
-
-
-
-
-
+
+
-
-
+
+
+
+
+
+
+
-
-
+
+
@@ -241,77 +292,97 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ event.registration.calendar
+ event.registration
+ calendar
+
+
+
+
+
+
+
+
+
+
+ Registration Graph
+ event.registration
+ graph
+
+
+
+
+
+
+
+
@@ -322,8 +393,8 @@
-
-
+
+
@@ -353,7 +424,7 @@
event.registration
form
- tree,form
+ tree,form,calendar,graph
{"search_default_draft": "1"}
diff --git a/addons/event/test/test_event.yml b/addons/event/test/test_event.yml
index d1a479535bc..c5bee3a64d0 100644
--- a/addons/event/test/test_event.yml
+++ b/addons/event/test/test_event.yml
@@ -63,6 +63,7 @@
register_min: 0.0
state: draft
type: 'event_type_conference0'
+ reply_to: 'info@customer.com'
- |
we set the limit of registrations to this event using "Minimum Registrations" 2 and "Maximum Registrations" 10
@@ -172,18 +173,6 @@
obj_event = self.browse(cr, uid, [ref('event_event_conference0')])[0]
assert obj_event.register_current == '2'
assert obj_event.register_prospect == '1'
-
-- |
- We check all registered partners to this event using the wizard "List Register Partners".
--
- !record {model: event.partners.list, id: event_partners_list_0}:
- {}
--
- I click on "Open Partners" button of "List Register Partners" wizard.
--
- !python {model: event.partners.list}: |
- self.list_partners(cr, uid, [ref("event_partners_list_0")], {"active_ids":
- [ref("event.event_event_conference0")]})
- |
This event is finished by click on "Event Done" button of this event form.
diff --git a/addons/event/wizard/__init__.py b/addons/event/wizard/__init__.py
index 65a08570bbf..945e5f84607 100644
--- a/addons/event/wizard/__init__.py
+++ b/addons/event/wizard/__init__.py
@@ -21,4 +21,5 @@
import event_make_invoice
import event_confirm_registration
+import partner_event_registration
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/event/wizard/event_make_invoice.py b/addons/event/wizard/event_make_invoice.py
index cbf6659acb7..ab446f67ef6 100644
--- a/addons/event/wizard/event_make_invoice.py
+++ b/addons/event/wizard/event_make_invoice.py
@@ -83,7 +83,7 @@ class event_make_invoice(osv.osv_memory):
id = mod_obj.read(cr, uid, result, ['res_id'])
return {
- 'domain': "[('id','=',%s)]" % res,
+ 'domain': "[('id','in',%s)]" % res,
'name': 'Invoices',
'view_type': 'form',
'view_mode': 'tree,form',
@@ -95,4 +95,4 @@ class event_make_invoice(osv.osv_memory):
}
event_make_invoice()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/event/wizard/partner_event_registration.py b/addons/event/wizard/partner_event_registration.py
new file mode 100644
index 00000000000..d78d57f83da
--- /dev/null
+++ b/addons/event/wizard/partner_event_registration.py
@@ -0,0 +1,142 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2009 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import wizard
+import netsvc
+import tools
+from osv import fields, osv
+from tools.translate import _
+
+
+class partner_event_registration(osv.osv_memory):
+ """ event Registration """
+
+ _name = "partner.event.registration"
+ _description = __doc__
+ _order = 'event_id'
+
+ _columns = {
+ 'event_id': fields.many2one('event.event', 'Event'),
+ 'event_type': fields.many2one('event.type', 'Type', readonly=True),
+ 'unit_price': fields.float('Cost', readonly=True),
+ 'currency_id': fields.many2one('res.currency', 'Currency', readonly=True),
+ 'start_date': fields.datetime('Start date', required=True, help="Beginning Date of Event", readonly=True),
+ 'end_date': fields.datetime('Closing date', required=True, help="Closing Date of Event", readonly=True),
+ 'nb_register': fields.integer('Number of Registration'),
+ }
+ _defaults = {
+ 'nb_register': 1,
+ }
+
+ def open_registration(self, cr, uid, ids, context=None):
+ value = {}
+ res_obj = self.pool.get('res.partner')
+ record_ids = context and context.get('active_ids', []) or []
+ addr = res_obj.address_get(cr, uid, record_ids)
+ contact_id = False
+ email = False
+ if addr.has_key('default'):
+ job_ids = self.pool.get('res.partner.job').search(cr, uid, [('address_id', '=', addr['default'])])
+ if job_ids:
+ contact = self.pool.get('res.partner.job').browse(cr, uid, job_ids[0])
+ if contact:
+ contact_id = contact.contact_id.id
+ email = contact.email
+
+ event_obj = self.pool.get('event.event')
+ reg_obj = self.pool.get('event.registration')
+ mod_obj = self.pool.get('ir.model.data')
+ result = mod_obj._get_id(cr, uid, 'event', 'view_registration_search')
+ res = mod_obj.read(cr, uid, result, ['res_id'])
+
+ data_obj = self.pool.get('ir.model.data')
+ # Select the view
+ id2 = data_obj._get_id(cr, uid, 'event', 'view_event_registration_form')
+ id3 = data_obj._get_id(cr, uid, 'event', 'view_event_registration_tree')
+ if id2:
+ id2 = data_obj.browse(cr, uid, id2, context=context).res_id
+ if id3:
+ id3 = data_obj.browse(cr, uid, id3, context=context).res_id
+
+ for current in self.browse(cr, uid, ids, context=context):
+ for reg in reg_obj.browse(cr, uid, record_ids, context=context):
+ new_case = reg_obj.create(cr, uid, {
+ 'name' : 'Registration',
+ 'event_id' : current.event_id and current.event_id.id or False,
+ 'unit_price' : current.event_id.unit_price,
+ 'currency_id' : current.event_id.currency_id and current.event_id.currency_id.id or False,
+ 'partner_id' : record_ids[0],
+ 'partner_invoice_id' : record_ids[0] or False,
+ 'event_product': current.event_id.product_id.name,
+ 'contact_id': contact_id,
+ 'email_from': email,
+ 'nb_register': current.nb_register,
+
+ }, context=context)
+
+ value = {
+ 'name': _('Event Registration'),
+ 'view_type': 'form',
+ 'view_mode': 'tree,form',
+ 'res_model': 'event.registration',
+ 'res_id' : new_case,
+ 'views': [(id2, 'form'), (id3, 'tree'), (False, 'calendar'), (False, 'graph')],
+ 'type': 'ir.actions.act_window',
+ 'search_view_id': res['res_id']
+ }
+ return value
+
+ def name_get(self, cr, uid, ids, context=None):
+ """Overrides orm name_get method
+ @param ids: List of partner_event_register ids
+ """
+ if not context:
+ context = {}
+
+ res = []
+ if not ids:
+ return res
+ reads = self.read(cr, uid, ids, ['event_type', 'event_id'], context)
+ for record in reads:
+ event_id = record['event_id'][1]
+ if record['event_type']:
+ event_id = record['event_type'][1] + ' on ' + event_id
+ res.append((record['id'], event_id))
+ return res
+
+ def onchange_event_id(self, cr, uid, ids, event_id, context={}):
+ res = {}
+ if event_id:
+ obj_event = self.pool.get('event.event')
+ event = obj_event.browse(cr, uid, event_id)
+ res['value'] = {
+ 'event_type': event.type and event.type.id or False,
+ 'start_date': event.date_begin,
+ 'end_date': event.date_end,
+ 'unit_price': event.unit_price,
+ 'currency_id': event.currency_id and event.currency_id.id or False
+ }
+ return res
+
+partner_event_registration()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/event/wizard/partner_event_registration_view.xml b/addons/event/wizard/partner_event_registration_view.xml
new file mode 100644
index 00000000000..4efb1733942
--- /dev/null
+++ b/addons/event/wizard/partner_event_registration_view.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+ Partner event registration
+ partner.event.registration
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/event_project/__openerp__.py b/addons/event_project/__openerp__.py
index 51be1e29113..20edb735496 100644
--- a/addons/event_project/__openerp__.py
+++ b/addons/event_project/__openerp__.py
@@ -31,7 +31,7 @@
'author': 'Tiny',
'depends': ['project_retro_planning', 'event'],
'init_xml': [],
- 'update_xml': ['event_wizard.xml', 'event_view.xml'],
+ 'update_xml': ['wizard/event_project_view.xml', 'event_view.xml'],
'demo_xml': [],
'installable': True,
'active': False,
diff --git a/addons/event_project/event_view.xml b/addons/event_project/event_view.xml
index 86887faf1d6..45baae0f846 100644
--- a/addons/event_project/event_view.xml
+++ b/addons/event_project/event_view.xml
@@ -13,7 +13,7 @@
-
+
@@ -39,6 +39,15 @@
+
+
diff --git a/addons/event_project/event_wizard.xml b/addons/event_project/event_wizard.xml
index f6cc672c46a..3ba8df59b13 100644
--- a/addons/event_project/event_wizard.xml
+++ b/addons/event_project/event_wizard.xml
@@ -1,18 +1,6 @@
-
-
-
-
diff --git a/addons/event_project/wizard/__init__.py b/addons/event_project/wizard/__init__.py
index a6ed912e137..470e9edbb8b 100644
--- a/addons/event_project/wizard/__init__.py
+++ b/addons/event_project/wizard/__init__.py
@@ -19,8 +19,7 @@
#
##############################################################################
-import project_wizard
-import event_task
+import event_project
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/event_project/wizard/event_project.py b/addons/event_project/wizard/event_project.py
new file mode 100644
index 00000000000..111696bb576
--- /dev/null
+++ b/addons/event_project/wizard/event_project.py
@@ -0,0 +1,58 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+#
+# Order Point Method:
+# - Order if the virtual stock of today is bellow the min of the defined order point
+#
+
+from osv import fields, osv
+from tools.translate import _
+import time
+
+class event_project(osv.osv_memory):
+ """
+ Event Project
+ """
+ _name = "event.project"
+ _description = "Event Project"
+
+ _columns = {
+ 'project_id': fields.many2one('project.project', 'Template of Project', domain = [('active', '<>', False), ('state', '=', 'template')], required =True, help="This is Template Project. Project of event is a duplicate of this Template. After click on 'Create Retro-planning', New Project will be duplicated from this template project.")
+ }
+
+ def create_duplicate(self, cr, uid, ids, context):
+ event_obj=self.pool.get('event.event')
+ project_obj = self.pool.get('project.project')
+ event = event_obj.browse(cr, uid, context.get('active_id', False))
+ for current in self.browse(cr, uid, ids):
+ duplicate_project_id = project_obj.copy(cr, uid, current.project_id.id, {'active': True})
+ duplicate_project = project_obj.browse(cr, uid, duplicate_project_id, context)
+ project_obj.write(cr, uid, [duplicate_project_id], {
+ 'name': duplicate_project.name ,
+ 'date_start':time.strftime('%Y-%m-%d'),
+ 'date': event.date_begin[0:10] })
+ event_obj.write(cr, uid, [event.id], {'project_id': duplicate_project_id })
+
+ return {}
+
+event_project()
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/event_project/wizard/event_project_view.xml b/addons/event_project/wizard/event_project_view.xml
new file mode 100644
index 00000000000..b9a7e1273b9
--- /dev/null
+++ b/addons/event_project/wizard/event_project_view.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+ Retro-Planning
+ event.project
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Retro-Planning
+ ir.actions.act_window
+ event.project
+ form
+
+ new
+
+
+
+
diff --git a/addons/event_project/wizard/event_task.py b/addons/event_project/wizard/event_task.py
deleted file mode 100644
index bdf2651e6a4..00000000000
--- a/addons/event_project/wizard/event_task.py
+++ /dev/null
@@ -1,62 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import wizard
-import pooler
-from tools.translate import _
-
-def _event_tasks(self, cr, uid, data, context):
- pool = pooler.get_pool(cr.dbname)
- mod_obj = pool.get('ir.model.data')
- result = mod_obj._get_id(cr, uid, 'project', 'view_task_search_form')
- id = mod_obj.read(cr, uid, result, ['res_id'])
- event_id = data['id']
- cr.execute('SELECT project_id FROM event_event WHERE id = %s', (event_id, ))
- res = cr.fetchone()
- if not res[0]:
- raise wizard.except_wizard(_('Error !'), _('No project defined for this event.\nYou can create one with the retro-planning button !'))
- value = {
- 'domain': [('project_id', '=', res[0])],
- 'name': 'Tasks',
- 'view_type': 'form',
- 'view_mode': 'tree,form,calendar',
- 'res_model': 'project.task',
- 'context': { },
- 'type': 'ir.actions.act_window',
- 'search_view_id': id['res_id']
- }
- return value
-
-class wizard_event_tasks(wizard.interface):
- states = {
- 'init': {
- 'actions': [],
- 'result': {
- 'type': 'action',
- 'action': _event_tasks,
- 'state': 'end'
- }
- },
- }
-wizard_event_tasks("wizard_event_tasks")
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/event_project/wizard/project_wizard.py b/addons/event_project/wizard/project_wizard.py
deleted file mode 100644
index 872cb073712..00000000000
--- a/addons/event_project/wizard/project_wizard.py
+++ /dev/null
@@ -1,67 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-#
-# Order Point Method:
-# - Order if the virtual stock of today is bellow the min of the defined order point
-#
-
-import wizard
-import pooler
-
-import time
-
-parameter_form = '''
-
-
- '''
-
-parameter_fields = {
- 'project_id': {'string':'Project', 'type':'many2one', 'required':True, 'relation':'project.project', 'domain': [('active','<>',False),('state','=','template')]},
-}
-
-def _create_duplicate(self, cr, uid, data, context):
- event_obj=pooler.get_pool(cr.dbname).get('event.event')
- project_obj = pooler.get_pool(cr.dbname).get('project.project')
- duplicate_project_id= project_obj.copy(cr, uid, data['form']['project_id'], {'active': True})
- project_obj.write(cr, uid, [duplicate_project_id], {'name': "copy of " + project_obj.browse(cr, uid, duplicate_project_id, context).name , 'date_start':time.strftime('%Y-%m-%d'),'date': event_obj.browse(cr, uid, [data['id']])[0].date_begin[0:10] })
- event_obj.write(cr, uid, [data['id']], {'project_id': duplicate_project_id })
- return {}
-
-class wizard_event_project(wizard.interface):
- states = {
- 'init': {
- 'actions': [],
- 'result': {'type': 'form', 'arch':parameter_form, 'fields': parameter_fields, 'state':[('end','Cancel'),('done', 'Ok')]}
-
- },
- 'done':{
- 'actions':[_create_duplicate],
- 'result' : {'type':'state', 'state':'end'}
- }
- }
-wizard_event_project('event.project')
-
-
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/hr/__openerp__.py b/addons/hr/__openerp__.py
index d4778237420..29e61ba5599 100755
--- a/addons/hr/__openerp__.py
+++ b/addons/hr/__openerp__.py
@@ -21,11 +21,11 @@
{
- "name" : "Human Resources",
- "version" : "1.1",
- "author" : "Tiny",
- "category" : "Generic Modules/Human Resources",
- "website" : "http://www.openerp.com",
+ "name": "Human Resources",
+ "version": "1.1",
+ "author": "Tiny",
+ "category": "Generic Modules/Human Resources",
+ "website": "http://www.openerp.com",
"description": """
Module for human resource management. You can manage:
* Employees and hierarchies : You can define your employee with User and display hierarchies
@@ -45,10 +45,11 @@
'hr_installer.xml',
'hr_data.xml',
'board_hr_view.xml',
- ],
- 'demo_xml': ['hr_demo.xml',
- 'hr_department_demo.xml'],
-
+ ],
+ 'demo_xml': [
+ 'hr_demo.xml',
+ 'hr_department_demo.xml'
+ ],
'test': ['test/test_hr.yml'],
'installable': True,
'active': False,
diff --git a/addons/hr/board_hr_view.xml b/addons/hr/board_hr_view.xml
index fdbd4f87d2e..873032a4067 100644
--- a/addons/hr/board_hr_view.xml
+++ b/addons/hr/board_hr_view.xml
@@ -32,12 +32,13 @@
menu
-
+
+
diff --git a/addons/hr/hr.py b/addons/hr/hr.py
index b5db01ac512..41aecc0bce0 100644
--- a/addons/hr/hr.py
+++ b/addons/hr/hr.py
@@ -27,17 +27,16 @@ from tools.translate import _
class hr_employee_category(osv.osv):
_name = "hr.employee.category"
_description = "Employee Category"
-
_columns = {
- 'name' : fields.char("Category", size=64, required=True),
+ 'name': fields.char("Category", size=64, required=True),
'parent_id': fields.many2one('hr.employee.category', 'Parent Category', select=True),
'child_ids': fields.one2many('hr.employee.category', 'parent_id', 'Child Categories')
}
- def _check_recursion(self, cr, uid, ids):
+ def _check_recursion(self, cr, uid, ids, context=None):
level = 100
while len(ids):
- cr.execute('select distinct parent_id from hr_employee_category where id IN %s',(tuple(ids),))
+ cr.execute('select distinct parent_id from hr_employee_category where id IN %s', (tuple(ids), ))
ids = filter(None, map(lambda x:x[0], cr.fetchall()))
if not level:
return False
@@ -54,13 +53,15 @@ class hr_employee_marital_status(osv.osv):
_name = "hr.employee.marital.status"
_description = "Employee Marital Status"
_columns = {
- 'name' : fields.char('Marital Status', size=30, required=True),
- 'description' : fields.text('Status Description'),
+ 'name': fields.char('Marital Status', size=32, required=True),
+ 'description': fields.text('Status Description'),
}
+
hr_employee_marital_status()
class hr_job(osv.osv):
- def _no_of_employee(self, cr, uid, ids, name,args,context=None):
+
+ def _no_of_employee(self, cr, uid, ids, name, args, context=None):
res = {}
for emp in self.browse(cr, uid, ids):
res[emp.id] = len(emp.employee_ids or [])
@@ -70,19 +71,19 @@ class hr_job(osv.osv):
_description = "Job Description"
_columns = {
'name': fields.char('Job Name', size=128, required=True, select=True),
- 'expected_employees':fields.integer('Expected Employees', help='Required number of Employees'),
+ 'expected_employees': fields.integer('Expected Employees', help='Required number of Employees'),
'no_of_employee': fields.function(_no_of_employee, method=True, string='No of Employees', type='integer', help='Number of Employees selected'),
- 'employee_ids':fields.one2many('hr.employee', 'job_id','Employees'),
+ 'employee_ids': fields.one2many('hr.employee', 'job_id', 'Employees'),
'description': fields.text('Job Description'),
- 'requirements':fields.text('Requirements'),
- 'department_id':fields.many2one('hr.department','Department'),
+ 'requirements': fields.text('Requirements'),
+ 'department_id': fields.many2one('hr.department', 'Department'),
'company_id': fields.many2one('res.company', 'Company'),
- 'state': fields.selection([('open','Open'),('old','Old'),('recruit','In Recruitement')], 'State', required=True),
+ 'state': fields.selection([('open', 'Open'),('old', 'Old'),('recruit', 'In Recruitement')], 'State', required=True),
}
_defaults = {
- 'expected_employees': lambda *a: 1,
+ 'expected_employees': 1,
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'hr.job', context=c),
- 'state': lambda *args: 'open'
+ 'state': 'open'
}
hr_job()
@@ -90,17 +91,17 @@ hr_job()
class hr_employee(osv.osv):
_name = "hr.employee"
_description = "Employee"
- _inherits = {'resource.resource':"resource_id"}
+ _inherits = {'resource.resource': "resource_id"}
_columns = {
- 'country_id' : fields.many2one('res.country', 'Nationality'),
- 'birthday' : fields.date("Birthday"),
+ 'country_id': fields.many2one('res.country', 'Nationality'),
+ 'birthday': fields.date("Birthday"),
'ssnid': fields.char('SSN No', size=32, help='Social Security Number'),
- 'sinid': fields.char('SIN No', size=32),
+ 'sinid': fields.char('SIN No', size=32, help="Social Insurance Number"),
'otherid': fields.char('Other ID', size=32),
- 'gender': fields.selection([('male','Male'),('female','Female')], 'Gender'),
+ 'gender': fields.selection([('male', 'Male'),('female', 'Female')], 'Gender'),
'marital': fields.many2one('hr.employee.marital.status', 'Marital Status'),
- 'bank_account': fields.char('Bank Account', size=56),
- 'partner_id' : fields.related('company_id', 'partner_id', type='many2one', relation='res.partner', readonly=True),
+ 'bank_account': fields.char('Bank Account', size=64),
+ 'partner_id': fields.related('company_id', 'partner_id', type='many2one', relation='res.partner', readonly=True),
'department_id':fields.many2one('hr.department','Department'),
'address_id': fields.many2one('res.partner.address', 'Working Address'),
'address_home_id': fields.many2one('res.partner.address', 'Home Address'),
@@ -109,8 +110,8 @@ class hr_employee(osv.osv):
'work_location': fields.char('Office Location', size=32),
'notes': fields.text('Notes'),
'parent_id': fields.many2one('hr.employee', 'Manager', select=True),
- 'category_id' : fields.many2one('hr.employee.category', 'Category'),
- 'child_ids': fields.one2many('hr.employee', 'parent_id','Subordinates'),
+ 'category_id': fields.many2one('hr.employee.category', 'Category'),
+ 'child_ids': fields.one2many('hr.employee', 'parent_id', 'Subordinates'),
'resource_id': fields.many2one('resource.resource', 'Resource', ondelete='cascade'),
'coach_id': fields.many2one('res.users', 'Coach'),
'job_id': fields.many2one('hr.job', 'Job'),
@@ -123,11 +124,11 @@ class hr_employee(osv.osv):
'rb') .read().encode('base64')
_defaults = {
- 'active' : 1,
+ 'active': 1,
'photo': _get_photo,
}
- def _check_recursion(self, cr, uid, ids):
+ def _check_recursion(self, cr, uid, ids, context=None):
level = 100
while len(ids):
cr.execute('select distinct parent_id from hr_employee where id IN %s',(tuple(ids),))
@@ -143,4 +144,4 @@ class hr_employee(osv.osv):
hr_employee()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/hr/hr_data.xml b/addons/hr/hr_data.xml
index 7125afb17d4..f76d1457aa1 100644
--- a/addons/hr/hr_data.xml
+++ b/addons/hr/hr_data.xml
@@ -1,6 +1,7 @@
+
Single
@@ -14,5 +15,6 @@
Widower
+
diff --git a/addons/hr/hr_department.py b/addons/hr/hr_department.py
index 9e190a2b0f7..0a21e8aecee 100644
--- a/addons/hr/hr_department.py
+++ b/addons/hr/hr_department.py
@@ -25,6 +25,8 @@ import tools
class hr_department(osv.osv):
def name_get(self, cr, uid, ids, context=None):
+ if context is None:
+ context = {}
if not len(ids):
return []
reads = self.read(cr, uid, ids, ['name','parent_id'], context)
@@ -36,8 +38,8 @@ class hr_department(osv.osv):
res.append((record['id'], name))
return res
- def _dept_name_get_fnc(self, cr, uid, ids, prop, unknow_none, context):
- res = self.name_get(cr, uid, ids, context)
+ def _dept_name_get_fnc(self, cr, uid, ids, prop, unknow_none, context=None):
+ res = self.name_get(cr, uid, ids, context=context)
return dict(res)
_name = "hr.department"
@@ -51,14 +53,20 @@ class hr_department(osv.osv):
'manager_id': fields.many2one('res.users', 'Manager', required=True),
'member_ids': fields.many2many('res.users', 'hr_department_user_rel', 'department_id', 'user_id', 'Members'),
}
- def _get_members(self,cr, uid, context={}):
- mids = self.search(cr, uid, [('manager_id','=',uid)])
- result = {uid:1}
- for m in self.browse(cr, uid, mids, context):
+
+ _defaults = {
+ 'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'hr.department', context=c),
+ }
+
+ def _get_members(self,cr, uid, context=None):
+ mids = self.search(cr, uid, [('manager_id', '=', uid)])
+ result = {uid: 1}
+ for m in self.browse(cr, uid, mids, context=context):
for user in m.member_ids:
result[user.id] = 1
return result.keys()
- def _check_recursion(self, cr, uid, ids):
+
+ def _check_recursion(self, cr, uid, ids, context=None):
level = 100
while len(ids):
cr.execute('select distinct parent_id from hr_department where id IN %s',(tuple(ids),))
@@ -78,18 +86,17 @@ hr_department()
class ir_action_window(osv.osv):
_inherit = 'ir.actions.act_window'
- def read(self, cr, uid, ids, fields=None, context=None,
- load='_classic_read'):
+ def read(self, cr, uid, ids, fields=None, context=None, load='_classic_read'):
+ if context is None:
+ context = {}
select = ids
if isinstance(ids, (int, long)):
select = [ids]
- res = super(ir_action_window, self).read(cr, uid, select, fields=fields,
- context=context, load=load)
+ res = super(ir_action_window, self).read(cr, uid, select, fields=fields, context=context, load=load)
for r in res:
mystring = 'department_users_get()'
if mystring in (r.get('domain', '[]') or ''):
- r['domain'] = r['domain'].replace(mystring, str(
- self.pool.get('hr.department')._get_members(cr, uid)))
+ r['domain'] = r['domain'].replace(mystring, str(self.pool.get('hr.department')._get_members(cr, uid)))
if isinstance(ids, (int, long)):
if res:
return res[0]
@@ -103,7 +110,7 @@ class res_users(osv.osv):
_inherit = 'res.users'
_description = 'User'
- def _parent_compute(self, cr, uid, ids, name, args, context={}):
+ def _parent_compute(self, cr, uid, ids, name, args, context=None):
result = {}
obj_dept = self.pool.get('hr.department')
for user_id in ids:
@@ -115,20 +122,22 @@ class res_users(osv.osv):
result[user_id] = parent_ids
return result
- def _parent_search(self, cr, uid, obj, name, args, context):
+ def _parent_search(self, cr, uid, obj, name, args, context=None):
parent = []
for arg in args:
if arg[0] == 'parent_id':
parent = arg[2]
- child_ids = self._child_compute(cr, uid, parent, name, args, {})
+ child_ids = self._child_compute(cr, uid, parent, name, args, context=context)
if not child_ids:
return [('id', 'in', [0])]
return [('id', 'in', child_ids.get(uid,[]))]
- def _child_compute(self, cr, uid, ids, name, args, context={}):
+ def _child_compute(self, cr, uid, ids, name, args, context=None):
obj_dept = self.pool.get('hr.department')
obj_user = self.pool.get('res.users')
result = {}
+ if context is None:
+ context = {}
for manager_id in ids:
child_ids = []
mgnt_dept_ids = obj_dept.search(cr, uid, [('manager_id', '=', manager_id)])
@@ -137,10 +146,9 @@ class res_users(osv.osv):
data_dept = obj_dept.read(cr, uid, ids_dept, ['member_ids'])
childs = map(lambda x: x['member_ids'], data_dept)
childs = tools.flatten(childs)
- childs = obj_user.search(cr, uid, [('id','in',childs),('active','=',True)])
+ childs = obj_user.search(cr, uid, [('id', 'in', childs),('active', '=', True)])
if manager_id in childs:
childs.remove(manager_id)
-
child_ids.extend(tools.flatten(childs))
set = {}
map(set.__setitem__, child_ids, [])
@@ -150,20 +158,22 @@ class res_users(osv.osv):
result[manager_id] = child_ids
return result
- def _child_search(self, cr, uid, obj, name, args, context):
+ def _child_search(self, cr, uid, obj, name, args, context=None):
parent = []
for arg in args:
if arg[0] == 'child_ids':
parent = arg[2]
- child_ids = self._child_compute(cr, uid, parent, name, args, {})
+ child_ids = self._child_compute(cr, uid, parent, name, args, context=context)
if not child_ids:
return [('id', 'in', [0])]
return [('id', 'in', child_ids.get(uid,[]))]
_columns = {
- 'parent_id': fields.function(_parent_compute, relation='res.users',fnct_search=_parent_search, method=True, string="Managers", type='many2many'),
+ 'parent_id': fields.function(_parent_compute, relation='res.users', fnct_search=_parent_search, method=True, string="Managers", type='many2many'),
'child_ids': fields.function(_child_compute, relation='res.users', fnct_search=_child_search, method=True, string="Subordinates", type='many2many'),
'context_department_id': fields.many2one('hr.department', 'Departments'),
}
+
res_users()
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr/hr_installer.xml b/addons/hr/hr_installer.xml
index 6859150e855..c0d388517eb 100644
--- a/addons/hr/hr_installer.xml
+++ b/addons/hr/hr_installer.xml
@@ -1,5 +1,7 @@
+
+
hr.installer.view
hr.installer
@@ -7,20 +9,18 @@
-
- Select Human Resources Modules To Install
-
-
-
- Select Human Resources Modules To Install
-
-
+
+ Select Human Resources Modules To Install
+
+
+ Select Human Resources Modules To Install
+
+
-
-
- The base Human Resources addon will help you manage your employee roster, but you can enhance it even further by installing a few HR-related applications.
-
+
+
+ The base Human Resources addon will help you manage your employee roster, but you can enhance it even further by installing a few HR-related applications.
+
@@ -51,16 +51,18 @@
3
-
- ir.actions.todo
- hr_installer_action_replace
- tree
-
-
+
+
+ ir.actions.todo
+ hr_installer_action_replace
+ tree
+
+
-
+
+
diff --git a/addons/hr/hr_view.xml b/addons/hr/hr_view.xml
index f03058dccc7..402df16939e 100644
--- a/addons/hr/hr_view.xml
+++ b/addons/hr/hr_view.xml
@@ -1,32 +1,12 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
@@ -109,32 +89,34 @@
+
+
Employees
hr.employee
search
-
+
-
-
-
-
-
+
+
+
+
+
+
Employees Structure
hr.employee
@@ -153,7 +135,8 @@
-
+
+
Employees
hr.employee
form
@@ -162,17 +145,25 @@
-
+
+ =======================
+ -->
+
+
+ hr.hr.employee.marital.status.tree
+ hr.employee.marital.status
+ tree
+
+
+
+
+
+
hr.hr.employee.marital.status
@@ -192,19 +183,18 @@
hr.employee.marital.status
form
tree,form
+
-
-
+
hr.employee.tree
hr.employee
@@ -216,10 +206,10 @@
-
+
Employee Hierarchy
ir.actions.act_window
@@ -228,6 +218,7 @@
tree
+
@@ -255,6 +246,7 @@
+
hr.employee.category.list
hr.employee.category
@@ -267,6 +259,7 @@
+
hr.employee.category.tree
hr.employee.category
@@ -278,6 +271,7 @@
+
Categories of Employee
hr.employee.category
@@ -285,10 +279,8 @@
tree,form
-
+
Categories structure
@@ -316,9 +308,7 @@
-
@@ -328,11 +318,12 @@
-
-
-
-
-
+
+
+
+
+
+
@@ -350,6 +341,7 @@
+
hr.job.tree
hr.job
@@ -364,35 +356,28 @@
+
Job
hr.job
search
-
-
-
-
-
-
+
+
+
Job Positions
hr.job
@@ -400,14 +385,8 @@
tree,form
-
-
+
+
diff --git a/addons/hr/installer.py b/addons/hr/installer.py
index bc3dd7d0b71..277a315edac 100644
--- a/addons/hr/installer.py
+++ b/addons/hr/installer.py
@@ -23,29 +23,28 @@ from osv import fields, osv
class hr_installer(osv.osv_memory):
_name = 'hr.installer'
_inherit = 'res.config.installer'
-
_columns = {
# Human Resources Management
- 'hr_holidays':fields.boolean('Holidays / Leaves Management',
+ 'hr_holidays': fields.boolean('Holidays / Leaves Management',
help="Tracks employee leaves allocations, requests and planning."
"\n\nCan also plug into OpenERP's agendas and calendars "
"applications in order to display accepted leaves requests on"
" OpenERP's calendars."),
- 'hr_expense':fields.boolean('Expenses',
+ 'hr_expense': fields.boolean('Expenses',
help="Tracks and manages employee expenses, and can "
"automatically re-invoice clients if the expenses are "
"project-related."),
- 'hr_recruitment':fields.boolean('Recruitment Process',
+ 'hr_recruitment': fields.boolean('Recruitment Process',
help="Helps you manage and streamline your recruitment process."),
'hr_timesheet_sheet':fields.boolean('Timesheets',
help="Tracks and helps employees encode and validate timesheets "
"and attendance."),
- 'hr_contract':fields.boolean("Employee's Contracts",
+ 'hr_contract': fields.boolean("Employee's Contracts",
help="Extends employee profiles to help manage their contracts."),
- 'hr_evaluation':fields.boolean('Periodic Evaluations',
+ 'hr_evaluation': fields.boolean('Periodic Evaluations',
help="Lets you create and manage the periodic evaluation and "
"performance review of employees."),
- 'hr_attendance':fields.boolean('Attendances (Sign In/Out)',
+ 'hr_attendance': fields.boolean('Attendances (Sign In/Out)',
help="Simplifies the management of employee attendances."),
}
_defaults = {
@@ -55,4 +54,4 @@ class hr_installer(osv.osv_memory):
hr_installer()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr/security/hr_security.xml b/addons/hr/security/hr_security.xml
index c79aae15dab..bc8e7ec2496 100644
--- a/addons/hr/security/hr_security.xml
+++ b/addons/hr/security/hr_security.xml
@@ -1,11 +1,14 @@
+
Human Resources / Manager
+
Human Resources / User
+
diff --git a/addons/hr_attendance/__openerp__.py b/addons/hr_attendance/__openerp__.py
index c0db422b997..1e40f35891b 100644
--- a/addons/hr_attendance/__openerp__.py
+++ b/addons/hr_attendance/__openerp__.py
@@ -26,7 +26,6 @@
'category': 'Generic Modules/Human Resources',
'description': """
This module aims to manage employee's attendances.
-
Keeps account of the attendances of the employees on the basis of the
actions(Sign in/Sign out) performed by them.
""",
@@ -42,7 +41,7 @@
'wizard/hr_attendance_byweek_view.xml',
'wizard/hr_attendance_error_view.xml',
'wizard/hr_attendance_sign_in_out_view.xml',
- ],
+ ],
'demo_xml': ['hr_attendance_demo.xml'],
'test': ['test/test_hr_attendance.yml'],
'installable': True,
diff --git a/addons/hr_attendance/hr_attendance.py b/addons/hr_attendance/hr_attendance.py
index e14a91df084..b8892837310 100644
--- a/addons/hr_attendance/hr_attendance.py
+++ b/addons/hr_attendance/hr_attendance.py
@@ -19,7 +19,6 @@
#
##############################################################################
-from mx import DateTime
import time
from osv import fields, osv
@@ -29,16 +28,16 @@ class hr_action_reason(osv.osv):
_name = "hr.action.reason"
_description = "Action Reason"
_columns = {
- 'name' : fields.char('Reason', size=64, required=True, help='Specifies the reason for Signing In/Signing Out.'),
- 'action_type' : fields.selection([('sign_in', 'Sign in'), ('sign_out', 'Sign out')], "Action's type"),
+ 'name': fields.char('Reason', size=64, required=True, help='Specifies the reason for Signing In/Signing Out.'),
+ 'action_type': fields.selection([('sign_in', 'Sign in'), ('sign_out', 'Sign out')], "Action's type"),
}
_defaults = {
- 'action_type' : lambda *a: 'sign_in',
+ 'action_type': 'sign_in',
}
hr_action_reason()
def _employee_get(obj, cr, uid, context=None):
- ids = obj.pool.get('hr.employee').search(cr, uid, [('user_id','=', uid)])
+ ids = obj.pool.get('hr.employee').search(cr, uid, [('user_id', '=', uid)])
if ids:
return ids[0]
return False
@@ -51,18 +50,18 @@ class hr_attendance(osv.osv):
res = dict.fromkeys(ids, '')
for obj in self.browse(cr, uid, ids, context=context):
res[obj.id] = time.strftime('%Y-%m-%d', time.strptime(obj.name, '%Y-%m-%d %H:%M:%S'))
-
return res
+
_columns = {
- 'name' : fields.datetime('Date', required=True, select=1),
- 'action' : fields.selection([('sign_in', 'Sign In'), ('sign_out', 'Sign Out'),('action','Action')], 'Action', required=True),
- 'action_desc' : fields.many2one("hr.action.reason", "Action reason", domain="[('action_type', '=', action)]", help='Specifies the reason for Signing In/Signing Out in case of extra hours.'),
- 'employee_id' : fields.many2one('hr.employee', "Employee's Name", required=True, select=True),
- 'day' : fields.function(_day_compute, method=True, type='char', string='Day', store=True, select=1, size=32),
+ 'name': fields.datetime('Date', required=True, select=1),
+ 'action': fields.selection([('sign_in', 'Sign In'), ('sign_out', 'Sign Out'), ('action','Action')], 'Action', required=True),
+ 'action_desc': fields.many2one("hr.action.reason", "Action reason", domain="[('action_type', '=', action)]", help='Specifies the reason for Signing In/Signing Out in case of extra hours.'),
+ 'employee_id': fields.many2one('hr.employee', "Employee's Name", required=True, select=True),
+ 'day': fields.function(_day_compute, method=True, type='char', string='Day', store=True, select=1, size=32),
}
_defaults = {
- 'name' : lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
- 'employee_id' : _employee_get,
+ 'name': time.strftime('%Y-%m-%d %H:%M:%S'),
+ 'employee_id': _employee_get,
}
def _altern_si_so(self, cr, uid, ids):
@@ -75,7 +74,6 @@ class hr_attendance(osv.osv):
and name <= (select name from hr_attendance where id=%s)
order by name desc
limit 2 '''
-
cr.execute(sql,(id,id))
atts = cr.fetchall()
if not ((len(atts)==1 and atts[0][0] == 'sign_in') or (atts[0][0] != atts[1][0] and atts[0][1] != atts[1][1])):
@@ -113,19 +111,18 @@ class hr_employee(osv.osv):
'state': fields.function(_state, method=True, type='selection', selection=[('absent', 'Absent'), ('present', 'Present')], string='Attendance'),
}
- def _action_check(self, cr, uid, emp_id, dt=False,context={}):
+ def _action_check(self, cr, uid, emp_id, dt=False, context=None):
cr.execute('select max(name) from hr_attendance where employee_id=%s', (emp_id,))
res = cr.fetchone()
return not (res and (res[0]>=(dt or time.strftime('%Y-%m-%d %H:%M:%S'))))
- def attendance_action_change(self, cr, uid, ids, type='action', context={}, dt=False, *args):
+ def attendance_action_change(self, cr, uid, ids, type='action', context=None, dt=False, *args):
id = False
warning_sign = 'sign'
#Special case when button calls this method :type=context
- if isinstance(type,dict):
+ if isinstance(type, dict):
type = type.get('type','action')
-
if type == 'sign_in':
warning_sign = "Sign In"
elif type == 'sign_out':
@@ -135,15 +132,15 @@ class hr_employee(osv.osv):
if not self._action_check(cr, uid, emp['id'], dt, context):
raise osv.except_osv(_('Warning'), _('You tried to %s with a date anterior to another event !\nTry to contact the administrator to correct attendances.')%(warning_sign,))
- res = {'action' : type, 'employee_id' : emp['id']}
+ res = {'action': type, 'employee_id': emp['id']}
if dt:
res['name'] = dt
-
id = self.pool.get('hr.attendance').create(cr, uid, res, context=context)
if type != 'action':
return id
+
return True
hr_employee()
diff --git a/addons/hr_attendance/hr_attendance_demo.xml b/addons/hr_attendance/hr_attendance_demo.xml
index 93908662470..372e9112269 100644
--- a/addons/hr_attendance/hr_attendance_demo.xml
+++ b/addons/hr_attendance/hr_attendance_demo.xml
@@ -7,100 +7,120 @@
sign_in
+
sign_out
+
sign_in
+
sign_out
+
sign_in
+
sign_out
+
sign_in
+
sign_out
+
sign_in
+
sign_out
+
sign_in
+
sign_out
+
sign_in
+
sign_out
+
sign_in
+
sign_out
+
sign_in
+
sign_out
+
sign_in
+
sign_out
+
diff --git a/addons/hr_attendance/hr_attendance_report.xml b/addons/hr_attendance/hr_attendance_report.xml
index 329ca641377..d3e9448ead3 100644
--- a/addons/hr_attendance/hr_attendance_report.xml
+++ b/addons/hr_attendance/hr_attendance_report.xml
@@ -1,6 +1,8 @@
+
+
diff --git a/addons/hr_attendance/hr_attendance_view.xml b/addons/hr_attendance/hr_attendance_view.xml
index 68c4ad60926..08331823667 100644
--- a/addons/hr_attendance/hr_attendance_view.xml
+++ b/addons/hr_attendance/hr_attendance_view.xml
@@ -8,13 +8,14 @@
form
-
-
-
-
+
+
+
+
+
hr.attendance.tree
hr.attendance
@@ -51,9 +52,9 @@
-
-
-
+
+
+
@@ -74,12 +75,8 @@
-
-
+
+
hr.action.reason.form
@@ -87,11 +84,12 @@
form
-
-
+
+
+
hr.action.reason.tree
hr.action.reason
@@ -103,6 +101,7 @@
+
Attendance Reasons
ir.actions.act_window
@@ -111,6 +110,7 @@
tree,form
+
diff --git a/addons/hr_attendance/hr_attendance_wizard.xml b/addons/hr_attendance/hr_attendance_wizard.xml
index dad6a918447..3fc43bce7c5 100644
--- a/addons/hr_attendance/hr_attendance_wizard.xml
+++ b/addons/hr_attendance/hr_attendance_wizard.xml
@@ -13,9 +13,7 @@
groups="group_hr_attendance"/>-->
-
diff --git a/addons/hr_attendance/report/attendance_errors.py b/addons/hr_attendance/report/attendance_errors.py
index 0c21892dc5c..2c0455e10d8 100644
--- a/addons/hr_attendance/report/attendance_errors.py
+++ b/addons/hr_attendance/report/attendance_errors.py
@@ -19,13 +19,13 @@
#
##############################################################################
-
import time
from report import report_sxw
import pooler
import datetime
class attendance_print(report_sxw.rml_parse):
+
def __init__(self, cr, uid, name, context):
super(attendance_print, self).__init__(cr, uid, name, context=context)
self.localcontext.update({
@@ -80,14 +80,13 @@ class attendance_print(report_sxw.rml_parse):
total2 += r['delay']
result_dict = {
- 'total' : total and str(total).split('.')[0],
- 'total2' : total2 and str(total2).split('.')[0]
+ 'total': total and str(total).split('.')[0],
+ 'total2': total2 and str(total2).split('.')[0]
}
# return (self._sign(total),total2 and self._sign(total2))
return [result_dict]
-report_sxw.report_sxw('report.hr.attendance.error', 'hr.employee', 'addons/hr_attendance/report/attendance_errors.rml',parser=attendance_print, header=2)
-
+report_sxw.report_sxw('report.hr.attendance.error', 'hr.employee', 'addons/hr_attendance/report/attendance_errors.rml', parser=attendance_print, header=2)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_attendance/report/bymonth.py b/addons/hr_attendance/report/bymonth.py
index cfebc640777..fc646e089ac 100644
--- a/addons/hr_attendance/report/bymonth.py
+++ b/addons/hr_attendance/report/bymonth.py
@@ -30,7 +30,7 @@ from report.interface import report_rml
from report.interface import toxml
one_day = DateTime.RelativeDateTime(days=1)
-month2name = [0,'Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']
+month2name = [0, 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
def hour2str(h):
hours = int(h)
@@ -38,7 +38,10 @@ def hour2str(h):
return '%02dh%02d' % (hours, minutes)
class report_custom(report_rml):
- def create_xml(self, cr, uid, ids, datas, context):
+
+ def create_xml(self, cr, uid, ids, datas, context=None):
+ if context is None:
+ context = {}
month = DateTime.DateTime(datas['form']['year'], datas['form']['month'], 1)
user_xml = ['%s ' % month2name[month.month], '%s ' % month.year]
for employee_id in ids:
@@ -67,7 +70,7 @@ class report_custom(report_rml):
if attendences and attendences[0]['action'] == 'sign_out':
attendences.insert(0, {'name': today.strftime('%Y-%m-%d %H:%M:%S'), 'action':'sign_in'})
if attendences and attendences[-1]['action'] == 'sign_in':
- attendences.append({'name' : tomor.strftime('%Y-%m-%d %H:%M:%S'), 'action':'sign_out'})
+ attendences.append({'name': tomor.strftime('%Y-%m-%d %H:%M:%S'), 'action':'sign_out'})
# sum up the attendances' durations
for att in attendences:
dt = DateTime.strptime(att['name'], '%Y-%m-%d %H:%M:%S')
@@ -88,7 +91,6 @@ class report_custom(report_rml):
%s
''' % '\n'.join(user_xml)
-
return xml
report_custom('report.hr.attendance.bymonth', 'hr.employee', '', 'addons/hr_attendance/report/bymonth.xsl')
diff --git a/addons/hr_attendance/report/timesheet.py b/addons/hr_attendance/report/timesheet.py
index 7319c366298..8b5bbdff5e7 100644
--- a/addons/hr_attendance/report/timesheet.py
+++ b/addons/hr_attendance/report/timesheet.py
@@ -22,7 +22,7 @@
from mx import DateTime
from mx.DateTime import now
-import netsvc
+
import pooler
from report.interface import report_rml
@@ -35,13 +35,12 @@ def to_hour(h):
return int(h), int(round((h - int(h)) * 60, 0))
class report_custom(report_rml):
- def create_xml(self, cr, uid, ids, datas, context):
+ def create_xml(self, cr, uid, ids, datas, context=None):
start_date = DateTime.strptime(datas['form']['init_date'], '%Y-%m-%d')
end_date = DateTime.strptime(datas['form']['end_date'], '%Y-%m-%d')
first_monday = start_date - DateTime.RelativeDateTime(days=start_date.day_of_week)
last_monday = end_date + DateTime.RelativeDateTime(days=7 - end_date.day_of_week)
-
if last_monday < first_monday:
first_monday, last_monday = last_monday, first_monday
@@ -73,9 +72,9 @@ class report_custom(report_rml):
# Fake sign ins/outs at week ends, to take attendances across week ends into account
# XXX this is wrong for the first sign-in ever and the last sign out to this date
if attendances and attendances[0]['action'] == 'sign_out':
- attendances.insert(0, {'name': monday.strftime('%Y-%m-%d %H:%M:%S'), 'action':'sign_in'})
+ attendances.insert(0, {'name': monday.strftime('%Y-%m-%d %H:%M:%S'), 'action': 'sign_in'})
if attendances and attendances[-1]['action'] == 'sign_in':
- attendances.append({'name' : n_monday.strftime('%Y-%m-%d %H:%M:%S'), 'action':'sign_out'})
+ attendances.append({'name': n_monday.strftime('%Y-%m-%d %H:%M:%S'), 'action': 'sign_out'})
# sum up the attendances' durations
for att in attendances:
dt = DateTime.strptime(att['name'], '%Y-%m-%d %H:%M:%S')
diff --git a/addons/hr_attendance/security/hr_security.xml b/addons/hr_attendance/security/hr_security.xml
index 7973239ebcf..fd6ad2e0ccb 100644
--- a/addons/hr_attendance/security/hr_security.xml
+++ b/addons/hr_attendance/security/hr_security.xml
@@ -1,8 +1,10 @@
-
-
- Human Resources / Attendances User
-
-
+
+
+
+ Human Resources / Attendances User
+
+
+
diff --git a/addons/hr_attendance/security/ir.model.access.csv b/addons/hr_attendance/security/ir.model.access.csv
index 54a15a7cc6e..c96ceff4c45 100644
--- a/addons/hr_attendance/security/ir.model.access.csv
+++ b/addons/hr_attendance/security/ir.model.access.csv
@@ -2,6 +2,5 @@
"access_hr_action_reason_employee","hr action reason employee","model_hr_action_reason","hr_attendance.group_hr_attendance",1,0,0,0
"access_hr_action_reason_employee","hr action reason employee","model_hr_action_reason","hr.group_hr_manager",1,1,1,1
"access_hr_attendance_employee","hr attendance employee","model_hr_attendance","hr_attendance.group_hr_attendance",1,1,1,1
-"access_hr_sign_in_out","hr attendance sign in out","model_hr_sign_in_out","hr_attendance.group_hr_attendance",1,1,1,1
"access_hr_attendance_employee","hr employee attendance sign in out","hr.model_hr_employee","hr_attendance.group_hr_attendance",1,0,0,0
"access_hr_attendance_resource","hr resource attendance sign in out","resource.model_resource_resource","hr_attendance.group_hr_attendance",1,0,0,0
diff --git a/addons/hr_attendance/wizard/hr_attendance_bymonth.py b/addons/hr_attendance/wizard/hr_attendance_bymonth.py
index 2b2c33cf5eb..f66e7892601 100644
--- a/addons/hr_attendance/wizard/hr_attendance_bymonth.py
+++ b/addons/hr_attendance/wizard/hr_attendance_bymonth.py
@@ -18,6 +18,7 @@
# along with this program. If not, see .
#
##############################################################################
+
import time
from osv import osv, fields
@@ -26,16 +27,17 @@ class hr_attendance_bymonth(osv.osv_memory):
_name = 'hr.attendance.month'
_description = 'Print Monthly Attendance Report'
_columns = {
- 'month': fields.selection([(1, 'January'), (2, 'February'), (3, 'March'), (4, 'April'), (5, 'May'), (6, 'June'), (7, 'July'), (8, 'August'), (9, 'September'), (10, 'October'), (11, 'November'), (12, 'December')],
- 'Month', required=True),
+ 'month': fields.selection([(1, 'January'), (2, 'February'), (3, 'March'), (4, 'April'), (5, 'May'), (6, 'June'), (7, 'July'), (8, 'August'), (9, 'September'), (10, 'October'), (11, 'November'), (12, 'December')], 'Month', required=True),
'year': fields.integer('Year', required=True)
}
_defaults = {
- 'month': lambda * a: time.gmtime()[1],
- 'year': lambda * a: time.gmtime()[0],
+ 'month': time.gmtime()[1],
+ 'year': time.gmtime()[0],
}
def print_report(self, cr, uid, ids, context=None):
+ if context is None:
+ context = {}
datas = {
'ids': [],
'model': 'hr.employee',
@@ -49,4 +51,4 @@ class hr_attendance_bymonth(osv.osv_memory):
hr_attendance_bymonth()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_attendance/wizard/hr_attendance_bymonth_view.xml b/addons/hr_attendance/wizard/hr_attendance_bymonth_view.xml
index 725ce7b5004..6518202ac36 100644
--- a/addons/hr_attendance/wizard/hr_attendance_bymonth_view.xml
+++ b/addons/hr_attendance/wizard/hr_attendance_bymonth_view.xml
@@ -9,9 +9,9 @@
-
-
-
+
+
+
@@ -42,4 +42,4 @@
-
\ No newline at end of file
+
diff --git a/addons/hr_attendance/wizard/hr_attendance_byweek.py b/addons/hr_attendance/wizard/hr_attendance_byweek.py
index 30c63d69f2b..9ef48f29fff 100644
--- a/addons/hr_attendance/wizard/hr_attendance_byweek.py
+++ b/addons/hr_attendance/wizard/hr_attendance_byweek.py
@@ -28,11 +28,11 @@ class hr_attendance_byweek(osv.osv_memory):
_columns = {
'init_date': fields.date('Starting Date', required=True),
'end_date': fields.date('Ending Date', required=True)
- }
+ }
_defaults = {
- 'init_date': lambda *a: time.strftime('%Y-%m-%d'),
- 'end_date': lambda *a: time.strftime('%Y-%m-%d'),
- }
+ 'init_date': time.strftime('%Y-%m-%d'),
+ 'end_date': time.strftime('%Y-%m-%d'),
+ }
def print_report(self, cr, uid, ids, context=None):
datas = {
@@ -47,4 +47,4 @@ class hr_attendance_byweek(osv.osv_memory):
}
hr_attendance_byweek()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_attendance/wizard/hr_attendance_byweek_view.xml b/addons/hr_attendance/wizard/hr_attendance_byweek_view.xml
index 220ceef2e48..1e536334675 100644
--- a/addons/hr_attendance/wizard/hr_attendance_byweek_view.xml
+++ b/addons/hr_attendance/wizard/hr_attendance_byweek_view.xml
@@ -9,10 +9,10 @@
-
-
-
-
+
+
+
+
@@ -43,4 +43,4 @@
-
\ No newline at end of file
+
diff --git a/addons/hr_attendance/wizard/hr_attendance_error.py b/addons/hr_attendance/wizard/hr_attendance_error.py
index 47029822741..62689705c17 100644
--- a/addons/hr_attendance/wizard/hr_attendance_error.py
+++ b/addons/hr_attendance/wizard/hr_attendance_error.py
@@ -31,15 +31,16 @@ class hr_attendance_error(osv.osv_memory):
'init_date': fields.date('Starting Date', required=True),
'end_date': fields.date('Ending Date', required=True),
'max_delay': fields.integer('Max. Delay (Min)', required=True)
-
- }
+ }
_defaults = {
- 'init_date': lambda *a: time.strftime('%Y-%m-%d'),
- 'end_date': lambda *a: time.strftime('%Y-%m-%d'),
+ 'init_date': time.strftime('%Y-%m-%d'),
+ 'end_date': time.strftime('%Y-%m-%d'),
'max_delay': 120,
- }
+ }
def print_report(self, cr, uid, ids, context=None):
+ if context is None:
+ context = {}
emp_ids = []
data_error = self.read(cr, uid, ids)[0]
date_from = data_error['init_date']
@@ -67,4 +68,4 @@ class hr_attendance_error(osv.osv_memory):
hr_attendance_error()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_attendance/wizard/hr_attendance_error_view.xml b/addons/hr_attendance/wizard/hr_attendance_error_view.xml
index 3061c263687..fbb65993f9f 100644
--- a/addons/hr_attendance/wizard/hr_attendance_error_view.xml
+++ b/addons/hr_attendance/wizard/hr_attendance_error_view.xml
@@ -9,12 +9,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -45,4 +45,4 @@
-
\ No newline at end of file
+
diff --git a/addons/hr_attendance/wizard/hr_attendance_sign_in_out.py b/addons/hr_attendance/wizard/hr_attendance_sign_in_out.py
index d40829cf120..7ffd94dbca5 100644
--- a/addons/hr_attendance/wizard/hr_attendance_sign_in_out.py
+++ b/addons/hr_attendance/wizard/hr_attendance_sign_in_out.py
@@ -20,7 +20,6 @@
##############################################################################
import time
-import netsvc
from osv import osv, fields
from tools.translate import _
@@ -31,8 +30,11 @@ class hr_si_so_ask(osv.osv_memory):
'name': fields.char('Employees name', size=32, required=True, readonly=True),
'last_time': fields.datetime('Your last sign out', required=True),
'emp_id': fields.char('Empoyee ID', size=32, required=True, readonly=True),
- }
+ }
+
def _get_empname(self, cr, uid, context=None):
+ if context is None:
+ context = {}
emp_id = self.pool.get('hr.employee').search(cr, uid, [('user_id', '=', uid)], context=context)
if emp_id:
employee = self.pool.get('hr.employee').browse(cr, uid, emp_id, context=context)[0].name
@@ -114,7 +116,7 @@ class hr_sign_in_out(osv.osv_memory):
data = self.read(cr, uid, ids, [])[0]
att_obj = self.pool.get('hr.attendance')
emp_id = data['emp_id']
- att_id = att_obj.search(cr, uid, [('employee_id', '=', emp_id),('action','!=','action')], limit=1, order='name desc')
+ att_id = att_obj.search(cr, uid, [('employee_id', '=', emp_id),('action', '!=', 'action')], limit=1, order='name desc')
last_att = att_obj.browse(cr, uid, att_id, context=context)
if last_att:
last_att = last_att[0]
@@ -152,11 +154,8 @@ class hr_sign_in_out(osv.osv_memory):
if 'last_time' in data:
if data['last_time'] > time.strftime('%Y-%m-%d %H:%M:%S'):
raise osv.except_osv(_('UserError'), _('The sign-out date must be in the past'))
- self.pool.get('hr.attendance').create(cr, uid, {
- 'name': data['last_time'],
- 'action': 'sign_out',
- 'employee_id': emp_id
- })
+ self.pool.get('hr.attendance').create(cr, uid, {'name': data['last_time'], 'action': 'sign_out',
+ 'employee_id': emp_id})
try:
success = self.pool.get('hr.employee').attendance_action_change(cr, uid, [emp_id], 'sign_in')
except:
diff --git a/addons/hr_attendance/wizard/hr_attendance_sign_in_out_view.xml b/addons/hr_attendance/wizard/hr_attendance_sign_in_out_view.xml
index 7598543e302..edcdf55091f 100644
--- a/addons/hr_attendance/wizard/hr_attendance_sign_in_out_view.xml
+++ b/addons/hr_attendance/wizard/hr_attendance_sign_in_out_view.xml
@@ -8,9 +8,9 @@
-
-
-
+
+
+
@@ -45,8 +45,7 @@
new
-
@@ -56,9 +55,9 @@
-
-
-
+
+
+
@@ -75,9 +74,9 @@
-
-
-
+
+
+
@@ -87,6 +86,5 @@
-
diff --git a/addons/hr_contract/__openerp__.py b/addons/hr_contract/__openerp__.py
index 29678612e34..a649a53478a 100755
--- a/addons/hr_contract/__openerp__.py
+++ b/addons/hr_contract/__openerp__.py
@@ -29,7 +29,6 @@
* Martial status,
* Security number,
* Place of birth, birth date, ...
-
You can assign several contracts per employee.
""",
'author': 'Tiny',
@@ -40,7 +39,7 @@
'security/hr_contract_security.xml',
'security/ir.model.access.csv',
'hr_contract_view.xml'
- ],
+ ],
'demo_xml': [],
'test': ['test/test_hr_contract.yml'],
'installable': True,
diff --git a/addons/hr_contract/hr_contract.py b/addons/hr_contract/hr_contract.py
index 90889b6343e..edc6ee4dc74 100644
--- a/addons/hr_contract/hr_contract.py
+++ b/addons/hr_contract/hr_contract.py
@@ -34,7 +34,7 @@ class hr_employee(osv.osv):
'vehicle': fields.char('Company Vehicle', size=64),
'vehicle_distance': fields.integer('Home-Work Distance', help="In kilometers"),
'contract_ids': fields.one2many('hr.contract', 'employee_id', 'Contracts'),
- }
+ }
hr_employee()
#Contract wage type period name
@@ -44,10 +44,10 @@ class hr_contract_wage_type_period(osv.osv):
_columns = {
'name': fields.char('Period Name', size=50, required=True, select=True),
'factor_days': fields.float('Hours in the period', digits=(12,4), required=True, help='This field is used by the timesheet system to compute the price of an hour of work wased on the contract of the employee')
- }
+ }
_defaults = {
- 'factor_days': lambda *args: 168.0
- }
+ 'factor_days': 168.0
+ }
hr_contract_wage_type_period()
#Contract wage type (hourly, daily, monthly, ...)
@@ -55,15 +55,15 @@ class hr_contract_wage_type(osv.osv):
_name = 'hr.contract.wage.type'
_description = 'Wage Type'
_columns = {
- 'name' : fields.char('Wage Type Name', size=50, required=True, select=True),
- 'period_id' : fields.many2one('hr.contract.wage.type.period', 'Wage Period', required=True),
- 'type' : fields.selection([('gross','Gross'), ('net','Net')], 'Type', required=True),
+ 'name': fields.char('Wage Type Name', size=50, required=True, select=True),
+ 'period_id': fields.many2one('hr.contract.wage.type.period', 'Wage Period', required=True),
+ 'type': fields.selection([('gross','Gross'), ('net','Net')], 'Type', required=True),
'factor_type': fields.float('Factor for hour cost', digits=(12,4), required=True, help='This field is used by the timesheet system to compute the price of an hour of work wased on the contract of the employee')
- }
+ }
_defaults = {
- 'type' : lambda *a : 'gross',
- 'factor_type': lambda *args: 1.8
- }
+ 'type': 'gross',
+ 'factor_type': 1.8
+ }
hr_contract_wage_type()
@@ -93,10 +93,11 @@ class hr_contract(osv.osv):
'advantages_net': fields.float('Net Advantages Value', digits=(16,2)),
'advantages_gross': fields.float('Gross Advantages Value', digits=(16,2)),
'notes': fields.text('Notes'),
- }
+ }
_defaults = {
- 'date_start' : lambda *a : time.strftime("%Y-%m-%d"),
- }
+ 'date_start': time.strftime("%Y-%m-%d"),
+ }
+
hr_contract()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_contract/hr_contract_data.xml b/addons/hr_contract/hr_contract_data.xml
index 511bbce3f4e..de77e8e4277 100644
--- a/addons/hr_contract/hr_contract_data.xml
+++ b/addons/hr_contract/hr_contract_data.xml
@@ -19,6 +19,7 @@
gross
+
Monthly Net Wage
net
diff --git a/addons/hr_contract/hr_contract_view.xml b/addons/hr_contract/hr_contract_view.xml
index 16ceebb96b3..5ff928916c9 100644
--- a/addons/hr_contract/hr_contract_view.xml
+++ b/addons/hr_contract/hr_contract_view.xml
@@ -37,12 +37,12 @@
-
-
+
+
-
+
@@ -58,7 +58,6 @@
-
@@ -80,7 +79,7 @@
-
+
@@ -94,12 +93,9 @@
-
-
hr.hr.employee.view.form2
hr.employee
@@ -108,20 +104,20 @@
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
@@ -135,14 +131,14 @@
-
-
-
-
+
+
+
+
-
+
@@ -155,26 +151,26 @@
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -241,7 +237,7 @@
-
+
@@ -254,13 +250,12 @@
tree,form
-
+
-
diff --git a/addons/hr_contract/security/hr_contract_security.xml b/addons/hr_contract/security/hr_contract_security.xml
index b8fbf3b54ea..f407166082c 100644
--- a/addons/hr_contract/security/hr_contract_security.xml
+++ b/addons/hr_contract/security/hr_contract_security.xml
@@ -1,10 +1,10 @@
-
+
-
- Human Resources / Contracts
-
+
+ Human Resources / Contracts
+
-
+
diff --git a/addons/hr_evaluation/__openerp__.py b/addons/hr_evaluation/__openerp__.py
index 84d4ea61b57..9292b10fd4c 100644
--- a/addons/hr_evaluation/__openerp__.py
+++ b/addons/hr_evaluation/__openerp__.py
@@ -21,27 +21,29 @@
{
"name" : "Human Resources Evaluation",
- "version" : "0.1",
- "author" : "Tiny",
- "category" : "Generic Modules/Human Resources",
- "website" : "http://www.openerp.com",
- "depends" : ["hr",'hr_recruitment','survey'],
+ "version": "0.1",
+ "author": "Tiny",
+ "category": "Generic Modules/Human Resources",
+ "website": "http://www.openerp.com",
+ "depends": ["hr",'hr_recruitment','survey'],
"description": """
- Ability to create employees evaluation.
- An evaluation can be created by employee for subordinates,
- juniors as well as his manager.The evaluation is done under a plan
- in which various surveys can be created and it can be defined which
- level of employee hierarchy fills what and final review and evaluation
- is done by the manager.Every evaluation filled by the employees can be viewed
- in the form of.Implements a dashboard for My Current Evaluations """,
- "init_xml" : [],
- "demo_xml" : ["hr_evaluation_demo.xml",
+ Ability to create employees evaluation.
+ An evaluation can be created by employee for subordinates,
+ juniors as well as his manager.The evaluation is done under a plan
+ in which various surveys can be created and it can be defined which
+ level of employee hierarchy fills what and final review and evaluation
+ is done by the manager.Every evaluation filled by the employees can be viewed
+ in the form of.Implements a dashboard for My Current Evaluations
+ """,
+ "init_xml": [],
+ "demo_xml": ["hr_evaluation_demo.xml",
],
- "update_xml" : [
- "security/ir.model.access.csv",
- "wizard/hr_evaluation_mail_view.xml",
- "hr_evaluation_view.xml",
- "report/hr_evaluation_report_view.xml"],
+ "update_xml": [
+ "security/ir.model.access.csv",
+ "wizard/hr_evaluation_mail_view.xml",
+ "hr_evaluation_view.xml",
+ "report/hr_evaluation_report_view.xml"
+ ],
"test": ["test/test_hr_evaluation.yml"],
"active": False,
"installable": True
diff --git a/addons/hr_evaluation/hr_evaluation.py b/addons/hr_evaluation/hr_evaluation.py
index dd6de871d7a..429b492131d 100644
--- a/addons/hr_evaluation/hr_evaluation.py
+++ b/addons/hr_evaluation/hr_evaluation.py
@@ -36,10 +36,11 @@ class hr_evaluation_plan(osv.osv):
'month_first': fields.integer('First Evaluation After'),
'month_next': fields.integer('Next Evaluation After'),
'active': fields.boolean('Active')
- }
+ }
_defaults = {
- 'active' : lambda *a: True,
- }
+ 'active': True,
+ 'company_id': lambda s,cr,uid,c: s.pool.get('res.company')._company_default_get(cr, uid, 'account.account', context=c),
+ }
hr_evaluation_plan()
class hr_evaluation_plan_phase(osv.osv):
@@ -74,8 +75,8 @@ class hr_evaluation_plan_phase(osv.osv):
'email_subject':fields.text('char')
}
_defaults = {
- 'sequence' : lambda *a: 1,
- 'email_subject':_('''Regarding '''),
+ 'sequence' : 1,
+ 'email_subject': _('''Regarding '''),
'mail_body' : lambda *a:_('''
Date : %(date)s
@@ -92,8 +93,6 @@ Thanks,
'''),
}
-
-
hr_evaluation_plan_phase()
class hr_employee(osv.osv):
@@ -105,6 +104,8 @@ class hr_employee(osv.osv):
}
def run_employee_evaluation(self, cr, uid, automatic=False, use_new_cursor=False, context=None):
+ if context is None:
+ context = {}
for id in self.browse(cr, uid, self.search(cr, uid, [], context=context), context=context):
if id.evaluation_plan_id and id.evaluation_date:
if (dt.ISO.ParseAny(id.evaluation_date) + dt.RelativeDateTime(months = int(id.evaluation_plan_id.month_next))).strftime('%Y-%m-%d') <= time.strftime("%Y-%m-%d"):
@@ -112,7 +113,7 @@ class hr_employee(osv.osv):
self.pool.get("hr_evaluation.evaluation").create(cr, uid, {'employee_id' : id.id, 'plan_id': id.evaluation_plan_id}, context)
return True
- def onchange_evaluation_plan_id(self, cr, uid, ids, evaluation_plan_id, evaluation_date, context={}):
+ def onchange_evaluation_plan_id(self, cr, uid, ids, evaluation_plan_id, evaluation_date, context=None):
evaluation_date = evaluation_date or False
evaluation_plan_obj=self.pool.get('hr_evaluation.plan')
if evaluation_plan_id:
@@ -126,10 +127,10 @@ class hr_employee(osv.osv):
evaluation_date=(dt.ISO.ParseAny(evaluation_date)+ dt.RelativeDateTime(months=+evaluation_plan.month_next)).strftime('%Y-%m-%d')
flag = True
if ids and flag:
- self.pool.get("hr_evaluation.evaluation").create(cr, uid, {'employee_id' : ids[0], 'plan_id': evaluation_plan_id}, context=context)
- return {'value': {'evaluation_date':evaluation_date}}
+ self.pool.get("hr_evaluation.evaluation").create(cr, uid, {'employee_id': ids[0], 'plan_id': evaluation_plan_id}, context=context)
+ return {'value': {'evaluation_date': evaluation_date}}
- def create(self, cr, uid, vals, context={}):
+ def create(self, cr, uid, vals, context=None):
id = super(hr_employee, self).create(cr, uid, vals, context=context)
if vals.get('evaluation_plan_id', False):
self.pool.get("hr_evaluation.evaluation").create(cr, uid, {'employee_id' : id, 'plan_id': vals['evaluation_plan_id']}, context=context)
@@ -172,7 +173,17 @@ class hr_evaluation(osv.osv):
'state' : lambda *a: 'draft',
}
- def onchange_employee_id(self, cr, uid, ids, employee_id, context={}):
+ def name_get(self, cr, uid, ids, context={}):
+ if not len(ids):
+ return []
+ reads = self.browse(cr, uid, ids, context)
+ res = []
+ for record in reads:
+ name = record.plan_id.name
+ res.append((record['id'], name))
+ return res
+
+ def onchange_employee_id(self, cr, uid, ids, employee_id, context=None):
employee_obj=self.pool.get('hr.employee')
evaluation_plan_id=''
if employee_id:
@@ -182,7 +193,7 @@ class hr_evaluation(osv.osv):
employee_ids=employee_obj.search(cr, uid, [('parent_id','=',employee.id)], context=context)
return {'value': {'plan_id':evaluation_plan_id}}
- def button_plan_in_progress(self, cr, uid, ids, context={}):
+ def button_plan_in_progress(self, cr, uid, ids, context=None):
apprai_id = []
for evaluation in self.browse(cr, uid, ids, context):
wait = False
@@ -213,13 +224,8 @@ class hr_evaluation(osv.osv):
hr_eval_inter_obj.survey_req_waiting_answer(cr, uid, [int_id], context=context)
if (not wait) and phase.mail_feature:
- body = phase.mail_body % {
- 'employee_name': child.name,
- 'user_signature': user.signature,
- 'eval_name': phase.survey_id.title,
- 'date': time.strftime('%Y-%m-%d'),
- 'time': time
- }
+ body = phase.mail_body % {'employee_name': child.name, 'user_signature': user.signature,
+ 'eval_name': phase.survey_id.title, 'date': time.strftime('%Y-%m-%d'), 'time': time }
sub = phase.email_subject
dest = [child.work_email]
if dest:
@@ -228,7 +234,7 @@ class hr_evaluation(osv.osv):
self.write(cr, uid, ids, {'state':'wait'}, context=context)
return True
- def button_final_validation(self, cr, uid, ids, context={}):
+ def button_final_validation(self, cr, uid, ids, context=None):
self.write(cr, uid, ids, {'state':'progress'})
request_obj = self.pool.get('hr.evaluation.interview')
for id in self.browse(cr, uid ,ids,context=context):
@@ -236,50 +242,54 @@ class hr_evaluation(osv.osv):
raise osv.except_osv(_('Warning !'),_("You cannot change state, because some appraisal in waiting answer or draft state"))
return True
- def button_done(self,cr, uid, ids, context={}):
+ def button_done(self,cr, uid, ids, context=None):
self.write(cr,uid,ids,{'state':'done', 'date_close': time.strftime('%Y-%m-%d')}, context=context)
return True
- def button_cancel(self, cr, uid, ids, context={}):
+ def button_cancel(self, cr, uid, ids, context=None):
self.write(cr, uid, ids,{'state':'cancel'}, context=context)
return True
hr_evaluation()
class survey_request(osv.osv):
- _inherit="survey.request"
+ _inherit = "survey.request"
_columns = {
- 'is_evaluation':fields.boolean('Is Evaluation?'),
- }
+ 'is_evaluation': fields.boolean('Is Evaluation?'),
+ }
+ _defaults = {
+ 'state': 'waiting_answer',
+ }
survey_request()
class hr_evaluation_interview(osv.osv):
- _name='hr.evaluation.interview'
- _inherits={'survey.request':'request_id'}
- _description='Evaluation Interview'
+ _name = 'hr.evaluation.interview'
+ _inherits = {'survey.request': 'request_id'}
+ _description = 'Evaluation Interview'
_columns = {
'request_id': fields.many2one('survey.request','Request_id', ondelete='cascade'),
'user_to_review_id': fields.many2one('hr.employee', 'Employee to Interview'),
- 'evaluation_id' : fields.many2one('hr_evaluation.evaluation', 'Evaluation Type'),
- }
+ 'evaluation_id': fields.many2one('hr_evaluation.evaluation', 'Evaluation Type'),
+ }
_defaults = {
- 'is_evaluation': lambda *a: True,
- }
+ 'is_evaluation': True,
+ }
- def survey_req_waiting_answer(self, cr, uid, ids, context={}):
+ def survey_req_waiting_answer(self, cr, uid, ids, context=None):
self.write(cr, uid, ids, { 'state' : 'waiting_answer'})
return True
def survey_req_done(self, cr, uid, ids, context=None):
if context is None:
context = {}
- self.write(cr, uid, ids, { 'state' : 'done'})
hr_eval_obj = self.pool.get('hr_evaluation.evaluation')
for id in self.browse(cr, uid, ids, context=context):
flag = False
wating_id = 0
tot_done_req = 0
+ if not id.evaluation_id.id:
+ raise osv.except_osv(_('Warning !'),_("You cannot start evaluation without Evaluation."))
records = hr_eval_obj.browse(cr, uid, [id.evaluation_id.id],context=context)[0].survey_request_ids
for child in records:
if child.state == "draft" :
@@ -291,15 +301,16 @@ class hr_evaluation_interview(osv.osv):
tot_done_req += 1
if not flag and wating_id:
self.survey_req_waiting_answer(cr, uid, [wating_id], context)
- hr_eval_obj.write(cr, uid, [id.evaluation_id.id], {'progress' :tot_done_req * 100 / len(records)}, context=context)
-
- return True
- def survey_req_draft(self, cr, uid, ids, context={}):
- self.write(cr, uid, ids, { 'state' : 'draft'}, context=context)
+ hr_eval_obj.write(cr, uid, [id.evaluation_id.id], {'progress': tot_done_req * 100 / len(records)}, context=context)
+ self.write(cr, uid, ids, { 'state': 'done'})
return True
- def survey_req_cancel(self, cr, uid, ids, context={}):
- self.write(cr, uid, ids, { 'state' : 'cancel'}, context=context)
+ def survey_req_draft(self, cr, uid, ids, context=None):
+ self.write(cr, uid, ids, { 'state': 'draft'}, context=context)
+ return True
+
+ def survey_req_cancel(self, cr, uid, ids, context=None):
+ self.write(cr, uid, ids, { 'state': 'cancel'}, context=context)
return True
def action_print_survey(self, cr, uid, ids, context=None):
@@ -315,12 +326,12 @@ class hr_evaluation_interview(osv.osv):
"""
if not context:
context = {}
-
record = self.browse(cr, uid, ids, context)
record = record and record[0]
- context.update({'survey_id': record.survey_id.id, 'response_id' : [record.response.id], 'response_no':0,})
+ context.update({'survey_id': record.survey_id.id, 'response_id': [record.response.id], 'response_no':0,})
value = self.pool.get("survey").action_print_survey(cr, uid, ids, context)
return value
+
hr_evaluation_interview()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:1
diff --git a/addons/hr_evaluation/hr_evaluation_demo.xml b/addons/hr_evaluation/hr_evaluation_demo.xml
index 83776dde4cd..1147483f8fd 100644
--- a/addons/hr_evaluation/hr_evaluation_demo.xml
+++ b/addons/hr_evaluation/hr_evaluation_demo.xml
@@ -1,6 +1,7 @@
+
Employee Evaluation
20
@@ -10,6 +11,7 @@
5
+
Employee Opinion
@@ -20,6 +22,7 @@
5
+
Employee Evaluation Form
@@ -27,6 +30,7 @@
+
Process
@@ -42,6 +46,7 @@
+
Employee Performance In Key Areas
@@ -81,8 +86,6 @@
-
-
1
@@ -132,6 +135,7 @@
+
1
@@ -156,6 +160,7 @@
+
1
@@ -203,6 +208,7 @@
+
+
1
@@ -304,8 +311,6 @@
-
-
1
@@ -331,7 +336,6 @@
-
1
@@ -356,6 +360,7 @@
+
1
@@ -381,8 +386,6 @@
-
-
1
@@ -436,6 +439,7 @@
+
1
@@ -460,6 +464,7 @@
+
1
@@ -502,7 +507,6 @@
descriptive_text
The comment you entered is in an invalid format.
* It is the joint responsibility of the employee and the supervisor (appraiser) to establish a feasible work plan for the coming year, including major employee responsibilities and corresponding benchmarks against which results will be evaluated.
-
* Critical or key elements of performance and professional development needs (if any), should also be noted at this time
@@ -583,7 +587,6 @@ Once the form had been filled, the employee send it to his supervisor.
-
@@ -1510,6 +1598,7 @@ Once the form had been filled, the employee send it to his supervisor.
+
@@ -1519,6 +1608,7 @@ Once the form had been filled, the employee send it to his supervisor.
+
@@ -1534,6 +1624,7 @@ Once the form had been filled, the employee send it to his supervisor.
+
@@ -1549,6 +1640,7 @@ Once the form had been filled, the employee send it to his supervisor.
+
@@ -1564,6 +1656,7 @@ Once the form had been filled, the employee send it to his supervisor.
+
@@ -1603,8 +1696,7 @@ Once the form had been filled, the employee send it to his supervisor.
-
+
Run Employee Evaluation
diff --git a/addons/hr_evaluation/hr_evaluation_view.xml b/addons/hr_evaluation/hr_evaluation_view.xml
index 5d9c4e910d3..32e93d5964b 100644
--- a/addons/hr_evaluation/hr_evaluation_view.xml
+++ b/addons/hr_evaluation/hr_evaluation_view.xml
@@ -61,13 +61,10 @@
form
tree,form
-
-
-
+
+
@@ -185,30 +182,19 @@
-
-
-
-
+
hr_evaluation.evaluation.tree
hr_evaluation.evaluation
@@ -225,6 +211,7 @@
+
hr_evaluation.evaluation.graph
hr_evaluation.evaluation
@@ -236,6 +223,7 @@
+
hr_evaluation.evaluation_search
hr_evaluation.evaluation
@@ -243,22 +231,17 @@
-
-
-
-
-
+
+
+
+
+
-
+ help="Evaluations that overpassed the deadline" domain="[('date','>=',(datetime.date.today()))]" />
-
-
+
+
@@ -278,9 +261,8 @@
tree,form,graph
-
@@ -291,11 +273,10 @@
+
-
-
+
+
@@ -326,10 +307,8 @@
-
-
+
+
@@ -368,17 +347,13 @@
-
-
-
+
+
diff --git a/addons/hr_evaluation/i18n/es.po b/addons/hr_evaluation/i18n/es.po
index 5dd4b64fb11..87a362033f9 100644
--- a/addons/hr_evaluation/i18n/es.po
+++ b/addons/hr_evaluation/i18n/es.po
@@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-30 03:34+0000\n"
+"X-Launchpad-Export-Date: 2010-07-01 03:45+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_evaluation
diff --git a/addons/hr_evaluation/report/__init__.py b/addons/hr_evaluation/report/__init__.py
index 507f8d6715b..f8ddaab3486 100644
--- a/addons/hr_evaluation/report/__init__.py
+++ b/addons/hr_evaluation/report/__init__.py
@@ -18,6 +18,7 @@
# along with this program. If not, see .
#
##############################################################################
+
import hr_evaluation_report
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_evaluation/report/hr_evaluation_report.py b/addons/hr_evaluation/report/hr_evaluation_report.py
index 7c97ff5055e..56af08e4598 100644
--- a/addons/hr_evaluation/report/hr_evaluation_report.py
+++ b/addons/hr_evaluation/report/hr_evaluation_report.py
@@ -18,6 +18,7 @@
# along with this program. If not, see .
#
##############################################################################
+
import tools
from osv import fields,osv
@@ -75,9 +76,9 @@ class hr_evaluation_report(osv.osv):
s.state
from
hr_evaluation_interview l
- left join
+ LEFT JOIN
hr_evaluation_evaluation s on (s.id=l.evaluation_id)
- group by
+ GROUP BY
s.create_date,
date_trunc('day',s.create_date),
to_char(s.create_date, 'YYYY-MM-DD'),
@@ -92,5 +93,8 @@ class hr_evaluation_report(osv.osv):
s.plan_id
)
""")
+
hr_evaluation_report()
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/hr_evaluation/report/hr_evaluation_report_view.xml b/addons/hr_evaluation/report/hr_evaluation_report_view.xml
index 2a5cbe21ad9..a0f46170518 100644
--- a/addons/hr_evaluation/report/hr_evaluation_report_view.xml
+++ b/addons/hr_evaluation/report/hr_evaluation_report_view.xml
@@ -1,6 +1,7 @@
-
+
+
hr.evaluation.report.tree
hr.evaluation.report
@@ -43,33 +44,18 @@
-
-
+ domain="[('create_date','<=', time.strftime('%%Y-%%m-%%d')), ('create_date', '>',(datetime.date.today()-datetime.timedelta(days=365)).strftime('%%Y-%%m-%%d'))]" help="Tasks performed in last 365 days"/>
+
+
-
-
-
-
+
@@ -86,13 +72,13 @@
-
+
-
-
-
-
-
+
+
+
+
+
@@ -110,5 +96,5 @@
-
+
diff --git a/addons/hr_evaluation/wizard/__init__.py b/addons/hr_evaluation/wizard/__init__.py
index 367cabbe90b..1a855087bbc 100644
--- a/addons/hr_evaluation/wizard/__init__.py
+++ b/addons/hr_evaluation/wizard/__init__.py
@@ -21,5 +21,4 @@
import hr_evaluation_mail
-
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_evaluation/wizard/hr_evaluation_mail.py b/addons/hr_evaluation/wizard/hr_evaluation_mail.py
index 42b0654de1b..97dd1ca01c7 100644
--- a/addons/hr_evaluation/wizard/hr_evaluation_mail.py
+++ b/addons/hr_evaluation/wizard/hr_evaluation_mail.py
@@ -28,7 +28,7 @@ class hr_evaluation_reminder(osv.osv_memory):
'evaluation_id': fields.many2one('hr_evaluation.evaluation', 'Evaluations', required=True)
}
- def send_mail(self, cr, uid, ids, context={}):
+ def send_mail(self, cr, uid, ids, context=None):
hr_evaluation_obj = self.pool.get('hr_evaluation.evaluation')
evaluation_data = self.read(cr, uid, ids, context=context)[0]
for waiting_id in hr_evaluation_obj.browse(cr, uid, evaluation_data['evaluation_id'], context=context).survey_request_ids:
@@ -40,4 +40,4 @@ class hr_evaluation_reminder(osv.osv_memory):
hr_evaluation_reminder()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_evaluation/wizard/hr_evaluation_mail_view.xml b/addons/hr_evaluation/wizard/hr_evaluation_mail_view.xml
index 2e06e47505e..9319b8d88fd 100644
--- a/addons/hr_evaluation/wizard/hr_evaluation_mail_view.xml
+++ b/addons/hr_evaluation/wizard/hr_evaluation_mail_view.xml
@@ -1,36 +1,36 @@
-
-
- hr.evaluation.send.mail
- hr.evaluation.reminder
- form
-
-
-
-
-
-
-
-
-
-
+
+
+ hr.evaluation.send.mail
+ hr.evaluation.reminder
+ form
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
- Evaluation Send Mail
- hr.evaluation.reminder
- ir.actions.act_window
- form
- tree,form
-
- {'record_id':active_id}
- new
-
+ Evaluation Send Mail
+ hr.evaluation.reminder
+ ir.actions.act_window
+ form
+ tree,form
+
+ {'record_id':active_id}
+ new
+
diff --git a/addons/hr_expense/__openerp__.py b/addons/hr_expense/__openerp__.py
index dda5cd0f8a3..3be26d8ff72 100644
--- a/addons/hr_expense/__openerp__.py
+++ b/addons/hr_expense/__openerp__.py
@@ -51,10 +51,11 @@
'process/hr_expense_process.xml',
'report/hr_expense_report_view.xml',
'board_hr_expense_view.xml',
- ],
- 'demo_xml': ['hr_expense_demo.xml',
-# 'hr.expense.expense.csv'
- ],
+ ],
+ 'demo_xml': [
+ 'hr_expense_demo.xml',
+# 'hr.expense.expense.csv'
+ ],
'test': ['test/test_hr_expense.yml'],
'installable': True,
'active': False,
diff --git a/addons/hr_expense/board_hr_expense_view.xml b/addons/hr_expense/board_hr_expense_view.xml
index 797e258cb31..cc5488a8f2e 100644
--- a/addons/hr_expense/board_hr_expense_view.xml
+++ b/addons/hr_expense/board_hr_expense_view.xml
@@ -1,6 +1,7 @@
+
My Expenses
hr.expense.expense
@@ -20,5 +21,6 @@
+
diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py
index d32a136e0d2..d1d151c08f3 100644
--- a/addons/hr_expense/hr_expense.py
+++ b/addons/hr_expense/hr_expense.py
@@ -25,7 +25,7 @@ from osv import fields, osv
from tools.translate import _
def _employee_get(obj, cr, uid, context=None):
- ids = obj.pool.get('hr.employee').search(cr, uid, [('user_id','=', uid)])
+ ids = obj.pool.get('hr.employee').search(cr, uid, [('user_id', '=', uid)])
if ids:
return ids[0]
return False
@@ -34,15 +34,15 @@ class hr_expense_expense(osv.osv):
def copy(self, cr, uid, id, default=None, context=None):
if not default: default = {}
- default.update( {'invoice_id':False,'date_confirm':False,'date_valid':False,'user_valid':False})
+ default.update({'invoice_id': False, 'date_confirm': False, 'date_valid': False, 'user_valid': False})
return super(hr_expense_expense, self).copy(cr, uid, id, default, context)
- def _amount(self, cr, uid, ids, field_name, arg, context):
- cr.execute("SELECT s.id,COALESCE(SUM(l.unit_amount*l.unit_quantity),0) AS amount FROM hr_expense_expense s LEFT OUTER JOIN hr_expense_line l ON (s.id=l.expense_id) WHERE s.id IN %s GROUP BY s.id ",(tuple(ids),))
+ def _amount(self, cr, uid, ids, field_name, arg, context=None):
+ cr.execute("SELECT s.id,COALESCE(SUM(l.unit_amount*l.unit_quantity),0) AS amount FROM hr_expense_expense s LEFT OUTER JOIN hr_expense_line l ON (s.id=l.expense_id) WHERE s.id IN %s GROUP BY s.id ", (tuple(ids),))
res = dict(cr.fetchall())
return res
- def _get_currency(self, cr, uid, context):
+ def _get_currency(self, cr, uid, context=None):
user = self.pool.get('res.users').browse(cr, uid, [uid])[0]
if user.company_id:
return user.company_id.currency_id.id
@@ -158,18 +158,17 @@ class hr_expense_expense(osv.osv):
'fiscal_position': exp.employee_id.address_id.partner_id.property_account_position.id
}
if payment_term_id:
- to_update = invoice_obj.onchange_payment_term_date_invoice(cr, uid, [],
- payment_term_id, None)
+ to_update = invoice_obj.onchange_payment_term_date_invoice(cr, uid, [], payment_term_id, None)
if to_update:
inv.update(to_update['value'])
if exp.journal_id:
inv['journal_id']=exp.journal_id.id
- inv_id = invoice_obj.create(cr, uid, inv, {'type':'in_invoice'})
- invoice_obj.button_compute(cr, uid, [inv_id], {'type':'in_invoice'},
- set_total=True)
+ inv_id = invoice_obj.create(cr, uid, inv, {'type': 'in_invoice'})
+ invoice_obj.button_compute(cr, uid, [inv_id], {'type': 'in_invoice'}, set_total=True)
self.write(cr, uid, [exp.id], {'invoice_id': inv_id, 'state': 'invoiced'})
res = inv_id
return res
+
hr_expense_expense()
class product_product(osv.osv):
@@ -184,7 +183,7 @@ class hr_expense_line(osv.osv):
_name = "hr.expense.line"
_description = "Expense Line"
- def _amount(self, cr, uid, ids, field_name, arg, context):
+ def _amount(self, cr, uid, ids, field_name, arg, context=None):
if not len(ids):
return {}
cr.execute("SELECT l.id,COALESCE(SUM(l.unit_amount*l.unit_quantity),0) AS amount FROM hr_expense_line l WHERE id IN %s GROUP BY l.id ",(tuple(ids),))
@@ -204,11 +203,11 @@ class hr_expense_line(osv.osv):
'analytic_account': fields.many2one('account.analytic.account','Analytic account'),
'ref': fields.char('Reference', size=32),
'sequence' : fields.integer('Sequence', help="Gives the sequence order when displaying a list of expense lines."),
- }
+ }
_defaults = {
- 'unit_quantity': lambda *a: 1,
- 'date_value' : lambda *a: time.strftime('%Y-%m-%d'),
- }
+ 'unit_quantity': 1,
+ 'date_value': time.strftime('%Y-%m-%d'),
+ }
_order = "sequence"
def onchange_product_id(self, cr, uid, ids, product_id, uom_id, employee_id, context=None):
@@ -218,13 +217,11 @@ class hr_expense_line(osv.osv):
if product_id:
product=self.pool.get('product.product').browse(cr, uid, product_id, context=context)
v['name']=product.name
-
# Compute based on pricetype of employee company
pricetype_id = self.pool.get('hr.employee').browse(cr, uid, employee_id).user_id.company_id.property_valuation_price_type.id
context['currency_id']=self.pool.get('hr.employee').browse(cr, uid, employee_id).user_id.company_id.currency_id.id
pricetype=self.pool.get('product.price.type').browse(cr, uid, pricetype_id)
amount_unit=product.price_get(pricetype.field, context)[product.id]
-
v['unit_amount']=amount_unit
if not uom_id:
v['uom_id']=product.uom_id.id
diff --git a/addons/hr_expense/hr_expense_demo.xml b/addons/hr_expense/hr_expense_demo.xml
index 148ab026a0f..da348b02ab4 100644
--- a/addons/hr_expense/hr_expense_demo.xml
+++ b/addons/hr_expense/hr_expense_demo.xml
@@ -58,6 +58,7 @@
+
Basic PC - Server for Seagate
2010-05-03
@@ -68,7 +69,9 @@
+
+
@@ -79,6 +82,7 @@
2010-04-20
draft
+
Hotel Expenses - Thymbra
2010-05-03
@@ -89,17 +93,17 @@
-
- Bruxelles - Paris
- 2010-05-03
-
-
-
-
-
-
-
+
+ Bruxelles - Paris
+ 2010-05-03
+
+
+
+
+
+
+
diff --git a/addons/hr_expense/hr_expense_report.xml b/addons/hr_expense/hr_expense_report.xml
index 9d5f0c3e2c1..5defbfec330 100644
--- a/addons/hr_expense/hr_expense_report.xml
+++ b/addons/hr_expense/hr_expense_report.xml
@@ -1,6 +1,8 @@
+
+
diff --git a/addons/hr_expense/hr_expense_sequence.xml b/addons/hr_expense/hr_expense_sequence.xml
index 4350faecb47..e7de7eb1350 100644
--- a/addons/hr_expense/hr_expense_sequence.xml
+++ b/addons/hr_expense/hr_expense_sequence.xml
@@ -1,15 +1,18 @@
+
Expense invoice
hr.expense.invoice
+
Expense invoice
hr.expense.invoice
EXP/
3
+
diff --git a/addons/hr_expense/hr_expense_view.xml b/addons/hr_expense/hr_expense_view.xml
index 9c5ebf49953..6b92e792ad5 100644
--- a/addons/hr_expense/hr_expense_view.xml
+++ b/addons/hr_expense/hr_expense_view.xml
@@ -81,8 +81,8 @@
-
-
+
+
@@ -126,28 +126,17 @@
-
+
-
-
-
-
+
@@ -171,23 +160,20 @@
-
-
-
+
+
- product.product.expense.form
- product.product
-
- form
-
+ product.product.expense.form
+ product.product
+
+ form
+
-
-
+
+
diff --git a/addons/hr_expense/hr_expense_workflow.xml b/addons/hr_expense/hr_expense_workflow.xml
index 57163b6df5f..972cdcaab8f 100644
--- a/addons/hr_expense/hr_expense_workflow.xml
+++ b/addons/hr_expense/hr_expense_workflow.xml
@@ -27,18 +27,21 @@
function
write({'state': 'draft'})
+
confirm
function
expense_confirm()
+
accepted
function
expense_accept()
+
paid
@@ -46,6 +49,7 @@
expense_paid()
True
+
refused
@@ -53,6 +57,7 @@
expense_canceled()
+
invoice
@@ -66,24 +71,28 @@
confirm
+
validate
+
+
refuse
+
@@ -96,33 +105,39 @@
refuse
+
draft
+
invoice
+
subflow.paid
+
subflow.cancel
+
draft
+
diff --git a/addons/hr_expense/report/__init__.py b/addons/hr_expense/report/__init__.py
index 4ddd1d33933..ad0c48a0819 100644
--- a/addons/hr_expense/report/__init__.py
+++ b/addons/hr_expense/report/__init__.py
@@ -18,6 +18,7 @@
# along with this program. If not, see .
#
##############################################################################
+
import expense
import hr_expense_report
diff --git a/addons/hr_expense/report/expense.py b/addons/hr_expense/report/expense.py
index ae368e8ef8e..7078c23d244 100644
--- a/addons/hr_expense/report/expense.py
+++ b/addons/hr_expense/report/expense.py
@@ -24,11 +24,10 @@ from report import report_sxw
import datetime
class expense(report_sxw.rml_parse):
+
def __init__(self, cr, uid, name, context):
super(expense, self).__init__(cr, uid, name, context=context)
- self.localcontext.update( {
- 'time': time,
- })
+ self.localcontext.update({'time': time, })
report_sxw.report_sxw('report.hr.expense', 'hr.expense.expense', 'addons/hr_expense/report/expense.rml',parser=expense)
diff --git a/addons/hr_expense/report/hr_expense_report.py b/addons/hr_expense/report/hr_expense_report.py
index e2ec064dc4f..a885dfc55a0 100644
--- a/addons/hr_expense/report/hr_expense_report.py
+++ b/addons/hr_expense/report/hr_expense_report.py
@@ -38,6 +38,7 @@ class hr_expense_report(osv.osv):
'product_id':fields.many2one('product.product', 'Product', readonly=True),
'journal_id': fields.many2one('account.journal', 'Force Journal', readonly=True),
'product_qty':fields.float('Qty', readonly=True),
+ 'invoiced':fields.integer('# of Invoiced Lines', readonly=True),
'employee_id': fields.many2one('hr.employee', "Employee's Name", readonly=True),
'date_confirm': fields.date('Confirmation Date', readonly=True),
'date_valid': fields.date('Validation Date', readonly=True),
@@ -77,6 +78,7 @@ class hr_expense_report(osv.osv):
to_date(to_char(s.date_confirm, 'dd-MM-YYYY'),'dd-MM-YYYY') as date_confirm,
to_date(to_char(s.date_valid, 'dd-MM-YYYY'),'dd-MM-YYYY') as date_valid,
s.invoice_id,
+ count(s.invoice_id) as invoiced,
s.user_valid as user_id,
s.department_id,
to_char(date_trunc('day',s.create_date), 'YYYY') as year,
diff --git a/addons/hr_expense/report/hr_expense_report_view.xml b/addons/hr_expense/report/hr_expense_report_view.xml
index c97c5d2594d..0152a09c240 100644
--- a/addons/hr_expense/report/hr_expense_report_view.xml
+++ b/addons/hr_expense/report/hr_expense_report_view.xml
@@ -1,6 +1,7 @@
+
hr.expense.report.tree
hr.expense.report
@@ -16,17 +17,17 @@
-
+
-
-
+
+
@@ -58,40 +59,26 @@
name="month"
domain="[('date','<=', time.strftime('%%Y-%%m-%%d')), ('date','>',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]"
help="Expenses during last month"/>
-
+
-
-
+
-
-
-
+
+
-
+
-
@@ -105,20 +92,15 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/addons/hr_holidays/__init__.py b/addons/hr_holidays/__init__.py
index 9fc701068ef..7144aa19ba8 100644
--- a/addons/hr_holidays/__init__.py
+++ b/addons/hr_holidays/__init__.py
@@ -22,5 +22,6 @@
import hr_holidays
import report
import wizard
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_holidays/__openerp__.py b/addons/hr_holidays/__openerp__.py
index 10e533203ba..e322a2d8786 100644
--- a/addons/hr_holidays/__openerp__.py
+++ b/addons/hr_holidays/__openerp__.py
@@ -21,11 +21,11 @@
{
- "name" : "Human Resources: Holidays management",
- "version" : "1.5",
- "author" : "Tiny & Axelor",
- "category" : "Generic Modules/Human Resources",
- "website" : "http://www.openerp.com",
+ "name": "Human Resources: Holidays management",
+ "version": "1.5",
+ "author": "Tiny & Axelor",
+ "category": "Generic Modules/Human Resources",
+ "website": "http://www.openerp.com",
"description": """Human Ressources: Holidays tracking and workflow
This module allows you to manage leaves and leaves requests.
@@ -64,7 +64,7 @@
'wizard/hr_holidays_summary_employees_view.xml',
'board_hr_holidays_view.xml',
#'process/hr_holidays_process.xml'
- ],
+ ],
'demo_xml': ['hr_holidays_demo.xml',],
'test': ['test/test_hr_holiday.yml'],
'installable': True,
diff --git a/addons/hr_holidays/board_hr_holidays_view.xml b/addons/hr_holidays/board_hr_holidays_view.xml
index 026552f9801..4f3f2142447 100644
--- a/addons/hr_holidays/board_hr_holidays_view.xml
+++ b/addons/hr_holidays/board_hr_holidays_view.xml
@@ -8,7 +8,7 @@
hr.holidays
form
tree,form
- [('user_id','=',uid)]
+ [('user_id','=',uid)]
@@ -21,6 +21,7 @@
[('user_id','=',uid)]
+
board.hr.holidays.form
board.board
diff --git a/addons/hr_holidays/hr_bel_holidays_2008.xml b/addons/hr_holidays/hr_bel_holidays_2008.xml
index 0c09586cb0c..7b9a305704b 100644
--- a/addons/hr_holidays/hr_bel_holidays_2008.xml
+++ b/addons/hr_holidays/hr_bel_holidays_2008.xml
@@ -8,59 +8,69 @@
2008-01-01 18:00
+
Easter Monday
2008-03-24 08:00
2008-03-24 18:00
+
Labour Day
2008-05-01 08:00
2008-05-01 18:00
+
Ascension
2008-05-02 08:00
2008-05-02 18:00
+
Pentecost Monday
2008-05-12 08:00
2008-05-12 18:00
+
National Day
2008-07-21 08:00
2008-07-21 18:00
+
Assumption Day
2008-08-15 08:00
2008-08-15 18:00
+
All Saints
2008-11-01 08:00
2008-11-01 18:00
+
Armistice
2008-11-11 08:00
2008-11-11 18:00
+
Christmas
2008-12-25 08:00
2008-12-25 18:00
+
diff --git a/addons/hr_holidays/hr_holidays.py b/addons/hr_holidays/hr_holidays.py
index 9e3bfca0660..a5ffdbdfc49 100644
--- a/addons/hr_holidays/hr_holidays.py
+++ b/addons/hr_holidays/hr_holidays.py
@@ -20,6 +20,7 @@
# along with this program. If not, see .
#
##############################################################################
+
import time
import datetime
@@ -69,6 +70,7 @@ class hr_holidays_status(osv.osv):
return_false = False
employee_id = False
res = {}
+
if context and context.has_key('employee_id'):
if not context['employee_id']:
return_false = True
@@ -100,7 +102,7 @@ class hr_holidays_status(osv.osv):
_defaults = {
'color_name': 'red',
'active': True,
- }
+ }
hr_holidays_status()
@@ -110,22 +112,22 @@ class hr_holidays(osv.osv):
_order = "type desc, date_from asc"
def _employee_get(obj, cr, uid, context=None):
- ids = obj.pool.get('hr.employee').search(cr, uid, [('user_id','=', uid)])
+ ids = obj.pool.get('hr.employee').search(cr, uid, [('user_id', '=', uid)])
if ids:
return ids[0]
return False
_columns = {
- 'name' : fields.char('Description', required=True, readonly=True, size=64, states={'draft':[('readonly',False)]}),
+ 'name': fields.char('Description', required=True, readonly=True, size=64, states={'draft':[('readonly',False)]}),
'state': fields.selection([('draft', 'Draft'), ('confirm', 'Waiting Validation'), ('refuse', 'Refused'), ('validate1', 'Waiting Second Validation'), ('validate', 'Validated'), ('cancel', 'Cancelled')], 'State', readonly=True, help='When the holiday request is created the state is \'Draft\'.\n It is confirmed by the user and request is sent to admin, the state is \'Waiting Validation\'.\
If the admin accepts it, the state is \'Validated\'. If it is refused, the state is \'Refused\'.'),
- 'date_from' : fields.datetime('Start Date', readonly=True, states={'draft':[('readonly',False)]}),
+ 'date_from': fields.datetime('Start Date', readonly=True, states={'draft':[('readonly',False)]}),
'user_id':fields.many2one('res.users', 'User', states={'draft':[('readonly',False)]}, select=True, readonly=True),
- 'date_to' : fields.datetime('End Date', readonly=True, states={'draft':[('readonly',False)]}),
+ 'date_to': fields.datetime('End Date', readonly=True, states={'draft':[('readonly',False)]}),
'holiday_status_id' : fields.many2one("hr.holidays.status", " Leave Type", required=True,readonly=True, states={'draft':[('readonly',False)]}),
'employee_id' : fields.many2one('hr.employee', "Employee", select=True, invisible=False, readonly=True, states={'draft':[('readonly',False)]}, help='Leave Manager can let this field empty if this leave request/allocation is for every employee'),
- 'manager_id' : fields.many2one('hr.employee', 'Leave Manager', invisible=False, readonly=True, help='This area is automaticly filled by the user who validate the leave'),
- 'notes' : fields.text('Notes',readonly=True, states={'draft':[('readonly',False)]}),
+ 'manager_id': fields.many2one('hr.employee', 'Leave Manager', invisible=False, readonly=True, help='This area is automaticly filled by the user who validate the leave'),
+ 'notes': fields.text('Notes',readonly=True, states={'draft':[('readonly',False)]}),
'number_of_days': fields.float('Number of Days', readonly=True, states={'draft':[('readonly',False)]}),
'number_of_days_temp': fields.float('Number of Days', readonly=True, states={'draft':[('readonly',False)]}),
'case_id': fields.many2one('crm.meeting', 'Case'),
@@ -140,13 +142,13 @@ class hr_holidays(osv.osv):
}
_defaults = {
- 'employee_id' : _employee_get ,
- 'state' : 'draft',
+ 'employee_id': _employee_get ,
+ 'state': 'draft',
'type': 'remove',
'allocation_type': 'employee',
'user_id': lambda obj, cr, uid, context: uid,
'holiday_type': 'employee'
- }
+ }
def _create_resource_leave(self, cr, uid, vals, context=None):
'''This method will create entry in resource calendar leave object at the time of holidays validated '''
@@ -215,10 +217,10 @@ class hr_holidays(osv.osv):
self.unlink(cr, uid, list_ids)
def _check_date(self, cr, uid, ids):
- for rec in self.read(cr, uid, ids, ['number_of_days_temp','date_from','date_to', 'type']):
+ for rec in self.read(cr, uid, ids, ['number_of_days_temp', 'date_from','date_to', 'type']):
if rec['number_of_days_temp'] < 0:
return False
- if rec['type']=='add':
+ if rec['type'] == 'add':
continue
date_from = time.strptime(rec['date_from'], '%Y-%m-%d %H:%M:%S')
date_to = time.strptime(rec['date_to'], '%Y-%m-%d %H:%M:%S')
@@ -249,7 +251,7 @@ class hr_holidays(osv.osv):
def onchange_date_to(self, cr, uid, ids, date_from, date_to):
return self.onchange_date_from(cr, uid, ids, date_to, date_from)
- def onchange_sec_id(self, cr, uid, ids, status, context={}):
+ def onchange_sec_id(self, cr, uid, ids, status, context=None):
warning = {}
if status:
brows_obj = self.pool.get('hr.holidays.status').browse(cr, uid, [status])[0]
@@ -263,7 +265,7 @@ class hr_holidays(osv.osv):
def set_to_draft(self, cr, uid, ids, *args):
wf_service = netsvc.LocalService("workflow")
self.write(cr, uid, ids, {
- 'state':'draft',
+ 'state': 'draft',
'manager_id': False,
'number_of_days': 0,
})
@@ -274,7 +276,7 @@ class hr_holidays(osv.osv):
def holidays_validate2(self, cr, uid, ids, *args):
vals = {'state':'validate1'}
self.check_holidays(cr, uid, ids)
- ids2 = self.pool.get('hr.employee').search(cr, uid, [('user_id','=', uid)])
+ ids2 = self.pool.get('hr.employee').search(cr, uid, [('user_id', '=', uid)])
if ids2:
vals['manager_id'] = ids2[0]
else:
@@ -287,17 +289,17 @@ class hr_holidays(osv.osv):
data_holiday = self.browse(cr, uid, ids)
self.check_holidays(cr, uid, ids)
vals = {'state':'validate'}
- ids2 = obj_emp.search(cr, uid, [('user_id','=', uid)])
+ ids2 = obj_emp.search(cr, uid, [('user_id', '=', uid)])
if ids2:
if data_holiday[0].state == 'validate1':
vals['manager_id2'] = ids2[0]
else:
vals['manager_id'] = ids2[0]
else:
- raise osv.except_osv(_('Warning !'),_('No user related to the selected employee.'))
+ raise osv.except_osv(_('Warning !'), _('No user related to the selected employee.'))
self.write(cr, uid, ids, vals)
for record in data_holiday:
- if record.holiday_type=='employee' and record.type=='remove':
+ if record.holiday_type == 'employee' and record.type == 'remove':
vals = {
'name': record.name,
'date_from': record.date_from,
@@ -308,7 +310,7 @@ class hr_holidays(osv.osv):
'holiday_id': record.id
}
self._create_resource_leave(cr, uid, vals)
- elif record.holiday_type=='category' and record.type=='remove':
+ elif record.holiday_type == 'category' and record.type == 'remove':
emp_ids = obj_emp.search(cr, uid, [('category_id', '=', record.category_id.id)])
for emp in obj_emp.browse(cr, uid, emp_ids):
vals = {
@@ -327,13 +329,13 @@ class hr_holidays(osv.osv):
for record in self.browse(cr, uid, ids):
user_id = False
leave_asked = record.number_of_days_temp
- if record.holiday_type=='employee' and record.type == 'remove':
+ if record.holiday_type == 'employee' and record.type == 'remove':
if record.employee_id and not record.holiday_status_id.limit:
leaves_rest = self.pool.get('hr.holidays.status').get_days( cr, uid, [record.holiday_status_id.id], record.employee_id.id, False)[record.holiday_status_id.id]['remaining_leaves']
if leaves_rest < leave_asked:
raise osv.except_osv(_('Warning!'),_('You cannot validate leaves for %s while available leaves are less than asked leaves.' %(record.employee_id.name)))
nb = -(record.number_of_days_temp)
- elif record.holiday_type=='category' and record.type == 'remove':
+ elif record.holiday_type == 'category' and record.type == 'remove':
if record.category_id and not record.holiday_status_id.limit:
leaves_rest = self.pool.get('hr.holidays.status').get_days_cat( cr, uid, [record.holiday_status_id.id], record.category_id.id, False)[record.holiday_status_id.id]['remaining_leaves']
if leaves_rest < leave_asked:
@@ -342,20 +344,14 @@ class hr_holidays(osv.osv):
else:
nb = record.number_of_days_temp
- if record.holiday_type=='employee' and record.employee_id:
+ if record.holiday_type == 'employee' and record.employee_id:
user_id = record.employee_id.user_id and record.employee_id.user_id.id or uid
- self.write(cr, uid, [record.id], {
- 'state':'confirm',
- 'number_of_days': nb,
- 'user_id': user_id
- })
+ self.write(cr, uid, [record.id], {'state':'confirm', 'number_of_days': nb, 'user_id': user_id })
return True
def holidays_refuse(self, cr, uid, ids, *args):
- vals = {
- 'state':'refuse',
- }
+ vals = {'state': 'refuse'}
ids2 = self.pool.get('hr.employee').search(cr, uid, [('user_id','=', uid)])
if ids2:
vals['manager_id'] = ids2[0]
@@ -364,22 +360,18 @@ class hr_holidays(osv.osv):
def holidays_cancel(self, cr, uid, ids, *args):
self._update_user_holidays(cr, uid, ids)
- self.write(cr, uid, ids, {
- 'state':'cancel'
- })
+ self.write(cr, uid, ids, {'state': 'cancel'})
self._remove_resouce_leave(cr, uid, ids)
return True
def holidays_draft(self, cr, uid, ids, *args):
- self.write(cr, uid, ids, {
- 'state':'draft'
- })
+ self.write(cr, uid, ids, {'state': 'draft'})
return True
def check_holidays(self, cr, uid, ids):
for record in self.browse(cr, uid, ids):
if not record.number_of_days:
- raise osv.except_osv(_('Warning!'),_('Wrong leave definition.'))
+ raise osv.except_osv(_('Warning!'), _('Wrong leave definition.'))
if record.holiday_type=='employee' and record.employee_id:
leave_asked = record.number_of_days
if leave_asked < 0.00:
@@ -387,7 +379,7 @@ class hr_holidays(osv.osv):
leaves_rest = self.pool.get('hr.holidays.status').get_days(cr, uid, [record.holiday_status_id.id], record.employee_id.id, False)[record.holiday_status_id.id]['remaining_leaves']
if leaves_rest < -(leave_asked):
raise osv.except_osv(_('Warning!'),_('You Cannot Validate leaves while available leaves are less than asked leaves.'))
- elif record.holiday_type=='category' and record.category_id:
+ elif record.holiday_type == 'category' and record.category_id:
leave_asked = record.number_of_days
if leave_asked < 0.00:
if not record.holiday_status_id.limit:
@@ -415,7 +407,7 @@ class hr_holidays(osv.osv):
user_id = self.pool.get('hr.employee').search(cr, uid, [('user_id','=',uid)])
if user_id:
vals['user_id'] = user_id[0]
- holiday_ids.append(self.create(cr, uid, vals, context={}))
+ holiday_ids.append(self.create(cr, uid, vals, context=None))
self.holidays_confirm(cr, uid, holiday_ids)
self.holidays_validate(cr, uid, holiday_ids)
@@ -444,7 +436,7 @@ class hr_holidays(osv.osv):
'date' : record.date_from,
}
case_id = self.pool.get('crm.meeting').create(cr, uid, vals)
- self.write(cr, uid, ids, {'case_id':case_id})
+ self.write(cr, uid, ids, {'case_id': case_id})
return True
@@ -455,8 +447,8 @@ class resource_calendar_leaves(osv.osv):
_description = "Leave Detail"
_columns = {
'holiday_id': fields.many2one("hr.holidays", "Holiday"),
- }
+ }
resource_calendar_leaves()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_holidays/hr_holidays_report.xml b/addons/hr_holidays/hr_holidays_report.xml
index 88670544ebf..4c8ec39a1af 100644
--- a/addons/hr_holidays/hr_holidays_report.xml
+++ b/addons/hr_holidays/hr_holidays_report.xml
@@ -1,6 +1,7 @@
+
+
hr.holidays.filter
hr.holidays
@@ -16,8 +17,7 @@
+ domain="[('department_id.manager_id','=',uid)]" />
@@ -44,21 +44,21 @@
-
-
+
+
-
+
-
+
-
+
-
-
+
+
@@ -66,7 +66,7 @@
-
+
@@ -89,15 +89,15 @@
-
-
+
+
-
+
-
+
@@ -110,7 +110,7 @@
-
+
@@ -130,8 +130,7 @@
hr.holidays
tree
-
+
@@ -151,22 +150,22 @@
form
-
-
+
+
+
+-->
-
-
+
+
-
+
@@ -207,8 +206,7 @@
hr.holidays
tree
-
+
@@ -271,10 +269,7 @@
-
@@ -301,10 +296,7 @@
-
@@ -331,15 +323,16 @@
form
-
+
-
+
+
hr.holidays.status.tree
hr.holidays.status
@@ -352,6 +345,7 @@
+
Leave Type
ir.actions.act_window
diff --git a/addons/hr_holidays/hr_holidays_wizard.xml b/addons/hr_holidays/hr_holidays_wizard.xml
index 3c40d073853..4374e2b461a 100644
--- a/addons/hr_holidays/hr_holidays_wizard.xml
+++ b/addons/hr_holidays/hr_holidays_wizard.xml
@@ -6,6 +6,7 @@
name="Reporting"
parent="hr.menu_hr_root"
sequence="10" />
+
.
#
##############################################################################
+
from osv import fields, osv
import tools
@@ -32,19 +33,19 @@ class available_holidays_report(osv.osv):
('05','May'), ('06','June'), ('07','July'), ('08','August'), ('09','September'),
('10','October'), ('11','November'), ('12','December')], 'Month',readonly=True),
'employee_id': fields.many2one ('hr.employee', "Employee's Name", readonly=True),
- 'category_id' : fields.many2one('hr.employee.category', "Category's Name", readonly=True),
+ 'category_id': fields.many2one('hr.employee.category', "Category's Name", readonly=True),
'holiday_status_id': fields.many2one('hr.holidays.status', 'Leave Type', readonly=True),
'max_leave': fields.float('Allocated Leaves', readonly=True),
'taken_leaves': fields.float('Taken Leaves', readonly=True),
- 'remaining_leave': fields.float('Remaining Leaves',readonly=True),
- 'department_id':fields.many2one('hr.department','Department',readonly=True),
- 'user_id':fields.many2one('res.users', 'User', readonly=True),
+ 'remaining_leave': fields.float('Remaining Leaves', readonly=True),
+ 'department_id': fields.many2one('hr.department', 'Department', readonly=True),
+ 'user_id': fields.many2one('res.users', 'User', readonly=True),
}
def init(self, cr):
tools.drop_view_if_exists(cr, 'available_holidays_report')
cr.execute("""
- create or replace view available_holidays_report as (
- select
+ CREATE or REPLACE view available_holidays_report as (
+ SELECT
min(h.id) as id,
date_trunc('day',h.create_date) as date,
to_char(s.create_date, 'YYYY') as year,
@@ -67,15 +68,16 @@ class available_holidays_report(osv.osv):
and employee_id=h.employee_id
and holiday_status_id=h.holiday_status_id
and state='validate') as max_leave
- from hr_holidays h
- left join hr_holidays_status s on (s.id = h.holiday_status_id)
- where h.state='validate'
+ FROM hr_holidays h
+ LEFT JOIN hr_holidays_status s on (s.id = h.holiday_status_id)
+ WHERE h.state='validate'
and s.active <> 'f'
- group by h.holiday_status_id, h.employee_id,
+ GROUP BY h.holiday_status_id, h.employee_id,
date_trunc('day',h.create_date),to_char(s.create_date, 'YYYY'),
to_char(s.create_date, 'MM'), to_char(s.create_date, 'YYYY-MM-DD'), h.user_id,h.state, h.category_id, h.department_id
)""")
+
available_holidays_report()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_holidays/report/available_holidays_view.xml b/addons/hr_holidays/report/available_holidays_view.xml
index 327cdab032b..a172e7eb0ea 100644
--- a/addons/hr_holidays/report/available_holidays_view.xml
+++ b/addons/hr_holidays/report/available_holidays_view.xml
@@ -10,18 +10,17 @@
tree
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
@@ -48,62 +47,44 @@
-
-
-
-
-
+
+
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
Available Holidays
available.holidays.report
form
tree,graph
- {'search_default_month':1,'search_default_User':1,'group_by':[], "search_default_user_id": uid}
+ {'search_default_month':1,'search_default_user':1,'group_by':[], "search_default_user_id": uid, 'group_by_no_leaf':1}
@@ -112,20 +93,17 @@
tree
-
-
+
graph
-
-
+
-
diff --git a/addons/hr_holidays/report/holidays_summary_report.py b/addons/hr_holidays/report/holidays_summary_report.py
index 31fbe91a5a2..a0fa2cdd131 100644
--- a/addons/hr_holidays/report/holidays_summary_report.py
+++ b/addons/hr_holidays/report/holidays_summary_report.py
@@ -234,8 +234,8 @@ class report_custom(report_rml):
continue
dept_done=0
for d in range(0,len(result)):
- emp_id[d]=pooler.get_pool(cr.dbname).get('hr.employee').search(cr, uid, [('user_id','=',result[d][0])])
- items = pooler.get_pool(cr.dbname).get('hr.employee').read(cr, uid, emp_id[d], ['id','name'])
+ emp_id[d]=pooler.get_pool(cr.dbname).get('hr.employee').search(cr, uid, [('user_id', '=', result[d][0])])
+ items = pooler.get_pool(cr.dbname).get('hr.employee').read(cr, uid, emp_id[d], ['id', 'name'])
for item in items:
# if item['id'] in done:
# continue
@@ -261,5 +261,6 @@ class report_custom(report_rml):
return xml
report_custom('report.holidays.summary', 'hr.holidays', '', 'addons/hr_holidays/report/holidays_summary.xsl')
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_holidays/report/hr_holidays_report.py b/addons/hr_holidays/report/hr_holidays_report.py
index 38995351a32..8f8ec56ffeb 100644
--- a/addons/hr_holidays/report/hr_holidays_report.py
+++ b/addons/hr_holidays/report/hr_holidays_report.py
@@ -18,6 +18,7 @@
# along with this program. If not, see .
#
##############################################################################
+
import tools
from osv import fields,osv
@@ -70,8 +71,8 @@ class hr_holidays_report(osv.osv):
s.state
from
hr_holidays s
- where type='remove'
- group by
+ WHERE type='remove'
+ GROUP BY
s.create_date,s.state,s.date_from,s.date_to,
s.employee_id,s.user_id,s.holiday_status_id,
s.department_id, s.category_id
@@ -89,26 +90,26 @@ class hr_holidays_remaining_leaves_user(osv.osv):
'no_of_leaves': fields.integer('Remaining leaves'),
'user_id': fields.many2one('res.users', 'User'),
'leave_type': fields.char('Leave Type', size=64),
+ }
- }
def init(self, cr):
tools.drop_view_if_exists(cr, 'hr_holidays_remaining_leaves_user')
cr.execute("""
- create or replace view hr_holidays_remaining_leaves_user as (
- select
+ CREATE or REPLACE view hr_holidays_remaining_leaves_user as (
+ SELECT
min(hrs.id) as id,
rr.name as name,
sum(hrs.number_of_days) as no_of_leaves,
rr.user_id as user_id,
hhs.name as leave_type
- from
+ FROM
hr_holidays as hrs, hr_employee as hre,
resource_resource as rr,hr_holidays_status as hhs
- where
+ WHERE
hrs.employee_id = hre.id and
hre.resource_id = rr.id and
hhs.id = hrs.holiday_status_id
- group by
+ GROUP BY
rr.name,rr.user_id,hhs.name
)
""")
diff --git a/addons/hr_holidays/report/hr_holidays_report_view.xml b/addons/hr_holidays/report/hr_holidays_report_view.xml
index 7f42982eaad..be08ab63bae 100644
--- a/addons/hr_holidays/report/hr_holidays_report_view.xml
+++ b/addons/hr_holidays/report/hr_holidays_report_view.xml
@@ -9,8 +9,8 @@
-
-
+
+
@@ -45,73 +45,49 @@
-
-
-
-
-
+ domain="[('date','<=', time.strftime('%%Y-%%m-%%d')),('date','>',(datetime.date.today()-datetime.timedelta(days=365)).strftime('%%Y-%%m-%%d'))]" help="Leaves in this year"/>
+
+
-
-
-
+
+
-
-
-
+
+
-
+
+
+
+
+
-
+
-
+
-
+
+
-
-
-
+
-
-
+
-
-
@@ -122,7 +98,7 @@
hr.holidays.report
form
tree,graph
- {"search_default_user_id": uid, 'search_default_month':1,'search_default_Employee':1,'group_by':[]}
+ {"search_default_user_id": uid, 'search_default_month':1, 'search_default_department':1, 'group_by':[], 'group_by_no_leaf':1}
diff --git a/addons/hr_holidays/wizard/hr_holidays_summary_department.py b/addons/hr_holidays/wizard/hr_holidays_summary_department.py
index 9c6d1447f89..af9c92d9f59 100644
--- a/addons/hr_holidays/wizard/hr_holidays_summary_department.py
+++ b/addons/hr_holidays/wizard/hr_holidays_summary_department.py
@@ -31,12 +31,12 @@ class hr_holidays_summary_dept(osv.osv_memory):
'date_from': fields.date('From', required=True),
'depts': fields.many2many('hr.department', 'summary_dept_rel', 'sum_id', 'dept_id', 'Department(s)'),
'holiday_type': fields.selection([('Validated','Validated'),('Confirmed','Confirmed'),('both','Both Validated and Confirmed')], 'Select Holiday Type', required=True)
- }
+ }
_defaults = {
'date_from': time.strftime('%Y-%m-%d'),
'holiday_type': 'Validated'
- }
+ }
def print_report(self, cr, uid, ids, context=None):
data = self.read(cr, uid, ids, [])[0]
@@ -55,4 +55,5 @@ class hr_holidays_summary_dept(osv.osv_memory):
}
hr_holidays_summary_dept()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_holidays/wizard/hr_holidays_summary_employees.py b/addons/hr_holidays/wizard/hr_holidays_summary_employees.py
index 1452c864c7f..8ca69ef9274 100644
--- a/addons/hr_holidays/wizard/hr_holidays_summary_employees.py
+++ b/addons/hr_holidays/wizard/hr_holidays_summary_employees.py
@@ -30,12 +30,12 @@ class hr_holidays_summary_employee(osv.osv_memory):
'date_from': fields.date('From', required=True),
'emp': fields.many2many('hr.employee', 'summary_emp_rel', 'sum_id', 'emp_id', 'Employee(s)'),
'holiday_type': fields.selection([('Validated','Validated'),('Confirmed','Confirmed'),('both','Both Validated and Confirmed')], 'Select Holiday Type', required=True)
- }
+ }
_defaults = {
'date_from': time.strftime('%Y-%m-%d'),
'holiday_type': 'Validated',
- }
+ }
def print_report(self, cr, uid, ids, context=None):
data = self.read(cr, uid, ids, [])[0]
@@ -53,4 +53,4 @@ class hr_holidays_summary_employee(osv.osv_memory):
hr_holidays_summary_employee()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_payroll/__init__.py b/addons/hr_payroll/__init__.py
index 9ea0d7eb8c4..ee49b4e7794 100644
--- a/addons/hr_payroll/__init__.py
+++ b/addons/hr_payroll/__init__.py
@@ -2,7 +2,7 @@
#-*- coding:utf-8 -*-
##############################################################################
#
-# OpenERP, Open Source Management Solution
+# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (). All Rights Reserved
# d$
#
@@ -23,4 +23,6 @@
import hr_payroll
import report
-import wizard
\ No newline at end of file
+import wizard
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/hr_payroll/__openerp__.py b/addons/hr_payroll/__openerp__.py
index da1a4a0bed6..3efa777885c 100644
--- a/addons/hr_payroll/__openerp__.py
+++ b/addons/hr_payroll/__openerp__.py
@@ -1,7 +1,7 @@
#-*- coding:utf-8 -*-
##############################################################################
#
-# OpenERP, Open Source Management Solution
+# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (). All Rights Reserved
# d$
#
@@ -38,7 +38,7 @@
'depends': [
'hr',
'account',
- 'hr_contract',
+ 'hr_contract',
'hr_holidays',
'hr_expense'
],
@@ -53,10 +53,19 @@
'wizard/hr_payroll_create_analytic.xml',
'wizard/hr_payroll_employees_detail.xml',
'wizard/hr_payroll_year_salary.xml',
-
+
+ ],
+ 'test': [
+ 'test/payslip.yml',
+ 'test/payment_advice.yml',
+ 'test/payroll_register.yml',
+
],
'demo_xml': [
+ 'hr_payroll_demo.xml'
],
'installable': True,
'active': False,
}
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_payroll/hr_payroll.py b/addons/hr_payroll/hr_payroll.py
index 108d83a9ee9..753d3d6d017 100644
--- a/addons/hr_payroll/hr_payroll.py
+++ b/addons/hr_payroll/hr_payroll.py
@@ -1,7 +1,7 @@
#-*- coding:utf-8 -*-
##############################################################################
#
-# OpenERP, Open Source Management Solution
+# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (). All Rights Reserved
# d$
#
@@ -50,7 +50,7 @@ class hr_contract_wage_type(osv.osv):
Grows = Basic + Allowances
New = Grows - Deductions
"""
-
+
_inherit = 'hr.contract.wage.type'
_columns = {
'type' : fields.selection([('basic','Basic'), ('gross','Gross'), ('net','Net')], 'Type', required=True),
@@ -62,10 +62,10 @@ class hr_passport(osv.osv):
Employee Passport
Passport based Contratacts for Employees
"""
-
+
_name = 'hr.passport'
_description = 'Passport Detail'
-
+
_columns = {
'employee_id':fields.many2one('hr.employee', 'Employee', required=True),
'name':fields.char('Passport No', size=64, required=True, readonly=False),
@@ -85,7 +85,7 @@ class hr_payroll_structure(osv.osv):
- Allowlance
- Deductions
"""
-
+
_name = 'hr.payroll.structure'
_description = 'Salary Structure'
@@ -102,7 +102,7 @@ class hr_payroll_structure(osv.osv):
self.pool.get('res.users').browse(cr, uid, uid,
context=context).company_id.id,
}
-
+
def copy(self, cr, uid, id, default=None, context=None):
"""
Create a new record in hr_payroll_structure model from existing one
@@ -111,7 +111,7 @@ class hr_payroll_structure(osv.osv):
@param id: list of record ids on which copy method executes
@param default: dict type contains the values to be override during copy of object
@param context: context arguments, like lang, time zone
-
+
@return: returns a id of newly created record
"""
code = self.browse(cr, uid, id).code
@@ -121,7 +121,7 @@ class hr_payroll_structure(osv.osv):
}
res_id = super(hr_payroll_structure, self).copy(cr, uid, id, default, context)
return res_id
-
+
hr_payroll_structure()
class hr_contract(osv.osv):
@@ -129,10 +129,10 @@ class hr_contract(osv.osv):
Employee contract based on the visa, work permits
allowas to configure different Salary structure
"""
-
+
_inherit = 'hr.contract'
_description = 'Employee Contract'
-
+
_columns = {
'permit_no':fields.char('Work Permit No', size=256, required=False, readonly=False),
'passport_id':fields.many2one('hr.passport', 'Passport', required=False),
@@ -152,7 +152,7 @@ class payroll_register(osv.osv):
"""
_name = 'hr.payroll.register'
_description = 'Payroll Register'
-
+
def _calculate(self, cr, uid, ids, field_names, arg, context):
res = {}
allounce = 0.0
@@ -165,7 +165,7 @@ class payroll_register(osv.osv):
deduction += slip.deduction
net += slip.net
grows += slip.grows
-
+
res[register.id] = {
'allounce':allounce,
'deduction':deduction,
@@ -173,7 +173,7 @@ class payroll_register(osv.osv):
'grows':grows
}
return res
-
+
_columns = {
'name':fields.char('Name', size=64, required=True, readonly=False),
'date': fields.date('Date', required=True),
@@ -194,13 +194,13 @@ class payroll_register(osv.osv):
# 'advice_ids':fields.one2many('hr.payroll.advice', 'register_id', 'Bank Advice'),
'company_id':fields.many2one('res.company', 'Company', required=False),
'period_id': fields.many2one('account.period', 'Force Period', domain=[('state','<>','done')], help="Keep empty to use the period of the validation(Payslip) date."),
- 'grows': fields.function(_calculate, method=True, store=True, multi='dc', string='Gross Salary', type='float', digits=(16, int(config['price_accuracy']))),
- 'net': fields.function(_calculate, method=True, store=True, multi='dc', string='Net Salary', digits=(16, int(config['price_accuracy']))),
- 'allounce': fields.function(_calculate, method=True, store=True, multi='dc', string='Allowance', digits=(16, int(config['price_accuracy']))),
- 'deduction': fields.function(_calculate, method=True, store=True, multi='dc', string='Deduction', digits=(16, int(config['price_accuracy']))),
+ 'grows': fields.function(_calculate, method=True, store=True, multi='dc', string='Gross Salary', type='float', digits=(16, 4)),
+ 'net': fields.function(_calculate, method=True, store=True, multi='dc', string='Net Salary', digits=(16, 4)),
+ 'allounce': fields.function(_calculate, method=True, store=True, multi='dc', string='Allowance', digits=(16, 4)),
+ 'deduction': fields.function(_calculate, method=True, store=True, multi='dc', string='Deduction', digits=(16, 4)),
'note': fields.text('Description'),
}
-
+
_defaults = {
'date': lambda *a: time.strftime('%Y-%m-%d'),
'state': lambda *a: 'new',
@@ -216,105 +216,57 @@ class payroll_register(osv.osv):
func_pool = self.pool.get('hr.payroll.structure')
slip_line_pool = self.pool.get('hr.payslip.line')
wf_service = netsvc.LocalService("workflow")
-
- vals = self.read(cr, uid, ids)[0]
-
+
+ vals = self.browse(cr, uid, ids)[0]
+
emp_ids = emp_pool.search(cr, uid, [])
-
+
for emp in emp_pool.browse(cr, uid, emp_ids):
- old_slips = slip_pool.search(cr, uid, [('employee_id','=',emp.id), ('date','=',vals['date'])])
+ old_slips = slip_pool.search(cr, uid, [('employee_id','=', emp.id), ('date','=',vals.date)])
if old_slips:
slip_pool.write(cr, uid, old_slips, {'register_id':ids[0]})
for sid in old_slips:
wf_service.trg_validate(uid, 'hr.payslip', sid, 'compute_sheet', cr)
- continue
-
- sql_req= '''
- SELECT c.wage as wage, struct_id as function
- FROM hr_contract c
- LEFT JOIN hr_employee emp on (c.employee_id=emp.id)
- LEFT JOIN hr_contract_wage_type cwt on (cwt.id = c.wage_type_id)
- LEFT JOIN hr_contract_wage_type_period p on (cwt.period_id = p.id)
- WHERE
- (emp.id=%s) AND
- (date_start <= %s) AND
- (date_end IS NULL OR date_end >= %s)
- LIMIT 1
- '''
- cr.execute(sql_req, (emp.id, vals['date'], vals['date']))
- contract_info = cr.dictfetchone()
+ else:
+ res = {
+ 'employee_id':emp.id,
+ 'basic':0.0,
+ 'register_id':ids[0],
+ 'name':vals.name,
+ 'date':vals.date,
+ 'journal_id':vals.journal_id.id,
+ 'bank_journal_id':vals.bank_journal_id.id
+ }
+ slip_id = slip_pool.create(cr, uid, res)
+ wf_service.trg_validate(uid, 'hr.payslip', slip_id, 'compute_sheet', cr)
- if not contract_info:
- continue
-
- function = contract_info['struct_id']
- lines = []
- if function:
- func = func_pool.read(cr, uid, function, ['line_ids'])
- lines = slip_line_pool.browse(cr, uid, func['line_ids'])
-
- res = {
- 'employee_id':emp.id,
- 'basic':contract_info['wage'],
- 'register_id':ids[0],
- 'name':vals['name'],
- 'date':vals['date'],
- 'journal_id':vals['journal_id'][0],
- 'bank_journal_id':vals['bank_journal_id'][0]
- }
- slip_id = slip_pool.create(cr, uid, res)
-
- old_slip_id = slip_line_pool.search(cr, uid, [('slip_id','=',slip_id)])
- slip_line_pool.unlink(cr, uid, old_slip_id)
-
- for line in lines:
- slip_line_pool.copy(cr, uid, line.id, {'slip_id':slip_id, 'employee_id':False, 'function_id':False}, {})
-
- for line in emp.line_ids:
- slip_line_pool.copy(cr, uid, line.id, {'slip_id':slip_id, 'employee_id':False, 'function_id':False}, {})
-
- wf_service.trg_validate(uid, 'hr.payslip', slip_id, 'compute_sheet', cr)
-
number = self.pool.get('ir.sequence').get(cr, uid, 'salary.register')
self.write(cr, uid, ids, {'state':'draft', 'number':number})
return True
def verify_sheet(self, cr, uid, ids, context={}):
slip_pool = self.pool.get('hr.payslip')
-
+
for id in ids:
sids = slip_pool.search(cr, uid, [('register_id','=',id)])
wf_service = netsvc.LocalService("workflow")
for sid in sids:
wf_service.trg_validate(uid, 'hr.payslip', sid, 'verify_sheet', cr)
-
+
self.write(cr, uid, ids, {'state':'hr_check'})
return True
-
- def verify_twice_sheet(self, cr, uid, ids, context={}):
- slip_pool = self.pool.get('hr.payslip')
-
- for id in ids:
- sids = slip_pool.search(cr, uid, [('register_id','=',id), ('state','=','hr_check')])
- wf_service = netsvc.LocalService("workflow")
- for sid in sids:
- wf_service.trg_validate(uid, 'hr.payslip', sid, 'verify_twice_sheet', cr)
-
- self.write(cr, uid, ids, {'state':'accont_check'})
- return True
-
+
def final_verify_sheet(self, cr, uid, ids, context={}):
slip_pool = self.pool.get('hr.payslip')
advice_pool = self.pool.get('hr.payroll.advice')
advice_line_pool = self.pool.get('hr.payroll.advice.line')
-
+
for id in ids:
- sids = slip_pool.search(cr, uid, [('register_id','=',id), ('state','=','accont_check')])
+ sids = slip_pool.search(cr, uid, [('register_id','=',id), ('state','=','hr_check')])
wf_service = netsvc.LocalService("workflow")
for sid in sids:
wf_service.trg_validate(uid, 'hr.payslip', sid, 'final_verify_sheet', cr)
-
for reg in self.browse(cr, uid, ids):
accs = {}
for slip in reg.line_ids:
@@ -330,7 +282,7 @@ class payroll_register(osv.osv):
accs[slip.employee_id.property_bank_account.code] = pid
else:
pid = accs[slip.employee_id.property_bank_account.code]
-
+
pline = {
'advice_id':pid,
'name':slip.employee_id.otherid,
@@ -339,7 +291,7 @@ class payroll_register(osv.osv):
'bysal':slip.net
}
id = advice_line_pool.create(cr, uid, pline)
-
+
#, 'advice_ids':[(6, 0, [pid])]
self.write(cr, uid, ids, {'state':'confirm'})
return True
@@ -351,7 +303,7 @@ class payroll_register(osv.osv):
wf_service = netsvc.LocalService("workflow")
for sid in sids:
wf_service.trg_validate(uid, 'hr.payslip', sid, 'process_sheet', cr)
-
+
self.write(cr, uid, ids, {'state':'done'})
return True
@@ -363,7 +315,7 @@ class payroll_advice(osv.osv):
'''
_name = 'hr.payroll.advice'
_description = 'Bank Advice Note'
-
+
_columns = {
'register_id':fields.many2one('hr.payroll.register', 'Payroll Register', required=False),
'name':fields.char('Name', size=2048, required=True, readonly=False),
@@ -380,7 +332,7 @@ class payroll_advice(osv.osv):
'account_id': fields.many2one('account.account', 'Account', required=True),
'company_id':fields.many2one('res.company', 'Company', required=False),
}
-
+
_defaults = {
'date': lambda *a: time.strftime('%Y-%m-%d'),
'state': lambda *a: 'draft',
@@ -388,11 +340,11 @@ class payroll_advice(osv.osv):
self.pool.get('res.users').browse(cr, uid, uid,
context=context).company_id.id,
}
-
+
def confirm_sheet(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state':'confirm'})
return True
-
+
def set_to_draft(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state':'draft'})
return True
@@ -409,22 +361,22 @@ class payroll_advice_line(osv.osv):
'''
_name = 'hr.payroll.advice.line'
_description = 'Bank Advice Lines'
-
+
_columns = {
'advice_id':fields.many2one('hr.payroll.advice', 'Bank Advice', required=False),
'name':fields.char('Bank Account A/C', size=64, required=True, readonly=False),
'employee_id':fields.many2one('hr.employee', 'Employee', required=True),
- 'amount': fields.float('Amount', digits=(16, int(config['price_accuracy']))),
- 'bysal': fields.float('By Salary', digits=(16, int(config['price_accuracy']))),
+ 'amount': fields.float('Amount', digits=(16, 4)),
+ 'bysal': fields.float('By Salary', digits=(16, 4)),
'flag':fields.char('D/C', size=8, required=True, readonly=False),
}
_defaults = {
'flag': lambda *a: 'C',
}
-
+
def onchange_employee_id(self, cr, uid, ids, ddate, employee_id, context={}):
vals = {}
- slip_pool = self.pool.get('hr.payslip')
+ slip_pool = self.pool.get('hr.payslip')
if employee_id:
dates = prev_bounds(ddate)
sids = False
@@ -445,7 +397,7 @@ class contrib_register(osv.osv):
'''
_name = 'hr.contibution.register'
_description = 'Contribution Register'
-
+
def _total_contrib(self, cr, uid, ids, field_names, arg, context={}):
line_pool = self.pool.get('hr.contibution.register.line')
period_id = self.pool.get('account.period').search(cr,uid,[('date_start','<=',time.strftime('%Y-%m-%d')),('date_stop','>=',time.strftime('%Y-%m-%d'))])[0]
@@ -454,26 +406,26 @@ class contrib_register(osv.osv):
for cur in self.browse(cr, uid, ids):
current = line_pool.search(cr, uid, [('period_id','=',period_id),('register_id','=',cur.id)])
years = line_pool.search(cr, uid, [('period_id.fiscalyear_id','=',fiscalyear_id.id), ('register_id','=',cur.id)])
-
+
e_month = 0.0
c_month = 0.0
for i in line_pool.browse(cr, uid, current):
e_month += i.emp_deduction
c_month += i.comp_deduction
-
+
e_year = 0.0
c_year = 0.0
for j in line_pool.browse(cr, uid, years):
e_year += i.emp_deduction
c_year += i.comp_deduction
-
+
res[cur.id]={
'monthly_total_by_emp':e_month,
'monthly_total_by_comp':c_month,
'yearly_total_by_emp':e_year,
'yearly_total_by_comp':c_year
}
-
+
return res
_columns = {
@@ -482,10 +434,10 @@ class contrib_register(osv.osv):
'analytic_account_id':fields.many2one('account.analytic.account', 'Analytic Account', required=False),
'name':fields.char('Name', size=256, required=True, readonly=False),
'register_line_ids':fields.one2many('hr.contibution.register.line', 'register_id', 'Register Line', readonly=True),
- 'yearly_total_by_emp': fields.function(_total_contrib, method=True, multi='dc', store=True, string='Total By Employee', digits=(16, int(config['price_accuracy']))),
- 'yearly_total_by_comp': fields.function(_total_contrib, method=True, multi='dc', store=True, string='Total By Company', digits=(16, int(config['price_accuracy']))),
- 'monthly_total_by_emp': fields.function(_total_contrib, method=True, multi='dc', store=True, string='Total By Employee', digits=(16, int(config['price_accuracy']))),
- 'monthly_total_by_comp': fields.function(_total_contrib, method=True, multi='dc', store=True, string='Total By Company', digits=(16, int(config['price_accuracy']))),
+ 'yearly_total_by_emp': fields.function(_total_contrib, method=True, multi='dc', store=True, string='Total By Employee', digits=(16, 4)),
+ 'yearly_total_by_comp': fields.function(_total_contrib, method=True, multi='dc', store=True, string='Total By Company', digits=(16, 4)),
+ 'monthly_total_by_emp': fields.function(_total_contrib, method=True, multi='dc', store=True, string='Total By Employee', digits=(16, 4)),
+ 'monthly_total_by_comp': fields.function(_total_contrib, method=True, multi='dc', store=True, string='Total By Company', digits=(16, 4)),
'note': fields.text('Description'),
}
_defaults = {
@@ -501,22 +453,22 @@ class contrib_register_line(osv.osv):
'''
_name = 'hr.contibution.register.line'
_description = 'Contribution Register Line'
-
+
def _total(self, cr, uid, ids, field_names, arg, context):
res={}
for line in self.browse(cr, uid, ids, context):
res[line.id] = line.emp_deduction + line.comp_deduction
return res
-
+
_columns = {
'name':fields.char('Name', size=256, required=True, readonly=False),
'register_id':fields.many2one('hr.contibution.register', 'Register', required=False),
'code':fields.char('Code', size=64, required=False, readonly=False),
'employee_id':fields.many2one('hr.employee', 'Employee', required=True),
'period_id': fields.many2one('account.period', 'Period'),
- 'emp_deduction': fields.float('Employee Deduction', digits=(16, int(config['price_accuracy']))),
- 'comp_deduction': fields.float('Company Deduction', digits=(16, int(config['price_accuracy']))),
- 'total': fields.function(_total, method=True, store=True, string='Total', digits=(16, int(config['price_accuracy']))),
+ 'emp_deduction': fields.float('Employee Deduction', digits=(16, 4)),
+ 'comp_deduction': fields.float('Company Deduction', digits=(16, 4)),
+ 'total': fields.function(_total, method=True, store=True, string='Total', digits=(16, 4)),
}
contrib_register_line()
@@ -524,12 +476,12 @@ class payment_category(osv.osv):
"""
Allowance, Deduction Heads
House Rent Allowance, Medical Allowance, Food Allowance
- Professional Tax, Advance TDS, Providend Funds, etc
+ Professional Tax, Advance TDS, Providend Funds, etc
"""
-
+
_name = 'hr.allounce.deduction.categoty'
_description = 'Allowance Deduction Heads'
-
+
_columns = {
'name':fields.char('Categoty Name', size=64, required=True, readonly=False),
'code':fields.char('Categoty Code', size=64, required=True, readonly=False),
@@ -538,13 +490,14 @@ class payment_category(osv.osv):
('deduction','Deduction'),
('other','Others'),
],'Type', select=True),
- 'base':fields.char('Based on', size=64, required=True, readonly=False, help='This will use to computer the % fields values, in general its on basic, but You can use all heads code field in small letter as a variable name i.e. hra, ma, lta, etc...., also you can use, static varible basic'),
+ 'base':fields.text('Based on', required=True, readonly=False, help='This will use to computer the % fields values, in general its on basic, but You can use all heads code field in small letter as a variable name i.e. hra, ma, lta, etc...., also you can use, static varible basic'),
'condition':fields.char('Condition', size=1024, required=True, readonly=False, help='Applied this head for calculation if condition is true'),
'sequence': fields.integer('Sequence', required=True, help='Use to arrange calculation sequence'),
- 'note': fields.text('Description'),
+ 'note': fields.text('Description'),
'user_id':fields.char('User', size=64, required=False, readonly=False),
'state':fields.char('Label', size=64, required=False, readonly=False),
'company_id':fields.many2one('res.company', 'Company', required=False),
+ 'contribute_ids':fields.one2many('company.contribution', 'category_id', 'Contributions', required=False),
}
_defaults = {
'condition': lambda *a: 'True',
@@ -561,15 +514,15 @@ class company_contribution(osv.osv):
Company contribution
Allows to configure company contribution for some taxes
"""
-
+
_name = 'company.contribution'
_description = "Company Contribution"
-
+
_columns = {
'category_id':fields.many2one('hr.allounce.deduction.categoty', 'Heads', required=False),
'name':fields.char('Name', size=256, required=True, readonly=False),
'code':fields.char('Code', size=64, required=True, readonly=False),
- 'include_in_salary':fields.boolean('Included in Salary ?', help='If company contribute on this deduction then should company contribution is also deducted from Employee Salary'),
+# 'include_in_salary':fields.boolean('Included in Salary ?', help='If company contribute on this deduction then should company contribution is also deducted from Employee Salary'),
'gratuity':fields.boolean('Use for Gratuity ?', required=False),
'line_ids':fields.one2many('company.contribution.line', 'contribution_id', 'Calculations', required=False),
'register_id':fields.property(
@@ -584,24 +537,25 @@ class company_contribution(osv.osv):
),
'amount_type':fields.selection([
('fix','Fixed Amount'),
+ ('per','Percentage'),
('func','Function Calculation'),
],'Amount Type', select=True),
- 'contribute_per':fields.float('Contribution', digits=(16, int(config['price_accuracy'])), help='Define Company contribution ratio 1.00=100% contribution, If Employee Contribute 5% then company will and here 0.50 defined then company will contribute 50% on employee 5% contribution'),
- 'account_id':fields.property(
- 'account.account',
- type='many2one',
- relation='account.account',
- string="Account",
- method=True,
- view_load=True,
- help="Expanse account where company expanse will be encoded",
- required=False
- ),
+ 'contribute_per':fields.float('Contribution', digits=(16, 4), help='Define Company contribution ratio 1.00=100% contribution, If Employee Contribute 5% then company will and here 0.50 defined then company will contribute 50% on employee 5% contribution'),
+# 'account_id':fields.property(
+# 'account.account',
+# type='many2one',
+# relation='account.account',
+# string="Account",
+# method=True,
+# view_load=True,
+# help="Expanse account where company expanse will be encoded",
+# required=False
+# ),
'company_id':fields.many2one('res.company', 'Company', required=False),
'active':fields.boolean('Active', required=False),
'note': fields.text('Description'),
}
-
+
_defaults = {
'amount_type': lambda *a:'fix',
'active': lambda *a:True,
@@ -609,14 +563,14 @@ class company_contribution(osv.osv):
self.pool.get('res.users').browse(cr, uid, uid,
context=context).company_id.id,
}
-
+
def execute_function(self, cr, uid, id, value, context):
"""
self: pointer to self object
cr: cursor to database
uid: user id of current executer
"""
-
+
line_pool = self.pool.get('company.contribution.line')
res = 0
ids = line_pool.search(cr, uid, [('category_id','=',id), ('to_val','>=',value),('from_val','<=',value)])
@@ -627,40 +581,40 @@ class company_contribution(osv.osv):
else:
res = line_pool.browse(cr, uid, ids)[0].value
return res
-
+
company_contribution()
class company_contribution_line(osv.osv):
"""
Company contribution lines
"""
-
+
_name = 'company.contribution.line'
_description = 'Allowance Deduction Categoty'
_order = 'sequence'
-
+
_columns = {
'contribution_id':fields.many2one('company.contribution', 'Contribution', required=False),
'name':fields.char('Name', size=64, required=False, readonly=False),
'umo_id':fields.many2one('product.uom', 'Unite', required=False),
- 'from_val': fields.float('From', digits=(16, int(config['price_accuracy']))),
- 'to_val': fields.float('To', digits=(16, int(config['price_accuracy']))),
+ 'from_val': fields.float('From', digits=(16, 4)),
+ 'to_val': fields.float('To', digits=(16, 4)),
'amount_type':fields.selection([
('fix','Fixed Amount'),
],'Amount Type', select=True),
'sequence':fields.integer('Sequence'),
- 'value': fields.float('Value', digits=(16, int(config['price_accuracy']))),
+ 'value': fields.float('Value', digits=(16, 4)),
}
company_contribution_line()
class hr_holidays_status(osv.osv):
_inherit = "hr.holidays.status"
-
+
_columns = {
'company_id':fields.many2one('res.company', 'Company', required=False),
'type':fields.selection([
- ('paid','Paid Holiday'),
- ('unpaid','Un-Paid Holiday'),
+ ('paid','Paid Holiday'),
+ ('unpaid','Un-Paid Holiday'),
('halfpaid','Half-Pay Holiday')
], string='Payment'),
'account_id': fields.many2one('account.account', 'Account', required=False),
@@ -690,14 +644,14 @@ class hr_payslip(osv.osv):
'''
_name = 'hr.payslip'
_description = 'Pay Slip'
-
+
def _calculate(self, cr, uid, ids, field_names, arg, context):
res = {}
for rs in self.browse(cr, uid, ids, context):
allow = 0.0
deduct = 0.0
others = 0.0
-
+
obj = {
'basic':rs.basic
}
@@ -709,22 +663,22 @@ class hr_payslip(osv.osv):
obj.update({
'net':rs.inet
})
-
+
for line in rs.line_ids:
amount = 0.0
-
+
if line.amount_type == 'per':
try:
amount = line.amount * eval(str(line.category_id.base), obj)
except Exception, e:
raise osv.except_osv(_('Variable Error !'), _('Variable Error : %s ' % (e)))
-
+
elif line.amount_type in ('fix', 'func'):
amount = line.amount
cd = line.category_id.code.lower()
obj[cd] = amount
-
+
contrib = 0.0
# if line.category_id.include_in_salary:
# contrib = line.company_contrib
@@ -743,9 +697,9 @@ class hr_payslip(osv.osv):
others += amount
elif line.type == 'otherpay':
others += amount
-
+
self.pool.get('hr.payslip.line').write(cr, uid, [line.id], {'total':amount})
-
+
record = {
'allounce':round(allow),
'deduction':round(deduct),
@@ -755,9 +709,9 @@ class hr_payslip(osv.osv):
'total_pay':round(rs.basic + allow - deduct)
}
res[rs.id] = record
-
+
return res
-
+
_columns = {
'deg_id':fields.many2one('hr.payroll.structure', 'Designation', required=False),
'register_id':fields.many2one('hr.payroll.register', 'Register', required=False),
@@ -777,8 +731,8 @@ class hr_payslip(osv.osv):
('cancel','Reject'),
],'State', select=True, readonly=True),
'basic_before_leaves': fields.float('Basic Salary', readonly=True, digits=(16, 2)),
- 'leaves': fields.float('Leaved Deduction', readonly=True, digits=(16, 2)),
- 'basic': fields.float('Basic Salary - Leaves', readonly=True, digits=(16, 2)),
+ 'leaves': fields.float('Leave Deductions', readonly=True, digits=(16, 2)),
+ 'basic': fields.float('Net Basic', readonly=True, digits=(16, 2)),
'grows': fields.function(_calculate, method=True, store=True, multi='dc', string='Gross Salary', type='float', digits=(16, 2)),
'net': fields.function(_calculate, method=True, store=True, multi='dc', string='Net Salary', digits=(16, 2)),
'allounce': fields.function(_calculate, method=True, store=True, multi='dc', string='Allowance', digits=(16, 2)),
@@ -786,11 +740,7 @@ class hr_payslip(osv.osv):
'other_pay': fields.function(_calculate, method=True, store=True, multi='dc', string='Others', digits=(16, 2)),
'total_pay': fields.function(_calculate, method=True, store=True, multi='dc', string='Total Payment', digits=(16, 2)),
'line_ids':fields.one2many('hr.payslip.line', 'slip_id', 'Payslip Line', required=False, readonly=True, states={'draft': [('readonly', False)]}),
- 'move_ids':fields.one2many('hr.payslip.account.move', 'slip_id', 'Accounting vouchers', required=False),
- 'move_line_ids':fields.many2many('account.move.line', 'payslip_lines_rel', 'slip_id', 'line_id', 'Accounting Lines', readonly=True),
- 'move_payment_ids':fields.many2many('account.move.line', 'payslip_payment_rel', 'slip_id', 'payment_id', 'Payment Lines', readonly=True),
'company_id':fields.many2one('res.company', 'Company', required=False),
- 'period_id': fields.many2one('account.period', 'Force Period', domain=[('state','<>','done')], help="Keep empty to use the period of the validation(Payslip) date."),
'holiday_days': fields.integer('No of Leaves', readonly=True),
'worked_days': fields.integer('Worked Day', readonly=True),
'working_days': fields.integer('Working Days', readonly=True),
@@ -807,7 +757,7 @@ class hr_payslip(osv.osv):
self.pool.get('res.users').browse(cr, uid, uid,
context=context).company_id.id,
}
-
+
def copy(self, cr, uid, id, default=None, context=None):
company_id = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.id
default = {
@@ -822,7 +772,7 @@ class hr_payslip(osv.osv):
}
res_id = super(hr_payslip, self).copy(cr, uid, id, default, context)
return res_id
-
+
def create_voucher(self, cr, uid, ids, name, voucher, sequence=5):
slip_move = self.pool.get('hr.payslip.account.move')
for slip in ids:
@@ -833,532 +783,29 @@ class hr_payslip(osv.osv):
'name':name
}
slip_move.create(cr, uid, res)
-
+
def set_to_draft(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state':'draft'})
return True
-
- def cancel_sheet(self, cr, uid, ids, context={}):
- move_pool = self.pool.get('account.move')
- for slip in self.browse(cr, uid, ids, context):
- for line in slip.move_ids:
- if slip.move_id:
- if slip.move_id.state == 'posted':
- move_pool.button_cancel(cr, uid [slip.move_id.id], context)
- move_pool.unlink(cr, uid, [slip.move_id.id])
-
+ def cancel_sheet(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state':'cancel'})
return True
-
- def process_sheet(self, cr, uid, ids, context={}):
- move_pool = self.pool.get('account.move')
- movel_pool = self.pool.get('account.move.line')
- invoice_pool = self.pool.get('account.invoice')
-
- for slip in self.browse(cr,uid,ids):
- line_ids = []
- partner = False
- partner_id = False
- exp_ids = []
-
- partner = slip.employee_id.address_home_id.partner_id
- partner_id = partner.id
-
- fiscal_year_ids = self.pool.get('account.fiscalyear').search(cr, uid, [])
- if not fiscal_year_ids:
- raise osv.except_osv(_('Warning !'), _('Please define fiscal year for perticular contract'))
- fiscal_year_objs = self.pool.get('account.fiscalyear').read(cr, uid, fiscal_year_ids, ['date_start','date_stop'])
- year_exist = False
- for fiscal_year in fiscal_year_objs:
- if ((fiscal_year['date_start'] <= slip.date) and (fiscal_year['date_stop'] >= slip.date)):
- year_exist = True
- if not year_exist:
- raise osv.except_osv(_('Warning !'), _('Fiscal Year is not defined for slip date %s'%slip.date))
- search_period = self.pool.get('account.period').search(cr,uid,[('date_start','<=',slip.date),('date_stop','>=',slip.date)])
- if not search_period:
- raise osv.except_osv(_('Warning !'), _('Period is not defined for slip date %s'%slip.date))
- period_id = search_period[0]
- name = 'Payment of Salary to %s' % (slip.employee_id.name)
- move = {
- 'journal_id': slip.bank_journal_id.id,
- 'period_id': period_id,
- 'date': slip.date,
- 'type':'bank_pay_voucher',
- 'ref':slip.number,
- 'narration': name
- }
- move_id = move_pool.create(cr, uid, move)
- self.create_voucher(cr, uid, [slip.id], name, move_id)
-
- name = "To %s account" % (slip.employee_id.name)
- ded_rec = {
- 'move_id':move_id,
- 'name': name,
- #'partner_id': partner_id,
- 'date': slip.date,
- 'account_id': slip.employee_id.property_bank_account.id,
- 'debit': 0.0,
- 'credit' : slip.total_pay,
- 'journal_id' : slip.journal_id.id,
- 'period_id' :period_id,
- 'ref':slip.number
- }
- line_ids += [movel_pool.create(cr, uid, ded_rec)]
- name = "By %s account" % (slip.employee_id.property_bank_account.name)
- cre_rec = {
- 'move_id':move_id,
- 'name': name,
- 'partner_id': partner_id,
- 'date': slip.date,
- 'account_id': partner.property_account_payable.id,
- 'debit': slip.total_pay,
- 'credit' : 0.0,
- 'journal_id' : slip.journal_id.id,
- 'period_id' :period_id,
- 'ref':slip.number
- }
- line_ids += [movel_pool.create(cr, uid, cre_rec)]
-
- other_pay = slip.other_pay
- #Process all Reambuse Entries
- for line in slip.line_ids:
- if line.type == 'otherpay' and line.expanse_id.invoice_id:
- if not line.expanse_id.invoice_id.move_id:
- raise osv.except_osv(_('Warning !'), _('Please Confirm all Expanse Invoice appear for Reimbursement'))
- invids = [line.expanse_id.invoice_id.id]
- amount = line.total
- acc_id = slip.bank_journal_id.default_credit_account_id and slip.bank_journal_id.default_credit_account_id.id
- period_id = slip.period_id.id
- journal_id = slip.bank_journal_id.id
- name = '[%s]-%s' % (slip.number, line.name)
- invoice_pool.pay_and_reconcile(cr, uid, invids, amount, acc_id, period_id, journal_id, False, period_id, False, context, name)
- other_pay -= amount
- #TODO: link this account entries to the Payment Lines also Expanse Entries to Account Lines
- l_ids = movel_pool.search(cr, uid, [('name','=',name)])
- line_ids += l_ids
-
- l_ids = movel_pool.search(cr, uid, [('invoice','=',line.expanse_id.invoice_id.id)])
- exp_ids += l_ids
-
- #Process for Other payment if any
- other_move_id = False
- if slip.other_pay > 0:
- narration = 'Payment of Other Payeble amounts to %s' % (slip.employee_id.name)
- move = {
- 'journal_id': slip.bank_journal_id.id,
- 'period_id': period_id,
- 'date': slip.date,
- 'type':'bank_pay_voucher',
- 'ref':slip.number,
- 'narration': narration
- }
- other_move_id = move_pool.create(cr, uid, move)
- self.create_voucher(cr, uid, [slip.id], narration, move_id)
-
- name = "To %s account" % (slip.employee_id.name)
- ded_rec = {
- 'move_id':other_move_id,
- 'name':name,
- 'date':slip.date,
- 'account_id':slip.employee_id.property_bank_account.id,
- 'debit': 0.0,
- 'credit': other_pay,
- 'journal_id':slip.journal_id.id,
- 'period_id':period_id,
- 'ref':slip.number
- }
- line_ids += [movel_pool.create(cr, uid, ded_rec)]
- name = "By %s account" % (slip.employee_id.property_bank_account.name)
- cre_rec = {
- 'move_id':other_move_id,
- 'name':name,
- 'partner_id':partner_id,
- 'date':slip.date,
- 'account_id':partner.property_account_payable.id,
- 'debit': other_pay,
- 'credit':0.0,
- 'journal_id':slip.journal_id.id,
- 'period_id':period_id,
- 'ref':slip.number
- }
- line_ids += [movel_pool.create(cr, uid, cre_rec)]
-
- rec = {
- 'state':'done',
- 'move_payment_ids':[(6, 0, line_ids)],
- 'paid':True
- }
- self.write(cr, uid, [slip.id], rec)
- for exp_id in exp_ids:
- self.write(cr, uid, [slip.id], {'move_line_ids':[(4, exp_id)]})
-
- return True
-
+
def account_check_sheet(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state':'accont_check'})
return True
-
+
def hr_check_sheet(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state':'hr_check'})
return True
+ def process_sheet(self, cr, uid, ids, context={}):
+ self.write(cr, uid, ids, {'state':'done'})
+ return True
+
def verify_sheet(self, cr, uid, ids, context={}):
-
- move_pool = self.pool.get('account.move')
- movel_pool = self.pool.get('account.move.line')
- exp_pool = self.pool.get('hr.expense.expense')
-
- for slip in self.browse(cr,uid,ids):
- total_deduct = 0.0
-
- line_ids = []
- partner = False
- partner_id = False
-
- if not slip.employee_id.address_home_id:
- raise osv.except_osv(_('Integrity Error !'), _('Please defined the Employee Home Address Along with Partners !!'))
-
- if not slip.employee_id.address_home_id.partner_id:
- raise osv.except_osv(_('Integrity Error !'), _('Please defined the Partner in Home Address !!'))
-
- partner = slip.employee_id.address_home_id.partner_id
- partner_id = slip.employee_id.address_home_id.partner_id.id
-
- period_id = False
-
- if slip.period_id:
- period_id = slip.period_id.id
- else:
- fiscal_year_ids = self.pool.get('account.fiscalyear').search(cr, uid, [])
- if not fiscal_year_ids:
- raise osv.except_osv(_('Warning !'), _('Please define fiscal year for perticular contract'))
- fiscal_year_objs = self.pool.get('account.fiscalyear').read(cr, uid, fiscal_year_ids, ['date_start','date_stop'])
- year_exist = False
- for fiscal_year in fiscal_year_objs:
- if ((fiscal_year['date_start'] <= slip.date) and (fiscal_year['date_stop'] >= slip.date)):
- year_exist = True
- if not year_exist:
- raise osv.except_osv(_('Warning !'), _('Fiscal Year is not defined for slip date %s'%slip.date))
- search_period = self.pool.get('account.period').search(cr,uid,[('date_start','<=',slip.date),('date_stop','>=',slip.date)])
- if not search_period:
- raise osv.except_osv(_('Warning !'), _('Period is not defined for slip date %s'%slip.date))
- period_id = search_period[0]
-
- move = {
- #'name': slip.name,
- 'journal_id': slip.journal_id.id,
- 'period_id': period_id,
- 'date': slip.date,
- 'ref':slip.number,
- 'narration': slip.name
- }
- move_id = move_pool.create(cr, uid, move)
- self.create_voucher(cr, uid, [slip.id], slip.name, move_id)
-
- line = {
- 'move_id':move_id,
- 'name': "By Basic Salary / " + slip.employee_id.name,
- 'date': slip.date,
- 'account_id': slip.employee_id.salary_account.id,
- 'debit': slip.basic,
- 'credit': 0.0,
- 'quantity':slip.working_days,
- 'journal_id': slip.journal_id.id,
- 'period_id': period_id,
- 'analytic_account_id': False,
- 'ref':slip.number
- }
-
- #Setting Analysis Account for Basic Salary
- if slip.employee_id.analytic_account:
- line['analytic_account_id'] = slip.employee_id.analytic_account.id
-
- move_line_id = movel_pool.create(cr, uid, line)
- line_ids += [move_line_id]
-
- line = {
- 'move_id':move_id,
- 'name': "To Basic Paysble Salary / " + slip.employee_id.name,
- 'partner_id': partner_id,
- 'date': slip.date,
- 'account_id': slip.employee_id.employee_account.id,
- 'debit': 0.0,
- 'quantity':slip.working_days,
- 'credit': slip.basic,
- 'journal_id': slip.journal_id.id,
- 'period_id': period_id,
- 'ref':slip.number
- }
- line_ids += [movel_pool.create(cr, uid, line)]
-
- for line in slip.line_ids:
- name = "[%s] - %s / %s" % (line.code, line.name, slip.employee_id.name)
- amount = line.total
-
- if line.type == 'leaves':
- continue
-
- rec = {
- 'move_id':move_id,
- 'name': name,
- 'date': slip.date,
- 'account_id': line.account_id.id,
- 'debit': 0.0,
- 'credit' : 0.0,
- 'journal_id' : slip.journal_id.id,
- 'period_id' :period_id,
- 'analytic_account_id':False,
- 'ref':slip.number,
- 'quantity':1
- }
-
- #Setting Analysis Account for Salary Slip Lines
- if line.analytic_account_id:
- rec['analytic_account_id'] = line.analytic_account_id.id
- else:
- rec['analytic_account_id'] = slip.deg_id.account_id.id
-
- if line.type == 'allounce' or line.type == 'otherpay':
- rec['debit'] = amount
- if not partner.property_account_payable:
- raise osv.except_osv(_('Integrity Error !'), _('Please Configure Partners Payable Account!!'))
- ded_rec = {
- 'move_id':move_id,
- 'name': name,
- 'partner_id': partner_id,
- 'date': slip.date,
- 'account_id': partner.property_account_payable.id,
- 'debit': 0.0,
- 'quantity':1,
- 'credit' : amount,
- 'journal_id' : slip.journal_id.id,
- 'period_id' :period_id,
- 'ref':slip.number
- }
- line_ids += [movel_pool.create(cr, uid, ded_rec)]
- elif line.type == 'deduction' or line.type == 'otherdeduct':
- if not partner.property_account_receivable:
- raise osv.except_osv(_('Integrity Error !'), _('Please Configure Partners Receivable Account!!'))
- rec['credit'] = amount
- total_deduct += amount
- ded_rec = {
- 'move_id':move_id,
- 'name': name,
- 'partner_id': partner_id,
- 'date': slip.date,
- 'quantity':1,
- 'account_id': partner.property_account_receivable.id,
- 'debit': amount,
- 'credit' : 0.0,
- 'journal_id' : slip.journal_id.id,
- 'period_id' :period_id,
- 'ref':slip.number
- }
- line_ids += [movel_pool.create(cr, uid, ded_rec)]
-
- line_ids += [movel_pool.create(cr, uid, rec)]
-
- if line.company_contrib > 0:
- company_contrib = line.company_contrib
-# if line.category_id.amount_type == 'per':
-# company_contrib = (amount * line.category_id.contribute_per)
-
- narration = """Company Contribution of %s Encode same as a Company Expanse @ %s""" % (line.name, company_contrib)
- move = {
- #'name': slip.name,
- 'journal_id': slip.journal_id.id,
- 'period_id': period_id,
- 'date': slip.date,
- 'ref':slip.number,
- 'narration': narration
- }
- company_contrib_move_id = move_pool.create(cr, uid, move)
- name = "[%s] - %s / %s - Company Contribution" % (line.code, line.name, slip.employee_id.name)
- self.create_voucher(cr, uid, [slip.id], name, company_contrib_move_id)
-
- ded_deb = {
- 'move_id':company_contrib_move_id,
- 'name': name,
- 'date': slip.date,
- 'quantity':1,
- 'account_id': line.category_id.account_id.id,
- 'debit': company_contrib,
- 'credit' : 0.0,
- 'journal_id': slip.journal_id.id,
- 'period_id': period_id,
- 'ref':slip.number
- }
- line_ids += [movel_pool.create(cr, uid, ded_deb)]
- ded_cre = {
- 'move_id':company_contrib_move_id,
- 'name': name,
- 'date': slip.date,
- 'quantity':1,
- 'account_id': line.category_id.register_id.account_id.id,
- 'debit': 0.0,
- 'credit' : company_contrib,
- 'journal_id': slip.journal_id.id,
- 'period_id': period_id,
- 'ref':slip.number
- }
- line_ids += [movel_pool.create(cr, uid, ded_cre)]
-
- if line.category_id.include_in_salary:
- narration = """Company Contribution of %s Deducted from Employee %s""" % (line.name, company_contrib)
- move = {
- #'name': slip.name,
- 'journal_id': slip.journal_id.id,
- 'period_id': period_id,
- 'date': slip.date,
- 'ref':slip.number,
- 'narration': narration
- }
- include_in_salary_move_id = move_pool.create(cr, uid, move)
- self.create_voucher(cr, uid, [slip.id], narration, include_in_salary_move_id)
-
- total_deduct += company_contrib
- ded_deb = {
- 'move_id':include_in_salary_move_id,
- 'name': name,
- 'partner_id': partner_id,
- 'date': slip.date,
- 'quantity':1,
- 'account_id': partner.property_account_receivable.id,
- 'debit': company_contrib,
- 'credit' : 0.0,
- 'journal_id': slip.journal_id.id,
- 'period_id': period_id,
- 'ref':slip.number
- }
- line_ids += [movel_pool.create(cr, uid, ded_deb)]
- ded_cre = {
- 'move_id':include_in_salary_move_id,
- 'name': name,
- 'date': slip.date,
- 'quantity':1,
- 'account_id': line.category_id.account_id.id,
- 'debit': 0.0,
- 'credit' : company_contrib,
- 'journal_id': slip.journal_id.id,
- 'period_id': period_id,
- 'ref':slip.number
- }
- line_ids += [movel_pool.create(cr, uid, ded_cre)]
-
- #make an entry line to contribution register
- if line.category_id.register_id:
- ctr = {
- 'register_id':line.category_id.register_id.id,
- 'name':line.name,
- 'code':line.code,
- 'employee_id':slip.employee_id.id,
- 'period_id':period_id,
- 'emp_deduction':amount,
- }
- if line.category_id.contribute:
- ctr['comp_deduction'] = amount
-
- company = 0.0
- employee = 0.0
- if line.category_id.contribute and line.category_id.include_in_salary and line.category_id.amount_type == 'per':
- new_amount = (amount * (line.category_id.contribute_per / (1+line.category_id.contribute_per)))
- company = new_amount
- employee = amount - company
-
- elif line.category_id.contribute and line.category_id.include_in_salary and line.category_id.amount_type == 'fix':
- company = line.category_id.contribute_per
- employee = amount - company
-
- elif line.category_id.contribute and line.category_id.include_in_salary and line.category_id.amount_type == 'func':
- company = self.pool.get('hr.allounce.deduction.categoty').execute_function(cr, uid, line.category_id.id, line.slip_id.basic, context)
- employee = amount
-
- elif line.category_id.contribute and not line.category_id.include_in_salary and line.category_id.amount_type == 'per':
- company = amount * line.category_id.contribute_per
- employee = amount
-
- elif line.category_id.contribute and not line.category_id.include_in_salary and line.category_id.amount_type == 'fix':
- company = line.category_id.contribute_per
- employee = amount
-
- elif line.category_id.contribute and not line.category_id.include_in_salary and line.category_id.amount_type == 'func':
- company = self.pool.get('hr.allounce.deduction.categoty').execute_function(cr, uid, line.category_id.id, line.slip_id.basic, context)
- employee = amount
-
- ctr['emp_deduction'] = employee
- ctr['comp_deduction'] = company
-
- self.pool.get('hr.contibution.register.line').create(cr, uid, ctr)
-
- adj_move_id = False
- if total_deduct > 0:
- move = {
- 'journal_id': slip.journal_id.id,
- 'period_id': period_id,
- 'date': slip.date,
- 'ref':slip.number,
- 'narration': 'Adjustment : %s' % (slip.name)
- }
- adj_move_id = move_pool.create(cr, uid, move)
- name = "Adjustment Entry - %s" % (slip.employee_id.name)
- self.create_voucher(cr, uid, [slip.id], name, adj_move_id)
-
- ded_rec = {
- 'move_id':adj_move_id,
- 'name': name,
- 'partner_id': partner_id,
- 'date': slip.date,
- 'account_id': partner.property_account_receivable.id,
- 'debit': 0.0,
- 'quantity':1,
- 'credit' : total_deduct,
- 'journal_id' : slip.journal_id.id,
- 'period_id' :period_id,
- 'ref':slip.number
- }
- line_ids += [movel_pool.create(cr, uid, ded_rec)]
- cre_rec = {
- 'move_id':adj_move_id,
- 'name': name,
- 'partner_id': partner_id,
- 'date': slip.date,
- 'account_id': partner.property_account_payable.id,
- 'debit': total_deduct,
- 'quantity':1,
- 'credit' : 0.0,
- 'journal_id' : slip.journal_id.id,
- 'period_id' :period_id,
- 'ref':slip.number
- }
- line_ids += [movel_pool.create(cr, uid, cre_rec)]
-
- rec = {
- 'state':'confirm',
- 'move_line_ids':[(6, 0,line_ids)],
- }
- if not slip.period_id:
- rec['period_id'] = period_id
-
- dates = prev_bounds(slip.date)
- exp_ids = exp_pool.search(cr, uid, [('date_valid','>=',dates[0]), ('date_valid','<=',dates[1]), ('state','=','invoiced')])
- if exp_ids:
- acc = self.pool.get('ir.property').get(cr, uid, 'property_account_expense_categ', 'product.category')
- for exp in exp_pool.browse(cr, uid, exp_ids):
- exp_res = {
- 'name':exp.name,
- 'amount_type':'fix',
- 'type':'otherpay',
- 'category_id':exp.category_id.id,
- 'amount':exp.amount,
- 'slip_id':slip.id,
- 'expanse_id':exp.id,
- 'account_id':acc
- }
- self.pool.get('hr.payslip.line').create(cr, uid, exp_res)
-
- self.write(cr, uid, [slip.id], rec)
-
+ self.write(cr, uid, ids, {'state':'confirm'})
return True
def get_contract(self, cr, uid, employee, date, context={}):
@@ -1375,49 +822,49 @@ class hr_payslip(osv.osv):
LIMIT 1
'''
cr.execute(sql_req, (employee.id, date, date))
- contract = cr.dictfetchone()
-
+ contract = cr.dictfetchone()
+
contract = contract and contract or {}
-
+
return contract
-
+
def _get_leaves(self, cr, user, slip, employee, context={}):
"""
Compute leaves for an employee
-
+
@param cr: cursor to database
@param user: id of current user
@param slip: object of the hr.payroll.slip model
@param employee: object of the hr.employee model
@param context: context arguments, like lang, time zone
-
+
@return: return a result
"""
-
+
result = []
dates = prev_bounds(slip.date)
sql = '''select id from hr_holidays
- where date_from >= '%s' and date_to <= '%s'
- and employee_id = %s
+ where date_from >= '%s' and date_to <= '%s'
+ and employee_id = %s
and state = 'validate' ''' % (dates[0], dates[1], slip.employee_id.id)
cr.execute(sql)
res = cr.fetchall()
if res:
result = [x[0] for x in res]
-
+
return result
-
+
def compute_sheet(self, cr, uid, ids, context={}):
emp_pool = self.pool.get('hr.employee')
slip_pool = self.pool.get('hr.payslip')
func_pool = self.pool.get('hr.payroll.structure')
slip_line_pool = self.pool.get('hr.payslip.line')
holiday_pool = self.pool.get('hr.holidays')
-
+
date = self.read(cr, uid, ids, ['date'])[0]['date']
-
+
#Check for the Holidays
def get_days(start, end, month, year, calc_day):
count = 0
@@ -1426,41 +873,41 @@ class hr_payslip(osv.osv):
if datetime.date(year, month, day).weekday() == calc_day:
count += 1
return count
-
+
for slip in self.browse(cr, uid, ids):
contracts = self.get_contract(cr, uid, slip.employee_id, date, context)
-
+
if contracts.get('id', False) == False:
continue
-
+
contract = self.pool.get('hr.contract').browse(cr, uid, contracts.get('id'))
sal_type = contract.wage_type_id.type
function = contract.struct_id.id
-
+
lines = []
if function:
func = func_pool.read(cr, uid, function, ['line_ids'])
lines = slip_line_pool.browse(cr, uid, func['line_ids'])
-
+
lines += slip.employee_id.line_ids
-
+
old_slip_id = slip_line_pool.search(cr, uid, [('slip_id','=',slip.id)])
slip_line_pool.unlink(cr, uid, old_slip_id)
-
+
ad = []
lns = {}
all_per = 0.0
ded_per = 0.0
all_fix = 0.0
ded_fix = 0.0
-
+
obj = {
'basic':0.0
}
update = {
-
+
}
-
+
if contract.wage_type_id.type == 'gross':
obj['gross'] = contract.wage
update['igross'] = contract.wage
@@ -1470,23 +917,23 @@ class hr_payslip(osv.osv):
if contract.wage_type_id.type == 'basic':
obj['basic'] = contract.wage
update['basic'] = contract.wage
-
+
c_type = {
-
+
}
for line in lines:
cd = line.code.lower()
obj[cd] = line.amount or 0.0
-
+
for line in lines:
-
+
if line.category_id.code in ad:
continue
-
+
ad.append(line.category_id.code)
cd = line.category_id.code.lower()
-
+
calculate = False
try:
exp = line.category_id.condition
@@ -1496,60 +943,61 @@ class hr_payslip(osv.osv):
if not calculate:
continue
-
+
percent = 0.0
value = 0.0
base = False
company_contrib = 0.0
base = line.category_id.base
-
+
try:
# Please have a look at the configuration guide for rules and restrictions
amt = eval(base, obj)
except Exception, e:
raise osv.except_osv(_('Variable Error !'), _('Variable Error : %s ' % (e)))
-
+
if sal_type in ('gross', 'net'):
if line.amount_type == 'per':
percent = line.amount
-
+
if amt > 1:
value = percent * amt
elif amt > 0 and amt <= 1:
percent = percent * amt
-
+
if value > 0:
percent = 0.0
-
+
elif line.amount_type == 'fix':
value = line.amount
-
+
elif line.amount_type == 'func':
value = self.pool.get('hr.payslip.line').execute_function(cr, uid, line.id, amt, context)
line.amount = value
else:
if line.amount_type in ('fix', 'per'):
value = line.amount
+
elif line.amount_type == 'func':
value = self.pool.get('hr.payslip.line').execute_function(cr, uid, line.id, amt, context)
line.amount = value
-
+
if line.type == 'allowance':
all_per += percent
all_fix += value
elif line.type == 'deduction':
ded_per += percent
ded_fix += value
-
+
vals = {
- 'amount':line.amount,
- 'slip_id':slip.id,
- 'employee_id':False,
+ 'amount':line.amount,
+ 'slip_id':slip.id,
+ 'employee_id':False,
'function_id':False,
'base':base
}
slip_line_pool.copy(cr, uid, line.id, vals, {})
-
+
if sal_type in ('gross', 'net'):
sal = contract.wage
if sal_type == 'net':
@@ -1566,45 +1014,45 @@ class hr_payslip(osv.osv):
basic = (sal * 100) / final
else:
basic = contract.wage
-
+
number = self.pool.get('ir.sequence').get(cr, uid, 'salary.slip')
ttyme = datetime.fromtimestamp(time.mktime(time.strptime(slip.date,"%Y-%m-%d")))
update.update({
'deg_id':function,
- 'number':number,
+ 'number':number,
'basic': round(basic),
'basic_before_leaves': round(basic),
- 'name':'Salary Slip of %s for %s' % (slip.employee_id.name, ttyme.strftime('%B-%Y')),
+ 'name':'Salary Slip of %s for %s' % (slip.employee_id.name, ttyme.strftime('%B-%Y')),
'state':'draft',
'contract_id':contract.id,
'company_id':slip.employee_id.company_id.id
})
self.write(cr, uid, [slip.id], update)
-
+
for slip in self.browse(cr, uid, ids):
if not slip.contract_id :
continue
-
+
basic_before_leaves = slip.basic
working_day = 0
off_days = 0
dates = prev_bounds(slip.date)
-
+
days_arr = [0, 1, 2, 3, 4, 5, 6]
for dy in range(contract.working_days_per_week, 7):
off_days += get_days(1, dates[1].day, dates[1].month, dates[1].year, days_arr[dy])
-
+
total_off = off_days
working_day = dates[1].day - total_off
perday = slip.net / working_day
-
+
total = 0.0
leave = 0.0
-
+
leave_ids = self._get_leaves(cr, uid, slip, slip.employee_id, context)
-
+
total_leave = 0.0
paid_leave = 0.0
for hday in holiday_pool.browse(cr, uid, leave_ids):
@@ -1617,16 +1065,16 @@ class hr_payslip(osv.osv):
'account_id':hday.holiday_status_id.account_id.id,
'analytic_account_id':hday.holiday_status_id.analytic_account_id.id
}
-
+
days = hday.number_of_days
if hday.number_of_days < 0:
days = hday.number_of_days * -1
-
+
total_leave += days
if hday.holiday_status_id.type == 'paid':
paid_leave += days
continue
-
+
elif hday.holiday_status_id.type == 'halfpaid':
paid_leave += (days / 2)
res['name'] = hday.holiday_status_id.name + '-%s/2' % (days)
@@ -1640,7 +1088,7 @@ class hr_payslip(osv.osv):
res['type'] = 'deduction'
leave += days
total += perday * days
-
+
slip_line_pool.create(cr, uid, res)
basic = basic - total
leaves = total
@@ -1653,9 +1101,9 @@ class hr_payslip(osv.osv):
'working_days':working_day,
})
self.write(cr, uid, [slip.id], update)
-
+
return True
-
+
hr_payslip()
class account_move_link_slip(osv.osv):
@@ -1678,7 +1126,7 @@ class line_condition(osv.osv):
'''
_name = 'hr.payslip.line.condition'
_description = 'Line Condition'
-
+
_columns = {
'name':fields.char('Name', size=64, required=False, readonly=False),
'date_start': fields.date('Start Date'),
@@ -1696,14 +1144,14 @@ class hr_payslip_line(osv.osv):
'''
_name = 'hr.payslip.line'
_description = 'Payslip Line'
-
+
# def _calculate(self, cr, uid, ids, field_names, arg, context):
# res = {}
# obj = {}
# for line in self.browse(cr, uid, ids, context):
# obj['basic'] = line.slip_id.basic
# amount = 0.0
-#
+#
# if line.amount_type == 'per' and line.base:
# print 'XXXXXXXXXXXXXXXX : ', obj
# amount = line.amount * eval(line.base, obj)
@@ -1713,7 +1161,7 @@ class hr_payslip_line(osv.osv):
# cd = line.category_id.code.lower()
# obj[cd] = amount
# print 'XXXXXXXXXXXXXXXXXX : ', cd
-#
+#
# res[line.id] = amount
# print 'XXXXXXXXXXXX : ', obj
# return res
@@ -1731,14 +1179,14 @@ class hr_payslip_line(osv.osv):
'type':category.type
})
return {'value':res}
-
+
def onchange_amount(self, cr, uid, ids, amount, typ):
amt = amount
if typ and typ == 'per':
if int(amt) > 0:
amt = amt / 100
return {'value':{'amount':amt}}
-
+
_columns = {
'slip_id':fields.many2one('hr.payslip', 'Pay Slip', required=False),
'condition_id':fields.many2one('hr.payslip.line.condition', 'Condition', required=False),
@@ -1766,30 +1214,30 @@ class hr_payslip_line(osv.osv):
'amount': fields.float('Amount / Percentage', digits=(16, 4)),
'analytic_account_id':fields.many2one('account.analytic.account', 'Analytic Account', required=False),
'account_id':fields.many2one('account.account', 'General Account', required=True),
- 'total': fields.float('Sub Total', readonly=True, digits=(16, int(config['price_accuracy']))),
+ 'total': fields.float('Sub Total', readonly=True, digits=(16, 4)),
#'total': fields.function(_calculate, method=True, type='float', string='Label', store=True),
- 'company_contrib': fields.float('Company Contribution', readonly=True, digits=(16, int(config['price_accuracy']))),
+ 'company_contrib': fields.float('Company Contribution', readonly=True, digits=(16, 4)),
'expanse_id': fields.many2one('hr.expense.expense', 'Expense'),
'sequence': fields.integer('Sequence'),
'note':fields.text('Description'),
'line_ids':fields.one2many('hr.payslip.line.line', 'slipline_id', 'Calculations', required=False)
}
_order = 'sequence'
-
+
def execute_function(self, cr, uid, id, value, context):
line_pool = self.pool.get('hr.payslip.line.line')
res = 0
ids = line_pool.search(cr, uid, [('slipline_id','=',id), ('from_val','<=',value), ('to_val','>=',value)])
-
+
if not ids:
ids = line_pool.search(cr, uid, [('slipline_id','=',id), ('from_val','<=',value)])
-
+
if not ids:
return res
-
+
res = line_pool.browse(cr, uid, ids)[-1].value
return res
-
+
hr_payslip_line()
class hr_payslip_line_line(osv.osv):
@@ -1799,18 +1247,18 @@ class hr_payslip_line_line(osv.osv):
_name = 'hr.payslip.line.line'
_description = 'Function Line'
_order = 'sequence'
-
+
_columns = {
'slipline_id':fields.many2one('hr.payslip.line', 'Slip Line', required=False),
'name':fields.char('Name', size=64, required=False, readonly=False),
'umo_id':fields.many2one('product.uom', 'Unite', required=False),
- 'from_val': fields.float('From', digits=(16, int(config['price_accuracy']))),
- 'to_val': fields.float('To', digits=(16, int(config['price_accuracy']))),
+ 'from_val': fields.float('From', digits=(16, 4)),
+ 'to_val': fields.float('To', digits=(16, 4)),
'amount_type':fields.selection([
('fix','Fixed Amount'),
],'Amount Type', select=True),
'sequence':fields.integer('Sequence'),
- 'value': fields.float('Value', digits=(16, int(config['price_accuracy']))),
+ 'value': fields.float('Value', digits=(16, 4)),
}
hr_payslip_line_line()
@@ -1820,7 +1268,7 @@ class hr_employee(osv.osv):
'''
_inherit = 'hr.employee'
_description = 'Employee'
-
+
_columns = {
'pan_no':fields.char('PAN No', size=64, required=False, readonly=False),
'esp_account':fields.char('EPS Account', size=64, required=False, readonly=False),
@@ -1830,6 +1278,7 @@ class hr_employee(osv.osv):
'hospital_id':fields.many2one('res.partner.address', 'ESI Hospital', required=False),
'passport_id':fields.many2one('hr.passport', 'Passport', required=False),
'otherid':fields.char('Other Id', size=64, required=False),
+ 'bank_account_id':fields.many2one('res.partner.bank', 'Bank Account', required=False, readonly=False),
'line_ids':fields.one2many('hr.payslip.line', 'employee_id', 'Salary Structure', required=False),
'slip_ids':fields.one2many('hr.payslip', 'employee_id', 'Payslips', required=False, readonly=True),
'property_bank_account': fields.property(
@@ -1871,3 +1320,4 @@ class hr_employee(osv.osv):
}
hr_employee()
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_payroll/hr_payroll_demo.xml b/addons/hr_payroll/hr_payroll_demo.xml
index 97651f9f14b..2d77c1d820e 100644
--- a/addons/hr_payroll/hr_payroll_demo.xml
+++ b/addons/hr_payroll/hr_payroll_demo.xml
@@ -14,7 +14,7 @@
HRA
-
+
allowance
House Rant Allowance
diff --git a/addons/hr_payroll/hr_payroll_view.xml b/addons/hr_payroll/hr_payroll_view.xml
index 371963c67b6..a85fcc2462c 100644
--- a/addons/hr_payroll/hr_payroll_view.xml
+++ b/addons/hr_payroll/hr_payroll_view.xml
@@ -40,7 +40,7 @@
-
+
hr.passport.tree
hr.passport
tree
@@ -55,8 +55,8 @@
-
-
+
+
hr.passport.select
hr.passport
search
@@ -159,7 +159,8 @@
-
+
+
@@ -486,48 +487,27 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
+
-
+
@@ -582,8 +562,11 @@
+
+
+
+
-
@@ -592,6 +575,9 @@
+
+
+
@@ -658,8 +644,6 @@
-
-
@@ -668,9 +652,11 @@
-
-
-
+
+
+
+
+
@@ -921,8 +907,7 @@
-
-
+
diff --git a/addons/hr_payroll/hr_payroll_workflow.xml b/addons/hr_payroll/hr_payroll_workflow.xml
index 0e5ccfe091f..b607205f54b 100644
--- a/addons/hr_payroll/hr_payroll_workflow.xml
+++ b/addons/hr_payroll/hr_payroll_workflow.xml
@@ -28,13 +28,6 @@
function
-
-
- account_check
- account_check_sheet()
- function
-
-
confirm
@@ -66,30 +59,16 @@
- basic>=10000
verify_sheet
-
- verify_twice_sheet
-
-
-
-
-
- basic<10000
- verify_sheet
-
-
-
-
final_verify_sheet
-
+
process_sheet
@@ -108,12 +87,6 @@
-
-
- cancel_sheet
-
-
-
cancel_sheet
diff --git a/addons/hr_payroll/report/report_emp_salary_structure.py b/addons/hr_payroll/report/report_emp_salary_structure.py
index 01dd4302d37..8d0b1333dfe 100644
--- a/addons/hr_payroll/report/report_emp_salary_structure.py
+++ b/addons/hr_payroll/report/report_emp_salary_structure.py
@@ -3,7 +3,7 @@
##############################################################################
#
-# OpenERP, Open Source Management Solution
+# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (). All Rights Reserved
# d$
#
@@ -28,7 +28,7 @@ from report import report_sxw
from tools import amount_to_text_en
class salary_structure_report(report_sxw.rml_parse):
-
+
def __init__(self, cr, uid, name, context):
super(salary_structure_report, self).__init__(cr, uid, name, context)
self.localcontext.update({
@@ -38,7 +38,7 @@ class salary_structure_report(report_sxw.rml_parse):
'get_line_amount_type':self.get_line_amount_type,
'get_line_type':self.get_line_type
})
-
+
def get_contract(self,emp):
curr_date = "'"+time.strftime("%Y-%m-%d")+"'"
sql_req= '''
@@ -59,16 +59,16 @@ class salary_structure_report(report_sxw.rml_parse):
return []
contract = self.pool.get('hr.contract').browse(self.cr, self.uid, [contract_id['id']])
return contract
-
+
def get_type(self,type):
return type[0].swapcase() + type[1:] +' Salary'
-
+
def get_line_amount_type(self,amount_type):
if amount_type == 'per':
return 'Percent(%)'
else:
return 'Fixed'
-
+
def get_line_type(self,type):
if type == 'allounce':
return 'Allowance'
@@ -83,8 +83,7 @@ class salary_structure_report(report_sxw.rml_parse):
else:
return 'Other Deduction'
-report_sxw.report_sxw('report.salary.structure', 'hr.employee', 'hr_payroll/report/report_emp_salary_structure.rml', parser=salary_structure_report)
-
+report_sxw.report_sxw('report.salary.structure', 'hr.employee', 'hr_payroll/report/report_emp_salary_structure.rml', parser=salary_structure_report)
@@ -93,6 +92,7 @@ report_sxw.report_sxw('report.salary.structure', 'hr.employee', 'hr_payroll/repo
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_payroll/report/report_employees_detail.py b/addons/hr_payroll/report/report_employees_detail.py
index c1f5146e4a9..ca06af969e7 100644
--- a/addons/hr_payroll/report/report_employees_detail.py
+++ b/addons/hr_payroll/report/report_employees_detail.py
@@ -9,7 +9,7 @@ import mx.DateTime
from mx.DateTime import RelativeDateTime, now, DateTime, localtime
class employees_salary_report(rml_parse.rml_parse):
-
+
def __init__(self, cr, uid, name, context):
super(employees_salary_report, self).__init__(cr, uid, name, context)
self.localcontext.update({
@@ -25,7 +25,7 @@ class employees_salary_report(rml_parse.rml_parse):
'get_other':self.get_other,
'get_monthly_total':self.get_monthly_total,
})
-
+
self.mnths =[]
self.allow_list =[]
self.deduct_list = []
@@ -34,17 +34,17 @@ class employees_salary_report(rml_parse.rml_parse):
self.curr_fiscal_year_name=''
self.period_ids = []
self.total=0.00
-
+
def get_periods(self,form):
self.mnths =[]
fiscalyear = pooler.get_pool(self.cr.dbname).get('account.fiscalyear')
curr_fiscalyear_id = form['fiscalyear_id']
curr_fiscalyear = fiscalyear.read(self.cr,self.uid,[form['fiscalyear_id']],['date_start','date_stop'])[0]
-
+
# Get start year-month-date and end year-month-date
- fy = int(curr_fiscalyear['date_start'][0:4])
+ fy = int(curr_fiscalyear['date_start'][0:4])
ly = int(curr_fiscalyear['date_stop'][0:4])
-
+
fm = int(curr_fiscalyear['date_start'][5:7])
lm = int(curr_fiscalyear['date_stop'][5:7])
no_months = (ly-fy)*12+lm-fm + 1
@@ -56,7 +56,7 @@ class employees_salary_report(rml_parse.rml_parse):
for count in range(0,no_months):
m = datetime.date(cy, cm, 1).strftime('%b')
mnth_name.append(m)
- self.mnths.append(str(cm)+'-'+str(cy))
+ self.mnths.append(str(cm)+'-'+str(cy))
if cm == 12:
cm = 0
cy = ly
@@ -68,9 +68,9 @@ class employees_salary_report(rml_parse.rml_parse):
return fiscalyear_obj.read(self.cr,self.uid,[fiscalyear_id],['name'])[0]['name']
def get_employee(self,form):
- result = []
- periods = []
- emp = pooler.get_pool(self.cr.dbname).get('hr.employee')
+ result = []
+ periods = []
+ emp = pooler.get_pool(self.cr.dbname).get('hr.employee')
emp_ids = form['employee_ids']
result = emp.browse(self.cr,self.uid, emp_ids)
fiscalyear_obj = pooler.get_pool(self.cr.dbname).get('account.fiscalyear').browse(self.cr, self.uid, form['fiscalyear_id'])
@@ -79,7 +79,7 @@ class employees_salary_report(rml_parse.rml_parse):
periods.append(period.id)
self.period_ids = ','.join(map(str, periods))
return result
-
+
def get_employee_detail(self,obj):
self.month_total_list =['Net Total (Allowances with Basic - Deductions)',0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00]
self.allow_list =[]
@@ -88,7 +88,7 @@ class employees_salary_report(rml_parse.rml_parse):
allowance_cat_ids =[]
deduction_cat_ids = []
other_cat_ids =[]
- self.total = 0.00
+ self.total = 0.00
payment_category = self.pool.get('hr.allounce.deduction.categoty')
payslip = self.pool.get('hr.payslip')
allowance_cat_ids = payment_category.search( self.cr, self.uid, [('type','=','allow')])
@@ -140,7 +140,7 @@ class employees_salary_report(rml_parse.rml_parse):
if other_flag:
self.other_list.append(res)
return None
-
+
def cal_monthly_amt(self,emp_id,category):
tot = 0.0
cnt = 1
@@ -208,7 +208,7 @@ class employees_salary_report(rml_parse.rml_parse):
if not res:
result.append(0.00)
res = {}
- cnt = cnt + 1
+ cnt = cnt + 1
cnt = 1
result.append(tot)
tot = 0.0
@@ -219,17 +219,17 @@ class employees_salary_report(rml_parse.rml_parse):
def get_deduct(self):
return self.deduct_list
-
+
def get_other(self):
return self.other_list
-
+
def get_total(self):
return self.total
-
+
def get_monthly_total(self):
return self.month_total_list
-
+
report_sxw.report_sxw('report.employees.salary', 'hr.payslip', 'hr_payroll/report/report_employees_detail.rml', parser=employees_salary_report)
-
-
-
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/hr_payroll/report/report_payroll_advice.py b/addons/hr_payroll/report/report_payroll_advice.py
index d33ad5affc1..2f4d82c263b 100644
--- a/addons/hr_payroll/report/report_payroll_advice.py
+++ b/addons/hr_payroll/report/report_payroll_advice.py
@@ -6,7 +6,7 @@ from tools import amount_to_text_en
class payroll_advice_report(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
super(payroll_advice_report, self).__init__(cr, uid, name, context)
-
+
self.total_amount = 0.00
self.total_bysal = 0.00
self.localcontext.update({
@@ -25,17 +25,17 @@ class payroll_advice_report(report_sxw.rml_parse):
date = mx.DateTime.strptime(input_date, '%Y-%m-%d')
res['mname']= date.strftime('%B')+'-'+date.strftime('%Y')
return res
-
+
def convert(self,amount, cur):
amt_en = amount_to_text_en.amount_to_text(amount,'en',cur);
return amt_en
-
+
def get_bysal_total(self):
return self.total_bysal
def get_total(self):
return self.total_amount
-
+
def get_detail(self,line_ids):
result =[]
if line_ids:
@@ -50,5 +50,8 @@ class payroll_advice_report(report_sxw.rml_parse):
self.total_bysal += l.bysal
result.append(res)
return result
-
-report_sxw.report_sxw('report.payroll.advice', 'hr.payroll.advice', 'hr_payroll/report/report_payroll_advice.rml', parser=payroll_advice_report)
\ No newline at end of file
+
+report_sxw.report_sxw('report.payroll.advice', 'hr.payroll.advice', 'hr_payroll/report/report_payroll_advice.rml', parser=payroll_advice_report)
+
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/hr_payroll/report/report_payslip.py b/addons/hr_payroll/report/report_payslip.py
index 7895178de58..4fc9410861d 100755
--- a/addons/hr_payroll/report/report_payslip.py
+++ b/addons/hr_payroll/report/report_payslip.py
@@ -3,7 +3,7 @@
##############################################################################
#
-# OpenERP, Open Source Management Solution
+# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (). All Rights Reserved
# d$
#
@@ -28,23 +28,23 @@ from report import report_sxw
from tools import amount_to_text_en
class payslip_report(report_sxw.rml_parse):
-
+
def __init__(self, cr, uid, name, context):
super(payslip_report, self).__init__(cr, uid, name, context)
self.localcontext.update({
- 'convert' : self.convert,
+ 'convert' : self.convert,
'get_month' : self.get_month,
'get_earnings': self.get_earnings,
'get_deductions':self.get_deductions,
'get_leave':self.get_leave,
'get_others':self.get_others,
})
-
+
def convert(self,amount, cur):
amt_en = amount_to_text_en.amount_to_text(amount,'en',cur)
return amt_en
-
+
def get_others(self,obj):
res = []
ids = []
@@ -55,7 +55,7 @@ class payslip_report(report_sxw.rml_parse):
if len(ids):
res = payslip_line.browse(self.cr, self.uid, ids)
return res
-
+
def get_leave(self,obj):
res = []
ids = []
@@ -66,7 +66,7 @@ class payslip_report(report_sxw.rml_parse):
if len(ids):
res = payslip_line.browse(self.cr, self.uid, ids)
return res
-
+
def get_earnings(self,obj):
res = []
ids = []
@@ -97,14 +97,14 @@ class payslip_report(report_sxw.rml_parse):
res['mname']= date.strftime('%B')+"-"+date.strftime('%Y')
return res['mname']
-report_sxw.report_sxw('report.payslip.pdf', 'hr.payslip', 'hr_payroll/report/payslip.rml', parser=payslip_report)
-
-
-
-
-
-
-
+report_sxw.report_sxw('report.payslip.pdf', 'hr.payslip', 'hr_payroll/report/payslip.rml', parser=payslip_report)
+
+
+
+
+
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_payroll/test/payment_advice.yml b/addons/hr_payroll/test/payment_advice.yml
new file mode 100644
index 00000000000..de86d8c27be
--- /dev/null
+++ b/addons/hr_payroll/test/payment_advice.yml
@@ -0,0 +1,54 @@
+-
+ I test the 'Payment Advice' in order to check the hr_payroll in OpenERP
+-
+ I create a new employee “Richie”
+-
+ !record {model: hr.employee, id: hr_employee_richie0}:
+ address_home_id: base.res_partner_address_1
+ address_id: base.res_partner_address_9
+ birthday: '1984-05-01'
+ children: 0.0
+ contract_ids:
+ - advantages_gross: 0.0
+ advantages_net: 0.0
+ date_end: '2011-07-01'
+ date_start: '2010-07-01'
+ name: reference
+ wage: 5000.0
+ wage_type_id: hr_contract.hr_contract_monthly_gross
+ country_id: base.in
+ department_id: hr.dep_it
+ employee_account: account.a_recv
+ gender: male
+ marital: hr.hr_employee_marital_status_single
+ name: Richie
+ pg_joining: '2009-12-01'
+ property_bank_account: account.cash
+ salary_account: account.a_recv
+ vehicle_distance: 0.0
+-
+ Then I create a new payment advice record
+-
+ !record {model: hr.payroll.advice, id: hr_payroll_advice_advice0}:
+ account_id: account.cash
+ line_ids:
+ - amount: 5500.0
+ bysal: 5000.0
+ employee_id: 'hr_employee_richie0'
+ flag: C
+ name: Axis Bank
+ name: advice1
+-
+ In order to confirm a sheet I click on "Confirm Sheet" button
+-
+ !python {model: hr.payroll.advice}: |
+ self.confirm_sheet(cr, uid, [ref("hr_payroll_advice_advice0")], {"lang": "en_US",
+ "active_model": "ir.ui.menu", "active_ids": [ref("hr_payroll.hr_menu_payment_advice")],
+ "tz": False, "active_id": ref("hr_payroll.hr_menu_payment_advice")})
+-
+ I check that a state has transferred from draft to confirm
+-
+ !python {model: hr.payroll.advice}: |
+ from tools.translate import _
+ advice_id=self.browse(cr, uid, ref("hr_payroll_advice_advice0"))
+ assert(advice_id.state == 'confirm'), _('State not changed!')
diff --git a/addons/hr_payroll/test/payroll_register.yml b/addons/hr_payroll/test/payroll_register.yml
new file mode 100644
index 00000000000..317ad40ac32
--- /dev/null
+++ b/addons/hr_payroll/test/payroll_register.yml
@@ -0,0 +1,63 @@
+-
+ I test the 'Payroll Register' in order to check the hr_payroll in OpenERP
+-
+ I create a new employee “Keith”
+-
+ !record {model: hr.employee, id: hr_employee_keith0}:
+ address_home_id: base.res_partner_address_3
+ address_id: base.res_partner_address_9
+ birthday: '1984-05-01'
+ children: 0.0
+ contract_ids:
+ - advantages_gross: 0.0
+ advantages_net: 0.0
+ date_end: '2011-07-01'
+ date_start: '2010-07-01'
+ name: reference
+ wage: 5000.0
+ wage_type_id: hr_contract.hr_contract_monthly_gross
+ country_id: base.in
+ department_id: hr.dep_it
+ employee_account: account.a_recv
+ gender: male
+ marital: hr.hr_employee_marital_status_single
+ name: Keith
+ pg_joining: '2009-12-01'
+ property_bank_account: account.cash
+ salary_account: account.a_recv
+ vehicle_distance: 0.0
+-
+ I create a payroll register record
+-
+ !record {model: hr.payroll.register, id: hr_payroll_register_payroll0}:
+ bank_journal_id: account.bank_journal
+ date: '2010-07-02'
+ journal_id: account.expenses_journal
+ line_ids:
+ - employee_id: hr_payroll.hr_employee_keith0
+ bank_journal_id: account.bank_journal
+ journal_id: account.expenses_journal
+ name: payroll1
+-
+ I click on Compute button
+-
+ !python {model: hr.payroll.register}: |
+ self.compute_sheet(cr, uid, [ref("hr_payroll_register_payroll0")], {"lang": "en_US",
+ "tz": False, "active_model": "ir.ui.menu", "department_id": False, "active_ids":
+ [ref("hr_payroll.hr_menu_payroll_register")], "section_id": False, "active_id":
+ ref("hr_payroll.hr_menu_payroll_register"), })
+-
+ Then I click on Verify Sheet button
+-
+ !python {model: hr.payroll.register}: |
+ self.verify_sheet(cr, uid, [ref("hr_payroll_register_payroll0")], {"lang": "en_US",
+ "tz": False, "active_model": "ir.ui.menu", "department_id": False, "active_ids":
+ [ref("hr_payroll.hr_menu_payroll_register")], "section_id": False, "active_id":
+ ref("hr_payroll.hr_menu_payroll_register"), })
+-
+ I check that a state has transferred from 'Wating for Verification' to 'Wating for HR Verification'state
+-
+ !python {model: hr.payroll.register}: |
+ from tools.translate import _
+ reg_brw=self.browse(cr, uid, ref("hr_payroll_register_payroll0"))
+ assert(reg_brw.state == 'hr_check'), _('State not changed!')
diff --git a/addons/hr_payroll/test/payslip.yml b/addons/hr_payroll/test/payslip.yml
new file mode 100644
index 00000000000..1ecab075da0
--- /dev/null
+++ b/addons/hr_payroll/test/payslip.yml
@@ -0,0 +1,132 @@
+-
+ I test the 'Payment Advice' in order to check the hr_payroll in OpenERP
+-
+ I create a new employee “Richard”
+-
+ !record {model: hr.employee, id: hr_employee_richard0}:
+ address_home_id: base.res_partner_address_2
+ address_id: base.res_partner_address_9
+ birthday: '1984-05-01'
+ children: 0.0
+ contract_ids:
+ - advantages_gross: 0.0
+ advantages_net: 0.0
+ date_end: '2011-07-01'
+ date_start: '2010-07-01'
+ name: reference
+ wage: 5000.0
+ wage_type_id: hr_contract.hr_contract_monthly_gross
+ country_id: base.in
+ department_id: hr.dep_it
+ employee_account: account.a_recv
+ gender: male
+ marital: hr.hr_employee_marital_status_single
+ name: Richard
+ pg_joining: '2009-12-01'
+ property_bank_account: account.cash
+ salary_account: account.a_recv
+ vehicle_distance: 0.0
+-
+ I create a new payroll structure for software developer
+-
+ !record {model: hr.payroll.structure, id: hr_payroll_structure_softwaredeveloper0}:
+ code: SD
+ line_ids:
+ - account_id: account.a_expense
+ amount: 0.40000000000000002
+ amount_type: per
+ category_id: hr_payroll.HRA
+ code: HRA
+ company_contrib: 0.0
+ name: House Rant Allowance
+ sequence: 5
+ total: 0.0
+ type: allowance
+ - account_id: account.a_expense
+ amount: 10000.0
+ amount_type: fix
+ category_id: hr_payroll.CA
+ code: CA
+ company_contrib: 0.0
+ name: Convance Allowance
+ sequence: 10
+ total: 0.0
+ type: allowance
+ - account_id: account.a_pay
+ amount: 10000.0
+ amount_type: fix
+ category_id: hr_payroll.PT
+ code: PT
+ company_contrib: 0.0
+ name: Professional Tax
+ sequence: 15
+ total: 0.0
+ type: deduction
+ - account_id: account.a_pay
+ amount: 0.125
+ amount_type: per
+ category_id: hr_payroll.PF
+ code: PF
+ company_contrib: 0.0
+ name: Provident Fund
+ sequence: 20
+ total: 0.0
+ type: deduction
+ name: Software Developer
+-
+ I create a employee payslip record
+-
+ !record {model: hr.payslip, id: hr_payslip_0}:
+ bank_journal_id: account.bank_journal
+ employee_id: hr_payroll.hr_employee_richard0
+ journal_id: account.expenses_journal
+-
+ I click on 'Compute Sheet' button
+-
+ !workflow {model: hr.payslip, action: compute_sheet, ref: hr_payslip_0}
+-
+ !python {model: hr.payslip}: |
+ self.compute_sheet(cr, uid, [ref("hr_payslip_0")], {"lang": "en_US", "tz": False,
+ "active_model": "ir.ui.menu", "department_id": False, "active_ids": [ref("hr_payroll.menu_department_tree")],
+ "section_id": False, "active_id": ref("hr_payroll.menu_department_tree"),
+ })
+-
+ I check that an order which was in the "New Slip" state has transit to "Wating for Verification" state
+-
+ !python {model: hr.payslip}: |
+ from tools.translate import _
+ payslip_brw=self.browse(cr, uid, ref("hr_payslip_0"))
+ assert(payslip_brw.state == 'draft'), _('State not changed!')
+-
+ Then I click on Verify Sheet button
+-
+ !workflow {model: hr.payslip, action: verify_sheet, ref: hr_payslip_0}
+-
+ I check that an order which was in the "Wating for Verification" state has transit to "Wating for HR Verification" state
+-
+ !python {model: hr.payslip}: |
+ from tools.translate import _
+ payslip_brw=self.browse(cr, uid, ref("hr_payslip_0"))
+ assert(payslip_brw.state == 'hr_check'), _('State not changed!')
+-
+ Then I click on Complete HR Checking button
+-
+ !workflow {model: hr.payslip, action: final_verify_sheet, ref: hr_payslip_0}
+-
+ I check that an order which was in the "'Wating for HR Verification'" state has transit to "Confirm Sheet" state
+-
+ !python {model: hr.payslip}: |
+ from tools.translate import _
+ payslip_brw=self.browse(cr, uid, ref("hr_payslip_0"))
+ assert(payslip_brw.state == 'confirm'), _('State not changed!')
+-
+ Then I click on Pay Salary button
+-
+ !workflow {model: hr.payslip, action: process_sheet, ref: hr_payslip_0}
+-
+ I check that an order which was in the "Confirm Sheet" state has transit to "Paid Salary" state
+-
+ !python {model: hr.payslip}: |
+ from tools.translate import _
+ payslip_brw=self.browse(cr, uid, ref("hr_payslip_0"))
+ assert(payslip_brw.state == 'done'), _('State not changed!')
diff --git a/addons/hr_payroll/wizard/hr_payroll_create_analytic.py b/addons/hr_payroll/wizard/hr_payroll_create_analytic.py
index 01115f9362e..cded95390f4 100644
--- a/addons/hr_payroll/wizard/hr_payroll_create_analytic.py
+++ b/addons/hr_payroll/wizard/hr_payroll_create_analytic.py
@@ -28,21 +28,21 @@ class hr_payroll_create_analytic(osv.osv_memory):
_name = "hr.payroll.create.analytic"
_columns = {
'company_id': fields.many2one('res.company', 'Company'),
- 'type': fields.selection([('bydeg','By Employee Function'), ('byallded','By Allownce / Deduction')],'Type'),
- }
-
+ 'type': fields.selection([('bydeg','By Employee Function'), ('byallded','By Allownce / Deduction')],'Type'),
+ }
+
def do_duplicate(self, cr, uid, ids, context=None):
-
+
account_pool =self.pool.get('account.analytic.account')
func_pool = self.pool.get('hr.employee.grade')
ad_pool = self.pool.get('hr.allounce.deduction.categoty')
- data=self.read(cr,uid,ids)[0]
+ data = self.read(cr,uid,ids)[0]
tpy = data['type']
company = data['company_id']
-
+
function_ids = func_pool.search(cr, uid, [])
ad_ids = ad_pool.search(cr, uid, [])
-
+
if tpy == 'bydeg':
for function in func_pool.browse(cr, uid, function_ids):
res = {
@@ -63,9 +63,9 @@ class hr_payroll_create_analytic(osv.osv_memory):
'parent_id': fid
}
account_pool.create(cr, uid, res)
-
-
-
+
+
+
elif tpy == 'byallded':
res = {
'name':'Basic Salary',
@@ -79,7 +79,7 @@ class hr_payroll_create_analytic(osv.osv_memory):
'parent_id': adid
}
account_pool.create(cr, uid, res)
-
+
for ad in ad_pool.browse(cr, uid, ad_ids):
res = {
'name':ad.name,
@@ -93,6 +93,8 @@ class hr_payroll_create_analytic(osv.osv_memory):
'parent_id': adid
}
account_pool.create(cr, uid, res)
-
- return {}
-hr_payroll_create_analytic()
\ No newline at end of file
+
+ return {}
+hr_payroll_create_analytic()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_payroll/wizard/hr_payroll_employees_detail.py b/addons/hr_payroll/wizard/hr_payroll_employees_detail.py
index 95a012431a5..7c14aa82dd5 100755
--- a/addons/hr_payroll/wizard/hr_payroll_employees_detail.py
+++ b/addons/hr_payroll/wizard/hr_payroll_employees_detail.py
@@ -25,18 +25,18 @@ from osv import fields, osv
from tools.translate import _
class hr_payroll_employees_detail(osv.osv_memory):
-
+
_name ='hr.payroll.employees.detail'
_columns = {
'employee_ids': fields.many2many('hr.employee', 'payroll_emp_rel','payroll_id','emp_id', 'Employees',required=True),
- 'fiscalyear_id': fields.many2one('account.fiscalyear', 'Fiscal Year', required=True)
- }
+ 'fiscalyear_id': fields.many2one('account.fiscalyear', 'Fiscal Year', required=True)
+ }
def _get_fiscalyear(self, cr, uid, ids, context={}):
fiscal_ids=self.pool.get('account.fiscalyear').search(cr,uid,[])
if fiscal_ids:
return fiscal_ids[0]
return False
-
+
_defaults = {
'fiscalyear_id':_get_fiscalyear,
}
@@ -52,7 +52,7 @@ class hr_payroll_employees_detail(osv.osv_memory):
"""
datas = {'ids': context.get('active_ids', [])}
-
+
res = self.read(cr, uid, ids, ['employee_ids', 'fiscalyear_id'], context=context)
res = res and res[0] or {}
datas['form'] = res
@@ -62,5 +62,7 @@ class hr_payroll_employees_detail(osv.osv_memory):
'datas': datas,
'nodestroy':True,
}
-
-hr_payroll_employees_detail()
\ No newline at end of file
+
+hr_payroll_employees_detail()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/hr_payroll/wizard/hr_payroll_employees_detail.xml b/addons/hr_payroll/wizard/hr_payroll_employees_detail.xml
index 142c5bdd652..a6c539ddae8 100644
--- a/addons/hr_payroll/wizard/hr_payroll_employees_detail.xml
+++ b/addons/hr_payroll/wizard/hr_payroll_employees_detail.xml
@@ -1,6 +1,6 @@
-
+
Employee Salary Statement
hr.payroll.employees.detail
@@ -11,17 +11,17 @@
-
+
-
-
-
+
+
@@ -33,11 +33,11 @@
form
new
-
-
diff --git a/addons/hr_payroll/wizard/hr_payroll_year_salary.py b/addons/hr_payroll/wizard/hr_payroll_year_salary.py
index 50310574044..e58cdc8fc1b 100755
--- a/addons/hr_payroll/wizard/hr_payroll_year_salary.py
+++ b/addons/hr_payroll/wizard/hr_payroll_year_salary.py
@@ -29,15 +29,15 @@ class hr_payroll_year_salary(osv.osv_memory):
_columns = {
'employee_ids': fields.many2many('hr.employee', 'payroll_year_rel','payroll_year_id','emp_id', 'Employees',required=True),
'fiscalyear_id': fields.many2one('account.fiscalyear', 'Fiscal Year', required=True) ,
- 'salary_on': fields.selection([('current_month','Current Month Date'),('next_month','Next Month Date')],'Salary On'),
- }
+ 'salary_on': fields.selection([('current_month','Current Month Date'),('next_month','Next Month Date')],'Salary On'),
+ }
def _get_fiscalyear(self, cr, uid, ids, context=None):
fiscal_ids=self.pool.get('account.fiscalyear').search(cr,uid,[],context=context)
if fiscal_ids:
return fiscal_ids[0]
return False
-
+
_defaults = {
'fiscalyear_id':_get_fiscalyear,
'salary_on': 'current_month'
@@ -54,7 +54,7 @@ class hr_payroll_year_salary(osv.osv_memory):
"""
datas = {'ids': context.get('active_ids', [])}
-
+
res = self.read(cr, uid, ids, ['employee_ids', 'fiscalyear_id','salary_on'], context=context)
res = res and res[0] or {}
datas['form'] = res
@@ -64,5 +64,7 @@ class hr_payroll_year_salary(osv.osv_memory):
'datas': datas,
'nodestroy':True,
}
-
-hr_payroll_year_salary()
\ No newline at end of file
+
+hr_payroll_year_salary()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/hr_payroll/wizard/hr_payroll_year_salary.xml b/addons/hr_payroll/wizard/hr_payroll_year_salary.xml
index 124dc37f487..0360f8fc9b2 100644
--- a/addons/hr_payroll/wizard/hr_payroll_year_salary.xml
+++ b/addons/hr_payroll/wizard/hr_payroll_year_salary.xml
@@ -1,6 +1,6 @@
-
+
Salary Register
hr.payroll.year.salary
@@ -11,21 +11,21 @@
-
+
-
+
-
+
-
-
+
@@ -37,11 +37,11 @@
form
new
-
+
diff --git a/addons/hr_payroll_account/__openerp__.py b/addons/hr_payroll_account/__openerp__.py
index c3c75f6ec8d..33c17518ab9 100644
--- a/addons/hr_payroll_account/__openerp__.py
+++ b/addons/hr_payroll_account/__openerp__.py
@@ -38,7 +38,6 @@
],
'update_xml': [
"hr_payroll_account_view.xml",
- "hr_payroll_account_workflow.xml"
],
'demo_xml': [
],
diff --git a/addons/hr_payroll_account/hr_payroll_account.py b/addons/hr_payroll_account/hr_payroll_account.py
index 72ffaf435ca..063090cbe83 100644
--- a/addons/hr_payroll_account/hr_payroll_account.py
+++ b/addons/hr_payroll_account/hr_payroll_account.py
@@ -70,23 +70,18 @@ class hr_payslip(osv.osv):
def cancel_sheet(self, cr, uid, ids, context={}):
move_pool = self.pool.get('account.move')
-
+ slip_move = self.pool.get('hr.payslip.account.move')
+
+ move_ids = []
for slip in self.browse(cr, uid, ids, context):
- if slip.move_id:
- if slip.move_id.state == 'posted':
- move_pool.button_cancel(cr, uid [slip.move_id.id], context)
- move_pool.unlink(cr, uid, [slip.move_id.id])
-
- if slip.adj_move_id:
- if slip.adj_move_id.state == 'posted':
- move_pool.button_cancel(cr, uid [slip.adj_move_id.id], context)
- move_pool.unlink(cr, uid, [slip.adj_move_id.id])
-
- if slip.other_move_id:
- if slip.other_move_id.state == 'posted':
- move_pool.button_cancel(cr, uid [slip.other_move_id.id], context)
- move_pool.unlink(cr, uid, [slip.other_move_id.id])
-
+ for line in slip.move_ids:
+ move_ids.append(line.id)
+ if line.move_id:
+ if line.move_id.state == 'posted':
+ move_pool.button_cancel(cr, uid [line.move_id.id], context)
+ move_pool.unlink(cr, uid, [line.move_id.id])
+
+ slip_move.unlink(cr, uid, move_ids)
self.write(cr, uid, ids, {'state':'cancel'})
return True
@@ -358,7 +353,7 @@ class hr_payslip(osv.osv):
else:
rec['analytic_account_id'] = slip.deg_id.account_id.id
- if line.type == 'allounce' or line.type == 'otherpay':
+ if line.type == 'allowance' or line.type == 'otherpay':
rec['debit'] = amount
if not partner.property_account_payable:
raise osv.except_osv(_('Integrity Error !'), _('Please Configure Partners Payable Account!!'))
@@ -398,92 +393,97 @@ class hr_payslip(osv.osv):
line_ids += [movel_pool.create(cr, uid, rec)]
- if line.company_contrib > 0:
- company_contrib = line.company_contrib
-# if line.category_id.amount_type == 'per':
-# company_contrib = (amount * line.category_id.contribute_per)
+ for contrub in line.category_id.contribute_ids:
+ print contrib.name, contrub.code, contrub.amount_type, contrib.contribute_per, line.total
+
+
+
+# if line.company_contrib > 0:
+# company_contrib = line.company_contrib
+## if line.category_id.amount_type == 'per':
+## company_contrib = (amount * line.category_id.contribute_per)
- narration = """Company Contribution of %s Encode same as a Company Expanse @ %s""" % (line.name, company_contrib)
- move = {
- #'name': slip.name,
- 'journal_id': slip.journal_id.id,
- 'period_id': period_id,
- 'date': slip.date,
- 'ref':slip.number,
- 'narration': narration
- }
- company_contrib_move_id = move_pool.create(cr, uid, move)
- name = "[%s] - %s / %s - Company Contribution" % (line.code, line.name, slip.employee_id.name)
- self.create_voucher(cr, uid, [slip.id], name, company_contrib_move_id)
-
- ded_deb = {
- 'move_id':company_contrib_move_id,
- 'name': name,
- 'date': slip.date,
- 'quantity':1,
- 'account_id': line.category_id.account_id.id,
- 'debit': company_contrib,
- 'credit' : 0.0,
- 'journal_id': slip.journal_id.id,
- 'period_id': period_id,
- 'ref':slip.number
- }
- line_ids += [movel_pool.create(cr, uid, ded_deb)]
- ded_cre = {
- 'move_id':company_contrib_move_id,
- 'name': name,
- 'date': slip.date,
- 'quantity':1,
- 'account_id': line.category_id.register_id.account_id.id,
- 'debit': 0.0,
- 'credit' : company_contrib,
- 'journal_id': slip.journal_id.id,
- 'period_id': period_id,
- 'ref':slip.number
- }
- line_ids += [movel_pool.create(cr, uid, ded_cre)]
-
- if line.category_id.include_in_salary:
- narration = """Company Contribution of %s Deducted from Employee %s""" % (line.name, company_contrib)
- move = {
- #'name': slip.name,
- 'journal_id': slip.journal_id.id,
- 'period_id': period_id,
- 'date': slip.date,
- 'ref':slip.number,
- 'narration': narration
- }
- include_in_salary_move_id = move_pool.create(cr, uid, move)
- self.create_voucher(cr, uid, [slip.id], narration, include_in_salary_move_id)
-
- total_deduct += company_contrib
- ded_deb = {
- 'move_id':include_in_salary_move_id,
- 'name': name,
- 'partner_id': partner_id,
- 'date': slip.date,
- 'quantity':1,
- 'account_id': partner.property_account_receivable.id,
- 'debit': company_contrib,
- 'credit' : 0.0,
- 'journal_id': slip.journal_id.id,
- 'period_id': period_id,
- 'ref':slip.number
- }
- line_ids += [movel_pool.create(cr, uid, ded_deb)]
- ded_cre = {
- 'move_id':include_in_salary_move_id,
- 'name': name,
- 'date': slip.date,
- 'quantity':1,
- 'account_id': line.category_id.account_id.id,
- 'debit': 0.0,
- 'credit' : company_contrib,
- 'journal_id': slip.journal_id.id,
- 'period_id': period_id,
- 'ref':slip.number
- }
- line_ids += [movel_pool.create(cr, uid, ded_cre)]
+# narration = """Company Contribution of %s Encode same as a Company Expanse @ %s""" % (line.name, company_contrib)
+# move = {
+# #'name': slip.name,
+# 'journal_id': slip.journal_id.id,
+# 'period_id': period_id,
+# 'date': slip.date,
+# 'ref':slip.number,
+# 'narration': narration
+# }
+# company_contrib_move_id = move_pool.create(cr, uid, move)
+# name = "[%s] - %s / %s - Company Contribution" % (line.code, line.name, slip.employee_id.name)
+# self.create_voucher(cr, uid, [slip.id], name, company_contrib_move_id)
+#
+# ded_deb = {
+# 'move_id':company_contrib_move_id,
+# 'name': name,
+# 'date': slip.date,
+# 'quantity':1,
+# 'account_id': line.category_id.account_id.id,
+# 'debit': company_contrib,
+# 'credit' : 0.0,
+# 'journal_id': slip.journal_id.id,
+# 'period_id': period_id,
+# 'ref':slip.number
+# }
+# line_ids += [movel_pool.create(cr, uid, ded_deb)]
+# ded_cre = {
+# 'move_id':company_contrib_move_id,
+# 'name': name,
+# 'date': slip.date,
+# 'quantity':1,
+# 'account_id': line.category_id.register_id.account_id.id,
+# 'debit': 0.0,
+# 'credit' : company_contrib,
+# 'journal_id': slip.journal_id.id,
+# 'period_id': period_id,
+# 'ref':slip.number
+# }
+# line_ids += [movel_pool.create(cr, uid, ded_cre)]
+#
+# if line.category_id.include_in_salary:
+# narration = """Company Contribution of %s Deducted from Employee %s""" % (line.name, company_contrib)
+# move = {
+# #'name': slip.name,
+# 'journal_id': slip.journal_id.id,
+# 'period_id': period_id,
+# 'date': slip.date,
+# 'ref':slip.number,
+# 'narration': narration
+# }
+# include_in_salary_move_id = move_pool.create(cr, uid, move)
+# self.create_voucher(cr, uid, [slip.id], narration, include_in_salary_move_id)
+#
+# total_deduct += company_contrib
+# ded_deb = {
+# 'move_id':include_in_salary_move_id,
+# 'name': name,
+# 'partner_id': partner_id,
+# 'date': slip.date,
+# 'quantity':1,
+# 'account_id': partner.property_account_receivable.id,
+# 'debit': company_contrib,
+# 'credit' : 0.0,
+# 'journal_id': slip.journal_id.id,
+# 'period_id': period_id,
+# 'ref':slip.number
+# }
+# line_ids += [movel_pool.create(cr, uid, ded_deb)]
+# ded_cre = {
+# 'move_id':include_in_salary_move_id,
+# 'name': name,
+# 'date': slip.date,
+# 'quantity':1,
+# 'account_id': line.category_id.account_id.id,
+# 'debit': 0.0,
+# 'credit' : company_contrib,
+# 'journal_id': slip.journal_id.id,
+# 'period_id': period_id,
+# 'ref':slip.number
+# }
+# line_ids += [movel_pool.create(cr, uid, ded_cre)]
#make an entry line to contribution register
# if line.category_id.register_id:
diff --git a/addons/hr_payroll_account/hr_payroll_account_workflow.xml b/addons/hr_payroll_account/hr_payroll_account_workflow.xml
index 80c9848ee39..f3c0eaccb06 100644
--- a/addons/hr_payroll_account/hr_payroll_account_workflow.xml
+++ b/addons/hr_payroll_account/hr_payroll_account_workflow.xml
@@ -9,23 +9,17 @@
function
-
-
-
+
+
+
True
- verify_sheet
+ account_verify_sheet
-
-
- True
- verify_twice_sheet
-
-
-
-
+
+ True
final_verify_sheet
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index 09ad521d24b..2845768f59c 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -277,6 +277,8 @@ class hr_applicant(osv.osv, crm.crm_case):
vals.update(res)
res = self.create(cr, uid, vals, context)
+ message = _('A Job Request created') + " '" + subject + "' " + _("from Mailgate.")
+ self.log(cr, uid, res, message)
attachents = msg.get('attachments', [])
for attactment in attachents or []:
@@ -338,6 +340,34 @@ class hr_applicant(osv.osv, crm.crm_case):
@param **args: Return Dictionary of Keyword Value
"""
return True
+
+ def case_open(self, cr, uid, ids, *args):
+ """
+ @param self: The object pointer
+ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks,
+ @param ids: List of case's Ids
+ @param *args: Give Tuple Value
+ """
+ res = super(hr_applicant, self).case_open(cr, uid, ids, *args)
+ for (id, name) in self.name_get(cr, uid, ids):
+ message = _('Job request for') + " '" + name + "' "+ _("is Open.")
+ self.log(cr, uid, id, message)
+ return res
+
+ def case_close(self, cr, uid, ids, *args):
+ """
+ @param self: The object pointer
+ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks,
+ @param ids: List of case's Ids
+ @param *args: Give Tuple Value
+ """
+ res = super(hr_applicant, self).case_close(cr, uid, ids, *args)
+ for (id, name) in self.name_get(cr, uid, ids):
+ message = _('Applicant ') + " '" + name + "' "+ _("is Hired.")
+ self.log(cr, uid, id, message)
+ return res
hr_applicant()
diff --git a/addons/hr_timesheet/__openerp__.py b/addons/hr_timesheet/__openerp__.py
index 95244d25564..66bcfe46a43 100644
--- a/addons/hr_timesheet/__openerp__.py
+++ b/addons/hr_timesheet/__openerp__.py
@@ -48,7 +48,6 @@ to set up a management by affair.
'wizard/hr_timesheet_print_employee_view.xml',
'wizard/hr_timesheet_print_users_view.xml',
'wizard/hr_timesheet_sign_in_out_view.xml',
- 'report/hr_timesheet_report_view.xml',
],
'demo_xml': ['hr_timesheet_demo.xml'],
'test': ['test/test_hr_timesheet.yml'],
diff --git a/addons/hr_timesheet/report/__init__.py b/addons/hr_timesheet/report/__init__.py
index d54615fbd0b..98e34ed92d4 100644
--- a/addons/hr_timesheet/report/__init__.py
+++ b/addons/hr_timesheet/report/__init__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,11 +15,10 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
+# along with this program. If not, see .
#
##############################################################################
-import hr_timesheet_report
import user_timesheet
import users_timesheet
diff --git a/addons/hr_timesheet/security/ir.model.access.csv b/addons/hr_timesheet/security/ir.model.access.csv
index bc33fece491..3a5c509981e 100644
--- a/addons/hr_timesheet/security/ir.model.access.csv
+++ b/addons/hr_timesheet/security/ir.model.access.csv
@@ -2,5 +2,3 @@
"access_hr_analytic_timesheet","hr.analytic.timesheet","model_hr_analytic_timesheet","hr.group_hr_user",1,1,1,1
"access_hr_account_analytic_line","account.account.analytic.line","account.model_account_analytic_line","hr.group_hr_user",1,1,1,0
"access_account_analytic_journal","account.account.analytic.journal","account.model_account_analytic_journal","hr.group_hr_user",1,0,0,0
-"access_hr_analytal_timesheet_user","hr.analytical.timesheet.user","model_hr_analytical_timesheet_users","hr.group_hr_user",1,1,1,1
-"access_hr_timesheet_report","hr.timesheet.report","model_hr_timesheet_report","hr.group_hr_manager",1,0,0,0
diff --git a/addons/hr_timesheet_invoice/security/ir.model.access.csv b/addons/hr_timesheet_invoice/security/ir.model.access.csv
index f6d344cfb31..c8b65d13c36 100644
--- a/addons/hr_timesheet_invoice/security/ir.model.access.csv
+++ b/addons/hr_timesheet_invoice/security/ir.model.access.csv
@@ -9,4 +9,3 @@
"access_report_timesheet_invoice","report_timesheet.invoice","model_report_timesheet_invoice","hr.group_hr_manager",1,0,0,0
"access_report_random_timesheet","report_random_timesheet","model_report_random_timesheet","hr.group_hr_manager",1,0,0,0
"access_report_random_timesheet_lines","random_timesheet_lines","model_random_timesheet_lines","hr.group_hr_manager",1,0,0,0
-"access_hr_timesheet_analytic_profit","hr_timesheet_analytic_profit","model_hr_timesheet_analytic_profit","account.group_account_invoice",1,1,1,1
diff --git a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py
index e619df22683..a5b2e35622c 100644
--- a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py
+++ b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py
@@ -109,7 +109,7 @@ class hr_timesheet_invoice_create(osv.osv_memory):
last_invoice = self.pool.get('account.invoice').create(cr, uid, curr_invoice)
invoices.append(last_invoice)
- context2=context.copy()
+ context2 = context.copy()
context2['lang'] = partner.lang
cr.execute("SELECT product_id, to_invoice, sum(unit_amount) " \
"FROM account_analytic_line as line " \
@@ -158,7 +158,7 @@ class hr_timesheet_invoice_create(osv.osv_memory):
#
# Compute for lines
#
- cr.execute("SELECT * FROM account_analytic_line WHERE account_id = %s and id IN %s AND product_id=%s and to_invoice=%s", (account.id, tuple(data['ids']), product_id, factor_id))
+ cr.execute("SELECT * FROM account_analytic_line WHERE account_id = %s and id IN %s AND product_id=%s and to_invoice=%s ORDER BY account_analytic_line.date", (account.id, tuple(data['ids']), product_id, factor_id))
line_ids = cr.dictfetchall()
note = []
@@ -169,7 +169,7 @@ class hr_timesheet_invoice_create(osv.osv_memory):
details.append(line['date'])
if data['time']:
if line['product_uom_id']:
- details.append("%s %s" % (line['unit_amount'], self.pool.get('product.uom').browse(cr, uid, [line['product_uom_id']])[0].name))
+ details.append("%s %s" % (line['unit_amount'], self.pool.get('product.uom').browse(cr, uid, [line['product_uom_id']],context2)[0].name))
else:
details.append("%s" % (line['unit_amount'], ))
if data['name']:
diff --git a/addons/hr_timesheet_sheet/__openerp__.py b/addons/hr_timesheet_sheet/__openerp__.py
index 9163219e2a6..7930df1f243 100644
--- a/addons/hr_timesheet_sheet/__openerp__.py
+++ b/addons/hr_timesheet_sheet/__openerp__.py
@@ -55,9 +55,10 @@ The validation can be configured in the company:
'process/hr_timesheet_sheet_process.xml',
'report/timesheet_report_view.xml',
'board_hr_timesheet_view.xml',
+ 'report/hr_timesheet_report_view.xml',
],
'demo_xml': ['hr_timesheet_sheet_demo.xml',
-
+
],
'test':['test/test_hr_timesheet_sheet.yml'],
'installable': True,
diff --git a/addons/hr_timesheet_sheet/report/__init__.py b/addons/hr_timesheet_sheet/report/__init__.py
index 89f12b7c9a6..b06b0608356 100644
--- a/addons/hr_timesheet_sheet/report/__init__.py
+++ b/addons/hr_timesheet_sheet/report/__init__.py
@@ -20,6 +20,6 @@
##############################################################################
import timesheet_report
-
+import hr_timesheet_report
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_timesheet/report/hr_timesheet_report.py b/addons/hr_timesheet_sheet/report/hr_timesheet_report.py
similarity index 100%
rename from addons/hr_timesheet/report/hr_timesheet_report.py
rename to addons/hr_timesheet_sheet/report/hr_timesheet_report.py
diff --git a/addons/hr_timesheet/report/hr_timesheet_report_view.xml b/addons/hr_timesheet_sheet/report/hr_timesheet_report_view.xml
similarity index 94%
rename from addons/hr_timesheet/report/hr_timesheet_report_view.xml
rename to addons/hr_timesheet_sheet/report/hr_timesheet_report_view.xml
index 41fb3520bcc..9dadb599ba7 100644
--- a/addons/hr_timesheet/report/hr_timesheet_report_view.xml
+++ b/addons/hr_timesheet_sheet/report/hr_timesheet_report_view.xml
@@ -54,12 +54,11 @@
domain="[('date','=', time.strftime('%%Y-%%m-%%d'))]"
help="Timesheet dof the day"/>
-
-
-
+
+
-
+
@@ -79,6 +78,8 @@
+
+
@@ -94,6 +95,6 @@
+ parent="hr_timesheet.menu_hr_reporting_timesheet" sequence="0"/>
diff --git a/addons/hr_timesheet_sheet/report/timesheet_report_view.xml b/addons/hr_timesheet_sheet/report/timesheet_report_view.xml
index a5d7d9b420f..0bc2b70d341 100644
--- a/addons/hr_timesheet_sheet/report/timesheet_report_view.xml
+++ b/addons/hr_timesheet_sheet/report/timesheet_report_view.xml
@@ -49,18 +49,18 @@
-
-
+
+
\n"
+"PO-Revision-Date: 2010-07-01 09:07+0000\n"
+"Last-Translator: Borja López Soilán (Pexego) \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: 2010-06-22 04:14+0000\n"
+"X-Launchpad-Export-Date: 2010-07-02 03:33+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: l10n_chart_uk_minimal
@@ -43,7 +43,7 @@ msgstr "Ingreso"
#. module: l10n_chart_uk_minimal
#: model:account.account.type,name:l10n_chart_uk_minimal.account_type_tax
msgid "Tax"
-msgstr "Contribución"
+msgstr "Impuesto"
#. module: l10n_chart_uk_minimal
#: model:account.account.type,name:l10n_chart_uk_minimal.account_type_cash
diff --git a/addons/mail_gateway/mail_gateway.py b/addons/mail_gateway/mail_gateway.py
index cdd1c61ee67..2c778241daf 100644
--- a/addons/mail_gateway/mail_gateway.py
+++ b/addons/mail_gateway/mail_gateway.py
@@ -29,6 +29,7 @@ import base64
import re
from tools.translate import _
import logging
+import xmlrpclib
_logger = logging.getLogger('mailgate')
@@ -68,8 +69,9 @@ class mailgate_thread(osv.osv):
def msg_send(self, cr, uid, id, *args, **argv):
raise Exception, _('Method is not implemented')
- def _history(self, cr, uid, cases, keyword, history=False, subject=None, email=False, details=None, \
- email_from=False, message_id=False, references=None, attach=None, context=None):
+ def history(self, cr, uid, cases, keyword, history=False, subject=None, email=False, details=None, \
+ email_from=False, message_id=False, references=None, attach=None, email_cc=None, \
+ email_bcc=None, email_date=None, context=None):
"""
@param self: The object pointer
@param cr: the current row, from the database cursor,
@@ -77,8 +79,12 @@ class mailgate_thread(osv.osv):
@param cases: a browse record list
@param keyword: Case action keyword e.g.: If case is closed "Close" keyword is used
@param history: Value True/False, If True it makes entry in case History otherwise in Case Log
- @param email: Email address if any
- @param details: Details of case history if any
+ @param email: Email-To / Recipient address
+ @param email_from: Email From / Sender address if any
+ @param email_cc: Comma-Separated list of Carbon Copy Emails To addresse if any
+ @param email_bcc: Comma-Separated list of Blind Carbon Copy Emails To addresses if any
+ @param email_date: Email Date string if different from now, in server Timezone
+ @param details: Description, Ddtails of case history if any
@param atach: Attachment sent in email
@param context: A standard dictionary for contextual values"""
if context is None:
@@ -96,38 +102,42 @@ class mailgate_thread(osv.osv):
for case in cases:
data = {
- 'name': keyword,
- 'user_id': uid,
- 'model' : case._name,
- 'res_id': case.id,
- 'date': time.strftime('%Y-%m-%d %H:%M:%S'),
- 'message_id': message_id,
+ 'name': keyword,
+ 'user_id': uid,
+ 'model' : case._name,
+ 'res_id': case.id,
+ 'date': time.strftime('%Y-%m-%d %H:%M:%S'),
+ 'message_id': message_id,
}
attachments = []
if history:
for att in attach:
attachments.append(att_obj.create(cr, uid, {'name': att[0], 'datas': base64.encodestring(att[1])}))
+
+ for param in (email, email_cc, email_bcc):
+ if isinstance(param, list):
+ param = ", ".join(param)
data = {
- 'name': subject or 'History',
- 'history': True,
- 'user_id': uid,
- 'model' : case._name,
+ 'name': subject or 'History',
+ 'history': True,
+ 'user_id': uid,
+ 'model' : case._name,
'res_id': case.id,
- 'date': time.strftime('%Y-%m-%d %H:%M:%S'),
- 'description': details or (hasattr(case, 'description') and case.description or False),
- 'email_to': email or \
- (hasattr(case, 'user_id') and case.user_id and case.user_id.address_id and \
- case.user_id.address_id.email) or tools.config.get('email_from', False),
+ 'date': email_date or time.strftime('%Y-%m-%d %H:%M:%S'),
+ 'description': details or (hasattr(case, 'description') and case.description or False),
+ 'email_to': email,
'email_from': email_from or \
(hasattr(case, 'user_id') and case.user_id and case.user_id.address_id and \
- case.user_id.address_id.email) or tools.config.get('email_from', False),
- 'partner_id': hasattr(case, 'partner_id') and (case.partner_id and case.partner_id.id or False) or False,
- 'references': references,
- 'message_id': message_id,
+ case.user_id.address_id.email),
+ 'email_cc': email_cc,
+ 'email_bcc': email_bcc,
+ 'partner_id': hasattr(case, 'partner_id') and (case.partner_id and case.partner_id.id or False) or False,
+ 'references': references,
+ 'message_id': message_id,
'attachment_ids': [(6, 0, attachments)]
}
- obj.create(cr, uid, data, context)
+ obj.create(cr, uid, data, context=context)
return True
mailgate_thread()
@@ -139,7 +149,7 @@ class mailgate_message(osv.osv):
_description = 'Mailgateway Message'
_order = 'id desc'
_columns = {
- 'name':fields.char('Subject', size=128),
+ 'name':fields.text('Subject'),
'model': fields.char('Object Name', size=128, select=1),
'res_id': fields.integer('Resource ID', select=1),
'ref_id': fields.char('Reference Id', size=256, readonly=True, help="Message Id in Email Server.", select=True),
@@ -147,12 +157,12 @@ class mailgate_message(osv.osv):
'history': fields.boolean('Is History?'),
'user_id': fields.many2one('res.users', 'User Responsible', readonly=True),
'message': fields.text('Description'),
- 'email_from': fields.char('Email From', size=84),
- 'email_to': fields.char('Email To', size=84),
- 'email_cc': fields.char('Email CC', size=84),
- 'email_bcc': fields.char('Email BCC', size=84),
+ 'email_from': fields.char('From', size=128, help="Email From"),
+ 'email_to': fields.text('To', help="Email Recipients"),
+ 'email_cc': fields.text('Cc', help="Carbon Copy Email Recipients"),
+ 'email_bcc': fields.text('Bcc', help='Blind Carbon Copy Email Recipients'),
'message_id': fields.char('Message Id', size=1024, readonly=True, help="Message Id on Email.", select=True),
- 'references': fields.text('References', readonly=True, help="Referencess emails."),
+ 'references': fields.text('References', readonly=True, help="References emails."),
'description': fields.text('Description'),
'partner_id': fields.many2one('res.partner', 'Partner', required=False),
'attachment_ids': fields.many2many('ir.attachment', 'message_attachment_rel', 'message_id', 'attachment_id', 'Attachments'),
@@ -173,21 +183,11 @@ class mailgate_tool(osv.osv_memory):
_name = 'email.server.tools'
_description = "Email Server Tools"
- def _to_decode(self, s, charsets):
- if not s:
- return s
- for charset in charsets:
- if charset:
- try:
- return s.decode(charset)
- except UnicodeError:
- pass
- return s.decode('latin1')
-
def _decode_header(self, text):
+ """Returns unicode() string conversion of the the given encoded smtp header"""
if text:
- text = decode_header(text.replace('\r', ''))
- return ''.join(map(lambda x:self._to_decode(x[0], [x[1]]), text or []))
+ text = decode_header(text.replace('\r', ''))
+ return ''.join([tools.ustr(x[0], x[1]) for x in text])
def to_email(self,text):
return re.findall(r'([^ ,<@]+@[^> ,]+)',text)
@@ -219,7 +219,7 @@ class mailgate_tool(osv.osv_memory):
'message_id': msg.get('message-id'),
'references': msg.get('references'),
'res_id': res_id,
- 'user_id': uid,
+ 'user_id': uid,
'attachment_ids': [(6, 0, attach)]
}
msg_pool.create(cr, uid, msg_data, context=context)
@@ -236,9 +236,10 @@ class mailgate_tool(osv.osv_memory):
for res in model_pool.browse(cr, uid, res_ids, context=context):
message_followers = model_pool.message_followers(cr, uid, [res.id])[res.id]
message_followers_emails = self.to_email(','.join(message_followers))
- message_recipients = self.to_email(','.join([self._decode_header(msg['from']),
+ message_recipients = self.to_email(','.join(filter(None,
+ [self._decode_header(msg['from']),
self._decode_header(msg['to']),
- self._decode_header(msg['cc'])]))
+ self._decode_header(msg['cc'])])))
message_forward = [i for i in message_followers_emails if (i and (i not in message_recipients))]
if message_forward:
@@ -261,13 +262,22 @@ class mailgate_tool(osv.osv_memory):
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@param model: OpenObject Model
- @param message: Email details
+ @param message: Email details, passed as a string or an xmlrpclib.Binary
@param attach: Email attachments
@param context: A standard dictionary for contextual values"""
- model_pool = self.pool.get(model)
+
+ # extract message bytes, we are forced to pass the message as binary because
+ # we don't know its encoding until we parse its headers and hence can't
+ # convert it to utf-8 for transport between the mailgate script and here.
+ if isinstance(message, xmlrpclib.Binary):
+ message = str(message.data)
+
if not context:
context = {}
+
+ model_pool = self.pool.get(model)
res_id = False
+
# Create New Record into particular model
def create_record(msg):
att_ids = []
@@ -301,14 +311,16 @@ class mailgate_tool(osv.osv_memory):
# Warning: message_from_string doesn't always work correctly on unicode,
# we must use utf-8 strings here :-(
- msg_txt = email.message_from_string(tools.ustr(message).encode('utf-8'))
- message_id = msg_txt.get('Message-ID', False)
+ if isinstance(message, unicode):
+ message = message.encode('utf-8')
+ msg_txt = email.message_from_string(message)
+ message_id = msg_txt.get('message-id', False)
msg = {}
if not message_id:
# Very unusual situation, be we should be fault-tolerant here
message_id = time.time()
- msg_txt['Message-ID'] = message_id
+ msg_txt['message-id'] = message_id
_logger.info('Message without message-id, generating a random one: %s', message_id)
fields = msg_txt.keys()
@@ -327,14 +339,14 @@ class mailgate_tool(osv.osv_memory):
if 'Delivered-To' in fields:
msg['to'] = self._decode_header(msg_txt.get('Delivered-To'))
- if 'Cc' in fields:
- msg['cc'] = self._decode_header(msg_txt.get('Cc'))
+ if 'CC' in fields:
+ msg['cc'] = self._decode_header(msg_txt.get('CC'))
- if 'Reply-To' in fields:
+ if 'Reply-to' in fields:
msg['reply'] = self._decode_header(msg_txt.get('Reply-To'))
if 'Date' in fields:
- msg['date'] = msg_txt.get('Date')
+ msg['date'] = self._decode_header(msg_txt.get('Date'))
if 'Content-Transfer-Encoding' in fields:
msg['encoding'] = msg_txt.get('Content-Transfer-Encoding')
@@ -343,15 +355,15 @@ class mailgate_tool(osv.osv_memory):
msg['references'] = msg_txt.get('References')
if 'X-Priority' in fields:
- msg['priority'] = msg_txt.get('X-priority', '3 (Normal)').split(' ')[0]
+ msg['priority'] = msg_txt.get('X-Priority', '3 (Normal)').split(' ')[0]
- if not msg_txt.is_multipart() or 'text/plain' in msg.get('content-type', ''):
+ if not msg_txt.is_multipart() or 'text/plain' in msg.get('Content-Type', ''):
encoding = msg_txt.get_content_charset()
- msg['body'] = msg_txt.get_payload(decode=True)
- if encoding:
- msg['body'] = tools.ustr(msg['body'])
+ body = msg_txt.get_payload(decode=True)
+ msg['body'] = tools.ustr(body, encoding)
attachments = {}
+ has_plain_text = False
if msg_txt.is_multipart() or 'multipart/alternative' in msg.get('content-type', ''):
body = ""
for part in msg_txt.walk():
@@ -359,28 +371,28 @@ class mailgate_tool(osv.osv_memory):
continue
encoding = part.get_content_charset()
-
+ filename = part.get_filename()
if part.get_content_maintype()=='text':
content = part.get_payload(decode=True)
- filename = part.get_filename()
- if filename :
+ if filename:
attachments[filename] = content
- else:
- if encoding:
- content = unicode(content, encoding)
+ elif not has_plain_text:
+ # main content parts should have 'text' maintype
+ # and no filename. we ignore the html part if
+ # there is already a plaintext part without filename,
+ # because presumably these are alternatives.
+ content = tools.ustr(content, encoding)
if part.get_content_subtype() == 'html':
body = tools.ustr(tools.html2plaintext(content))
elif part.get_content_subtype() == 'plain':
- body = tools.ustr(content)
- elif part.get_content_maintype() in ('application', 'image', 'text'):
- filename = part.get_filename();
+ body = content
+ has_plain_text = True
+ elif part.get_content_maintype() in ('application', 'image'):
if filename :
attachments[filename] = part.get_payload(decode=True)
else:
res = part.get_payload(decode=True)
- if encoding:
- res = tools.ustr(res, encoding)
- body += res
+ body += tools.ustr(res, encoding)
msg['body'] = body
msg['attachments'] = attachments
@@ -404,24 +416,27 @@ class mailgate_tool(osv.osv_memory):
res_id = res_id.group(1)
if res_id:
res_id = int(res_id)
- res_ids.append(res_id)
model_pool = self.pool.get(model)
-
- vals = {}
- if hasattr(model_pool, 'message_update'):
- model_pool.message_update(cr, uid, [res_id], vals, msg, context=context)
+ if model_pool.exists(cr, uid, res_id):
+ res_ids.append(res_id)
+ if hasattr(model_pool, 'message_update'):
+ model_pool.message_update(cr, uid, [res_id], {}, msg, context=context)
+ else:
+ raise NotImplementedError('model %s does not support updating records, mailgate API method message_update() is missing'%model)
if not len(res_ids):
new_res_id, attachment_ids = create_record(msg)
res_ids = [new_res_id]
+
# Store messages
context.update({'model' : model})
- if hasattr(model_pool, '_history'):
- model_pool._history(cr, uid, res_ids, _('Receive'), history=True,
+ if hasattr(model_pool, 'history'):
+ model_pool.history(cr, uid, res_ids, _('receive'), history=True,
subject = msg.get('subject'),
email = msg.get('to'),
details = msg.get('body'),
email_from = msg.get('from'),
+ email_cc = msg.get('cc'),
message_id = msg.get('message-id'),
references = msg.get('references', False),
attach = attachments.items(),
diff --git a/addons/mail_gateway/mail_gateway_view.xml b/addons/mail_gateway/mail_gateway_view.xml
index c73d62b08ad..415dc192e50 100644
--- a/addons/mail_gateway/mail_gateway_view.xml
+++ b/addons/mail_gateway/mail_gateway_view.xml
@@ -8,7 +8,7 @@
-
+
@@ -18,9 +18,9 @@
-
-
-
+
+
+
@@ -86,7 +86,7 @@
-
+
@@ -95,9 +95,9 @@
-
-
-
+
+
+
@@ -109,14 +109,14 @@
-
+
-
+
-
-
+
+
@@ -126,9 +126,9 @@
-
-
-
+
+
+
@@ -192,7 +192,7 @@
tree,form
form
[('history', '=', True)]
-
+
diff --git a/addons/mail_gateway/scripts/openerp_mailgate/openerp_mailgate.py b/addons/mail_gateway/scripts/openerp_mailgate/openerp_mailgate.py
index 166e1e8781f..affd03e03a0 100755
--- a/addons/mail_gateway/scripts/openerp_mailgate/openerp_mailgate.py
+++ b/addons/mail_gateway/scripts/openerp_mailgate/openerp_mailgate.py
@@ -51,7 +51,9 @@ class email_parser(object):
def parse(self, message):
try:
- res_id = self.rpc('email.server.tools', 'process_email', self.model, message)
+ # pass message as bytes because we don't know its encoding until we parse its headers
+ # and hence can't convert it to utf-8 for transport
+ res_id = self.rpc('email.server.tools', 'process_email', self.model, xmlrpclib.Binary(message))
except Exception, e:
logger = logging.getLogger('mail-gateway')
logger.warning('Failed to process incoming email. Source of the failed mail is available at debug level.', exc_info=True)
diff --git a/addons/marketing_campaign/__openerp__.py b/addons/marketing_campaign/__openerp__.py
index 1044030df7e..d9151c3bf33 100644
--- a/addons/marketing_campaign/__openerp__.py
+++ b/addons/marketing_campaign/__openerp__.py
@@ -21,12 +21,11 @@
{
- "name" : "",
+ "name" : "marketing_campaign",
"version" : "1.1",
"depends" : ["marketing",
- "crm",
- "document",
- "email_template"
+ "document",
+ "email_template"
],
"author" : "OpenERP SA",
"category": 'Generic Modules/Marketing',
@@ -37,6 +36,8 @@ are dynamic and multi-channels. The process:
miscelleanous actions, etc.
* Define segments that are selections of target people
* Launch your campaign to automate communications.
+
+If you need demo data, you can install the module marketing_campaign_crm_demo.
""",
'website': 'http://www.openerp.com',
'init_xml': [],
@@ -50,8 +51,7 @@ are dynamic and multi-channels. The process:
"security/ir.model.access.csv"
],
'demo_xml': [
- 'marketing_campaign_demo.xml',
- ],
+ ],
'installable': True,
'active': False,
}
diff --git a/addons/marketing_campaign/marketing_campaign.py b/addons/marketing_campaign/marketing_campaign.py
index a9f898f3270..3b72f183f89 100644
--- a/addons/marketing_campaign/marketing_campaign.py
+++ b/addons/marketing_campaign/marketing_campaign.py
@@ -23,10 +23,12 @@ import time
import base64
from datetime import datetime
from dateutil.relativedelta import relativedelta
+from operator import itemgetter
+from traceback import format_exception
+from sys import exc_info
from osv import fields, osv
import netsvc
-import tools
from tools.translate import _
_intervalTypes = {
@@ -36,15 +38,58 @@ _intervalTypes = {
'years': lambda interval: relativedelta(years=interval),
}
+DT_FMT = '%Y-%m-%d %H:%M:%S'
+
+def dict_map(f, d):
+ return dict((k, f(v)) for k,v in d.items())
+
+def _find_fieldname(model, field):
+ inherit_columns = dict_map(itemgetter(2), model._inherit_fields)
+ all_columns = dict(inherit_columns, **model._columns)
+ for fn in all_columns:
+ if all_columns[fn] is field:
+ return fn
+ raise ValueError('field not found: %r' % (field,))
+
+class selection_converter(object):
+ """Format the selection in the browse record objects"""
+ def __init__(self, value):
+ self._value = value
+ self._str = value
+
+ def set_value(self, cr, uid, _self_again, record, field, lang):
+ # this design is terrible
+ # search fieldname from the field
+ fieldname = _find_fieldname(record._table, field)
+ context = dict(lang=lang.code)
+ fg = record._table.fields_get(cr, uid, [fieldname], context=context)
+ selection = dict(fg[fieldname]['selection'])
+ self._str = selection[self.value]
+
+ @property
+ def value(self):
+ return self._value
+
+ def __str__(self):
+ return self._str
+
+translate_selections = {
+ 'selection': selection_converter,
+}
+
+
class marketing_campaign(osv.osv):
_name = "marketing.campaign"
_description = "Marketing Campaign"
_columns = {
'name': fields.char('Name', size=64, required=True),
- 'object_id': fields.many2one('ir.model', 'Object', required=True,
- help="Choose the Object on which you want \
+ 'object_id': fields.many2one('ir.model', 'Model', required=True,
+ help="Choose the model on which you want \
this campaign to be run"),
+ 'partner_field_id': fields.many2one('ir.model.fields', 'Partner Field',
+ domain="[('model_id', '=', object_id), ('ttype', '=', 'many2one'), ('relation', '=', 'res.partner')]",
+ help="The generated workitems will be linked to the partner related to the record. If the record is the partner itself left this field empty."),
'mode':fields.selection([('test', 'Test Directly'),
('test_realtime', 'Test in Realtime'),
('manual', 'With Manual Confirmation'),
@@ -70,16 +115,17 @@ you required for the campaign"),
}
def state_running_set(self, cr, uid, ids, *args):
+ # TODO check that all subcampaigns are running
campaign = self.browse(cr, uid, ids[0])
if not campaign.activity_ids :
raise osv.except_osv("Error", "There is no activitity in the campaign")
actvity_ids = [ act_id.id for act_id in campaign.activity_ids]
act_obj = self.pool.get('marketing.campaign.activity')
- act_ids = act_obj.search(cr, uid, [('id', 'in', actvity_ids),
+ act_ids = act_obj.search(cr, uid, [('id', 'in', actvity_ids),
('start', '=', True)])
if not act_ids :
raise osv.except_osv("Error", "There is no starting activitity in the campaign")
- act_ids = act_obj.search(cr, uid, [('id', 'in', actvity_ids),
+ act_ids = act_obj.search(cr, uid, [('id', 'in', actvity_ids),
('type', '=', 'email')])
for activity in act_obj.browse(cr, uid, act_ids):
if not activity.email_template_id.enforce_from_account :
@@ -90,6 +136,7 @@ you required for the campaign"),
return True
def state_done_set(self, cr, uid, ids, *args):
+ # TODO check that this campaign is not a subcampaign in running mode.
segment_ids = self.pool.get('marketing.campaign.segment').search(cr, uid,
[('campaign_id', 'in', ids),
('state', '=', 'running')])
@@ -99,8 +146,36 @@ you required for the campaign"),
return True
def state_cancel_set(self, cr, uid, ids, *args):
+ # TODO check that this campaign is not a subcampaign in running mode.
self.write(cr, uid, ids, {'state': 'cancelled'})
return True
+
+
+ def signal(self, cr, uid, model, res_id, signal, context=None):
+ if not signal:
+ raise ValueError('signal cannot be False')
+
+ Workitems = self.pool.get('marketing.campaign.workitem')
+ domain = [('object_id.model', '=', model),
+ ('state', '=', 'running')]
+ campaign_ids = self.search(cr, uid, domain, context=context)
+ for campaign in self.browse(cr, uid, campaign_ids, context):
+ for activity in campaign.activity_ids:
+ if activity.signal != signal:
+ continue
+ wi_domain = [('activity_id', '=', activity.id),
+ ('res_id', '=', res_id),
+ ('state', '=', 'todo'),
+ ('date', '=', False),
+ ]
+ wi_ids = Workitems.search(cr, uid, wi_domain, context=context)
+ Workitems.process(cr, uid, wi_ids, context=context)
+ return True
+
+ def _signal(self, cr, uid, record, signal, context=None):
+ return self.signal(cr, uid, record._table._name,
+ record.id, signal, context)
+
marketing_campaign()
class marketing_campaign_segment(osv.osv):
@@ -135,7 +210,6 @@ class marketing_campaign_segment(osv.osv):
def state_running_set(self, cr, uid, ids, *args):
segment = self.browse(cr, uid, ids[0])
- curr_date = time.strftime('%Y-%m-%d %H:%M:%S')
vals = {'state': 'running'}
if not segment.date_run:
vals['date_run'] = time.strftime('%Y-%m-%d %H:%M:%S')
@@ -159,19 +233,21 @@ class marketing_campaign_segment(osv.osv):
def synchroniz(self, cr, uid, ids, *args):
self.process_segment(cr, uid, ids)
return True
-
- def process_segment(self, cr, uid, segment_ids=None, context={}):
+
+ def process_segment(self, cr, uid, segment_ids=None, context=None):
+ Workitems = self.pool.get('marketing.campaign.workitem')
if not segment_ids:
segment_ids = self.search(cr, uid, [('state', '=', 'running')], context=context)
action_date = time.strftime('%Y-%m-%d %H:%M:%S')
- campaigns = {}
+ campaigns = set()
for segment in self.browse(cr, uid, segment_ids, context=context):
- campaigns[segment.campaign_id.id] = True
+ campaigns.add(segment.campaign_id.id)
act_ids = self.pool.get('marketing.campaign.activity').search(cr,
- uid, [('start', '=', True), ('campaign_id', '=', segment.campaign_id.id)])
+ uid, [('start', '=', True), ('campaign_id', '=', segment.campaign_id.id)], context=context)
model_obj = self.pool.get(segment.object_id.model)
+ partner_field = segment.campaign_id.partner_field_id.name
criteria = []
if segment.sync_last_date:
criteria += [(segment.sync_mode, '>', segment.sync_last_date)]
@@ -179,24 +255,34 @@ class marketing_campaign_segment(osv.osv):
criteria += eval(segment.ir_filter_id.domain)
object_ids = model_obj.search(cr, uid, criteria, context=context)
- for o_ids in model_obj.browse(cr, uid, object_ids, context=context) :
+ for o_ids in model_obj.browse(cr, uid, object_ids, context=context):
# avoid duplicated workitem for the same resource
if segment.sync_mode == 'write_date':
- segids = self.pool.get('marketing.campaign.workitem').search(cr, uid, [('res_id','=',o_ids.id),('segment_id','=',segment.id)])
- if segids:
+ wi_ids = Workitems.search(cr, uid, [('res_id','=',o_ids.id),('segment_id','=',segment.id)], context=context)
+ if wi_ids:
continue
+
+ wi_vals = {
+ 'segment_id': segment.id,
+ 'date': action_date,
+ 'state': 'todo',
+ 'res_id': o_ids.id
+ }
+
+ partner = None
+ if partner_field:
+ partner = getattr(o_ids, partner_field)
+ elif model_obj._name == 'res.partner':
+ partner = o_ids
+ if partner:
+ wi_vals['partner_id'] = partner.id
+
for act_id in act_ids:
- wi_vals = {
- 'segment_id': segment.id,
- 'activity_id': act_id,
- 'date': action_date,
- 'partner_id': o_ids.partner_id and o_ids.partner_id.id or False,
- 'state': 'todo',
- 'res_id': o_ids.id
- }
- self.pool.get('marketing.campaign.workitem').create(cr, uid, wi_vals)
- self.write(cr, uid, segment.id, {'sync_last_date':action_date})
- self.pool.get('marketing.campaign.workitem').process_all(cr, uid, campaigns.keys(), context=context)
+ wi_vals['activity_id'] = act_id
+ Workitems.create(cr, uid, wi_vals, context=context)
+
+ self.write(cr, uid, segment.id, {'sync_last_date':action_date}, context=context)
+ Workitems.process_all(cr, uid, list(campaigns), context=context)
return True
marketing_campaign_segment()
@@ -204,20 +290,30 @@ marketing_campaign_segment()
class marketing_campaign_activity(osv.osv):
_name = "marketing.campaign.activity"
_description = "Campaign Activity"
- _actions_type = [('email', 'E-mail'), ('paper', 'Paper'), ('action', 'Action'),
- ('subcampaign', 'Sub-Campaign')]
+
+ _action_types = [
+ ('email', 'E-mail'),
+ ('paper', 'Paper'),
+ ('action', 'Action'),
+ # TODO implement the subcampaigns. The segment_id on woritems must be
+ # optional (thus campaign_id must be a real many2one, and a constraint
+ # must be set).
+ # TODO implement the subcampaign out. disallow out transitions from
+ # subcampaign activities ?
+ #('subcampaign', 'Sub-Campaign'),
+ ]
+
_columns = {
'name': fields.char('Name', size=128, required=True),
'campaign_id': fields.many2one('marketing.campaign', 'Campaign',
required = True, ondelete='cascade', select=1),
'object_id': fields.related('campaign_id','object_id',
type='many2one', relation='ir.model',
- string='Object'),
+ string='Object', readonly=True),
'start': fields.boolean('Start',help= "This activity is launched when the campaign starts."),
'condition': fields.char('Condition', size=256, required=True,
help="Python condition to know if the activity can be launched"),
- 'type': fields.selection(_actions_type,
- 'Type', required=True,
+ 'type': fields.selection(_action_types, 'Type', required=True,
help="Describe type of action to be performed on the Activity.Eg : Send email,Send paper.."),
'email_template_id': fields.many2one('email.template','Email Template'),
'report_id': fields.many2one('ir.actions.report.xml', 'Reports', ),
@@ -232,24 +328,33 @@ class marketing_campaign_activity(osv.osv):
'from_ids': fields.one2many('marketing.campaign.transition',
'activity_to_id',
'Previous Activities'),
- 'subcampaign_id': fields.many2one('marketing.campaign', 'Sub-Campaign'),
- 'subcampaign_segment_id': fields.many2one('marketing.campaign.segment',
- 'Sub Campaign Segment'),
+ #'subcampaign_id': fields.many2one('marketing.campaign', 'Sub-Campaign',
+ # domain="[('object_id', '=', object_id)]"),
'variable_cost': fields.float('Variable Cost'),
- 'revenue': fields.float('Revenue')
+ 'revenue': fields.float('Revenue'),
+ 'signal': fields.char('Signal', size=128,
+ help='An activity with a signal can be called \
+ programmatically'),
}
_defaults = {
'type': lambda *a: 'email',
'condition': lambda *a: 'True',
- 'object_id' : lambda obj, cr, uid, context : context.get('object_id',False),
}
- def __init__(self, *args):
- self._actions = {'paper' : self.process_wi_report,
- 'email' : self.process_wi_email,
- 'action' : self.process_wi_action,
- }
- return super(marketing_campaign_activity, self).__init__(*args)
+
+ def _check_signal(self, cr, uid, ids, context=None):
+ return all(activity.signal
+ for activity in self.browse(cr, uid, ids, context)
+ for transition in activity.from_ids
+ if transition.trigger == 'signal')
+
+ _constraints = [
+ (_check_signal,
+ "An incoming transition is triggered by a signal but this transition \
+ doesn't have one",
+ ['signal', 'from_ids']
+ ),
+ ]
def search(self, cr, uid, args, offset=0, limit=None, order=None,
context=None, count=False):
@@ -265,7 +370,7 @@ class marketing_campaign_activity(osv.osv):
return super(marketing_campaign_activity, self).search(cr, uid, args,
offset, limit, order, context, count)
- def process_wi_report(self, cr, uid, activity, workitem, context={}):
+ def _process_wi_paper(self, cr, uid, activity, workitem, context=None):
service = netsvc.LocalService('report.%s'%activity.report_id.report_name)
(report_data, format) = service.create(cr, uid, [], {}, {})
attach_vals = {
@@ -280,49 +385,111 @@ class marketing_campaign_activity(osv.osv):
self.pool.get('ir.attachment').create(cr, uid, attach_vals)
return True
- def process_wi_email(self, cr, uid, activity, workitem, context=None):
- return self.pool.get('email.template').generate_mail(cr, uid,
- activity.email_template_id.id,
+ def _process_wi_email(self, cr, uid, activity, workitem, context=None):
+ return self.pool.get('email.template').generate_mail(cr, uid,
+ activity.email_template_id.id,
[workitem.res_id], context=context)
- def process_wi_action(self, cr, uid, activity, workitem, context={}):
- context = {}
+ def _process_wi_action(self, cr, uid, activity, workitem, context=None):
+ if context is None:
+ context = {}
server_obj = self.pool.get('ir.actions.server')
- context['active_id'] = workitem.res_id
- res = server_obj.run(cr, uid, [activity.server_action_id.id], context)
- #server action return False if the action is perfomed except client_action,other and python code
- return res==False and True or res
- def process(self, cr, uid, act_id, wi_id, context={}):
- activity = self.browse(cr, uid, act_id)
+ action_context = dict(context,
+ active_id=workitem.res_id,
+ active_ids=[workitem.res_id],
+ active_model=workitem.object_id.model)
+ res = server_obj.run(cr, uid, [activity.server_action_id.id],
+ context=action_context)
+ # server action return False if the action is perfomed
+ # except client_action, other and python code
+ return res == False and True or res
+
+ def process(self, cr, uid, act_id, wi_id, context=None):
+ activity = self.browse(cr, uid, act_id, context=context)
+ method = '_process_wi_%s' % (activity.type,)
+ action = getattr(self, method, None)
+ if not action:
+ raise NotImplementedError('method %r in not implemented on %r object' % (method, self))
+
workitem_obj = self.pool.get('marketing.campaign.workitem')
workitem = workitem_obj.browse(cr, uid, wi_id, context=context)
- return self._actions[activity.type](cr, uid, activity, workitem, context)
+ return action(cr, uid, activity, workitem, context)
marketing_campaign_activity()
class marketing_campaign_transition(osv.osv):
_name = "marketing.campaign.transition"
_description = "Campaign Transition"
- _rec_name = "interval_type"
+
+ _interval_units = [('hours', 'Hour(s)'), ('days', 'Day(s)'),
+ ('months', 'Month(s)'), ('years','Year(s)')]
+
+
+ def _get_name(self, cr, uid, ids, fn, args, context=None):
+ result = dict.fromkeys(ids, False)
+ formatters = {
+ 'auto': _('Automatic transition'),
+ 'time': _('After %(interval_nbr)d %(interval_type)s'),
+ 'signal': _('On signal'),
+ }
+ for tr in self.browse(cr, uid, ids, context=context,
+ fields_process=translate_selections):
+ result[tr.id] = formatters[tr.trigger.value] % tr
+ return result
+
+
+ def _delta(self, cr, uid, ids, context=None):
+ assert len(ids) == 1
+ transition = self.browse(cr, uid, ids[0], context)
+ if transition.trigger != 'time':
+ raise ValueError('Delta is only relevant for timed transiton')
+ return relativedelta(**{transition.interval_type: transition.interval_nbr})
+
_columns = {
+ 'name': fields.function(_get_name, method=True, string='Name',
+ type='char', size=128),
'activity_from_id': fields.many2one('marketing.campaign.activity',
- 'Source Activity', select=1),
+ 'Source Activity', select=1,
+ required=True),
'activity_to_id': fields.many2one('marketing.campaign.activity',
- 'Destination Activity'),
- 'interval_nbr': fields.integer('Interval No.'),
- 'interval_type': fields.selection([('hours', 'Hours'), ('days', 'Days'),
- ('months', 'Months'),
- ('years','Years')],'Interval Type')
+ 'Destination Activity',
+ required=True),
+ 'interval_nbr': fields.integer('Interval Value', required=True),
+ 'interval_type': fields.selection(_interval_units, 'Interval Unit',
+ required=True),
+
+ 'trigger': fields.selection([('auto', 'Automatic'),
+ ('time', 'Time'),
+ ('signal','Signal')],
+ 'Trigger', required=True,
+ help="How is trigger the destination workitem"),
}
- def default_get(self, cr, uid, fields, context={}):
- value = super(marketing_campaign_transition, self).default_get(cr, uid,
- fields, context)
- if context.has_key('type_id'):
- value[context['type_id']] = context['activity_id']
- return value
+ _defaults = {
+ 'interval_nbr': 1,
+ 'interval_type': 'days',
+ 'trigger': 'time',
+ }
+
+ _sql_constraints = [
+ ('interval_positive', 'CHECK(interval_nbr >= 0)', 'The interval must be positive or zero')
+ ]
+
+ def _check_signal(self, cr, uid, ids, context=None):
+ return all(tr.activity_to_id.signal
+ for tr in self.browse(cr, uid, ids, context)
+ if tr.trigger == 'signal')
+
+ _constraints = [
+ (_check_signal,
+ "The transition is triggered by a signal but destination activity \
+ doesn't have one",
+ ['trigger', 'activity_to_ids']
+ ),
+ ]
+
marketing_campaign_transition()
@@ -331,15 +498,15 @@ class marketing_campaign_workitem(osv.osv):
_description = "Campaign Workitem"
def _res_name_get(self, cr, uid, ids, field_name, arg, context=None):
- res = {}
- for obj in self.browse(cr, uid, ids, context=context):
- if obj.res_id:
- try:
- res[obj.id] = self.pool.get(obj.object_id.model).name_get(cr, uid, [obj.res_id], context=context)[0][1]
- except:
- res[obj.id] = '/'
- else:
- res[obj.id] = '/'
+ res = dict.fromkeys(ids, '/')
+ for wi in self.browse(cr, uid, ids, context=context):
+ if not wi.res_id:
+ continue
+
+ proxy = self.pool.get(wi.object_id.model)
+ ng = proxy.name_get(cr, uid, [wi.res_id], context=context)
+ if ng:
+ res[wi.id] = ng[0][1]
return res
_columns = {
@@ -353,9 +520,9 @@ class marketing_campaign_workitem(osv.osv):
type='many2one', relation='ir.model', string='Object', select=1),
'res_id': fields.integer('Resource ID', select=1, readonly=1),
'res_name': fields.function(_res_name_get, method=True, string='Resource Name', type="char", size=64),
- 'date': fields.datetime('Execution Date'),
+ 'date': fields.datetime('Execution Date', help='If date is not set, this workitem have to be run manually'),
'partner_id': fields.many2one('res.partner', 'Partner', select=1),
- 'state': fields.selection([('todo', 'To Do'), ('inprogress', 'In Progress'),
+ 'state': fields.selection([('todo', 'To Do'),
('exception', 'Exception'), ('done', 'Done'),
('cancelled', 'Cancelled')], 'State'),
@@ -363,27 +530,9 @@ class marketing_campaign_workitem(osv.osv):
}
_defaults = {
'state': lambda *a: 'todo',
+ 'date': False,
}
- def process_chain(self, cr, uid, workitem_id, context={}):
- workitem = self.browse(cr, uid, workitem_id)
- for mct_id in workitem.activity_id.to_ids:
- launch_date = time.strftime('%Y-%m-%d %H:%M:%S')
- if mct_id.interval_type and mct_id.interval_nbr :
- launch_date = (datetime.now() + _intervalTypes[ \
- mct_id.interval_type](mct_id.interval_nbr) \
- ).strftime('%Y-%m-%d %H:%M:%S')
- workitem_vals = {
- 'segment_id': workitem.segment_id.id,
- 'activity_id': mct_id.activity_to_id.id,
- 'date': launch_date,
- 'partner_id': workitem.partner_id.id,
- 'res_id': workitem.res_id,
- 'state': 'todo',
- }
- self.create(cr, uid, workitem_vals)
- return True
-
def button_draft(self, cr, uid, workitem_ids, context={}):
for wi in self.browse(cr, uid, workitem_ids, context=context):
if wi.state=='exception':
@@ -396,63 +545,114 @@ class marketing_campaign_workitem(osv.osv):
self.write(cr, uid, [wi.id], {'state':'cancelled'}, context=context)
return True
- def process(self, cr, uid, workitem_ids, context={}):
- for wi in self.browse(cr, uid, workitem_ids):
- if wi.state == 'todo':
- eval_context = {
- 'pool': self.pool,
- 'cr': cr,
- 'uid': uid,
- 'wi': wi,
- 'object': wi.activity_id,
- 'transition': wi.activity_id.to_ids
- }
- try:
- expr = eval(str(wi.activity_id.condition), eval_context)
- if expr:
- result = True
- if wi.campaign_id.mode in ('manual','active'):
- result = self.pool.get('marketing.campaign.activity').process(
- cr, uid, wi.activity_id.id, wi.id, context)
- if result:
- self.write(cr, uid, wi.id, {'state': 'done'})
- self.process_chain(cr, uid, wi.id, context)
- else:
- vals = {'state': 'exception'}
- if type(result) == type({}) and 'error_msg' in result:
- vals['error_msg'] = result['error_msg']
- self.write(cr, uid, wi.id, vals)
- else:
- self.write(cr, uid, wi.id, {'state': 'cancelled'})
- except Exception,e:
- self.write(cr, uid, wi.id, {'state': 'exception', 'error_msg': str(e)})
+ def _process_one(self, cr, uid, workitem, context=None):
+ if workitem.state != 'todo':
+ return
+
+ activity = workitem.activity_id
+
+ eval_context = {
+ 'pool': self.pool,
+ 'cr': cr,
+ 'uid': uid,
+ 'wi': workitem,
+ 'object': activity,
+ 'transition': activity.to_ids
+ }
+ try:
+ condition = activity.condition
+ campaign_mode = workitem.campaign_id.mode
+ if condition:
+ if not eval(condition, eval_context):
+ workitem.write({'state': 'cancelled'}, context=context)
+ return
+ result = True
+ if campaign_mode in ('manual', 'active'):
+ Activities = self.pool.get('marketing.campaign.activity')
+ result = Activities.process(cr, uid, activity.id, workitem.id,
+ context=context)
+
+ values = dict(state='done')
+ if not workitem.date:
+ values['date'] = datetime.now().strftime(DT_FMT)
+ workitem.write(values, context=context)
+
+ if result:
+ # process _chain
+ for transition in activity.to_ids:
+ launch_date = False
+ if transition.trigger == 'auto':
+ launch_date = datetime.now()
+ elif transition.trigger == 'time':
+ launch_date = datetime.now() + transition._delta()
+
+ if launch_date:
+ launch_date = launch_date.strftime(DT_FMT)
+ values = {
+ 'date': launch_date,
+ 'segment_id': workitem.segment_id.id,
+ 'activity_id': transition.activity_to_id.id,
+ 'partner_id': workitem.partner_id.id,
+ 'res_id': workitem.res_id,
+ 'state': 'todo',
+ }
+ wi_id = self.create(cr, uid, values, context=context)
+
+ # Now, depending of the trigger and the campaign mode
+ # we now if must run the newly created workitem.
+ #
+ # rows = transition trigger \ colums = campaign mode
+ #
+ # test test_realtime manual normal (active)
+ # time Y N N N
+ # signal N N N N
+ # auto Y Y Y Y
+ #
+
+ run = transition.trigger == 'auto' \
+ or (transition.trigger == 'time' \
+ and campaign_mode == 'test')
+ if run:
+ new_wi = self.browse(cr, uid, wi_id, context)
+ self._process_one(cr, uid, new_wi, context)
+
+ except Exception:
+ tb = "".join(format_exception(*exc_info()))
+ workitem.write({'state': 'exception', 'error_msg': tb},
+ context=context)
+
+ def process(self, cr, uid, workitem_ids, context=None):
+ for wi in self.browse(cr, uid, workitem_ids, context):
+ self._process_one(cr, uid, wi, context)
return True
- def process_all(self, cr, uid, camp_ids=None, context={}):
+ def process_all(self, cr, uid, camp_ids=None, context=None):
camp_obj = self.pool.get('marketing.campaign')
- if not camp_ids:
+ if camp_ids is None:
camp_ids = camp_obj.search(cr, uid, [('state','=','running')], context=context)
for camp in camp_obj.browse(cr, uid, camp_ids, context=context):
+ if camp.mode == 'manual':
+ # manual states are not processed automatically
+ continue
while True:
- if camp.mode in ('test_realtime','active'):
- workitem_ids = self.search(cr, uid, [('state', '=', 'todo'),
- ('date','<=', time.strftime('%Y-%m-%d %H:%M:%S'))])
- elif camp.mode == 'test':
- workitem_ids = self.search(cr, uid, [('state', '=', 'todo')])
- else:
- # manual states are not processed automatically
- workitem_ids = []
- if workitem_ids:
- self.process(cr, uid, workitem_ids, context)
- else:
+ domain = [('state', '=', 'todo'), ('date', '!=', False)]
+ if camp.mode in ('test_realtime', 'active'):
+ domain += [('date','<=', time.strftime('%Y-%m-%d %H:%M:%S'))]
+
+ workitem_ids = self.search(cr, uid, domain, context=context)
+ if not workitem_ids:
break
+ self.process(cr, uid, workitem_ids, context)
+ return True
+
def preview(self, cr, uid, ids, context):
res = {}
- wi_obj = self.browse(cr, uid, ids)[0]
+ wi_obj = self.browse(cr, uid, ids[0], context)
if wi_obj.activity_id.type == 'email':
data_obj = self.pool.get('ir.model.data')
data_id = data_obj._get_id(cr, uid, 'email_template', 'email_template_preview_form')
+ view_id = 0
if data_id:
view_id = data_obj.browse(cr, uid, data_id, context=context).res_id
res = {
@@ -466,21 +666,20 @@ class marketing_campaign_workitem(osv.osv):
'type': 'ir.actions.act_window',
'target': 'new',
'nodestroy':True,
- 'context': "{'template_id':%d,'rel_model_ref':%d}"%
+ 'context': "{'template_id':%d,'default_rel_model_ref':%d}"%
(wi_obj.activity_id.email_template_id.id,
wi_obj.res_id)
-
}
elif wi_obj.activity_id.type == 'paper':
datas = {'ids': [wi_obj.res_id],
'model': wi_obj.object_id.model}
- res = {
+ res = {
'type' : 'ir.actions.report.xml',
'report_name': wi_obj.activity_id.report_id.report_name,
'datas' : datas,
- 'nodestroy': True,
- }
+ 'nodestroy': True,
+ }
return res
marketing_campaign_workitem()
@@ -491,30 +690,15 @@ class email_template(osv.osv):
'object_name': lambda obj, cr, uid, context: context.get('object_id',False),
}
email_template()
-
-class email_template_preview(osv.osv_memory):
- _inherit = "email_template.preview"
-
- def _default_rel_model(self, cr, uid, context=None):
- if 'rel_model_ref' in context :
- return context['rel_model_ref']
- else :
- return False
-
- _defaults = {
- 'rel_model_ref' : _default_rel_model
- }
-
-email_template_preview()
class report_xml(osv.osv):
_inherit = 'ir.actions.report.xml'
def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False):
- if not context:
+ if context is None:
context = {}
- if context and 'object_id' in context and context['object_id']:
- model = self.pool.get('ir.model').browse(cr, uid,
- context['object_id']).model
+ object_id = context.get('object_id')
+ if object_id:
+ model = self.pool.get('ir.model').browse(cr, uid, object_id).model
args.append(('model', '=', model))
return super(report_xml, self).search(cr, uid, args, offset, limit, order, context, count)
diff --git a/addons/marketing_campaign/marketing_campaign_view.xml b/addons/marketing_campaign/marketing_campaign_view.xml
index d7d5cfe22d4..4ac70292c32 100644
--- a/addons/marketing_campaign/marketing_campaign_view.xml
+++ b/addons/marketing_campaign/marketing_campaign_view.xml
@@ -21,65 +21,9 @@
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -117,7 +61,7 @@
-
+
@@ -264,6 +208,8 @@
======================
Marketing Activities
======================
+
+ these views are not intended to be used outside the campaign context.
-->
@@ -272,59 +218,61 @@
form
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
marketing.campaign.activity.tree
marketing.campaign.activity
@@ -332,7 +280,6 @@
-
@@ -340,16 +287,6 @@
-
- Activities
- ir.actions.act_window
- marketing.campaign.activity
- form
- tree,form
-
-
-
-
@@ -163,7 +163,7 @@
ir.actions.report.xml
crm.lead
crm.lead.demo
- marketing_campaign/report/crm_lead_mc_demo_report.rml
+ marketing_campaign_crm_demo/crm_lead_mc_demo_report.rml
pdf
@@ -171,6 +171,7 @@
OpenERP OnDemand Free Trial 2010
+
@@ -303,4 +304,4 @@
-
\ No newline at end of file
+
diff --git a/addons/marketing_campaign_mailchimp/marketing_campaign_mailchimp.py b/addons/marketing_campaign_mailchimp/marketing_campaign_mailchimp.py
index f3d8386623e..566bf497fd7 100644
--- a/addons/marketing_campaign_mailchimp/marketing_campaign_mailchimp.py
+++ b/addons/marketing_campaign_mailchimp/marketing_campaign_mailchimp.py
@@ -22,11 +22,9 @@ import urllib
import urllib2
import simplejson as json
import time
-from datetime import datetime
-
from osv import fields, osv
-from marketing_campaign.marketing_campaign import _intervalTypes
+
mailchimp_url = 'http://%s.api.mailchimp.com/1.2'
class mailchimp_account(osv.osv):
@@ -150,7 +148,7 @@ class marketing_campaign_activity(osv.osv):
return {}
return {'value':{}}
- def process_wi_mailchimp(self, cr, uid, activity, workitem, context={}):
+ def _process_wi_mailchimp(self, cr, uid, activity, workitem, context=None):
mailchimp_account_id = activity.mailchimp_account_id.id
list_name = activity.mailchimp_list
mc_acc_obj = self.pool.get('mailchimp.account')
@@ -193,18 +191,15 @@ class marketing_campaign_activity(osv.osv):
'merge_vars[address][city]' : model_obj.city and model_obj.city or '',
'merge_vars[phone]' : model_obj.phone and model_obj.phone or '',
})
- res = mc_acc_obj.get_response(cr, uid, mailchimp_account_id, 'listSubscribe', params)
- # handle mailchimp error
+ mc_acc_obj.get_response(cr, uid, mailchimp_account_id, 'listSubscribe', params)
+ # TODO handle mailchimp error
return True
- else :
+ else :
return {'error_msg' : "Invalid Email Address"}
-
+
def __init__(self, *args):
- res = super(marketing_campaign_activity, self).__init__(*args)
- self._actions.update({'mailchimp' : self.process_wi_mailchimp})
- self._actions_type.append(('mailchimp', 'Mailchimp'))
- return res
-
+ super(marketing_campaign_activity, self).__init__(*args)
+ self._action_types.append(('mailchimp', 'Mailchimp'))
marketing_campaign_activity()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/marketing_campaign_mailchimp/marketing_campaign_mailchimp_view.xml b/addons/marketing_campaign_mailchimp/marketing_campaign_mailchimp_view.xml
index ea9fba18384..b4a89a2ca43 100644
--- a/addons/marketing_campaign_mailchimp/marketing_campaign_mailchimp_view.xml
+++ b/addons/marketing_campaign_mailchimp/marketing_campaign_mailchimp_view.xml
@@ -14,29 +14,12 @@
form
-
-
-
-
-
-
-
-
-
-
-
-
- marketing.campaign.form.inherit
- marketing.campaign
- form
-
-
-
+
-
+
diff --git a/addons/membership/i18n/ru.po b/addons/membership/i18n/ru.po
index b3e612454b3..c1bd706724c 100644
--- a/addons/membership/i18n/ru.po
+++ b/addons/membership/i18n/ru.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-10-01 07:47+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
+"PO-Revision-Date: 2010-07-07 22:54+0000\n"
+"Last-Translator: Pomazan Bogdan \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: 2010-06-22 03:58+0000\n"
+"X-Launchpad-Export-Date: 2010-07-08 03:50+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: membership
@@ -35,7 +35,7 @@ msgstr "Уплативший член"
#. module: membership
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Недопустимое имя модели в определении действия."
#. module: membership
#: field:report.partner_member.year,currency:0
@@ -91,7 +91,7 @@ msgstr ""
#. module: membership
#: constraint:account.account:0
msgid "Error ! You can not create recursive accounts."
-msgstr ""
+msgstr "Ошибка! Вы не можете создавать взаимно подчиненные счета."
#. module: membership
#: constraint:account.invoice:0
@@ -112,7 +112,7 @@ msgstr "Партнер"
#: model:ir.actions.act_window,name:membership.action_membership_members_free
#: model:ir.ui.menu,name:membership.menu_members_free
msgid "Free members"
-msgstr ""
+msgstr "Свободные участники"
#. module: membership
#: model:process.transition,name:membership.process_transition_invoicetopaid0
@@ -142,7 +142,7 @@ msgstr "Подтвердить"
#. module: membership
#: model:process.transition.action,name:membership.process_transition_action_create0
msgid "Create"
-msgstr ""
+msgstr "Создать"
#. module: membership
#: constraint:ir.ui.view:0
@@ -216,6 +216,8 @@ msgstr ""
#: constraint:product.template:0
msgid "Error: UOS must be in a different category than the UOM"
msgstr ""
+"Ошибка. Единицы продажи и единицы измерения должны принадлежать к разным "
+"категориям."
#. module: membership
#: model:ir.ui.menu,name:membership.menu_membership_products
@@ -405,7 +407,7 @@ msgstr ""
#. module: membership
#: model:ir.actions.act_window,name:membership.action_membership_members_waiting
msgid "Future members"
-msgstr ""
+msgstr "Будущие пользователи"
#. module: membership
#: wizard_button:wizard_invoice_membership,init,end:0
diff --git a/addons/membership/test/test_membership.yml b/addons/membership/test/test_membership.yml
index 5a67ea7f476..6b0dab2a9e5 100644
--- a/addons/membership/test/test_membership.yml
+++ b/addons/membership/test/test_membership.yml
@@ -23,7 +23,6 @@
country_id: base.fr
name: Arthur Grosbonnet
street: 1 rue Rockfeller
- title: M.
type: default
zip: '75016'
credit_limit: 0.0
diff --git a/addons/mrp/__openerp__.py b/addons/mrp/__openerp__.py
index 676e38d2e78..3065516b125 100644
--- a/addons/mrp/__openerp__.py
+++ b/addons/mrp/__openerp__.py
@@ -86,9 +86,10 @@
],
'demo_xml': ['mrp_demo.xml', 'board_manufacturing_demo.xml'],
'test': [
- 'test/mrp_phantom_bom.yml',
- 'test/mrp_production_order.yml',
- 'test/mrp_procurement.yml'
+ 'test/mrp_packs.yml',
+ 'test/mrp_phantom_bom.yml',
+ 'test/mrp_production_order.yml',
+ 'test/mrp_procurement.yml'
],
'installable': True,
'active': False,
diff --git a/addons/mrp/board_manufacturing_view.xml b/addons/mrp/board_manufacturing_view.xml
index 25d124206fe..4f62030999c 100644
--- a/addons/mrp/board_manufacturing_view.xml
+++ b/addons/mrp/board_manufacturing_view.xml
@@ -35,17 +35,13 @@
-
-
+
+ parent="menus_dash_mrp"
+ sequence="1" groups="mrp.group_mrp_manager"/>
diff --git a/addons/mrp/i18n/nl.po b/addons/mrp/i18n/nl.po
index f235066b66b..e47666c0d90 100644
--- a/addons/mrp/i18n/nl.po
+++ b/addons/mrp/i18n/nl.po
@@ -1,19 +1,19 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * mrp
+# * mrp
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-12-11 22:08+0000\n"
-"Last-Translator: Pieter J. Kersten (EduSense BV) \n"
+"PO-Revision-Date: 2010-07-05 08:42+0000\n"
+"Last-Translator: Jan Verlaan (Veritos) \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: 2010-06-22 03:55+0000\n"
+"X-Launchpad-Export-Date: 2010-07-07 03:39+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp
@@ -50,7 +50,7 @@ msgstr "Ongeldige modelnaam in de actie-definitie."
#. module: mrp
#: field:mrp.bom.revision,indice:0
msgid "Revision"
-msgstr "Versie"
+msgstr "Revisie"
#. module: mrp
#: model:ir.actions.wizard,name:mrp.wiz_mrp_proc2
@@ -67,7 +67,7 @@ msgstr "Haperingen in verwervingen"
#. module: mrp
#: view:mrp.routing.workcenter:0
msgid "Routing Workcenters"
-msgstr "Routeren werkplaatsen"
+msgstr "Routing werkcentra"
#. module: mrp
#: help:mrp.property,composition:0
@@ -91,12 +91,14 @@ msgid "Stockable Stock"
msgstr "Op voorraad te nemen voorraad"
#. module: mrp
-#: field:mrp.procurement,origin:0 field:mrp.production,origin:0
+#: field:mrp.procurement,origin:0
+#: field:mrp.production,origin:0
msgid "Origin"
-msgstr "Afkomst"
+msgstr "Oorsprong"
#. module: mrp
-#: model:ir.ui.menu,name:mrp.menu_mrp_configuration view:res.company:0
+#: model:ir.ui.menu,name:mrp.menu_mrp_configuration
+#: view:res.company:0
msgid "Configuration"
msgstr "Instellingen"
@@ -119,7 +121,7 @@ msgstr "Automatisch bestelpunt"
#. module: mrp
#: selection:mrp.bom,method:0
msgid "Set / Pack"
-msgstr ""
+msgstr "Set / Pack"
#. module: mrp
#: constraint:ir.ui.view:0
@@ -175,7 +177,8 @@ msgstr "Automatische verwervingen"
#. module: mrp
#: wizard_field:change_production_qty,confirm,product_qty:0
-#: field:mrp.bom,product_qty:0 field:mrp.production,product_qty:0
+#: field:mrp.bom,product_qty:0
+#: field:mrp.production,product_qty:0
#: field:mrp.production.product.line,product_qty:0
msgid "Product Qty"
msgstr "Producthoeveelheid"
@@ -203,7 +206,8 @@ msgstr "Haperingen in verpakkingsproces"
#. module: mrp
#: model:process.node,note:mrp.process_node_orderrfq0
msgid "A purchase order is created for a sub-contracting demand."
-msgstr "Er is een bestelopdracht gegenereerd voor een sub-contracting verzoek."
+msgstr ""
+"Er is een bestelopdracht gegenereerd voor een sub-contracting verzoek."
#. module: mrp
#: rml:mrp.production.order:0
@@ -250,7 +254,7 @@ msgstr "u kunt de minimale voorraad regels voor het product zien"
#. module: mrp
#: selection:mrp.bom,type:0
msgid "Sets / Phantom"
-msgstr ""
+msgstr "Sets / Phantom"
#. module: mrp
#: wizard_view:mrp.procurement.compute,init:0
@@ -263,7 +267,8 @@ msgid "Internal Ref."
msgstr "Interne ref."
#. module: mrp
-#: view:mrp.procurement:0 field:mrp.procurement,state:0
+#: view:mrp.procurement:0
+#: field:mrp.procurement,state:0
#: field:mrp.production,state:0
msgid "Status"
msgstr "Status"
@@ -281,7 +286,7 @@ msgstr "Refereert aan een positie in een extern plan."
#. module: mrp
#: model:process.transition,name:mrp.process_transition_stockrfq0
msgid "Stockable Request"
-msgstr ""
+msgstr "Voorraad aanvraag"
#. module: mrp
#: model:process.node,name:mrp.process_node_serviceonorder0
@@ -302,23 +307,26 @@ msgstr ""
#. module: mrp
#: model:process.transition,name:mrp.process_transition_stockmts0
msgid "Stockable Make to Stock"
-msgstr ""
+msgstr "Voorraad - maak op voorraad"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_production_action
-#: model:ir.ui.menu,name:mrp.menu_mrp_production_action view:mrp.production:0
+#: model:ir.ui.menu,name:mrp.menu_mrp_production_action
+#: view:mrp.production:0
msgid "Production Orders"
msgstr "Productie-opdrachten"
#. module: mrp
-#: rml:bom.structure:0 field:mrp.procurement,product_qty:0
+#: rml:bom.structure:0
+#: field:mrp.procurement,product_qty:0
#: rml:mrp.production.order:0
#: wizard_field:product.product.procurement,init,qty:0
msgid "Quantity"
msgstr "Hoeveelheid"
#. module: mrp
-#: selection:mrp.procurement,priority:0 selection:mrp.production,priority:0
+#: selection:mrp.procurement,priority:0
+#: selection:mrp.production,priority:0
msgid "Not urgent"
msgstr "Niet urgent"
@@ -364,7 +372,8 @@ msgid "Scheduled Date"
msgstr "Geplande datum"
#. module: mrp
-#: selection:mrp.procurement,priority:0 selection:mrp.production,priority:0
+#: selection:mrp.procurement,priority:0
+#: selection:mrp.production,priority:0
msgid "Urgent"
msgstr "Urgent"
@@ -476,10 +485,11 @@ msgstr "Auteur"
#. module: mrp
#: model:process.transition,name:mrp.process_transition_stockproduct0
msgid "Stockable Product Stock"
-msgstr ""
+msgstr "Voorraad productvoorraad"
#. module: mrp
-#: field:mrp.bom,product_uos:0 field:mrp.production.product.line,product_uos:0
+#: field:mrp.bom,product_uos:0
+#: field:mrp.production.product.line,product_uos:0
msgid "Product UOS"
msgstr "Verkoopeenheid product"
@@ -506,17 +516,17 @@ msgstr "Laatste fout"
#. module: mrp
#: field:mrp.bom,bom_lines:0
msgid "BoM Lines"
-msgstr "Materiaallijstregels"
+msgstr "Stuklijstregels"
#. module: mrp
#: field:mrp.workcenter,time_start:0
msgid "Time before prod."
-msgstr "Opzettijd prod."
+msgstr "Tijd vóór prod."
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_routing_workcenter
msgid "Routing workcenter usage"
-msgstr "Gebruik routering werkplaats"
+msgstr "Routing werkcenter gebruik"
#. module: mrp
#: view:mrp.production:0
@@ -526,7 +536,7 @@ msgstr "Verbruikte producten"
#. module: mrp
#: constraint:mrp.bom:0
msgid "Error ! You can not create recursive BoM."
-msgstr "Fout! U kunt geen recursieve materialenlijst aanmaken."
+msgstr "Fout! U kunt geen recursieve stuklijst aanmaken."
#. module: mrp
#: model:process.transition,note:mrp.process_transition_stockmts0
@@ -555,7 +565,7 @@ msgstr "Gereed"
#. module: mrp
#: view:mrp.routing:0
msgid "Workcenter Operations"
-msgstr "Handelingen werkplaats"
+msgstr "Werkcenter operaties"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_production_action2_gantt
@@ -594,7 +604,7 @@ msgstr "In productie"
#. module: mrp
#: field:stock.warehouse.orderpoint,qty_multiple:0
msgid "Qty Multiple"
-msgstr "Hvh meervoudig"
+msgstr "Hvh veelvoud"
#. module: mrp
#: selection:mrp.procurement,state:0
@@ -602,11 +612,13 @@ msgid "Waiting"
msgstr "Wachtend"
#. module: mrp
-#: model:ir.model,name:mrp.model_mrp_routing field:mrp.bom,routing_id:0
-#: field:mrp.production,routing_id:0 view:mrp.routing:0
+#: model:ir.model,name:mrp.model_mrp_routing
+#: field:mrp.bom,routing_id:0
+#: field:mrp.production,routing_id:0
+#: view:mrp.routing:0
#: model:process.node,name:mrp.process_node_routing0
msgid "Routing"
-msgstr "Routering"
+msgstr "Routing"
#. module: mrp
#: wizard_button:mrp.workcenter.load,init,report:0
@@ -653,12 +665,13 @@ msgstr "Offerteverzoek"
#. module: mrp
#: field:mrp.bom,revision_type:0
msgid "indice type"
-msgstr "Soort index"
+msgstr "Indextype"
#. module: mrp
#: model:process.node,note:mrp.process_node_production0
msgid "Production orders are created for the product manufacturing."
-msgstr "Productie-opdrachten worden gemaakt voor de fabricage van het product."
+msgstr ""
+"Productie-opdrachten worden gemaakt voor de fabricage van het product."
#. module: mrp
#: rml:mrp.production.order:0
@@ -676,7 +689,8 @@ msgid "Production orders"
msgstr "Productie-opdrachten"
#. module: mrp
-#: field:mrp.bom,child_complete_ids:0 field:mrp.bom,child_ids:0
+#: field:mrp.bom,child_complete_ids:0
+#: field:mrp.bom,child_ids:0
msgid "BoM Hyerarchy"
msgstr "Materiaallijst"
@@ -704,7 +718,8 @@ msgid "Security Days"
msgstr "Dagen veiligheidsmarge"
#. module: mrp
-#: view:mrp.production:0 field:mrp.production,cycle_total:0
+#: view:mrp.production:0
+#: field:mrp.production,cycle_total:0
msgid "Total Cycles"
msgstr "Totaal aantal cycli"
@@ -716,17 +731,17 @@ msgstr "Gereed voor productie"
#. module: mrp
#: field:mrp.bom.revision,name:0
msgid "Modification name"
-msgstr "Naam wijziging"
+msgstr "Naamswijziging"
#. module: mrp
#: field:mrp.bom,type:0
msgid "BoM Type"
-msgstr "Soort materiaallijst"
+msgstr "Stuklijstsoort"
#. module: mrp
#: selection:mrp.procurement,state:0
msgid "Exception"
-msgstr "Fout"
+msgstr "Uitzondering"
#. module: mrp
#: wizard_view:product.product.procurement,init:0
@@ -745,7 +760,7 @@ msgstr "Het systeem wacht op de gevraagde producten uit voorraad"
#. module: mrp
#: model:process.transition,name:mrp.process_transition_servicemto0
msgid "Serivce Stockable Order"
-msgstr ""
+msgstr "Service voorraad order"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_minimumstockprocure0
@@ -764,7 +779,9 @@ msgid "Production done"
msgstr "Productie gereed"
#. module: mrp
-#: rml:bom.structure:0 field:mrp.bom,code:0 field:mrp.routing,code:0
+#: rml:bom.structure:0
+#: field:mrp.bom,code:0
+#: field:mrp.routing,code:0
#: field:mrp.workcenter,code:0
msgid "Code"
msgstr "Code"
@@ -776,14 +793,15 @@ msgstr "Aantal uren"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_property_group
-#: field:mrp.property,group_id:0 field:mrp.property.group,name:0
+#: field:mrp.property,group_id:0
+#: field:mrp.property.group,name:0
msgid "Property Group"
msgstr "Eigenschappengroep"
#. module: mrp
#: field:mrp.bom,bom_id:0
msgid "Parent BoM"
-msgstr "Hoofd materiaallijst"
+msgstr "Bron stuklijst"
#. module: mrp
#: view:mrp.procurement:0
@@ -791,12 +809,14 @@ msgid "References"
msgstr "Verwijzingen"
#. module: mrp
-#: wizard_button:change_production_qty,confirm,end:0 view:mrp.procurement:0
+#: wizard_button:change_production_qty,confirm,end:0
+#: view:mrp.procurement:0
#: selection:mrp.procurement,state:0
#: wizard_button:mrp.procurement.compute,init,end:0
#: wizard_button:mrp.procurement.compute.all,init,end:0
#: wizard_button:mrp.procurement.orderpoint.compute,init,end:0
-#: view:mrp.production:0 wizard_button:mrp.workcenter.load,init,end:0
+#: view:mrp.production:0
+#: wizard_button:mrp.workcenter.load,init,end:0
#: wizard_button:product.product.procurement,init,end:0
#: wizard_button:product_price,init,end:0
msgid "Cancel"
@@ -805,7 +825,7 @@ msgstr "Annuleren"
#. module: mrp
#: field:mrp.production,move_prod_id:0
msgid "Move product"
-msgstr ""
+msgstr "Verplaats product"
#. module: mrp
#: selection:mrp.workcenter,type:0
@@ -880,10 +900,14 @@ msgid "Nbr of cycle"
msgstr "Aant. cycli"
#. module: mrp
-#: field:mrp.bom,name:0 field:mrp.procurement,name:0
-#: rml:mrp.production.order:0 field:mrp.production.product.line,name:0
-#: field:mrp.property,name:0 field:mrp.routing,name:0
-#: field:mrp.routing.workcenter,name:0 field:stock.warehouse.orderpoint,name:0
+#: field:mrp.bom,name:0
+#: field:mrp.procurement,name:0
+#: rml:mrp.production.order:0
+#: field:mrp.production.product.line,name:0
+#: field:mrp.property,name:0
+#: field:mrp.routing,name:0
+#: field:mrp.routing.workcenter,name:0
+#: field:stock.warehouse.orderpoint,name:0
msgid "Name"
msgstr "Naam"
@@ -926,7 +950,7 @@ msgstr "Veiligheidsmarge in dagen voor elke productiehandeling."
#. module: mrp
#: wizard_view:mrp.procurement.compute.all,init:0
msgid "Scheduler Parameters"
-msgstr "Parameters planner"
+msgstr "Planningsparameters"
#. module: mrp
#: help:mrp.routing.workcenter,cycle_nbr:0
@@ -996,15 +1020,16 @@ msgid "Notes"
msgstr "Opmerkingen"
#. module: mrp
-#: model:ir.model,name:mrp.model_mrp_bom view:mrp.bom:0
+#: model:ir.model,name:mrp.model_mrp_bom
+#: view:mrp.bom:0
#: field:mrp.production,bom_id:0
msgid "Bill of Material"
-msgstr "Materialenlijst"
+msgstr "Stuklijst"
#. module: mrp
#: wizard_view:mrp.workcenter.load,init:0
msgid "Select time unit"
-msgstr "Kies tijdseenheid"
+msgstr "Selecteer tijdseenheid"
#. module: mrp
#: wizard_field:product_price,init,number:0
@@ -1057,7 +1082,8 @@ msgid "Sale Ref"
msgstr "Verkoopreferentie"
#. module: mrp
-#: field:mrp.procurement,priority:0 field:mrp.production,priority:0
+#: field:mrp.procurement,priority:0
+#: field:mrp.production,priority:0
#: rml:mrp.production.order:0
msgid "Priority"
msgstr "Prioriteit"
@@ -1086,7 +1112,8 @@ msgstr "Gereedschap"
#. module: mrp
#: help:mrp.production,location_src_id:0
-msgid "Location where the system will look for products used in raw materials."
+msgid ""
+"Location where the system will look for products used in raw materials."
msgstr ""
"Lokatie waar het systeem zoekt naar producten die gebruikt worden in de "
"grondstoffen."
@@ -1125,7 +1152,8 @@ msgid "Max Quantity"
msgstr "Max hoeveelheid"
#. module: mrp
-#: model:ir.model,name:mrp.model_mrp_procurement view:mrp.procurement:0
+#: model:ir.model,name:mrp.model_mrp_procurement
+#: view:mrp.procurement:0
msgid "Procurement"
msgstr "Verwerving"
@@ -1167,7 +1195,7 @@ msgstr "Kostenplaats uren"
#. module: mrp
#: selection:mrp.bom,revision_type:0
msgid "alphabetical indices"
-msgstr "Alfabetische indices"
+msgstr "Alfabetische index"
#. module: mrp
#: model:process.node,note:mrp.process_node_productionorder0
@@ -1175,7 +1203,8 @@ msgid "Procurement for raw materials."
msgstr "Verwerving van grondstoffen"
#. module: mrp
-#: view:mrp.procurement:0 field:mrp.procurement,note:0
+#: view:mrp.procurement:0
+#: field:mrp.procurement,note:0
#: rml:mrp.production.order:0
msgid "Note"
msgstr "Opmerking"
@@ -1201,8 +1230,10 @@ msgid "Define a routing to describe the manufacturing steps."
msgstr "Definieer een routering om de productiestappen te beschrijven."
#. module: mrp
-#: field:mrp.bom,active:0 field:mrp.routing,active:0
-#: field:mrp.workcenter,active:0 field:stock.warehouse.orderpoint,active:0
+#: field:mrp.bom,active:0
+#: field:mrp.routing,active:0
+#: field:mrp.workcenter,active:0
+#: field:stock.warehouse.orderpoint,active:0
msgid "Active"
msgstr "Actief"
@@ -1215,18 +1246,23 @@ msgstr "Verwerf producten"
#: model:ir.actions.act_window,name:mrp.mrp_property_action
#: model:ir.ui.menu,name:mrp.menu_mrp_property_action
#: model:ir.ui.menu,name:mrp.menu_mrp_property_group_action_prop
-#: view:mrp.bom:0 field:mrp.bom,property_ids:0 view:mrp.procurement:0
-#: field:mrp.procurement,property_ids:0 view:mrp.property:0
+#: view:mrp.bom:0
+#: field:mrp.bom,property_ids:0
+#: view:mrp.procurement:0
+#: field:mrp.procurement,property_ids:0
+#: view:mrp.property:0
msgid "Properties"
msgstr "Eigenschappen"
#. module: mrp
-#: field:mrp.procurement,date_planned:0 field:mrp.production,date_planned:0
+#: field:mrp.procurement,date_planned:0
+#: field:mrp.production,date_planned:0
msgid "Scheduled date"
msgstr "Geplande datum"
#. module: mrp
-#: view:mrp.procurement:0 view:mrp.production:0
+#: view:mrp.procurement:0
+#: view:mrp.production:0
msgid "Extra Information"
msgstr "Extra informatie"
@@ -1257,7 +1293,7 @@ msgstr "Algemene rekening"
#. module: mrp
#: field:mrp.property,composition:0
msgid "Properties composition"
-msgstr "Eigenschappen samenstelling"
+msgstr "Samenstellingseigenschappen"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_production_action4
@@ -1276,7 +1312,8 @@ msgid "Change Product Qty."
msgstr "Wijzig producthoeveelheid"
#. module: mrp
-#: selection:mrp.procurement,state:0 selection:mrp.production,state:0
+#: selection:mrp.procurement,state:0
+#: selection:mrp.production,state:0
msgid "Done"
msgstr "Gereed"
@@ -1290,7 +1327,7 @@ msgstr ""
#. module: mrp
#: field:stock.warehouse.orderpoint,logic:0
msgid "Reordering Mode"
-msgstr "Hersorteringsmodus"
+msgstr "Herbestel modus"
#. module: mrp
#: constraint:ir.model:0
@@ -1325,15 +1362,18 @@ msgid "Capacity per Cycle"
msgstr "Capaciteit per cyclus"
#. module: mrp
-#: field:mrp.bom,product_id:0 field:mrp.procurement,product_id:0
-#: field:mrp.production,product_id:0 rml:mrp.production.order:0
+#: field:mrp.bom,product_id:0
+#: field:mrp.procurement,product_id:0
+#: field:mrp.production,product_id:0
+#: rml:mrp.production.order:0
#: field:mrp.production.product.line,product_id:0
#: field:stock.warehouse.orderpoint,product_id:0
msgid "Product"
msgstr "Product"
#. module: mrp
-#: view:mrp.production:0 field:mrp.production,hour_total:0
+#: view:mrp.production:0
+#: field:mrp.production,hour_total:0
msgid "Total Hours"
msgstr "Totaal aantal uren"
@@ -1348,11 +1388,12 @@ msgid "Product BoM Structure"
msgstr "Materiaallijst product"
#. module: mrp
-#: field:mrp.bom,product_uom:0 field:mrp.production,product_uom:0
+#: field:mrp.bom,product_uom:0
+#: field:mrp.production,product_uom:0
#: field:mrp.production.product.line,product_uom:0
#: field:stock.warehouse.orderpoint,product_uom:0
msgid "Product UOM"
-msgstr "Product ME"
+msgstr "Product UOM"
#. module: mrp
#: help:mrp.procurement,origin:0
@@ -1376,14 +1417,16 @@ msgstr ""
"voorraad'"
#. module: mrp
-#: help:mrp.bom,date_start:0 help:mrp.bom,date_stop:0
+#: help:mrp.bom,date_start:0
+#: help:mrp.bom,date_stop:0
msgid "Validity of this BoM or component. Keep empty if it's always valid."
msgstr ""
"Geldigheid van deze materiaallijst of dit onderdeel. Laat leeg als deze "
"altijd geldig is."
#. module: mrp
-#: field:mrp.procurement,product_uos:0 field:mrp.production,product_uos:0
+#: field:mrp.procurement,product_uos:0
+#: field:mrp.production,product_uos:0
msgid "Product UoS"
msgstr "Product VE"
@@ -1395,12 +1438,14 @@ msgstr "Product ME"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_workcenter
#: field:mrp.production.workcenter.line,workcenter_id:0
-#: field:mrp.routing.workcenter,workcenter_id:0 view:mrp.workcenter:0
+#: field:mrp.routing.workcenter,workcenter_id:0
+#: view:mrp.workcenter:0
msgid "Workcenter"
-msgstr "Werkplaats"
+msgstr "Werkcenter"
#. module: mrp
-#: selection:mrp.procurement,priority:0 selection:mrp.production,priority:0
+#: selection:mrp.procurement,priority:0
+#: selection:mrp.production,priority:0
msgid "Very Urgent"
msgstr "Zeer urgent"
@@ -1408,7 +1453,7 @@ msgstr "Zeer urgent"
#: field:mrp.procurement,purchase_id:0
#: field:stock.warehouse.orderpoint,procurement_id:0
msgid "Purchase Order"
-msgstr "Bestelopdracht"
+msgstr "Inkooporder"
#. module: mrp
#: view:mrp.production:0
@@ -1437,10 +1482,11 @@ msgstr "Bronlocatie"
#. module: mrp
#: model:process.transition,name:mrp.process_transition_servicerfq0
msgid "Stockable Order Request"
-msgstr ""
+msgstr "Aanvraag voorraadorder"
#. module: mrp
-#: view:mrp.production:0 view:mrp.production.product.line:0
+#: view:mrp.production:0
+#: view:mrp.production.product.line:0
msgid "Scheduled Products"
msgstr "Geplande producten"
@@ -1452,7 +1498,7 @@ msgstr "Productie verbruiksartikelen"
#. module: mrp
#: selection:mrp.bom,revision_type:0
msgid "numeric indices"
-msgstr "Numerieke indices"
+msgstr "Numerieke indexen"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_servicerfq0
@@ -1467,7 +1513,8 @@ msgstr "Als soort product 'voorraadsartikel' is in verwervingsopdracht"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_production_workcenter_line
-#: view:mrp.production:0 rml:mrp.production.order:0
+#: view:mrp.production:0
+#: rml:mrp.production.order:0
msgid "Work Orders"
msgstr "Werkopdrachten"
@@ -1479,7 +1526,7 @@ msgstr "Kosten per cyclus"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_bom_revision
msgid "Bill of material revisions"
-msgstr "Materialenlijstversies"
+msgstr "Stuklijstversies"
#. module: mrp
#: view:mrp.procurement:0
@@ -1532,7 +1579,7 @@ msgstr "Intern verwervingsverzoek"
#: model:process.node,name:mrp.process_node_production0
#: model:process.node,name:mrp.process_node_productionorder0
msgid "Production Order"
-msgstr "Productie-opdracht"
+msgstr "Productieorder"
#. module: mrp
#: view:mrp.production:0
@@ -1571,7 +1618,7 @@ msgstr "Geldig tot"
#: model:ir.actions.act_window,name:mrp.mrp_procurement_action11
#: model:ir.ui.menu,name:mrp.menu_mrp_procurement_action11
msgid "Temporary Procurement Exceptions"
-msgstr "Tijdelijke verwervingsfouten"
+msgstr "Tijdelijke verwervingsuitzonderingen"
#. module: mrp
#: field:mrp.bom,date_start:0
@@ -1581,7 +1628,7 @@ msgstr "Geldig vanaf"
#. module: mrp
#: selection:mrp.bom,type:0
msgid "Normal BoM"
-msgstr "Normale materialenlijst"
+msgstr "Normale stuklijst"
#. module: mrp
#: field:mrp.bom,product_uos_qty:0
@@ -1608,7 +1655,7 @@ msgstr "Bevestigen"
#. module: mrp
#: field:mrp.production,workcenter_lines:0
msgid "Workcenters Utilisation"
-msgstr "Belasting werkplaatsen"
+msgstr "Belasting werkcenters"
#. module: mrp
#: help:mrp.bom,product_efficiency:0
@@ -1658,7 +1705,7 @@ msgstr "Nieuwe materiaallijst"
#. module: mrp
#: field:mrp.workcenter,time_stop:0
msgid "Time after prod."
-msgstr "Afbouwtijd"
+msgstr "Tijd na prod."
#. module: mrp
#: wizard_field:mrp.workcenter.load,init,time_unit:0
@@ -1689,7 +1736,7 @@ msgstr "Eigenschap"
#. module: mrp
#: field:mrp.routing.workcenter,routing_id:0
msgid "Parent Routing"
-msgstr "Hoofdroutering"
+msgstr "Hoofdrouting"
#. module: mrp
#: help:mrp.workcenter,time_start:0
@@ -1707,9 +1754,10 @@ msgid "plus"
msgstr "plus"
#. module: mrp
-#: field:mrp.bom.revision,bom_id:0 field:mrp.procurement,bom_id:0
+#: field:mrp.bom.revision,bom_id:0
+#: field:mrp.procurement,bom_id:0
msgid "BoM"
-msgstr "Materiaallijst"
+msgstr "Stuklijst"
#. module: mrp
#: help:mrp.bom,routing_id:0
@@ -1727,7 +1775,7 @@ msgstr ""
#. module: mrp
#: selection:mrp.production,state:0
msgid "Waiting Goods"
-msgstr "Wacht op materiaal"
+msgstr "Wacht op materialen"
#. module: mrp
#: model:process.process,name:mrp.process_process_stockableproductprocess0
@@ -1743,7 +1791,8 @@ msgstr "Nieuwe productieopdracht"
#. module: mrp
#: model:process.node,note:mrp.process_node_rfq0
msgid "A Request for Quotation is created and sent to the supplier."
-msgstr "Er is een offerteaanvraag aangemaakt en verstuurd naar de leverancier"
+msgstr ""
+"Er is een offerteaanvraag aangemaakt en verstuurd naar de leverancier"
#. module: mrp
#: field:mrp.bom.revision,last_indice:0
@@ -1751,9 +1800,10 @@ msgid "last indice"
msgstr "laatste index"
#. module: mrp
-#: field:mrp.bom,revision_ids:0 view:mrp.bom.revision:0
+#: field:mrp.bom,revision_ids:0
+#: view:mrp.bom.revision:0
msgid "BoM Revisions"
-msgstr "Materiaallijstversies"
+msgstr "Stuklijstversies"
#. module: mrp
#: view:mrp.procurement:0
@@ -1761,19 +1811,22 @@ msgid "Retry"
msgstr "Probeer opnieuw"
#. module: mrp
-#: selection:mrp.procurement,state:0 selection:mrp.production,state:0
+#: selection:mrp.procurement,state:0
+#: selection:mrp.production,state:0
msgid "Draft"
msgstr "Concept"
#. module: mrp
-#: selection:mrp.procurement,priority:0 selection:mrp.production,priority:0
+#: selection:mrp.procurement,priority:0
+#: selection:mrp.production,priority:0
msgid "Normal"
msgstr "Normaal"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_productionprocureproducts0
msgid "When any procuere products, it comes into the prpcurement orders"
-msgstr "Te verwerven producten worden op de verwervingsopdracht bijgeplaatst."
+msgstr ""
+"Te verwerven producten worden op de verwervingsopdracht bijgeplaatst."
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_production_action2
@@ -1821,8 +1874,11 @@ msgid "from stock"
msgstr "uit voorraad"
#. module: mrp
-#: view:mrp.bom:0 view:mrp.property:0 view:mrp.property.group:0
-#: view:mrp.routing:0 view:mrp.routing.workcenter:0
+#: view:mrp.bom:0
+#: view:mrp.property:0
+#: view:mrp.property.group:0
+#: view:mrp.routing:0
+#: view:mrp.routing.workcenter:0
msgid "General Information"
msgstr "Algemene informatie"
@@ -1875,10 +1931,14 @@ msgid "Change Product Qty"
msgstr "Wijzig producthoeveelheid"
#. module: mrp
-#: field:mrp.bom.revision,description:0 view:mrp.property:0
-#: field:mrp.property,description:0 field:mrp.property.group,description:0
-#: view:mrp.routing:0 field:mrp.routing,note:0
-#: field:mrp.routing.workcenter,note:0 view:mrp.workcenter:0
+#: field:mrp.bom.revision,description:0
+#: view:mrp.property:0
+#: field:mrp.property,description:0
+#: field:mrp.property.group,description:0
+#: view:mrp.routing:0
+#: field:mrp.routing,note:0
+#: field:mrp.routing.workcenter,note:0
+#: view:mrp.workcenter:0
#: field:mrp.workcenter,note:0
msgid "Description"
msgstr "Beschrijving"
@@ -1936,7 +1996,8 @@ msgid "On Stock"
msgstr "Op voorraad"
#. module: mrp
-#: field:mrp.bom,sequence:0 rml:mrp.production.order:0
+#: field:mrp.bom,sequence:0
+#: rml:mrp.production.order:0
#: field:mrp.production.workcenter.line,sequence:0
#: field:mrp.routing.workcenter,sequence:0
msgid "Sequence"
@@ -1951,7 +2012,7 @@ msgstr "Onderdelen materiaallijst"
#. module: mrp
#: field:report.mrp.inout,date:0 field:report.workcenter.load,name:0
msgid "Week"
-msgstr ""
+msgstr "Week"
#. module: mrp
#: model:ir.ui.menu,name:mrp.next_id_77
@@ -1961,37 +2022,42 @@ msgstr "Rapportering"
#. module: mrp
#: view:report.workcenter.load:0
msgid "Workcenters load"
-msgstr ""
+msgstr "Werkcentersbelasting"
#. module: mrp
#: model:ir.model,name:mrp.model_report_workcenter_load
msgid "Workcenter Load"
-msgstr ""
+msgstr "Werkcenterbelasting"
#. module: mrp
#: model:ir.module.module,shortdesc:report_mrp.module_meta_information
msgid "MRP Management - Reporting"
-msgstr ""
+msgstr "MRP beheer - Rapportage"
#. module: mrp
#: field:report.mrp.inout,value:0
msgid "Stock value"
-msgstr ""
+msgstr "Voorraadwaarde"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.action_report_workcenter_load_tree
#: model:ir.ui.menu,name:mrp.menu_report_workcenter_load
msgid "Workcenter Loads"
-msgstr ""
+msgstr "Werkcenterbelastingen"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.action_report_in_out_picking_tree
#: model:ir.ui.menu,name:mrp.menu_report_in_out_picking
msgid "Weekly Stock Value Variation"
-msgstr ""
+msgstr "Wekelijkse voorraadwaarde variatie"
#. module: mrp
#: model:ir.model,name:mrp.model_report_mrp_inout
#: view:report.mrp.inout:0
msgid "Stock value variation"
-msgstr ""
+msgstr "Voorraadwaarde variatie"
+
+#. module: mrp
+#: view:board.board:0
+msgid "Next production orders"
+msgstr "Volgende productieorders"
diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py
index 9f28cff4594..13ded3a9694 100644
--- a/addons/mrp/mrp.py
+++ b/addons/mrp/mrp.py
@@ -20,13 +20,14 @@
##############################################################################
from mx import DateTime
-from osv import fields
-from osv import osv
+from datetime import datetime, timedelta
+from osv import osv, fields
from tools.translate import _
import ir
import netsvc
import time
+
#----------------------------------------------------------
# Work Centers
#----------------------------------------------------------
@@ -100,8 +101,8 @@ class mrp_routing_workcenter(osv.osv):
'name': fields.char('Name', size=64, required=True),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of routing workcenters."),
'cycle_nbr': fields.float('Number of Cycles', required=True,
- help="Time in hours for doing one cycle."),
- 'hour_nbr': fields.float('Number of Hours', required=True, help="Cost per hour"),
+ help="Number of operations this workcenter can do."),
+ 'hour_nbr': fields.float('Number of Hours', required=True, help="Time in hours for doing one cycle."),
'routing_id': fields.many2one('mrp.routing', 'Parent Routing', select=True, ondelete='cascade',
help="Routing indicates all the workcenters used, for how long and/or cycles." \
"If Routing is indicated then,the third tab of a production order (workcenters) will be automatically pre-completed."),
@@ -373,8 +374,6 @@ def rounding(f, r):
class many2many_domain(fields.many2many):
def set(self, cr, obj, id, name, values, user=None, context=None):
- if not values:
- return
return super(many2many_domain, self).set(cr, obj, id, name, values, user=user,
context=context)
@@ -393,8 +392,6 @@ class many2many_domain(fields.many2many):
class one2many_domain(fields.one2many):
def set(self, cr, obj, id, field, values, user=None, context=None):
- if not values:
- return
return super(one2many_domain, self).set(cr, obj, id, field, values,
user=user, context=context)
@@ -417,7 +414,6 @@ class mrp_production(osv.osv):
_name = 'mrp.production'
_description = 'Manufacturing Order'
_date_name = 'date_planned'
- _log_create = True
def _production_calc(self, cr, uid, ids, prop, unknow_none, context={}):
""" Calculates total hours and total no. of cycles for a production order.
@@ -486,10 +482,10 @@ class mrp_production(osv.osv):
'picking_id': fields.many2one('stock.picking', 'Picking list', readonly=True,
help="This is the internal picking list that brings the finished product to the production plan"),
'move_prod_id': fields.many2one('stock.move', 'Move product', readonly=True),
- 'move_lines': many2many_domain('stock.move', 'mrp_production_move_ids', 'production_id', 'move_id', 'Products to Consumme', domain=[('state','not in', ('done', 'cancel'))]),
- 'move_lines2': many2many_domain('stock.move', 'mrp_production_move_ids', 'production_id', 'move_id', 'Consummed Products', domain=[('state','in', ('done', 'cancel'))]),
- 'move_created_ids': one2many_domain('stock.move', 'production_id', 'Moves Created', domain=[('state','not in', ('done', 'cancel'))]),
- 'move_created_ids2': one2many_domain('stock.move', 'production_id', 'Moves Created', domain=[('state','in', ('done', 'cancel'))]),
+ 'move_lines': many2many_domain('stock.move', 'mrp_production_move_ids', 'production_id', 'move_id', 'Products to Consumme', domain=[('state','not in', ('done', 'cancel'))], states={'done':[('readonly',True)]}),
+ 'move_lines2': many2many_domain('stock.move', 'mrp_production_move_ids', 'production_id', 'move_id', 'Consummed Products', domain=[('state','in', ('done', 'cancel'))], readonly=True),
+ 'move_created_ids': one2many_domain('stock.move', 'production_id', 'Moves Created', domain=[('state','not in', ('done', 'cancel'))], states={'done':[('readonly',True)]}),
+ 'move_created_ids2': one2many_domain('stock.move', 'production_id', 'Moves Created', domain=[('state','in', ('done', 'cancel'))], readonly=True),
'product_lines': fields.one2many('mrp.production.product.line', 'production_id', 'Scheduled goods'),
'workcenter_lines': fields.one2many('mrp.production.workcenter.line', 'production_id', 'Work Centers Utilisation'),
'state': fields.selection([('draft','Draft'),('picking_except', 'Picking Exception'),('confirmed','Waiting Goods'),('ready','Ready to Produce'),('in_production','In Production'),('cancel','Cancelled'),('done','Done')],'State', readonly=True,
@@ -509,7 +505,18 @@ class mrp_production(osv.osv):
'company_id': lambda self, cr, uid, c: self.pool.get('res.company')._company_default_get(cr, uid, 'mrp.production', context=c),
}
_order = 'date_planned asc, priority desc';
-
+
+ def _check_qty(self, cr, uid, ids):
+ orders = self.browse(cr, uid, ids)
+ for order in orders:
+ if order.product_qty <= 0:
+ return False
+ return True
+
+ _constraints = [
+ (_check_qty, 'Order quantity cannot be negative or zero !', ['product_qty']),
+ ]
+
def unlink(self, cr, uid, ids, context=None):
productions = self.read(cr, uid, ids, ['state'])
unlink_ids = []
@@ -520,14 +527,17 @@ class mrp_production(osv.osv):
raise osv.except_osv(_('Invalid action !'), _('Cannot delete Production Order(s) which are in %s State!' % s['state']))
return osv.osv.unlink(self, cr, uid, unlink_ids, context=context)
- def copy(self, cr, uid, id, default=None,context=None):
- if not default:
+ def copy(self, cr, uid, id, default=None, context=None):
+ if default is None:
default = {}
default.update({
'name': self.pool.get('ir.sequence').get(cr, uid, 'mrp.production'),
'move_lines' : [],
- 'move_created_ids': [],
- 'state': 'draft'
+ 'move_lines2' : [],
+ 'move_created_ids' : [],
+ 'move_created_ids2' : [],
+ 'product_lines' : [],
+ 'picking_id': False
})
return super(mrp_production, self).copy(cr, uid, id, default, context)
@@ -636,15 +646,23 @@ class mrp_production(osv.osv):
""" Changes the production state to Ready and location id of stock move.
@return: True
"""
- for (id,name) in self.name_get(cr, uid, ids):
- message = _('Manufacturing Order ') + " '" + name + "' "+ _("is ready to produce.")
- self.log(cr, uid, id, message)
move_obj = self.pool.get('stock.move')
self.write(cr, uid, ids, {'state': 'ready'})
- for production in self.browse(cr, uid, ids):
+
+ for (production_id,name) in self.name_get(cr, uid, ids):
+ production = self.browse(cr, uid, production_id)
if production.move_prod_id:
move_obj.write(cr, uid, [production.move_prod_id.id],
{'location_id': production.location_dest_id.id})
+
+ message = ("%s %s %s %s %s %s") % (
+ _('Manufacturing Order '),
+ name,
+ _("scheduled the"),
+ datetime.strptime(production.date_planned,'%Y-%m-%d %H:%M:%S').strftime('%Y-%m-%d'),
+ _("for"),
+ production.product_id.name)
+ self.log(cr, uid, production_id, message)
return True
def action_production_end(self, cr, uid, ids):
@@ -678,9 +696,10 @@ class mrp_production(osv.osv):
@param production_mode: specify production mode (consume/consume&produce).
@return: True
"""
+
stock_mov_obj = self.pool.get('stock.move')
production = self.browse(cr, uid, production_id)
-
+
raw_product_todo = []
final_product_todo = []
@@ -690,6 +709,7 @@ class mrp_production(osv.osv):
continue
produced_qty += produced_product.product_qty
+
if production_mode in ['consume','consume_produce']:
consumed_products = {}
for consumed_product in production.move_lines2:
@@ -698,12 +718,13 @@ class mrp_production(osv.osv):
if not consumed_products.get(consumed_product.product_id.id, False):
consumed_products[consumed_product.product_id.id] = 0
consumed_products[consumed_product.product_id.id] -= consumed_product.product_qty
-
+
for raw_product in production.move_lines:
for f in production.product_lines:
if f.product_id.id==raw_product.product_id.id:
consumed_qty = consumed_products.get(raw_product.product_id.id, 0)
rest_qty = production_qty * f.product_qty / production.product_qty - consumed_qty
+
if rest_qty > 0:
stock_mov_obj.action_consume(cr, uid, [raw_product.id], rest_qty, production.location_src_id.id, context=context)
@@ -736,9 +757,11 @@ class mrp_production(osv.osv):
new_parent_ids.append(final_product.id)
for new_parent_id in new_parent_ids:
stock_mov_obj.write(cr, uid, [raw_product.id], {'move_history_ids': [(4,new_parent_id)]})
-
+
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'mrp.production', production_id, 'button_produce_done', cr)
+ message = _('Manufacturing order ') + " '" + production.name + "' "+ _("is finished.")
+ self.log(cr, uid, production_id, message)
return True
def _costs_generate(self, cr, uid, production):
@@ -852,7 +875,7 @@ class mrp_production(osv.osv):
'company_id': production.company_id.id,
}
res_final_id = move_obj.create(cr, uid, data)
-
+
self.write(cr, uid, [production.id], {'move_created_ids': [(6, 0, [res_final_id])]})
moves = []
for line in production.product_lines:
@@ -904,9 +927,11 @@ class mrp_production(osv.osv):
'company_id': production.company_id.id,
})
wf_service.trg_validate(uid, 'procurement.order', proc_id, 'button_confirm', cr)
- proc_ids.append(proc_id)
+ proc_ids.append(proc_id)
wf_service.trg_validate(uid, 'stock.picking', picking_id, 'button_confirm', cr)
self.write(cr, uid, [production.id], {'picking_id': picking_id, 'move_lines': [(6,0,moves)], 'state':'confirmed'})
+ message = _('Manufacturing order ') + " '" + production.name + "' "+ _("is confirmed.")
+ self.log(cr, uid, production.id, message)
return picking_id
def force_production(self, cr, uid, ids, *args):
diff --git a/addons/mrp/mrp_view.xml b/addons/mrp/mrp_view.xml
index 5eb86e77c49..1bd0724a003 100644
--- a/addons/mrp/mrp_view.xml
+++ b/addons/mrp/mrp_view.xml
@@ -67,16 +67,38 @@
-
+
+
+
+ mrp.property.search
+ mrp.property
+ search
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Properties
ir.actions.act_window
mrp.property
form
tree,form
+