[MERGE] from trunk

bzr revid: fva@openerp.com-20120725125407-fp7fasquds5oy0xv
This commit is contained in:
Frédéric van der Essen
2012-07-25 14:54:07 +02:00
406 changed files with 12544 additions and 3605 deletions
+13 -15
View File
@@ -29,25 +29,23 @@ Accounting and Financial Management.
Financial and accounting module that covers:
--------------------------------------------
General accountings
Cost / Analytic accounting
Third party accounting
Taxes management
Budgets
Customer and Supplier Invoices
Bank statements
Reconciliation process by partner
* General Accounting
* Cost/Analytic accounting
* Third party accounting
* Taxes management
* Budgets
* Customer and Supplier Invoices
* Bank statements
* Reconciliation process by partner
Creates a dashboard for accountants that includes:
--------------------------------------------------
* List of Customer Invoice to Approve
* Company Analysis
* Graph of Aged Receivables
* Graph of Treasury
* List of Customer Invoice to Approve
* Company Analysis
* Graph of Treasury
The processes like maintaining of general ledger is done through the defined financial Journals (entry move line or
grouping is maintained through journal) for a particular financial year and for preparation of vouchers there is a
module named account_voucher.
The processes like maintaining of general ledger is done through the defined financial Journals (entry move line orgrouping is maintained through journal) for a particular
financial year and for preparation of vouchers there is a module named account_voucher.
""",
'website': 'http://www.openerp.com',
'images' : ['images/accounts.jpeg','images/bank_statement.jpeg','images/cash_register.jpeg','images/chart_of_accounts.jpeg','images/customer_invoice.jpeg','images/journal_entries.jpeg'],
+16 -16
View File
@@ -101,7 +101,7 @@ class account_payment_term_line(osv.osv):
'value': fields.selection([('procent', 'Percent'),
('balance', 'Balance'),
('fixed', 'Fixed Amount')], 'Valuation',
required=True, help="""Select here the kind of valuation related to this payment term line. Note that you should have your last line with the type 'Balance' to ensure that the whole amount will be threated."""),
required=True, help="""Select here the kind of valuation related to this payment term line. Note that you should have your last line with the type 'Balance' to ensure that the whole amount will be treated."""),
'value_amount': fields.float('Amount To Pay', digits_compute=dp.get_precision('Payment Term'), help="For percent enter a ratio between 0-1."),
'days': fields.integer('Number of Days', required=True, help="Number of days to add before computation of the day of month." \
@@ -731,7 +731,7 @@ class account_journal(osv.osv):
'centralisation': fields.boolean('Centralised counterpart', help="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."),
'update_posted': fields.boolean('Allow Cancelling Entries', help="Check this box if you want to allow the cancellation the entries related to this journal or of the invoice related to this journal"),
'group_invoice_lines': fields.boolean('Group Invoice Lines', help="If this box is checked, the system will try to group the accounting lines when generating them from invoices."),
'sequence_id': fields.many2one('ir.sequence', 'Entry Sequence', help="This field contains the informatin related to the numbering of the journal entries of this journal.", required=True),
'sequence_id': fields.many2one('ir.sequence', 'Entry Sequence', help="This field contains the information related to the numbering of the journal entries of this journal.", required=True),
'user_id': fields.many2one('res.users', 'User', help="The user responsible for this journal"),
'groups_id': fields.many2many('res.groups', 'account_journal_group_rel', 'journal_id', 'group_id', 'Groups'),
'currency': fields.many2one('res.currency', 'Currency', help='The currency used to enter statement'),
@@ -1269,7 +1269,7 @@ class account_move(osv.osv):
'period_id': fields.many2one('account.period', 'Period', required=True, states={'posted':[('readonly',True)]}),
'journal_id': fields.many2one('account.journal', 'Journal', required=True, states={'posted':[('readonly',True)]}),
'state': fields.selection([('draft','Unposted'), ('posted','Posted')], 'Status', required=True, readonly=True,
help='All manually created new journal entries are usually in the state \'Unposted\', but you can set the option to skip that state on the related journal. In that case, they will be behave as journal entries automatically created by the system on document validation (invoices, bank statements...) and will be created in \'Posted\' state.'),
help='All manually created new journal entries are usually in the state \'Unposted\', but you can set the option to skip that state on the related journal. In that case, they will behave as journal entries automatically created by the system on document validation (invoices, bank statements...) and will be created in \'Posted\' state.'),
'line_id': fields.one2many('account.move.line', 'move_id', 'Entries', states={'posted':[('readonly',True)]}),
'to_check': fields.boolean('To Review', help='Check this box if you are unsure of that journal entry and if you want to note it as \'to be reviewed\' by an accounting expert.'),
'partner_id': fields.related('line_id', 'partner_id', type="many2one", relation="res.partner", string="Partner", store=True),
@@ -1788,7 +1788,7 @@ class account_tax_code(osv.osv):
'line_ids': fields.one2many('account.move.line', 'tax_code_id', 'Lines'),
'company_id': fields.many2one('res.company', 'Company', required=True),
'sign': fields.float('Coefficent for parent', required=True, help='You can specify here the coefficient that will be used when consolidating the amount of this case into its parent. For example, set 1/-1 if you want to add/substract it.'),
'notprintable':fields.boolean("Not Printable in Invoice", help="Check this box if you don't want any VAT related to this Tax Code to appear on invoices"),
'notprintable':fields.boolean("Not Printable in Invoice", help="Check this box if you don't want any tax related to this tax code to appear on invoices"),
'sequence': fields.integer('Sequence', help="Determine the display order in the report 'Accounting \ Reporting \ Generic Reporting \ Taxes \ Taxes Report'"),
}
@@ -1880,17 +1880,17 @@ class account_tax(osv.osv):
'python_applicable':fields.text('Python Code'),
#
# Fields used for the VAT declaration
# Fields used for the Tax declaration
#
'base_code_id': fields.many2one('account.tax.code', 'Account Base Code', help="Use this code for the VAT declaration."),
'tax_code_id': fields.many2one('account.tax.code', 'Account Tax Code', help="Use this code for the VAT declaration."),
'base_code_id': fields.many2one('account.tax.code', 'Account Base Code', help="Use this code for the tax declaration."),
'tax_code_id': fields.many2one('account.tax.code', 'Account Tax Code', help="Use this code for the tax declaration."),
'base_sign': fields.float('Base Code Sign', help="Usually 1 or -1."),
'tax_sign': fields.float('Tax Code Sign', help="Usually 1 or -1."),
# Same fields for refund invoices
'ref_base_code_id': fields.many2one('account.tax.code', 'Refund Base Code', help="Use this code for the VAT declaration."),
'ref_tax_code_id': fields.many2one('account.tax.code', 'Refund Tax Code', help="Use this code for the VAT declaration."),
'ref_base_code_id': fields.many2one('account.tax.code', 'Refund Base Code', help="Use this code for the tax declaration."),
'ref_tax_code_id': fields.many2one('account.tax.code', 'Refund Tax Code', help="Use this code for the tax declaration."),
'ref_base_sign': fields.float('Base Code Sign', help="Usually 1 or -1."),
'ref_tax_sign': fields.float('Tax Code Sign', help="Usually 1 or -1."),
'include_base_amount': fields.boolean('Included in base amount', help="Indicates if the amount of tax must be included in the base amount for the computation of the next taxes"),
@@ -2217,7 +2217,7 @@ class account_tax(osv.osv):
def compute_inv(self, cr, uid, taxes, price_unit, quantity, product=None, partner=None, precision=None):
"""
Compute tax values for given PRICE_UNIT, QUANTITY and a buyer/seller ADDRESS_ID.
Price Unit is a VAT included price
Price Unit is a Tax included price
RETURN:
[ tax ]
@@ -2673,7 +2673,7 @@ class account_tax_code_template(osv.osv):
'parent_id': fields.many2one('account.tax.code.template', 'Parent Code', select=True),
'child_ids': fields.one2many('account.tax.code.template', 'parent_id', 'Child Codes'),
'sign': fields.float('Sign For Parent', required=True),
'notprintable':fields.boolean("Not Printable in Invoice", help="Check this box if you don't want any VAT related to this Tax Code to appear on invoices"),
'notprintable':fields.boolean("Not Printable in Invoice", help="Check this box if you don't want any tax related to this tax Code to appear on invoices."),
}
_defaults = {
@@ -2788,17 +2788,17 @@ class account_tax_template(osv.osv):
'python_applicable':fields.text('Python Code'),
#
# Fields used for the VAT declaration
# Fields used for the Tax declaration
#
'base_code_id': fields.many2one('account.tax.code.template', 'Base Code', help="Use this code for the VAT declaration."),
'tax_code_id': fields.many2one('account.tax.code.template', 'Tax Code', help="Use this code for the VAT declaration."),
'base_code_id': fields.many2one('account.tax.code.template', 'Base Code', help="Use this code for the tax declaration."),
'tax_code_id': fields.many2one('account.tax.code.template', 'Tax Code', help="Use this code for the tax declaration."),
'base_sign': fields.float('Base Code Sign', help="Usually 1 or -1."),
'tax_sign': fields.float('Tax Code Sign', help="Usually 1 or -1."),
# Same fields for refund invoices
'ref_base_code_id': fields.many2one('account.tax.code.template', 'Refund Base Code', help="Use this code for the VAT declaration."),
'ref_tax_code_id': fields.many2one('account.tax.code.template', 'Refund Tax Code', help="Use this code for the VAT declaration."),
'ref_base_code_id': fields.many2one('account.tax.code.template', 'Refund Base Code', help="Use this code for the tax declaration."),
'ref_tax_code_id': fields.many2one('account.tax.code.template', 'Refund Tax Code', help="Use this code for the tax declaration."),
'ref_base_sign': fields.float('Base Code Sign', help="Usually 1 or -1."),
'ref_tax_sign': fields.float('Tax Code Sign', help="Usually 1 or -1."),
'include_base_amount': fields.boolean('Include in Base Amount', help="Set if the amount of tax must be included in the base amount before computing the next taxes."),
+160 -63
View File
@@ -173,7 +173,158 @@ class account_bank_statement(osv.osv):
def button_dummy(self, cr, uid, ids, context=None):
return self.write(cr, uid, ids, {}, context=context)
def _prepare_move(self, cr, uid, st_line, st_line_number, context=None):
"""Prepare the dict of values to create the move from a
statement line. This method may be overridden to implement custom
move generation (making sure to call super() to establish
a clean extension chain).
:param browse_record st_line: account.bank.statement.line record to
create the move from.
:param char st_line_number: will be used as the name of the generated account move
:return: dict of value to create() the account.move
"""
return {
'journal_id': st_line.statement_id.journal_id.id,
'period_id': st_line.statement_id.period_id.id,
'date': st_line.date,
'name': st_line_number,
'ref': st_line.ref,
}
def _prepare_bank_move_line(self, cr, uid, st_line, move_id, amount, company_currency_id,
context=None):
"""Compute the args to build the dict of values to create the bank move line from a
statement line by calling the _prepare_move_line_vals. This method may be
overridden to implement custom move generation (making sure to call super() to
establish a clean extension chain).
:param browse_record st_line: account.bank.statement.line record to
create the move from.
:param int/long move_id: ID of the account.move to link the move line
:param float amount: amount of the move line
:param int/long company_currency_id: ID of currency of the concerned company
:return: dict of value to create() the bank account.move.line
"""
anl_id = st_line.analytic_account_id and st_line.analytic_account_id.id or False
debit = ((amount<0) and -amount) or 0.0
credit = ((amount>0) and amount) or 0.0
cur_id = False
amt_cur = False
if st_line.statement_id.currency.id <> company_currency_id:
cur_id = st_line.statement_id.currency.id
if st_line.account_id and st_line.account_id.currency_id and st_line.account_id.currency_id.id <> company_currency_id:
cur_id = st_line.account_id.currency_id.id
if cur_id:
res_currency_obj = self.pool.get('res.currency')
amt_cur = -res_currency_obj.compute(cr, uid, company_currency_id, cur_id, amount, context=context)
res = self._prepare_move_line_vals(cr, uid, st_line, move_id, debit, credit,
amount_currency=amt_cur, currency_id=cur_id, analytic_id=anl_id, context=context)
return res
def _get_counter_part_account(sefl, cr, uid, st_line, context=None):
"""Retrieve the account to use in the counterpart move.
This method may be overridden to implement custom move generation (making sure to
call super() to establish a clean extension chain).
:param browse_record st_line: account.bank.statement.line record to
create the move from.
:return: int/long of the account.account to use as counterpart
"""
if st_line.amount >= 0:
return st_line.statement_id.journal_id.default_credit_account_id.id
return st_line.statement_id.journal_id.default_debit_account_id.id
def _get_counter_part_partner(sefl, cr, uid, st_line, context=None):
"""Retrieve the partner to use in the counterpart move.
This method may be overridden to implement custom move generation (making sure to
call super() to establish a clean extension chain).
:param browse_record st_line: account.bank.statement.line record to
create the move from.
:return: int/long of the res.partner to use as counterpart
"""
return st_line.partner_id and st_line.partner_id.id or False
def _prepare_counterpart_move_line(self, cr, uid, st_line, move_id, amount, company_currency_id,
context=None):
"""Compute the args to build the dict of values to create the counter part move line from a
statement line by calling the _prepare_move_line_vals. This method may be
overridden to implement custom move generation (making sure to call super() to
establish a clean extension chain).
:param browse_record st_line: account.bank.statement.line record to
create the move from.
:param int/long move_id: ID of the account.move to link the move line
:param float amount: amount of the move line
:param int/long account_id: ID of account to use as counter part
:param int/long company_currency_id: ID of currency of the concerned company
:return: dict of value to create() the bank account.move.line
"""
account_id = self._get_counter_part_account(cr, uid, st_line, context=context)
partner_id = self._get_counter_part_partner(cr, uid, st_line, context=context)
debit = ((amount > 0) and amount) or 0.0
credit = ((amount < 0) and -amount) or 0.0
cur_id = False
amt_cur = False
if st_line.statement_id.currency.id <> company_currency_id:
amt_cur = st_line.amount
cur_id = st_line.statement_id.currency.id
return self._prepare_move_line_vals(cr, uid, st_line, move_id, debit, credit,
amount_currency = amt_cur, currency_id = cur_id, account_id = account_id,
partner_id = partner_id, context=context)
def _prepare_move_line_vals(self, cr, uid, st_line, move_id, debit, credit, currency_id = False,
amount_currency= False, account_id = False, analytic_id = False,
partner_id = False, context=None):
"""Prepare the dict of values to create the move line from a
statement line. All non-mandatory args will replace the default computed one.
This method may be overridden to implement custom move generation (making sure to
call super() to establish a clean extension chain).
:param browse_record st_line: account.bank.statement.line record to
create the move from.
:param int/long move_id: ID of the account.move to link the move line
:param float debit: debit amount of the move line
:param float credit: credit amount of the move line
:param int/long currency_id: ID of currency of the move line to create
:param float amount_currency: amount of the debit/credit expressed in the currency_id
:param int/long account_id: ID of the account to use in the move line if different
from the statement line account ID
:param int/long analytic_id: ID of analytic account to put on the move line
:param int/long partner_id: ID of the partner to put on the move line
:return: dict of value to create() the account.move.line
"""
acc_id = account_id or st_line.account_id.id
cur_id = currency_id or st_line.statement_id.currency.id
par_id = partner_id or (((st_line.partner_id) and st_line.partner_id.id) or False)
return {
'name': st_line.name,
'date': st_line.date,
'ref': st_line.ref,
'move_id': move_id,
'partner_id': partner_id,
'account_id': acc_id,
'credit': credit,
'debit': debit,
'statement_id': st_line.statement_id.id,
'journal_id': st_line.statement_id.journal_id.id,
'period_id': st_line.statement_id.period_id.id,
'currency_id': cur_id,
'amount_currency': amount_currency,
'analytic_account_id': analytic_id,
}
def create_move_from_st_line(self, cr, uid, st_line_id, company_currency_id, st_line_number, context=None):
"""Create the account move from the statement line.
:param int/long st_line_id: ID of the account.bank.statement.line to create the move from.
:param int/long company_currency_id: ID of the res.currency of the company
:param char st_line_number: will be used as the name of the generated account move
:return: ID of the account.move created
"""
if context is None:
context = {}
res_currency_obj = self.pool.get('res.currency')
@@ -185,82 +336,28 @@ class account_bank_statement(osv.osv):
context.update({'date': st_line.date})
move_id = account_move_obj.create(cr, uid, {
'journal_id': st.journal_id.id,
'period_id': st.period_id.id,
'date': st_line.date,
'name': st_line_number,
'ref': st_line.ref,
}, context=context)
move_vals = self._prepare_move(cr, uid, st_line, st_line_number, context=context)
move_id = account_move_obj.create(cr, uid, move_vals, context=context)
account_bank_statement_line_obj.write(cr, uid, [st_line.id], {
'move_ids': [(4, move_id, False)]
})
torec = []
if st_line.amount >= 0:
account_id = st.journal_id.default_credit_account_id.id
else:
account_id = st.journal_id.default_debit_account_id.id
acc_cur = ((st_line.amount<=0) and st.journal_id.default_debit_account_id) or st_line.account_id
context.update({
'res.currency.compute.account': acc_cur,
})
amount = res_currency_obj.compute(cr, uid, st.currency.id,
company_currency_id, st_line.amount, context=context)
val = {
'name': st_line.name,
'date': st_line.date,
'ref': st_line.ref,
'move_id': move_id,
'partner_id': ((st_line.partner_id) and st_line.partner_id.id) or False,
'account_id': (st_line.account_id) and st_line.account_id.id,
'credit': ((amount>0) and amount) or 0.0,
'debit': ((amount<0) and -amount) or 0.0,
'statement_id': st.id,
'journal_id': st.journal_id.id,
'period_id': st.period_id.id,
'currency_id': st.currency.id,
'analytic_account_id': st_line.analytic_account_id and st_line.analytic_account_id.id or False
}
if st.currency.id <> company_currency_id:
amount_cur = res_currency_obj.compute(cr, uid, company_currency_id,
st.currency.id, amount, context=context)
val['amount_currency'] = -amount_cur
if st_line.account_id and st_line.account_id.currency_id and st_line.account_id.currency_id.id <> company_currency_id:
val['currency_id'] = st_line.account_id.currency_id.id
amount_cur = res_currency_obj.compute(cr, uid, company_currency_id,
st_line.account_id.currency_id.id, amount, context=context)
val['amount_currency'] = -amount_cur
move_line_id = account_move_line_obj.create(cr, uid, val, context=context)
bank_move_vals = self._prepare_bank_move_line(cr, uid, st_line, move_id, amount,
company_currency_id, context=context)
move_line_id = account_move_line_obj.create(cr, uid, bank_move_vals, context=context)
torec.append(move_line_id)
# Fill the secondary amount/currency
# if currency is not the same than the company
amount_currency = False
currency_id = False
if st.currency.id <> company_currency_id:
amount_currency = st_line.amount
currency_id = st.currency.id
account_move_line_obj.create(cr, uid, {
'name': st_line.name,
'date': st_line.date,
'ref': st_line.ref,
'move_id': move_id,
'partner_id': ((st_line.partner_id) and st_line.partner_id.id) or False,
'account_id': account_id,
'credit': ((amount < 0) and -amount) or 0.0,
'debit': ((amount > 0) and amount) or 0.0,
'statement_id': st.id,
'journal_id': st.journal_id.id,
'period_id': st.period_id.id,
'amount_currency': amount_currency,
'currency_id': currency_id,
}, context=context)
counterpart_move_vals = self._prepare_counterpart_move_line(cr, uid, st_line, move_id,
amount, company_currency_id, context=context)
account_move_line_obj.create(cr, uid, counterpart_move_vals, context=context)
for line in account_move_line_obj.browse(cr, uid, [x.id for x in
account_move_obj.browse(cr, uid, move_id,
+5 -3
View File
@@ -2,10 +2,12 @@
<openerp>
<data>
<menuitem icon="terp-account" id="menu_finance" name="Invoicing" sequence="14"
<!-- Top menu item -->
<menuitem name="Invoicing"
id="menu_finance"
groups="group_account_user,group_account_manager,group_account_invoice"
web_icon="images/accounting.png"
web_icon_hover="images/accounting-hover.png"/>
sequence="100"/>
<menuitem id="menu_finance_receivables" name="Customers" parent="menu_finance" sequence="2"/>
<menuitem id="menu_finance_payables" name="Suppliers" parent="menu_finance" sequence="3"/>
<menuitem id="menu_finance_bank_and_cash" name="Bank and Cash" parent="menu_finance" sequence="4"
+2 -2
View File
@@ -327,7 +327,7 @@ class account_move_line(osv.osv):
if account and ((not fields) or ('debit' in fields) or ('credit' in fields)):
data['account_id'] = account.id
# Propose the price VAT excluded, the VAT will be added when confirming line
# Propose the price Tax excluded, the Tax will be added when confirming line
if account.tax_ids:
taxes = fiscal_pos_obj.map_tax(cr, uid, part and part.property_account_position or False, account.tax_ids)
tax = tax_obj.browse(cr, uid, taxes)
@@ -1347,7 +1347,7 @@ class account_move_line(osv.osv):
}
if data['tax_code_id']:
self.create(cr, uid, data, context)
#create the VAT movement
#create the Tax movement
data = {
'move_id': vals['move_id'],
'name': tools.ustr(vals['name'] or '') + ' ' + tools.ustr(tax['name'] or ''),
+1 -1
View File
@@ -45,7 +45,7 @@ class res_company(osv.osv):
_defaults = {
'expects_chart_of_accounts': True,
'tax_calculation_rounding_method': 'round_per_line',
'overdue_msg': '''Dear Sir, dear Madam,
'overdue_msg': '''Dear Sir/Madam,
Our records indicate that some payments on your account are still due. Please find details below.
If the amount has already been paid, please disregard this notice. Otherwise, please forward us the total amount stated below.
+7 -7
View File
@@ -203,7 +203,7 @@ msgstr ""
#. module: account
#: help:account.tax.code,notprintable:0
#: help:account.tax.code.template,notprintable:0
msgid "Check this box if you don't want any VAT related to this Tax Code to appear on invoices"
msgid "Check this box if you don't want any tax related to this tax code to appear on invoices"
msgstr ""
#. module: account
@@ -1853,7 +1853,7 @@ msgstr ""
#. module: account
#: report:account.journal.period.print.sale.purchase:0
msgid "VAT Declaration"
msgid "Tax Declaration"
msgstr ""
#. module: account
@@ -2249,7 +2249,7 @@ msgstr ""
#. module: account
#: view:account.vat.declaration:0
msgid "This menu prints a VAT declaration based on invoices or payments. Select one or several periods of the fiscal year. The information required for a tax declaration is automatically generated by OpenERP from invoices (or payments, in some countries). This data is updated in real time. That’s very useful because it enables you to preview at any time the tax that you owe at the start and end of the month or quarter."
msgid "This menu prints a tax declaration based on invoices or payments. Select one or several periods of the fiscal year. The information required for a tax declaration is automatically generated by OpenERP from invoices (or payments, in some countries). This data is updated in real time. That’s very useful because it enables you to preview at any time the tax that you owe at the start and end of the month or quarter."
msgstr ""
#. module: account
@@ -4480,7 +4480,7 @@ msgstr ""
#. module: account
#: model:ir.actions.act_window,name:account.action_account_vat_declaration
#: model:ir.model,name:account.model_account_vat_declaration
msgid "Account Vat Declaration"
msgid "Account Tax Declaration"
msgstr ""
#. module: account
@@ -4821,7 +4821,7 @@ msgstr ""
#: help:account.tax.template,ref_base_code_id:0
#: help:account.tax.template,ref_tax_code_id:0
#: help:account.tax.template,tax_code_id:0
msgid "Use this code for the VAT declaration."
msgid "Use this code for the tax declaration."
msgstr ""
#. module: account
@@ -5247,7 +5247,7 @@ msgstr ""
#. module: account
#: report:account.journal.period.print.sale.purchase:0
msgid "VAT"
msgid "Tax"
msgstr ""
#. module: account
@@ -7561,7 +7561,7 @@ msgstr ""
#. module: account
#: model:ir.actions.act_window,help:account.action_account_vat_declaration
msgid "This menu print a VAT declaration based on invoices or payments. You can select one or several periods of the fiscal year. Information required for a tax declaration is automatically generated by OpenERP from invoices (or payments, in some countries). This data is updated in real time. That’s very useful because it enables you to preview at any time the tax that you owe at the start and end of the month or quarter."
msgid "This menu print a tax declaration based on invoices or payments. You can select one or several periods of the fiscal year. Information required for a tax declaration is automatically generated by OpenERP from invoices (or payments, in some countries). This data is updated in real time. That’s very useful because it enables you to preview at any time the tax that you owe at the start and end of the month or quarter."
msgstr ""
#. module: account
+7 -17
View File
@@ -78,18 +78,19 @@
<page string="Accounting" col="4">
<group>
<group>
<field name="property_account_receivable" groups="account.group_account_invoice" />
<field name="property_account_position" widget="selection"/>
</group>
<group>
<field name="last_reconciliation_date"/>
</group>
<group>
<field name="property_account_receivable" groups="account.group_account_invoice" />
<field name="property_payment_term" widget="selection"/>
</group>
<group>
<field name="property_account_payable" groups="account.group_account_invoice"/>
</group>
<group>
<field name="credit"/>
<field name="credit_limit"/>
</group>
<group>
<field name="property_account_payable" groups="account.group_account_invoice"/>
<field name="debit"/>
</group>
</group>
@@ -142,16 +143,5 @@
view_type="form"
view_mode="tree,form,graph,calendar"/>
<record id="view_res_partner_reconcile" model="ir.ui.view">
<field name="name">res.partner.form.reconcile</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<field name="credit_limit" position="after">
<field name="last_reconciliation_date"/>
</field>
</field>
</record>
</data>
</openerp>
@@ -219,7 +219,7 @@
<td><para style="P10a">Account</para></td>
<td><para style="P10a">Partner</para></td>
<td><para style="P10a">Label</para></td>
<td><para style="P10a">VAT</para></td>
<td><para style="P10a">Tax</para></td>
<td><para style="P11"></para></td>
<td><para style="P10b">Debit</para></td>
<td><para style="P10b">Credit</para></td>
@@ -271,7 +271,7 @@
<td><para style="P10a">Account</para></td>
<td><para style="P10a">Partner</para></td>
<td><para style="P10a">Label</para></td>
<td><para style="P10a">VAT</para></td>
<td><para style="P10a">Tax</para></td>
<td><para style="P11"></para></td>
<td><para style="P10b">Debit</para></td>
<td><para style="P10b">Credit</para></td>
@@ -330,7 +330,7 @@
<blockTable colWidths="15.0,80.0,20.0,182.0" style="Table1" repeatRows="1">
<tr>
<td><para style="P12"></para></td>
<td><para style="P12">VAT Declaration</para></td>
<td><para style="P12">Tax Declaration</para></td>
<td><para style="P12"></para></td>
<td><para style="P12"></para></td>
</tr>
@@ -36,7 +36,7 @@ class accounting_report(osv.osv_memory):
'period_to_cmp': fields.many2one('account.period', 'End Period'),
'date_from_cmp': fields.date("Start Date"),
'date_to_cmp': fields.date("End Date"),
'debit_credit': fields.boolean('Display Debit/Credit Columns', help="This option allow you to get more details about your the way your balances are computed. Because it is space consumming, we do not allow to use it while doing a comparison"),
'debit_credit': fields.boolean('Display Debit/Credit Columns', help="This option allows you to get more details about the way your balances are computed. Because it is space consuming, we do not allow to use it while doing a comparison."),
}
def _get_account_report(self, cr, uid, context=None):
@@ -26,7 +26,7 @@ class account_common_journal_report(osv.osv_memory):
_description = 'Account Common Journal Report'
_inherit = "account.common.report"
_columns = {
'amount_currency': fields.boolean("With Currency", help="Print Report with the currency column if the currency is different then the company currency"),
'amount_currency': fields.boolean("With Currency", help="Print Report with the currency column if the currency differs from the company currency."),
}
def _build_contexts(self, cr, uid, ids, data, context=None):
@@ -30,7 +30,7 @@ class account_report_general_ledger(osv.osv_memory):
'landscape': fields.boolean("Landscape Mode"),
'initial_balance': fields.boolean('Include Initial Balances',
help='If you selected to filter by date or period, this field allow you to add a row to display the amount of debit/credit/balance that precedes the filter you\'ve set.'),
'amount_currency': fields.boolean("With Currency", help="It adds the currency column if the currency is different then the company currency"),
'amount_currency': fields.boolean("With Currency", help="It adds the currency column on report if the currency differs from the company currency."),
'sortby': fields.selection([('sort_date', 'Date'), ('sort_journal_partner', 'Journal & Partner')], 'Sort by', required=True),
'journal_ids': fields.many2many('account.journal', 'account_report_general_ledger_journal_rel', 'account_id', 'journal_id', 'Journals', required=True),
}
@@ -34,7 +34,7 @@ class account_partner_ledger(osv.osv_memory):
help='If you selected to filter by date or period, this field allow you to add a row to display the amount of debit/credit/balance that precedes the filter you\'ve set.'),
'filter': fields.selection([('filter_no', 'No Filters'), ('filter_date', 'Date'), ('filter_period', 'Periods'), ('unreconciled', 'Unreconciled Entries')], "Filter by", required=True),
'page_split': fields.boolean('One Partner Per Page', help='Display Ledger Report with One partner per page'),
'amount_currency': fields.boolean("With Currency", help="It adds the currency column if the currency is different then the company currency"),
'amount_currency': fields.boolean("With Currency", help="It adds the currency column on report if the currency differs from the company currency."),
'journal_ids': fields.many2many('account.journal', 'account_partner_ledger_journal_rel', 'account_id', 'journal_id', 'Journals', required=True),
}
_defaults = {
+4 -4
View File
@@ -3,12 +3,12 @@
<data>
<record id="view_account_vat_declaration" model="ir.ui.view">
<field name="name">Account Vat Declaration</field>
<field name="name">Account Tax Declaration</field>
<field name="model">account.vat.declaration</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Taxes Report" version="7.0">
<label colspan="4" string="This menu prints a VAT declaration based on invoices or payments. Select one or several periods of the fiscal year. The information required for a tax declaration is automatically generated by OpenERP from invoices (or payments, in some countries). This data is updated in real time. That’s very useful because it enables you to preview at any time the tax that you owe at the start and end of the month or quarter."/>
<label colspan="4" string="This menu prints a tax declaration based on invoices or payments. Select one or several periods of the fiscal year. The information required for a tax declaration is automatically generated by OpenERP from invoices (or payments, in some countries). This data is updated in real time. That’s very useful because it enables you to preview at any time the tax that you owe at the start and end of the month or quarter."/>
<group string="Taxes Report" col="4">
<field name="chart_tax_id" widget='selection'/>
<field name="fiscalyear_id"/>
@@ -30,13 +30,13 @@
</record>
<record id="action_account_vat_declaration" model="ir.actions.act_window">
<field name="name">Account Vat Declaration</field>
<field name="name">Account Tax Declaration</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.vat.declaration</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
<field name="help">This menu print a VAT declaration based on invoices or payments. You can select one or several periods of the fiscal year. Information required for a tax declaration is automatically generated by OpenERP from invoices (or payments, in some countries). This data is updated in real time. That’s very useful because it enables you to preview at any time the tax that you owe at the start and end of the month or quarter.</field>
<field name="help">This menu print a tax declaration based on invoices or payments. You can select one or several periods of the fiscal year. Information required for a tax declaration is automatically generated by OpenERP from invoices (or payments, in some countries). This data is updated in real time. That’s very useful because it enables you to preview at any time the tax that you owe at the start and end of the month or quarter.</field>
</record>
<menuitem
+3 -2
View File
@@ -24,14 +24,15 @@
"author" : "OpenERP SA",
"category": 'Accounting & Finance',
"sequence": 10,
"summary": "Accounts Moves, Journals, Chart of Accounts",
"description": """
Accounting Access Rights.
=========================
This module gives the admin user the access to all the accounting features
This module gives the Admin user the access to all the accounting features
like the journal items and the chart of accounts.
It assigns manager and user access rights to the Administrator, and only
It assigns manager and user access rights to the Administrator and only
user rights to Demo user.
""",
'website': 'http://www.openerp.com',
@@ -30,7 +30,7 @@ This module is for modifying account analytic view to show important data to pro
Adds menu to show relevant information to each manager.
You can also view the report of account analytic summary
user-wise as well as month wise.
user-wise as well as month-wise.
""",
"author": "Camptocamp",
"website": "http://www.camptocamp.com/",
@@ -446,7 +446,7 @@ class account_analytic_account(osv.osv):
help="Computed using the formula: Invoiced Amount - Total Costs.",
digits_compute=dp.get_precision('Account')),
'theorical_margin': fields.function(_theorical_margin_calc, type='float', string='Theoretical Margin',
help="Computed using the formula: Theorial Revenue - Total Costs",
help="Computed using the formula: Theoretical Revenue - Total Costs",
digits_compute=dp.get_precision('Account')),
'real_margin_rate': fields.function(_real_margin_rate_calc, type='float', string='Real Margin Rate (%)',
help="Computes using the formula: (Real Margin / Total Costs) * 100.",
@@ -3,5 +3,3 @@ access_account_analytic_analysis_summary_user_sale,account_analytic_analysis.sum
access_account_analytic_analysis_summary_month_sale,account_analytic_analysis.summary.month sale,model_account_analytic_analysis_summary_month,base.group_sale_salesman,1,0,0,0
access_account_analytic_analysis_summary_user,account_analytic_analysis.summary.user,model_account_analytic_analysis_summary_user,account.group_account_manager,1,0,0,0
access_account_analytic_analysis_summary_month,account_analytic_analysis.summary.month,model_account_analytic_analysis_summary_month,account.group_account_manager,1,0,0,0
access_account_analytic_analysis_summary_user_project_user,account_analytic_analysis.summary.user project,model_account_analytic_analysis_summary_user,project.group_project_user,1,0,0,0
access_account_analytic_analysis_summary_month_project_user,account_analytic_analysis.summary.month project,model_account_analytic_analysis_summary_month,project.group_project_user,1,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
3 access_account_analytic_analysis_summary_month_sale account_analytic_analysis.summary.month sale model_account_analytic_analysis_summary_month base.group_sale_salesman 1 0 0 0
4 access_account_analytic_analysis_summary_user account_analytic_analysis.summary.user model_account_analytic_analysis_summary_user account.group_account_manager 1 0 0 0
5 access_account_analytic_analysis_summary_month account_analytic_analysis.summary.month model_account_analytic_analysis_summary_month account.group_account_manager 1 0 0 0
access_account_analytic_analysis_summary_user_project_user account_analytic_analysis.summary.user project model_account_analytic_analysis_summary_user project.group_project_user 1 0 0 0
access_account_analytic_analysis_summary_month_project_user account_analytic_analysis.summary.month project model_account_analytic_analysis_summary_month project.group_project_user 1 0 0 0
+10 -8
View File
@@ -23,15 +23,17 @@
'name' : 'Account Analytic Defaults',
'version' : '1.0',
"category": 'Accounting & Finance',
'description': """Set default values for your analytic accounts
Allows to automatically select analytic accounts based on criterions:
=====================================================================
'description': """
Set default values for your analytic accounts.
=============================================
* Product
* Partner
* User
* Company
* Date
Allows to automatically select analytic accounts based on criterions:
---------------------------------------------------------------------
* Product
* Partner
* User
* Company
* Date
""",
'author' : 'OpenERP SA',
'website' : 'http://www.openerp.com',
@@ -30,13 +30,13 @@ class account_analytic_default(osv.osv):
_order = "sequence"
_columns = {
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of analytic distribution"),
'analytic_id': fields.many2one('account.analytic.account', 'Analytic Account' , help="Analytical Account"),
'product_id': fields.many2one('product.product', 'Product', ondelete='cascade', help="select a product which will use analytical account specified in analytic default (eg. create new cutomer invoice or Sale order if we select this product, it will automatically take this as an analytical account)"),
'partner_id': fields.many2one('res.partner', 'Partner', ondelete='cascade', help="select a partner which will use analytical account specified in analytic default (eg. create new cutomer invoice or Sale order if we select this partner, it will automatically take this as an analytical account)"),
'user_id': fields.many2one('res.users', 'User', ondelete='cascade', help="select a user which will use analytical account specified in analytic default"),
'company_id': fields.many2one('res.company', 'Company', ondelete='cascade', help="select a company which will use analytical account specified in analytic default (eg. create new cutomer invoice or Sale order if we select this company, it will automatically take this as an analytical account)"),
'date_start': fields.date('Start Date', help="Default start date for this Analytical Account"),
'date_stop': fields.date('End Date', help="Default end date for this Analytical Account"),
'analytic_id': fields.many2one('account.analytic.account', 'Analytic Account'),
'product_id': fields.many2one('product.product', 'Product', ondelete='cascade', help="Select a product which will use analytic account specified in analytic default (e.g. create new customer invoice or Sale order if we select this product, it will automatically take this as an analytic account)"),
'partner_id': fields.many2one('res.partner', 'Partner', ondelete='cascade', help="Select a partner which will use analytic account specified in analytic default (e.g. create new customer invoice or Sale order if we select this partner, it will automatically take this as an analytic account)"),
'user_id': fields.many2one('res.users', 'User', ondelete='cascade', help="Select a user which will use analytic account specified in analytic default."),
'company_id': fields.many2one('res.company', 'Company', ondelete='cascade', help="Select a company which will use analytic account specified in analytic default (e.g. create new customer invoice or Sale order if we select this company, it will automatically take this as an analytic account)"),
'date_start': fields.date('Start Date', help="Default start date for this Analytic Account."),
'date_stop': fields.date('End Date', help="Default end date for this Analytic Account."),
}
def account_get(self, cr, uid, product_id=None, partner_id=None, user_id=None, date=None, context=None):
+2 -1
View File
@@ -25,7 +25,7 @@
'version': '1.0',
'category': 'Accounting & Finance',
'description': """
This module allows to use several analytic plans, according to the general journal.
This module allows to use several analytic plans according to the general journal.
===================================================================================
Here multiple analytic lines are created when the invoice or the entries
@@ -55,6 +55,7 @@ Plan2:
So when this line of invoice will be confirmed, it will generate 3 analytic lines,
for one account entry.
The analytic plan validates the minimum and maximum percentage at the time of creation
of distribution models.
""",
+9 -6
View File
@@ -27,12 +27,15 @@
This module supports the Anglo-Saxon 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.
Anglo-Saxons accounting does take the cost when sales invoice is created, Continental accounting will take the cost at the moment the goods are shipped.
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 separate account""",
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. Anglo-Saxons accounting does take the cost when sales invoice is created,
Continental accounting will take the cost at the moment the goods are shipped.
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 separate account.""",
"images": ["images/account_anglo_saxon.jpeg"],
"depends": ["product", "purchase"],
"category": "Hidden/Dependency",
+7 -3
View File
@@ -24,9 +24,13 @@
"version" : "1.0",
"depends" : ["account"],
"author" : "OpenERP S.A.",
"description": """Financial and accounting asset management.
This Module manages the assets owned by a company or an individual. It will keep track of depreciation's occurred on
those assets. And it allows to create Move's of the depreciation lines.
"description": """
Financial and accounting asset management.
==========================================
This Module manages the assets owned by a company or an individual. It will keep track of depreciation's occurred on those assets.
And it allows to create Move's of the depreciation lines.
""",
"website" : "http://www.openerp.com",
"category" : "Accounting & Finance",
@@ -20,22 +20,23 @@
#
##############################################################################
{
'name': 'Bank Statement extensions to support e-banking',
'name': 'Bank Statement Extensions to Support e-banking',
'version': '0.3',
'license': 'AGPL-3',
'author': 'Noviat',
'category': 'Generic Modules/Accounting',
'description': '''
Module that extends the standard account_bank_statement_line object for improved e-banking support.
===================================================================================================
Adds
- valuta date
- batch payments
- traceability of changes to bank statement lines
- bank statement line views
- bank statements balances report
- performance improvements for digital import of bank statement (via 'ebanking_import' context flag)
- name_search on res.partner.bank enhanced to allow search on bank and iban account numbers
This module adds:
- valuta date
- batch payments
- traceability of changes to bank statement lines
- bank statement line views
- bank statements balances report
- performance improvements for digital import of bank statement (via 'ebanking_import' context flag)
- name_search on res.partner.bank enhanced to allow search on bank and iban account numbers
''',
'depends': ['account'],
'demo_xml': [],
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2012-06-01 04:42+0000\n"
"PO-Revision-Date: 2012-07-24 08:18+0000\n"
"Last-Translator: Jalpesh Patel(OpenERP) <pja@tinyerp.com>\n"
"Language-Team: Gujarati <gu@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-07-14 06:27+0000\n"
"X-Generator: Launchpad (build 15614)\n"
"X-Launchpad-Export-Date: 2012-07-25 04:37+0000\n"
"X-Generator: Launchpad (build 15679)\n"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
@@ -54,7 +54,7 @@ msgstr "ઉધાર"
#: model:ir.actions.act_window,name:account_bank_statement_extensions.action_cancel_statement_line
#: model:ir.model,name:account_bank_statement_extensions.model_cancel_statement_line
msgid "Cancel selected statement lines"
msgstr ""
msgstr "પસંદ કરેલ નિવેદન લીટીઓ રદ કરો"
#. module: account_bank_statement_extensions
#: constraint:res.partner.bank:0
+7 -8
View File
@@ -28,21 +28,20 @@
This module allows accountants to manage analytic and crossovered budgets.
==========================================================================
Once the Master Budgets and the Budgets are defined (in Accounting/Budgets/),
the Project Managers can set the planned amount on each Analytic Account.
Once the Budgets are defined (in Invoicing/Budgets/Budgets), the Project Managers
can set the planned amount on each Analytic Account.
The accountant has the possibility to see the total of amount planned for each
Budget and Master Budget in order to ensure the total planned is not
greater/lower than what he planned for this Budget/Master Budget. Each list of
record can also be switched to a graphical view of it.
Budget in order to ensure the total planned is not greater/lower than what he planned
for this Budget. Each list of record can also be switched to a graphical view of it.
Three reports are available:
1. The first is available from a list of Budgets. It gives the spreading, for these Budgets, of the Analytic Accounts per Master Budgets.
1. The first is available from a list of Budgets. It gives the spreading, for these Budgets, of the Analytic Accounts.
2. The second is a summary of the previous one, it only gives the spreading, for the selected Budgets, of the Analytic Accounts.
3. The last one is available from the Analytic Chart of Accounts. It gives the spreading, for the selected Analytic Accounts, of the Master Budgets per Budgets.
3. The last one is available from the Analytic Chart of Accounts. It gives the spreading, for the selected Analytic Accounts of Budgets.
""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
+2 -1
View File
@@ -28,7 +28,8 @@
Allows cancelling accounting entries.
=====================================
This module adds 'Allow cancelling entries' field on form view of account journal. If set to true it allows user to cancel entries & invoices.
This 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',
"images" : ["images/account_cancel.jpeg"],
+2 -2
View File
@@ -19,12 +19,12 @@
#
##############################################################################
{
"name" : "Check writing",
"name" : "Check Writing",
"version" : "1.1",
"author" : "OpenERP SA, NovaPoint Group",
"category": "Generic Modules/Accounting",
"description": """
Module for the Check writing and check printing
Module for the Check Writing and Check Printing.
""",
'website': 'http://www.openerp.com',
'init_xml': [],
+24 -21
View File
@@ -20,7 +20,7 @@
#
##############################################################################
{
"name": 'Belgium - Import bank CODA statements',
"name": 'Belgium - Import Bank CODA Statements',
"version": '2.1',
"author": 'Noviat',
"category": 'Accounting & Finance',
@@ -29,37 +29,40 @@ Module to import CODA bank statements.
======================================
Supported are CODA flat files in V2 format from Belgian bank accounts.
* CODA v1 support.
* CODA v2.2 support.
* Foreign Currency support.
* Support for all data record types (0, 1, 2, 3, 4, 8, 9).
* Parsing & logging of all Transaction Codes and Structured Format Communications.
* Automatic Financial Journal assignment via CODA configuration parameters.
* Support for multiple Journals per Bank Account Number.
* Support for multiple statements from different bank accounts in a single CODA file.
* Support for 'parsing only' CODA Bank Accounts (defined as type='info' in the CODA Bank Account configuration records).
* Multi-language CODA parsing, parsing configuration data provided for EN, NL, FR.
* CODA v1 support.
* CODA v2.2 support.
* Foreign Currency support.
* Support for all data record types (0, 1, 2, 3, 4, 8, 9).
* Parsing & logging of all Transaction Codes and Structured Format Communications.
* Automatic Financial Journal assignment via CODA configuration parameters.
* Support for multiple Journals per Bank Account Number.
* Support for multiple statements from different bank accounts in a single CODA file.
* Support for 'parsing only' CODA Bank Accounts (defined as type='info' in the CODA Bank Account configuration records).
* Multi-language CODA parsing, parsing configuration data provided for EN, NL, FR.
The machine readable CODA Files are parsed and stored in human readable format in CODA Bank Statements.
Also Bank Statements are generated containing a subset of the CODA information (only those transaction lines
that are required for the creation of the Financial Accounting records).
The CODA Bank Statement is a 'read-only' object, hence remaining a reliable representation of the original CODA file
whereas the Bank Statement will get modified as required by accounting business processes.
The machine readable CODA Files are parsed and stored in human readable format in
CODA Bank Statements. Also Bank Statements are generated containing a subset of
the CODA information (only those transaction lines that are required for the creation
of the Financial Accounting records). The CODA Bank Statement is a 'read-only'
object, hence remaining a reliable representation of the original CODA file whereas
the Bank Statement will get modified as required by accounting business processes.
CODA Bank Accounts configured as type 'Info' will only generate CODA Bank Statements.
A removal of one object in the CODA processing results in the removal of the associated objects.
The removal of a CODA File containing multiple Bank Statements will also remove those associated
statements.
A removal of one object in the CODA processing results in the removal of the associated
objects. The removal of a CODA File containing multiple Bank Statements will also
remove those associated statements.
The following reconciliation logic has been implemented in the CODA processing:
1) The Company's Bank Account Number of the CODA statement is compared against the Bank Account Number field of the Company's CODA Bank Account configuration records (whereby bank accounts defined in type='info' configuration records are ignored). If this is the case an 'internal transfer' transaction is generated using the 'Internal Transfer Account' field of the CODA File Import wizard.
2) As a second step the 'Structured Communication' field of the CODA transaction line is matched against the reference field of in- and outgoing invoices (supported : Belgian Structured Communication Type).
3) When the previous step doesn't find a match, the transaction counterparty is located via the Bank Account Number configured on the OpenERP Customer and Supplier records.
4) In case the previous steps are not successful, the transaction is generated by using the 'Default Account for Unrecognized Movement' field of the CODA File Import wizard in order to allow further manual processing.
In stead of a manual adjustment of the generated Bank Statements, you can also re-import the CODA
after updating the OpenERP database with the information that was missing to allow automatic reconciliation.
In stead of a manual adjustment of the generated Bank Statements, you can also
re-import the CODA after updating the OpenERP database with the information that
was missing to allow automatic reconciliation.
Remark on CODA V1 support:
In some cases a transaction code, transaction category or structured communication code has been given a new or clearer description in CODA V2.
+13 -8
View File
@@ -28,17 +28,22 @@ Module to automate letters for unpaid invoices, with multi-level recalls.
==========================================================================
You can define your multiple levels of recall through the menu:
Accounting/Configuration/Miscellaneous/Follow-ups
Once it is defined, you can automatically print recalls every day through simply clicking on the menu:
Accounting/Periodical Processing/Billing/Send follow-ups
Invoicing/Configuration/Miscellaneous/Follow-ups
It will generate a PDF with all the letters according to the the
different levels of recall defined. You can define different policies
for different companies. You can also send mail to the customer.
Once it is defined, you can automatically print recalls every day through simply
clicking on the menu:
Note that if you want to check the follow-up level for a given partner/account entry, you can do from in the menu:
Accounting/Reporting/Generic Reporting/Partners/Follow-ups Sent
Invoicing/Periodical Processing/Billing/Send follow-ups
It will generate a PDF with all the letters according to the the different levels
of recall defined. You can define different policies for different companies. You
can also send mail to the customer.
Note that if you want to check the follow-up level for a given partner/account
entry, you can do from in the menu:
Invoicing/Reporting/Generic Reporting/Partners/Follow-ups Sent
""",
'author': 'OpenERP SA',
+2 -2
View File
@@ -29,8 +29,8 @@ Module to manage the payment of your supplier invoices.
=======================================================
This module allows you to create and manage your payment orders, with purposes to
* serve as base for an easy plug-in of various automated payment mechanisms.
* provide a more efficient way to manage invoice payment.
* serve as base for an easy plug-in of various automated payment mechanisms.
* provide a more efficient way to manage invoice payment.
Warning:
--------
+5 -3
View File
@@ -23,12 +23,14 @@
"name" : "eInvoicing & Payments",
"version" : "1.0",
"author" : 'OpenERP SA',
"summary": 'Supplier & Customer Invoices, Payments',
"description": """
Account Voucher module includes all the basic requirements of Voucher Entries for Bank, Cash, Sales, Purchase, Expanse, Contra, etc.
====================================================================================================================================
eInvoicing & Payments module manage all Voucher Entries such as "Reconciliation Entries", "Adjustment Entries", "Closing or Opening Entries" for Sales, Purchase, Bank, Cash, Expense, Contra.
==============================================================================================================================================================================================
* Voucher Entry
* Voucher Receipt
* Voucher Receipt [Sales & Purchase]
* Voucher Payment [Customer & Supplier]
* Cheque Register
""",
"category": 'Accounting & Finance',
+1 -1
View File
@@ -31,7 +31,7 @@ Module for defining analytic accounting object.
===============================================
In OpenERP, analytic accounts are linked to general accounts but are treated
totally independently. So you can enter various different analytic operations
totally independently. So, you can enter various different analytic operations
that have no counterpart in the general financial accounts.
""",
"init_xml" : [],
@@ -26,7 +26,6 @@
'category': 'Hidden',
'description': """
This module is for modifying project view to show some data related to the hr_expense module.
======================================================================================================
""",
"author": "OpenERP S.A.",
@@ -26,7 +26,6 @@
'category': 'Hidden',
'description': """
This module is for modifying account analytic view to show some data related to the hr_expense module.
======================================================================================================
""",
"author": "OpenERP S.A.",
@@ -20,14 +20,14 @@
##############################################################################
{
"name" : "Contract On Project",
"name" : "Contract on Project",
"version": "1.1",
"author" : "OpenERP SA",
'category': 'Hidden',
"website" : "http://www.openerp.com",
"depends" : ["project", "account_analytic_analysis"],
"description": """
Add "Contract Data" in project view.
Add "Contract Data" in project view.
""",
"init_xml" : [],
"update_xml": ["analytic_contract_project_view.xml"],
@@ -78,6 +78,7 @@ class task(osv.osv):
def create(self, cr, uid, vals, context=None):
task_id = super(task, self).create(cr, uid, vals, context=context)
task_browse = self.browse(cr, uid, task_id, context=context)
self.pool.get('account.analytic.account').message_append_note(cr, uid, [task_browse.project_id.analytic_account_id.id], body=_("Task <em>%s</em> has been <b>created</b>.") % (task_browse.name), context=context)
if task_browse.project_id.analytic_account_id:
self.pool.get('account.analytic.account').message_append_note(cr, uid, [task_browse.project_id.analytic_account_id.id], body=_("Task <em>%s</em> has been <b>created</b>.") % (task_browse.name), context=context)
return task_id
task()
+6 -2
View File
@@ -28,9 +28,13 @@
This module allows you to define what is the default function of a specific user on a given account.
====================================================================================================
This is mostly used when a user encodes his timesheet: the values are retrieved and the fields are auto-filled. But the possibility to change these values is still available.
This is mostly used when a user encodes his timesheet: the values are retrieved
and the fields are auto-filled. But the possibility to change these values is
still available.
Obviously if no data has been recorded for the current account, the default value is given as usual by the employee data so that this module is perfectly compatible with older configurations.
Obviously if no data has been recorded for the current account, the default
value is given as usual by the employee data so that this module is perfectly
compatible with older configurations.
""",
'author': 'OpenERP SA',
+1 -1
View File
@@ -30,7 +30,7 @@ This module allows you to anonymize a database.
===============================================
This module allows you to keep your data confidential for a given database.
This process is useful if you want to use the migration process and protect
This process is useful, if you want to use the migration process and protect
your own or your customer’s confidential data. The principle is that you run
an anonymization tool which will hide your confidential data(they are replaced
by ‘XXX’ characters). Then you can send the anonymized database to the migration
+1 -1
View File
@@ -1,6 +1,6 @@
{
'name': 'Anonymous',
'description': 'Allow anonymous access to OpenERP',
'description': 'Allow anonymous access to OpenERP.',
'author': 'OpenERP SA',
'version': '1.0',
'category': 'Tools',
+2 -1
View File
@@ -28,7 +28,8 @@
This module is to configure modules related to an association.
==============================================================
It installs the profile for associations to manage events, registrations, memberships, membership products (schemes), etc.
It installs the profile for associations to manage events, registrations, memberships,
membership products (schemes).
""",
'author': 'OpenERP SA',
'depends': ['base_setup', 'membership', 'event'],
+5 -6
View File
@@ -1,14 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<menuitem
name="Association"
<!-- Top menu item -->
<menuitem name="Association"
id="base.menu_association"
icon="terp-calendar"
sequence="9"
web_icon="images/association.png"
web_icon_hover="images/association-hover.png"/>
sequence="70"/>
<menuitem name="Configuration" id="base.menu_event_config" parent="base.menu_association" sequence="30"/>
<menuitem name="Association" id="base.menu_report_association" parent="base.menu_reporting" sequence="23"/>
</data>
</openerp>
+2 -2
View File
@@ -28,8 +28,8 @@
This module lets administrator track every user operation on all the objects of the system.
===========================================================================================
The administrator can subscribe to rules for read, write and
delete on objects and can check logs.
The administrator can subscribe to rules for read, write and delete on objects
and can check logs.
""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
+1 -1
View File
@@ -29,7 +29,7 @@ This module allows to implement action rules for any object.
Use automated actions to automatically trigger actions for various screens.
Example: a lead created by a specific user may be automatically set to a specific
Example: A lead created by a specific user may be automatically set to a specific
sales team, or an opportunity which still has status pending after 14 days might
trigger an automatic reminder email.
""",
+3 -2
View File
@@ -39,9 +39,10 @@ If you need to manage your meetings, you should install the CRM module.
'category': 'Hidden/Dependency',
'website': 'http://www.openerp.com',
"init_xml": [
'base_calendar_data.xml'
'base_calendar_data.xml',
'crm_meeting_data.xml',
],
"demo_xml": [],
"demo_xml": ['crm_meeting_demo.xml'],
"update_xml": [
'security/calendar_security.xml',
'security/ir.model.access.csv',
+1 -1
View File
@@ -515,7 +515,7 @@ property or property parameter."),
sub,
body,
attachments=attach and {'invitation.ics': attach} or None,
subtype='html',
content_subtype='html',
reply_to=email_from,
context=context
)
+1 -1
View File
@@ -2,7 +2,7 @@
<openerp>
<data noupdate="1">
<record model="res.request.link" id="request_link_meeting">
<record model="res.request.link" id="request_link_event">
<field name="name">Event</field>
<field name="object">calendar.event</field>
</record>
@@ -12,7 +12,7 @@
<field eval="&quot;Meeting to discuss project plan and hash out the details of implementation &quot;" name="description"/>
<field eval="&quot;open&quot;" name="state"/>
<field eval="time.strftime('%Y-%m-03 10:20:03')" name="date"/>
<field name="categ_id" ref="crm.categ_meet2"/>
<field name="categ_ids" eval="[(6,0,[ref('categ_meet2')])]"/>
<field eval="&quot;Follow-up on proposal&quot;" name="name"/>
<field eval="time.strftime('%Y-%m-03 16:38:03')" name="date_deadline"/>
<field eval="6.3" name="duration"/>
@@ -24,7 +24,7 @@
<field name="user_id" ref="base.user_root"/>
<field eval="&quot;draft&quot;" name="state"/>
<field eval="time.strftime('%Y-%m-05 12:01:01')" name="date"/>
<field name="categ_id" ref="crm.categ_meet3"/>
<field name="categ_ids" eval="[(6,0,[ref('categ_meet3')])]"/>
<field eval="&quot;Initial discussion&quot;" name="name"/>
<field eval="time.strftime('%Y-%m-05 19:01:01')" name="date_deadline"/>
<field eval="&quot;contact@tecsas.fr&quot;" name="email_from"/>
@@ -37,7 +37,7 @@
<field eval="&quot;Meeting to discuss project plan and hash out the details of implementation &quot;" name="description"/>
<field eval="&quot;done&quot;" name="state"/>
<field eval="time.strftime('%Y-%m-12 15:55:05')" name="date"/>
<field name="categ_id" ref="crm.categ_meet1"/>
<field name="categ_ids" eval="[(6,0,[ref('categ_meet1')])]"/>
<field eval="&quot;Discuss pricing&quot;" name="name"/>
<field eval="time.strftime('%Y-%m-12 18:55:05')" name="date_deadline"/>
</record>
@@ -48,7 +48,7 @@
<field name="user_id" ref="base.user_demo"/>
<field eval="&quot;open&quot;" name="state"/>
<field eval="time.strftime('%Y-%m-20 10:02:02')" name="date"/>
<field name="categ_id" ref="crm.categ_meet3"/>
<field name="categ_ids" eval="[(6,0,[ref('categ_meet3')])]"/>
<field eval="&quot;Review needs&quot;" name="name"/>
<field eval="time.strftime('%Y-%m-20 16:02:02')" name="date_deadline"/>
</record>
@@ -59,7 +59,7 @@
<field name="user_id" ref="base.user_demo"/>
<field eval="&quot;draft&quot;" name="state"/>
<field eval="time.strftime('%Y-%m-22 11:05:05')" name="date"/>
<field name="categ_id" ref="crm.categ_meet2"/>
<field name="categ_ids" eval="[(6,0,[ref('categ_meet2')])]"/>
<field eval="&quot;Changes in Designing&quot;" name="name"/>
<field eval="time.strftime('%Y-%m-22 16:05:05')" name="date_deadline"/>
<field eval="&quot;info@opensides.be&quot;" name="email_from"/>
@@ -70,7 +70,7 @@
<field name="user_id" ref="base.user_root"/>
<field eval="&quot;done&quot;" name="state"/>
<field eval="time.strftime('%Y-%m-18 13:12:49')" name="date"/>
<field name="categ_id" ref="crm.categ_meet2"/>
<field name="categ_ids" eval="[(6,0,[ref('categ_meet2')])]"/>
<field eval="&quot;Update the data&quot;" name="name"/>
<field eval="13.3" name="duration"/>
<field eval="time.strftime('%Y-%m-19 02:30:49')" name="date_deadline"/>
@@ -78,6 +78,7 @@ send an Email to Invited Person')
att_obj = self.pool.get('calendar.attendee')
user_obj = self.pool.get('res.users')
current_user = user_obj.browse(cr, uid, uid, context=context)
for datas in self.read(cr, uid, ids, context=context):
type = datas.get('type')
vals = []
+16 -17
View File
@@ -26,35 +26,34 @@
"website" : "http://www.openerp.com",
"category" : "Tools",
"description": """
Replaces cleartext passwords in the database with a secure hash
===============================================================
For your existing user base, the removal of the cleartext
passwords occurs immediately when you instal base_crypt.
Replaces cleartext passwords in the database with a secure hash.
================================================================
All passwords will be replaced by a secure, salted, cryptographic
hash, preventing anyone from reading the original password in
the database.
For your existing user base, the removal of the cleartext passwords occurs
immediately when you instal base_crypt.
After installing this module it won't be possible to recover a
forgotten password for your users, the only solution is for an
admin to set a new password.
All passwords will be replaced by a secure, salted, cryptographic hash,
preventing anyone from reading the original password in the database.
Security Warning
++++++++++++++++
After installing this module, it won't be possible to recover a forgotten password
for your users, the only solution is for an admin to set a new password.
Security Warning:
-----------------
Installing this module does not mean you can ignore other security measures,
as the password is still transmitted unencrypted on the network, unless you
are using a secure protocol such as XML-RPCS or HTTPS.
It also does not protect the rest of the content of the database, which may
contain critical data. Appropriate security measures need to be implemented
by the system administrator in all areas, such as: protection of database
backups, system files, remote shell access, physical server access, etc.
backups, system files, remote shell access, physical server access.
Interation with LDAP authentication
+++++++++++++++++++++++++++++++++++
Interation with LDAP authentication:
------------------------------------
This module is currently not compatible with the ``user_ldap`` module and
will disable LDAP authentication completely if installed at the same time.
""",
""",
"depends" : ["base"],
"data" : [],
"auto_install": False,
+3 -2
View File
@@ -23,10 +23,11 @@
'version': '1.0',
"category": 'Hidden/Dependency',
'description': """
This module installs the base for IBAN (International Bank Account Number) bank accounts and checks for its validity.
This module installs the base for IBAN (International Bank Account Number) bank accounts and checks for it's validity.
=====================================================================================================================
The ability to extract the correctly represented local accounts from IBAN accounts with a single statement.
The ability to extract the correctly represented local accounts from IBAN accounts
with a single statement.
""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
+6 -7
View File
@@ -28,19 +28,18 @@
This module allows you to create a new module without any development.
======================================================================
It records all operations on objects during the recording session and
produce a .ZIP module. So you can create your own module directly from
the OpenERP client.
It records all operations on objects during the recording session and produce a
.ZIP module. So you can create your own module directly from the OpenERP client.
This version works for creating and updating existing records. It recomputes
dependencies and links for all types of widgets (many2one, many2many, ...).
It also support workflows and demo/update data.
This should help you to easily create reusable and publishable modules
for custom configurations and demo/testing data.
This should help you to easily create reusable and publishable modules for custom
configurations and demo/testing data.
How to use it:
Run Administration/Customization/Module Creation/Export Customizations As a Module wizard.
How to use it?:
Run Settings/Technical/Module Creation/Export Customizations As a Module wizard.
Select datetime criteria of recording and objects to be recorded and Record module.
""",
'author': 'OpenERP SA',
+2 -3
View File
@@ -28,9 +28,8 @@
This module is used along with OpenERP OpenOffice Plugin.
=========================================================
This module adds wizards to Import/Export .sxw report that
you can modify in OpenOffice. Once you have modified it you can
upload the report using the same wizard.
This module adds wizards to Import/Export .sxw report that you can modify in OpenOffice.
Once you have modified it you can upload the report using the same wizard.
""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
@@ -174,7 +174,7 @@ class Fields(unohelper.Base, XJobExecutor ):
self.win.doModalDialog("lstFields",self.sValue)
else:
ErrorDialog("Please insert user define field Field-1 or Field-4","Just go to File->Properties->User Define \nField-1 Eg. http://localhost:8069 \nOR \nField-4 Eg. account.invoice")
ErrorDialog("Please insert user define field Field-1 or Field-4","Just go to File->Properties->User Define \nField-1 E.g. http://localhost:8069 \nOR \nField-4 E.g. account.invoice")
self.win.endExecute()
def lstbox_selected(self,oItemEvent):
@@ -154,7 +154,7 @@ class AddLang(unohelper.Base, XJobExecutor ):
self.win.doModalDialog("lstFields",self.sValue)
else:
ErrorDialog("Please insert user define field Field-1 or Field-4","Just go to File->Properties->User Define \nField-1 Eg. http://localhost:8069 \nOR \nField-4 Eg. account.invoice")
ErrorDialog("Please insert user define field Field-1 or Field-4","Just go to File->Properties->User Define \nField-1 E.g. http://localhost:8069 \nOR \nField-4 E.g. account.invoice")
self.win.endExecute()
def lstbox_selected(self,oItemEvent):
@@ -77,7 +77,7 @@ class modify(unohelper.Base, XJobExecutor ):
ErrorDialog(
"Please insert user define field Field-1",
"Just go to File->Properties->User Define \n"
"Field-1 Eg. http://localhost:8069"
"Field-1 E.g. http://localhost:8069"
)
exit(1)
@@ -108,9 +108,9 @@ class modify(unohelper.Base, XJobExecutor ):
ErrorDialog(
"Please insert user define field Field-1 or Field-4",
"Just go to File->Properties->User Define \n"
"Field-1 Eg. http://localhost:8069 \n"
"Field-1 E.g. http://localhost:8069 \n"
"OR \n"
"Field-4 Eg. account.invoice"
"Field-4 E.g. account.invoice"
)
exit(1)
+1
View File
@@ -26,6 +26,7 @@
'description': """
This module handles state and stage. It is derived from the crm_base and
crm_case classes from crm.
========================================================================
* ``base_state``: state management
* ``base_stage``: stage management
+1 -1
View File
@@ -9,7 +9,7 @@
Common base for tools modules.
==============================
Creates menu link for Tools from where tools like survey, lunch, idea, etc. are accessible if installed.
Creates menu link for Tools from where tools like survey, lunch, idea are accessible if installed.
""",
"init_xml": [],
"update_xml": [
+6 -4
View File
@@ -1,9 +1,11 @@
<?xml version="1.0"?>
<openerp>
<data>
<menuitem icon="STOCK_PREFERENCES" id="base.menu_tools"
name="Tools" sequence="28"
web_icon="images/tools.png"
web_icon_hover="images/tools-hover.png"/>
<!-- Top menu item -->
<menuitem name="Tools"
id="base.menu_tools"
sequence="160"/>
</data>
</openerp>
+2 -3
View File
@@ -24,8 +24,8 @@
'version': '1.0',
"category": 'Hidden/Dependency',
'description': """
VAT validation for Partners' VAT numbers
========================================
VAT validation for Partner's VAT numbers.
=========================================
After installing this module, values entered in the VAT field of Partners will
be validated for all supported countries. The country is inferred from the
@@ -50,7 +50,6 @@ There are two different levels of VAT number validation:
Supported countries currently include EU countries, and a few non-EU countries
such as Chile, Colombia, Mexico, Norway or Russia. For unsupported countries,
only the country code will be validated.
""",
'author': 'OpenERP SA',
'depends': ['account'],
+1 -1
View File
@@ -7,7 +7,7 @@
<field name="model">res.partner</field>
<field name="inherit_id" ref="account.view_partner_property_form"/>
<field name="arch" type="xml">
<field name="property_account_payable" position="after" version="7.0">
<field name="property_account_position" position="after" version="7.0">
<label for="vat"/>
<div>
<field name="vat" on_change="vat_change(vat)" placeholder="BE0477472702" class="oe_inline"/>
+1 -1
View File
@@ -21,7 +21,7 @@
{
"name": "Share Calendar using CalDAV",
"name": "Share Calendar Using CalDAV",
"version": "1.1",
"depends": [
"base",
+9 -7
View File
@@ -25,12 +25,14 @@
'version': '1.0',
'category': 'Customer Relationship Management',
"sequence": 2,
"summary": "Agenda, Leads, Opportunities",
'description': """
The generic OpenERP Customer Relationship Management.
=====================================================
This system enables a group of people to intelligently and efficiently manage
leads, opportunities, meeting, phonecall etc.
leads, opportunities, meeting, phonecall.
It manages key tasks such as communication, identification, prioritization,
assignment, resolution and notification.
@@ -41,16 +43,19 @@ specific methods and lots of other actions based on your own enterprise rules.
The greatest thing about this system is that users don't need to do anything
special. They can just send email to the request tracker. OpenERP will take
care of thanking them for their message, automatically routing it to the
appropriate staff, and make sure all future correspondence gets to the right
appropriate staff and make sure all future correspondence gets to the right
place.
The CRM module has a email gateway for the synchronisation interface
between mails and OpenERP.
Creates a dashboard for CRM that includes:
* Opportunities by Categories (graph)
* Opportunities by Stage (graph)
------------------------------------------
* List of New Leads
* List of My Opportunities
* List of My Next Meetings
* Planned Revenue by Stage and User (graph)
* Opportunities by Stage (graph)
""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
@@ -68,7 +73,6 @@ Creates a dashboard for CRM that includes:
'init_xml': [
'crm_data.xml',
'crm_lead_data.xml',
'crm_meeting_data.xml',
'crm_phonecall_data.xml',
],
'update_xml': [
@@ -85,7 +89,6 @@ Creates a dashboard for CRM that includes:
'wizard/crm_opportunity_to_phonecall_view.xml',
'wizard/crm_partner_to_opportunity_view.xml',
'wizard/crm_add_note_view.xml',
'wizard/crm_merge_opportunities_view.xml',
'crm_view.xml',
@@ -115,7 +118,6 @@ Creates a dashboard for CRM that includes:
'demo_xml': [
'crm_demo.xml',
'crm_lead_demo.xml',
'crm_meeting_demo.xml',
'crm_phonecall_demo.xml',
],
'test': [
+1 -1
View File
@@ -110,7 +110,7 @@ class crm_case_section(osv.osv):
'active': fields.boolean('Active', help="If the active field is set to "\
"true, it will allow you to hide the sales team without removing it."),
'allow_unlink': fields.boolean('Allow Delete', help="Allows to delete non draft cases"),
'change_responsible': fields.boolean('Reassign Escalated', help="When escalating to this team override the saleman with the team leader."),
'change_responsible': fields.boolean('Reassign Escalated', help="When escalating to this team override the salesman with the team leader."),
'user_id': fields.many2one('res.users', 'Team Leader'),
'member_ids':fields.many2many('res.users', 'sale_member_rel', 'section_id', 'member_id', 'Team Members'),
'reply_to': fields.char('Reply-To', size=64, help="The email address put in the 'Reply-To' of all emails sent by OpenERP about cases in this sales team"),
+8 -2
View File
@@ -2,10 +2,16 @@
<openerp>
<data>
<menuitem icon="terp-partner" id="base.menu_base_partner" name="Sales" sequence="1"
<!-- Top menu item -->
<!--
This menu item's purpose is to overwrite another one defined in
the base module in order to set new groups.
-->
<menuitem name="Sales"
id="base.menu_base_partner"
groups="base.group_sale_manager,base.group_sale_salesman"/>
<menuitem id="base.menu_crm_config_lead" name="Leads &amp; Opportunities"
<menuitem id="base.menu_crm_config_lead" name="Leads &amp; Opportunities"
parent="base.menu_base_config" sequence="80" groups="base.group_sale_manager"/>
<menuitem id="base.menu_crm_config_opportunity" name="Opportunities"
+1 -3
View File
@@ -16,7 +16,7 @@ access_crm_phonecall,crm.phonecall,model_crm_phonecall,base.group_sale_salesman,
access_crm_phonecall_all,crm.phonecall.all,model_crm_phonecall,base.group_user,1,0,0,0
access_crm_case_section_user,crm.case.section.user,model_crm_case_section,base.group_sale_salesman,1,1,1,0
access_crm_case_section_manager,crm.case.section.manager,model_crm_case_section,base.group_sale_manager,1,1,1,1
access_crm_case_stage,crm.case.stage,model_crm_case_stage,base.group_user,1,0,0,0
access_crm_case_stage,crm.case.stage,model_crm_case_stage,,1,0,0,0
access_crm_case_stage_manager,crm.case.stage,model_crm_case_stage,base.group_sale_manager,1,1,1,1
access_crm_case_resource_type_user,crm_case_resource_type user,model_crm_case_resource_type,base.group_sale_salesman,1,1,1,0
access_crm_case_resource_type_manager,crm_case_resource_type manager,model_crm_case_resource_type,base.group_sale_manager,1,1,1,1
@@ -24,13 +24,11 @@ access_crm_phonecall_report_user,crm.phonecall.report.user,model_crm_phonecall_r
access_crm_phonecall_report_manager,crm.phonecall.report,model_crm_phonecall_report,base.group_sale_manager,1,1,1,1
access_res_partner_manager,res.partner.crm.manager,base.model_res_partner,base.group_sale_manager,1,0,0,0
access_res_partner_category_manager,res.partner.category.crm.manager,base.model_res_partner_category,base.group_sale_manager,1,0,0,0
mail_mail_message_manager,mail.message.manager,mail.model_mail_message,base.group_sale_manager,1,0,0,0
access_calendar_attendee_crm_user,calendar.attendee.crm.user,model_calendar_attendee,base.group_sale_salesman,1,1,1,0
access_calendar_attendee_crm_manager,calendar.attendee.crm.manager,model_calendar_attendee,base.group_sale_manager,1,1,1,1
access_res_partner,res.partner.crm.user,base.model_res_partner,base.group_sale_salesman,1,1,1,0
access_res_partner_category,res.partner.category.crm.user,base.model_res_partner_category,base.group_sale_salesman,1,1,1,0
mail_mailgate_thread,mail.thread,mail.model_mail_thread,base.group_sale_salesman,1,1,1,1
mail_gateway_mail_message_user,mail.message.user,mail.model_mail_message,base.group_sale_salesman,1,1,1,1
access_crm_case_categ_manager,crm.case.categ manager,model_crm_case_categ,base.group_sale_manager,1,1,1,1
access_base_action_rule_manager,base.action.rule manager,model_base_action_rule,base.group_sale_manager,1,1,1,1
access_crm_lead_report_user,crm.lead.report user,model_crm_lead_report,base.group_sale_salesman,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
16 access_crm_phonecall_all crm.phonecall.all model_crm_phonecall base.group_user 1 0 0 0
17 access_crm_case_section_user crm.case.section.user model_crm_case_section base.group_sale_salesman 1 1 1 0
18 access_crm_case_section_manager crm.case.section.manager model_crm_case_section base.group_sale_manager 1 1 1 1
19 access_crm_case_stage crm.case.stage model_crm_case_stage base.group_user 1 0 0 0
20 access_crm_case_stage_manager crm.case.stage model_crm_case_stage base.group_sale_manager 1 1 1 1
21 access_crm_case_resource_type_user crm_case_resource_type user model_crm_case_resource_type base.group_sale_salesman 1 1 1 0
22 access_crm_case_resource_type_manager crm_case_resource_type manager model_crm_case_resource_type base.group_sale_manager 1 1 1 1
24 access_crm_phonecall_report_manager crm.phonecall.report model_crm_phonecall_report base.group_sale_manager 1 1 1 1
25 access_res_partner_manager res.partner.crm.manager base.model_res_partner base.group_sale_manager 1 0 0 0
26 access_res_partner_category_manager res.partner.category.crm.manager base.model_res_partner_category base.group_sale_manager 1 0 0 0
mail_mail_message_manager mail.message.manager mail.model_mail_message base.group_sale_manager 1 0 0 0
27 access_calendar_attendee_crm_user calendar.attendee.crm.user model_calendar_attendee base.group_sale_salesman 1 1 1 0
28 access_calendar_attendee_crm_manager calendar.attendee.crm.manager model_calendar_attendee base.group_sale_manager 1 1 1 1
29 access_res_partner res.partner.crm.user base.model_res_partner base.group_sale_salesman 1 1 1 0
30 access_res_partner_category res.partner.category.crm.user base.model_res_partner_category base.group_sale_salesman 1 1 1 0
31 mail_mailgate_thread mail.thread mail.model_mail_thread base.group_sale_salesman 1 1 1 1
mail_gateway_mail_message_user mail.message.user mail.model_mail_message base.group_sale_salesman 1 1 1 1
32 access_crm_case_categ_manager crm.case.categ manager model_crm_case_categ base.group_sale_manager 1 1 1 1
33 access_base_action_rule_manager base.action.rule manager model_base_action_rule base.group_sale_manager 1 1 1 1
34 access_crm_lead_report_user crm.lead.report user model_crm_lead_report base.group_sale_salesman 1 1 1 1
@@ -54,10 +54,8 @@
-
After communicated with customer, I put some notes with contract details.
-
!python {model: crm.add.note}: |
context.update({'active_model': 'crm.lead', 'active_id': ref('crm_case_qrecorp0')})
note_id = self.create(cr, uid, {'body': "ces détails envoyés par le client sur ​​le FAX pour la qualité"})
self.action_add(cr, uid, [note_id], context=context)
!python {model: crm.lead}: |
self.message_append_note(cr, uid, [ref('crm_case_qrecorp0')], subject='Test note', body='ces détails envoyés par le client sur ​​le FAX pour la qualité')
-
I win this opportunity
-
@@ -113,7 +111,7 @@
-
!python {model: crm.meeting}: |
context.update({'active_model': 'crm.meeting'})
self.case_open(cr, uid, [ref('crm.crm_case_reviewneeds0')])
self.case_open(cr, uid, [ref('base_calendar.crm_case_reviewneeds0')])
-
I invite a user for meeting.
-
-2
View File
@@ -19,8 +19,6 @@
#
##############################################################################
import crm_add_note
import crm_lead_to_partner
import crm_lead_to_opportunity
import crm_phonecall_to_phonecall
-53
View File
@@ -1,53 +0,0 @@
from .. import crm
from osv import fields, osv
from tools.translate import _
from mail.mail_message import truncate_text
AVAILABLE_STATES = crm.AVAILABLE_STATES + [('unchanged', 'Unchanged')]
class crm_add_note(osv.osv_memory):
"""Adds a new note to the case."""
_name = 'crm.add.note'
_description = "Add Internal Note"
_columns = {
'body': fields.text('Note Body', required=True),
'state': fields.selection(AVAILABLE_STATES, string='Set New State To',
required=True),
}
_defaults = {
'state': 'unchanged'
}
def action_add(self, cr, uid, ids, context=None):
if context is None:
context = {}
if not context.get('active_model'):
raise osv.except_osv(_('Error'), _('Can not add note!'))
model = context.get('active_model')
case_pool = self.pool.get(model)
for obj in self.browse(cr, uid, ids, context=context):
case_list = case_pool.browse(cr, uid, context['active_ids'],
context=context)
case = case_list[0]
case_pool.message_append(cr, uid, [case], truncate_text(obj.body),
body_text=obj.body)
if obj.state == 'unchanged':
pass
elif obj.state == 'done':
case_pool.case_close(cr, uid, [case.id])
elif obj.state == 'draft':
case_pool.case_reset(cr, uid, [case.id])
elif obj.state in ['cancel', 'open', 'pending']:
act = 'case_' + obj.state
getattr(case_pool, act)(cr, uid, [case.id])
return {'type': 'ir.actions.act_window_close'}
crm_add_note()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-39
View File
@@ -1,39 +0,0 @@
<?xml version="1.0"?>
<openerp>
<data>
<!-- Add New Note view -->
<record model="ir.ui.view" id="crm_add_new_note_view">
<field name="name">crm.new.add.note.form</field>
<field name="model">crm.add.note</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Add Note" version="7.0">
<group>
<separator string="Add Note"/>
<field name="body"/>
</group>
<footer>
<button name="action_add" type="object" string="_Add" class="oe_highlight"/>
or
<button string="Cancel" class="oe_link" special="cancel" />
</footer>
</form>
</field>
</record>
<!-- Add New Note action -->
<record model="ir.actions.act_window" id="action_crm_add_note">
<field name="name">Add Note</field>
<field name="res_model">crm.add.note</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="view_id" ref="crm_add_new_note_view"/>
<field name="target">new</field>
</record>
</data>
</openerp>
+1 -1
View File
@@ -29,7 +29,7 @@
Caldav features in Meeting.
===========================
* Share meeting with other calendar clients like sunbird
* Share meeting with other calendar clients like sunbird
""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
+6 -11
View File
@@ -1,19 +1,18 @@
<?xml version="1.0"?>
<openerp>
<data>
<menuitem
icon="terp-project" id="base.menu_main_pm"
name="Project" sequence="10"
<!-- Top menu item -->
<menuitem name="Project"
id="base.menu_main_pm"
groups="base.group_sale_salesman"
web_icon="images/project.png"
web_icon_hover="images/project-hover.png"/>
sequence="90"/>
<menuitem id="base.menu_aftersale" name="After-Sale Services"
groups="base.group_sale_salesman"
parent="base.menu_main_pm" sequence="2" />
<!-- Claims Menu -->
<record model="ir.actions.act_window" id="crm_case_categ_claim0">
<field name="name">Claims</field>
<field name="res_model">crm.claim</field>
@@ -51,13 +50,9 @@
parent="base.menu_aftersale" action="crm_case_categ_claim0" sequence="1"/>
<!-- Claim Stages -->
<menuitem
icon="terp-project" id="base.menu_main_pm"
name="Project" sequence="10"/>
<menuitem id="base.menu_definitions" name="Configuration" parent="base.menu_main_pm" sequence="60"/>
<menuitem id="base.menu_project_config_project" name="Stages" parent="base.menu_definitions" sequence="1"/>
<menuitem id="menu_claim_stage_view" name="Claim Stages" action="crm_claim_stage_act" parent="base.menu_project_config_project" sequence="20"/>
<menuitem id="base.menu_definitions" name="Configuration" parent="base.menu_main_pm" sequence="60"/>
</data>
</openerp>
+6 -6
View File
@@ -1,15 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<menuitem
icon="terp-project" id="base.menu_main_pm"
name="Project" sequence="10"
web_icon="images/project.png"
web_icon_hover="images/project-hover.png"/>
<!-- Top menu item -->
<menuitem name="Project"
id="base.menu_main_pm"
sequence="90"/>
<menuitem id="base.menu_aftersale" name="After-Sale Services" sequence="2" parent="base.menu_main_pm" />
<!-- Help Desk (menu) -->
<!-- Help Desk (menu) -->
<record model="ir.actions.act_window" id="crm_case_helpdesk_act111">
<field name="name">Helpdesk Requests</field>
+738
View File
@@ -0,0 +1,738 @@
# Latvian translation for openobject-addons
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
"PO-Revision-Date: 2012-07-20 08:02+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Latvian <lv@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-07-21 05:08+0000\n"
"X-Generator: Launchpad (build 15654)\n"
#. module: crm_helpdesk
#: field:crm.helpdesk.report,delay_close:0
msgid "Delay to Close"
msgstr ""
#. module: crm_helpdesk
#: field:crm.helpdesk.report,nbr:0
msgid "# of Cases"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
#: view:crm.helpdesk.report:0
msgid "Group By..."
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Today"
msgstr ""
#. module: crm_helpdesk
#: selection:crm.helpdesk.report,month:0
msgid "March"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Helpdesk requests occurred in current year"
msgstr ""
#. module: crm_helpdesk
#: field:crm.helpdesk,company_id:0
#: view:crm.helpdesk.report:0
#: field:crm.helpdesk.report,company_id:0
msgid "Company"
msgstr ""
#. module: crm_helpdesk
#: field:crm.helpdesk,email_cc:0
msgid "Watchers Emails"
msgstr ""
#. module: crm_helpdesk
#: selection:crm.helpdesk,priority:0
#: selection:crm.helpdesk.report,priority:0
msgid "Highest"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
#: field:crm.helpdesk.report,day:0
msgid "Day"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Add Internal Note"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Date of helpdesk requests"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Notes"
msgstr ""
#. module: crm_helpdesk
#: field:crm.helpdesk,message_ids:0
msgid "Messages"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "My company"
msgstr ""
#. module: crm_helpdesk
#: selection:crm.helpdesk,state:0
#: selection:crm.helpdesk.report,state:0
msgid "Cancelled"
msgstr ""
#. module: crm_helpdesk
#: model:ir.actions.act_window,name:crm_helpdesk.action_report_crm_helpdesk
#: model:ir.ui.menu,name:crm_helpdesk.menu_report_crm_helpdesks_tree
msgid "Helpdesk Analysis"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
#: field:crm.helpdesk.report,date_closed:0
msgid "Close Date"
msgstr ""
#. module: crm_helpdesk
#: field:crm.helpdesk,ref:0
msgid "Reference"
msgstr ""
#. module: crm_helpdesk
#: field:crm.helpdesk,date_action_next:0
msgid "Next Action"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Helpdesk Supports"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Extra Info"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
#: field:crm.helpdesk,partner_id:0
#: view:crm.helpdesk.report:0
#: field:crm.helpdesk.report,partner_id:0
msgid "Partner"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Estimates"
msgstr ""
#. module: crm_helpdesk
#: field:crm.helpdesk.report,section_id:0
msgid "Section"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Helpdesk requests occurred in last month"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Send New Email"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Helpdesk requests during last 7 days"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
#: selection:crm.helpdesk,state:0
#: view:crm.helpdesk.report:0
msgid "New"
msgstr ""
#. module: crm_helpdesk
#: model:ir.model,name:crm_helpdesk.model_crm_helpdesk_report
msgid "Helpdesk report after Sales Services"
msgstr ""
#. module: crm_helpdesk
#: field:crm.helpdesk,email_from:0
msgid "Email"
msgstr ""
#. module: crm_helpdesk
#: field:crm.helpdesk,channel_id:0
#: view:crm.helpdesk.report:0
#: field:crm.helpdesk.report,channel_id:0
msgid "Channel"
msgstr ""
#. module: crm_helpdesk
#: selection:crm.helpdesk,priority:0
#: selection:crm.helpdesk.report,priority:0
msgid "Lowest"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "# Mails"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
#: view:crm.helpdesk.report:0
msgid "My Sales Team(s)"
msgstr ""
#. module: crm_helpdesk
#: field:crm.helpdesk,create_date:0
#: field:crm.helpdesk.report,create_date:0
msgid "Creation Date"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Reset to Draft"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
#: selection:crm.helpdesk,state:0
#: selection:crm.helpdesk.report,state:0
msgid "Pending"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
#: field:crm.helpdesk,date_deadline:0
#: field:crm.helpdesk.report,date_deadline:0
msgid "Deadline"
msgstr ""
#. module: crm_helpdesk
#: selection:crm.helpdesk.report,month:0
msgid "July"
msgstr ""
#. module: crm_helpdesk
#: model:ir.actions.act_window,name:crm_helpdesk.crm_helpdesk_categ_action
msgid "Helpdesk Categories"
msgstr ""
#. module: crm_helpdesk
#: model:ir.ui.menu,name:crm_helpdesk.menu_crm_case_helpdesk-act
msgid "Categories"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "New Helpdesk Request"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "History Information"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Dates"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Month of helpdesk requests"
msgstr ""
#. module: crm_helpdesk
#: code:addons/crm_helpdesk/crm_helpdesk.py:101
#, python-format
msgid "No Subject"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "#Helpdesk"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "All pending Helpdesk Request"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Year of helpdesk requests"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "References"
msgstr ""
#. module: crm_helpdesk
#: selection:crm.helpdesk.report,month:0
msgid "September"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Communication"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
#: field:crm.helpdesk.report,month:0
msgid "Month"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Escalate"
msgstr ""
#. module: crm_helpdesk
#: field:crm.helpdesk,write_date:0
msgid "Update Date"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Helpdesk requests occurred in current month"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Salesman"
msgstr ""
#. module: crm_helpdesk
#: field:crm.helpdesk,ref2:0
msgid "Reference 2"
msgstr ""
#. module: crm_helpdesk
#: field:crm.helpdesk,categ_id:0
#: field:crm.helpdesk.report,categ_id:0
msgid "Category"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Responsible User"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Helpdesk Support"
msgstr ""
#. module: crm_helpdesk
#: field:crm.helpdesk,planned_cost:0
#: field:crm.helpdesk.report,planned_cost:0
msgid "Planned Costs"
msgstr ""
#. module: crm_helpdesk
#: help:crm.helpdesk,channel_id:0
msgid "Communication channel."
msgstr ""
#. module: crm_helpdesk
#: help:crm.helpdesk,email_cc:0
msgid ""
"These email addresses will be added to the CC field of all inbound and "
"outbound emails for this record before being sent. Separate multiple email "
"addresses with a comma"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Search Helpdesk"
msgstr ""
#. module: crm_helpdesk
#: selection:crm.helpdesk.report,state:0
msgid "Draft"
msgstr ""
#. module: crm_helpdesk
#: selection:crm.helpdesk,priority:0
#: selection:crm.helpdesk.report,priority:0
msgid "Low"
msgstr ""
#. module: crm_helpdesk
#: field:crm.helpdesk,date_closed:0
#: selection:crm.helpdesk,state:0
#: view:crm.helpdesk.report:0
#: selection:crm.helpdesk.report,state:0
msgid "Closed"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Reply"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "7 Days"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Communication & History"
msgstr ""
#. module: crm_helpdesk
#: selection:crm.helpdesk.report,month:0
msgid "August"
msgstr ""
#. module: crm_helpdesk
#: selection:crm.helpdesk,priority:0
#: selection:crm.helpdesk.report,priority:0
msgid "Normal"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Global CC"
msgstr ""
#. module: crm_helpdesk
#: selection:crm.helpdesk.report,month:0
msgid "June"
msgstr ""
#. module: crm_helpdesk
#: field:crm.helpdesk,planned_revenue:0
msgid "Planned Revenue"
msgstr ""
#. module: crm_helpdesk
#: field:crm.helpdesk.report,user_id:0
msgid "User"
msgstr ""
#. module: crm_helpdesk
#: field:crm.helpdesk,active:0
msgid "Active"
msgstr ""
#. module: crm_helpdesk
#: selection:crm.helpdesk.report,month:0
msgid "November"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Extended Filters..."
msgstr ""
#. module: crm_helpdesk
#: model:ir.actions.act_window,name:crm_helpdesk.crm_case_helpdesk_act111
msgid "Helpdesk Requests"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Search"
msgstr ""
#. module: crm_helpdesk
#: selection:crm.helpdesk.report,month:0
msgid "October"
msgstr ""
#. module: crm_helpdesk
#: selection:crm.helpdesk.report,month:0
msgid "January"
msgstr ""
#. module: crm_helpdesk
#: help:crm.helpdesk,email_from:0
msgid "These people will receive email."
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
#: field:crm.helpdesk,date:0
msgid "Date"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "History"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
#: field:crm.helpdesk,priority:0
#: view:crm.helpdesk.report:0
#: field:crm.helpdesk.report,priority:0
msgid "Priority"
msgstr ""
#. module: crm_helpdesk
#: field:crm.helpdesk,partner_address_id:0
msgid "Partner Contact"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Misc"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
#: field:crm.helpdesk,state:0
#: view:crm.helpdesk.report:0
#: field:crm.helpdesk.report,state:0
msgid "State"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "General"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Send Reminder"
msgstr ""
#. module: crm_helpdesk
#: help:crm.helpdesk,section_id:0
msgid ""
"Sales team to which Case belongs to. Define "
"Responsible user and Email account for mail gateway."
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Done"
msgstr ""
#. module: crm_helpdesk
#: selection:crm.helpdesk.report,month:0
msgid "December"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Cancel"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Close"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
#: view:crm.helpdesk.report:0
#: selection:crm.helpdesk.report,state:0
msgid "Open"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Helpdesk Support Tree"
msgstr ""
#. module: crm_helpdesk
#: selection:crm.helpdesk,state:0
msgid "In Progress"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Categorization"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
#: model:ir.model,name:crm_helpdesk.model_crm_helpdesk
#: model:ir.ui.menu,name:crm_helpdesk.menu_config_helpdesk
msgid "Helpdesk"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
#: field:crm.helpdesk,user_id:0
msgid "Responsible"
msgstr ""
#. module: crm_helpdesk
#: field:crm.helpdesk.report,delay_expected:0
msgid "Overpassed Deadline"
msgstr ""
#. module: crm_helpdesk
#: field:crm.helpdesk,description:0
msgid "Description"
msgstr ""
#. module: crm_helpdesk
#: selection:crm.helpdesk.report,month:0
msgid "May"
msgstr ""
#. module: crm_helpdesk
#: field:crm.helpdesk,probability:0
msgid "Probability (%)"
msgstr ""
#. module: crm_helpdesk
#: field:crm.helpdesk.report,email:0
msgid "# Emails"
msgstr ""
#. module: crm_helpdesk
#: model:ir.actions.act_window,help:crm_helpdesk.action_report_crm_helpdesk
msgid ""
"Have a general overview of all support requests by sorting them with "
"specific criteria such as the processing time, number of requests answered, "
"emails sent and costs."
msgstr ""
#. module: crm_helpdesk
#: help:crm.helpdesk,state:0
msgid ""
"The state is set to 'Draft', when a case is created. "
" \n"
"If the case is in progress the state is set to 'Open'. "
" \n"
"When the case is over, the state is set to 'Done'. "
" \n"
"If the case needs to be reviewed then the state is set to 'Pending'."
msgstr ""
#. module: crm_helpdesk
#: selection:crm.helpdesk.report,month:0
msgid "February"
msgstr ""
#. module: crm_helpdesk
#: field:crm.helpdesk,name:0
msgid "Name"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "Month-1"
msgstr ""
#. module: crm_helpdesk
#: model:ir.ui.menu,name:crm_helpdesk.menu_help_support_main
msgid "Helpdesk and Support"
msgstr ""
#. module: crm_helpdesk
#: selection:crm.helpdesk.report,month:0
msgid "April"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
msgid "My Case(s)"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Query"
msgstr ""
#. module: crm_helpdesk
#: field:crm.helpdesk,id:0
msgid "ID"
msgstr ""
#. module: crm_helpdesk
#: model:ir.actions.act_window,help:crm_helpdesk.crm_helpdesk_categ_action
msgid ""
"Create and manage helpdesk categories to better manage and classify your "
"support requests."
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Todays's Helpdesk Requests"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Request Date"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
msgid "Open Helpdesk Request"
msgstr ""
#. module: crm_helpdesk
#: selection:crm.helpdesk,priority:0
#: selection:crm.helpdesk.report,priority:0
msgid "High"
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk:0
#: field:crm.helpdesk,section_id:0
#: view:crm.helpdesk.report:0
msgid "Sales Team"
msgstr ""
#. module: crm_helpdesk
#: field:crm.helpdesk,date_action_last:0
msgid "Last Action"
msgstr ""
#. module: crm_helpdesk
#: model:ir.actions.act_window,help:crm_helpdesk.crm_case_helpdesk_act111
msgid ""
"Helpdesk and Support allow you to track your interventions. Select a "
"customer, add notes and categorize interventions with partners if necessary. "
"You can also assign a priority level. Use the OpenERP Issues system to "
"manage your support activities. Issues can be connected to the email "
"gateway: new emails may create issues, each of them automatically gets the "
"history of the conversation with the customer."
msgstr ""
#. module: crm_helpdesk
#: view:crm.helpdesk.report:0
#: field:crm.helpdesk.report,name:0
msgid "Year"
msgstr ""
#. module: crm_helpdesk
#: field:crm.helpdesk,duration:0
msgid "Duration"
msgstr ""
+7 -3
View File
@@ -28,11 +28,15 @@
This module allows users to perform segmentation within partners.
=================================================================
It uses the profiles criteria from the earlier segmentation module and improve it. Thanks to the new concept of questionnaire. You can now regroup questions into a questionnaire and directly use it on a partner.
It uses the profiles criteria from the earlier segmentation module and improve it.
Thanks to the new concept of questionnaire. You can now regroup questions into a
questionnaire and directly use it on a partner.
It also has been merged with the earlier CRM & SRM segmentation tool because they were overlapping.
It also has been merged with the earlier CRM & SRM segmentation tool because they
were overlapping.
* Note: this module is not compatible with the module segmentation, since it's the same which has been renamed.
* Note: this module is not compatible with the module segmentation, since
it's the same which has been renamed.
""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
+2 -2
View File
@@ -22,8 +22,8 @@
{
"name": "Decimal Precision Configuration",
"description": """
Configure the price accuracy you need for different kinds of usage: accounting, sales, purchases, etc.
======================================================================================================
Configure the price accuracy you need for different kinds of usage: accounting, sales, purchases.
=================================================================================================
The decimal precision is configured per company.
""",
+3 -4
View File
@@ -28,10 +28,9 @@
Allows you to add delivery methods in sale orders and picking.
==============================================================
You can define your own carrier and delivery grids for prices.
When creating invoices from picking, OpenERP is able to add and compute the shipping line.
""",
You can define your own carrier and delivery grids for prices. When creating
invoices from picking, OpenERP is able to add and compute the shipping line.
""",
'author': 'OpenERP SA',
'depends': ['sale', 'purchase', 'stock'],
'init_xml': ['delivery_data.xml'],
+1 -1
View File
@@ -68,7 +68,7 @@ class delivery_carrier(osv.osv):
'price' : fields.function(get_price, string='Price'),
'active': fields.boolean('Active', help="If the active field is set to False, it will allow you to hide the delivery carrier without removing it."),
'normal_price': fields.float('Normal Price', help="Keep empty if the pricing depends on the advanced pricing per destination"),
'free_if_more_than': fields.boolean('Free If More Than', help="If the order is more expensive than a certain amount, the customer can benefit from a free shipping"),
'free_if_more_than': fields.boolean('Free If Order Total Amount Is More Than', help="If the order is more expensive than a certain amount, the customer can benefit from a free shipping"),
'amount': fields.float('Amount', help="Amount of the order to benefit from a free shipping, expressed in the company currency"),
'use_detailed_pricelist': fields.boolean('Advanced Pricing per Destination', help="Check this box if you want to manage delivery prices that depends on the destination, the weight, the total of the order, etc."),
'pricelist_ids': fields.one2many('delivery.grid', 'carrier_id', 'Advanced Pricing'),
+3 -3
View File
@@ -29,7 +29,7 @@ This is a complete document management system.
==============================================
* User Authentication
* Document Indexation :- .pptx and .docx files are not supported in Windows platform.
* Document Indexation:- .pptx and .docx files are not supported in Windows platform.
* Dashboard for Document that includes:
* New Files (list)
* Files by Resource Type (graph)
@@ -37,8 +37,8 @@ This is a complete document management system.
* Files Size by Month (graph)
ATTENTION:
- When you install this module in a running company that have already PDF files stored into the database,
you will lose them all.
- When you install this module in a running company that have already PDF
files stored into the database, you will lose them all.
- After installing this module PDF's are no longer stored into the database,
but in the servers rootpad like /server/bin/filestore.
""",
+1 -1
View File
@@ -375,7 +375,7 @@ class node_class(object):
could do various things.
Should also consider node<->content, dir<->dir moves etc.
Move operations, as instructed from APIs (eg. request from DAV) could
Move operations, as instructed from APIs (e.g. request from DAV) could
use this function.
"""
raise NotImplementedError(repr(self))
+3 -2
View File
@@ -40,7 +40,8 @@ With this module, the WebDAV server for documents is activated.
You can then use any compatible browser to remotely see the attachments of OpenObject.
After installation, the WebDAV server can be controlled by a [webdav] section in the server's config.
After installation, the WebDAV server can be controlled by a [webdav] section in
the server's config.
Server Configuration Parameter:
[webdav]
@@ -55,7 +56,7 @@ Server Configuration Parameter:
; these options on
Also implements IETF RFC 5785 for services discovery on a http server,
which needs explicit configuration in openerp-server.conf, too.
which needs explicit configuration in openerp-server.conf too.
""",
"depends" : ["base", "document"],
"init_xml" : [],
+6 -7
View File
@@ -23,15 +23,14 @@
'version': '1.0',
'category': 'Tools',
'description': """
Provides a common EDI platform that other Applications can use
==============================================================
Provides a common EDI platform that other Applications can use.
===============================================================
OpenERP specifies a generic EDI format for exchanging business
documents between different systems, and provides generic
mechanisms to import and export them.
OpenERP specifies a generic EDI format for exchanging business documents between
different systems, and provides generic mechanisms to import and export them.
More details about OpenERP's EDI format may be found in the
technical OpenERP documentation at http://doc.openerp.com
More details about OpenERP's EDI format may be found in the technical OpenERP
documentation at http://doc.openerp.com.
""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
+3 -4
View File
@@ -28,8 +28,8 @@
"category" : "Marketing",
"depends" : ['mail'],
"description": """
Email Templating (simplified version of the original Power Email by Openlabs)
=============================================================================
Email Templating (simplified version of the original Power Email by Openlabs).
==============================================================================
Lets you design complete email templates related to any OpenERP document (Sale
Orders, Invoices and so on), including sender, recipient, subject, body (HTML and
@@ -54,8 +54,7 @@ These email templates are also at the heart of the marketing campaign system
campaigns on any OpenERP document.
Technical note: only the templating system of the original Power Email by
Openlabs was kept
Openlabs was kept.
""",
"data": [
'wizard/email_template_preview_view.xml',
+14 -2
View File
@@ -101,6 +101,11 @@ class email_template(osv.osv):
mod_name = self.pool.get('ir.model').browse(cr, uid, model_id, context).model
return {'value':{'model': mod_name}}
def name_get(self, cr, uid, ids, context=None):
""" Override name_get of mail.message: return directly the template
name, and not the generated name from mail.message.common."""
return [(record.id, record.name) for record in self.browse(cr, uid, ids, context=context)]
_columns = {
'name': fields.char('Name', size=250),
'model_id': fields.many2one('ir.model', 'Related document model'),
@@ -311,7 +316,7 @@ class email_template(osv.osv):
'attachment_ids': False,
'message_id': False,
'state': 'outgoing',
'subtype': 'plain',
'content_subtype': 'plain',
}
if not template_id:
return values
@@ -326,8 +331,15 @@ class email_template(osv.osv):
template.model, res_id, context=context) \
or False
# if email_to: find or create a partner
if values['email_to']:
partner_id = self.pool.get('mail.thread').message_partner_by_email(cr, uid, values['email_to'], context=context)['partner_id']
if not partner_id:
partner_id = self.pool.get('res.partner').name_create(cr, uid, values['email_to'], context=context)
values['partner_ids'] = [partner_id]
if values['body_html']:
values.update(subtype='html')
values.update(content_subtype='html')
if template.user_signature:
signature = self.pool.get('res.users').browse(cr, uid, uid, context).signature
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

@@ -25,5 +25,32 @@
</data>
</field>
</record>
<record model="ir.ui.view" id="email_compose_message_wizard_inherit_form_chatter">
<field name="name">mail.compose.message.form</field>
<field name="model">mail.compose.message</field>
<field name="type">form</field>
<field name="inherit_id" ref="mail.email_compose_message_wizard_form_chatter"/>
<field name="arch" type="xml">
<data>
<xpath expr="//field[@name='dest_partner_ids']" position="after">
<field name="use_template" colspan="2" nolabel="1" invisible="1"
on_change="onchange_use_template(use_template, context)"/>
<field name="template_id" colspan="2" nolabel="1"
attrs="{'invisible':[('use_template','=',False)]}"
on_change="on_change_template(use_template, template_id, False, False, context)"/>
</xpath>
<xpath expr="//a[@class='oe_mail_compose_message_checklist']" position="before">
<button icon="../../../../../email_template/static/src/img/email_template"
type="object" name="template_toggle" string=""
help="Use a message template"/>
<button icon="../../../../../email_template/static/src/img/email_template_save"
type="object" name="save_as_template" string=""
help="Save as a new template"/>
</xpath>
</data>
</field>
</record>
</data>
</openerp>
@@ -27,19 +27,6 @@ from tools.translate import _
import tools
def _reopen(self,res_id,model):
return {'type': 'ir.actions.act_window',
'view_mode': 'form',
'view_type': 'form',
'res_id': res_id,
'res_model': self._name,
'target': 'new',
# save original model in context, otherwise
# it will be lost on the action's context switch
'context': {'mail.compose.target.model': model}
}
class mail_compose_message(osv.osv_memory):
_inherit = 'mail.compose.message'
@@ -87,6 +74,8 @@ class mail_compose_message(osv.osv_memory):
else:
# render the mail as one-shot
values = self.pool.get('email.template').generate_email(cr, uid, template_id, res_id, context=context)
# get partner_ids back
values['dest_partner_ids'] = values['partner_ids']
# retrofit generated attachments in the expected field format
if values['attachments']:
attachment = values.pop('attachments')
@@ -110,18 +99,24 @@ class mail_compose_message(osv.osv_memory):
return {'value': values}
def template_toggle(self, cr, uid, ids, context=None):
for record in self.browse(cr, uid, ids, context=context):
had_template = record.use_template
record.write({'use_template': not(had_template)})
if had_template:
values = {}
use_template = record.use_template
# simulate an on_change on use_template
values.update(self.onchange_use_template(cr, uid, ids, not use_template, context=context)['value'])
record.write(values)
return False
def onchange_use_template(self, cr, uid, ids, use_template, context=None):
values = {'use_template': use_template}
for record in self.browse(cr, uid, ids, context=context):
if not use_template:
# equivalent to choosing an empty template
onchange_defaults = self.on_change_template(cr, uid, record.id, not(had_template),
False, email_from=record.email_from,
email_to=record.email_to, context=context)
record.write(onchange_defaults['value'])
return _reopen(self, record.id, record.model)
onchange_template_values = self.on_change_template(cr, uid, record.id, use_template,
False, email_from=record.email_from, email_to=record.email_to, context=context)
values.update(onchange_template_values['value'])
return {'value': values}
def save_as_template(self, cr, uid, ids, context=None):
if context is None:
@@ -153,7 +148,7 @@ class mail_compose_message(osv.osv_memory):
'use_template': True})
# _reopen same wizard screen with new template preselected
return _reopen(self, record.id, model)
return False
# override the basic implementation
def render_template(self, cr, uid, template, model, res_id, context=None):
+4 -3
View File
@@ -25,18 +25,19 @@
'name': 'Events Organisation',
'version': '0.1',
'category': 'Tools',
'summary': 'Invitations, Subscriptions',
'description': """
Organization and management of Events.
======================================
This module allows you
* to manage your events and their registrations
* to use emails to automatically confirm and send acknowledgements for any registration to an event
* ...
* to use emails to automatically confirm and send acknowledgements for any
registration to an event
Note that:
- You can define new types of events in
Association / Configuration / Types of Events
Events/Configuration/Types of Events
""",
'author': 'OpenERP SA',
'depends': ['base_setup', 'board', 'email_template', 'google_map'],
+20 -16
View File
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<openerp>
<data>
<act_window
<act_window
id="act_event_list_register_event"
name="Registration"
res_model="event.registration"
@@ -9,12 +9,16 @@
view_mode="calendar,tree,form,graph"
context="{'search_default_event_id': active_id, 'default_event_id': active_id}"
view_type="form"/>
<menuitem name="Events" id="event_main_menu"/>
<menuitem name="Events Organisation" id="base.menu_event_main" parent="event_main_menu" />
<!-- EVENTS -->
<!-- Top menu item -->
<menuitem name="Events"
id="event_main_menu"
sequence="80"/>
<menuitem name="Events Organisation" id="base.menu_event_main" parent="event_main_menu"/>
<!-- EVENTS/CONFIGURATION/TYPE OF EVENTS -->
<!-- EVENTS -->
<!-- EVENTS/CONFIGURATION/TYPE OF EVENTS -->
<record model="ir.ui.view" id="view_event_type_form">
<field name="name">Event type</field>
<field name="model">event.type</field>
@@ -52,7 +56,7 @@
<menuitem name="Configuration" id="base.menu_marketing_config_root" parent="event_main_menu" sequence="30"/>
<menuitem name="Types of Events" id="menu_event_type" action="action_event_type" parent="base.menu_marketing_config_root" groups="base.group_no_one"/>
<!-- Events Organisation/CONFIGURATION/EVENTS -->
<!-- Events Organisation/CONFIGURATION/EVENTS -->
<!-- Event Read/Unread actions -->
<record id="actions_server_event_event_unread" model="ir.actions.server">
@@ -111,7 +115,7 @@
<div class="oe_title">
<label for="name" class="oe_edit_only"/>
<h1><field name="name"/></h1>
</div>
</div>
<div>
<h2>From <field name="date_begin" class="oe_inline" /> to <field name="date_end" class="oe_inline"/>
</h2>
@@ -151,7 +155,7 @@
</group>
<group>
<field name="register_attended"/>
</group>
</group>
</group>
<field name="registration_ids" colspan="4" nolabel="1" groups="event.group_event_manager,event.group_event_user">
<tree string="Registration" editable="top">
@@ -222,7 +226,7 @@
<!-- Event Kanban View -->
<record model="ir.ui.view" id="view_event_kanban">
<record model="ir.ui.view" id="view_event_kanban">
<field name="name">event.event.kanban</field>
<field name="model">event.event</field>
<field name="type">kanban</field>
@@ -286,7 +290,7 @@
</field>
</record>
<!-- Events Calendar View -->
<!-- Events Calendar View -->
<record id="view_event_calendar" model="ir.ui.view">
<field name="name">event.event.calendar</field>
@@ -316,7 +320,7 @@
</field>
</record>
<!-- Event Search View -->
<!-- Event Search View -->
<record model="ir.ui.view" id="view_event_search">
<field name="name">Events</field>
@@ -362,7 +366,7 @@
<!-- Events Organisation/CONFIGURATION/EVENTS -->
<record model="ir.actions.act_window" id="action_event_view">
<record model="ir.actions.act_window" id="action_event_view">
<field name="name">Events</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">event.event</field>
@@ -371,9 +375,9 @@
<field name="context">{"search_default_upcoming":1}</field>
<field name="search_view_id" ref="view_event_search"/>
<field name="help">Event is the low level object used by meeting and others documents that should be synchronized with mobile devices or calendar applications through caldav. Most of the users should work in the Calendar menu, and not in the list of events.</field>
</record>
</record>
<act_window
<act_window
id="act_register_event_partner"
name="Subscribe"
res_model="event.registration"
@@ -382,9 +386,9 @@
context="{'search_default_partner_id': [active_id], 'default_partner_id': active_id}"
view_type="form"/>
<menuitem name="Events" id="menu_event_event" action="action_event_view" parent="base.menu_event_main" />
<menuitem name="Events" id="menu_event_event" action="action_event_view" parent="base.menu_event_main" />
<!-- EVENTS/REGISTRATIONS/EVENTS -->
<!-- EVENTS/REGISTRATIONS/EVENTS -->
<!-- Registration Read/Unread actions -->
<record id="actions_server_event_registration_unread" model="ir.actions.server">
+15 -16
View File
@@ -25,33 +25,32 @@
'version': '0.1',
'category': 'Tools',
'description': """
Configure your moodle server
Configure your moodle server.
=============================
With this module you are able to connect your OpenERP with a moodle plateform.
This module will create courses and students automatically in your moodle plateform to avoid wasting time.
Now you have a simple way to create training or courses with OpenERP and moodle
With this module you are able to connect your OpenERP with a moodle platform.
This module will create courses and students automatically in your moodle platform
to avoid wasting time.
Now you have a simple way to create training or courses with OpenERP and moodle.
STEPS TO CONFIGURE
STEPS TO CONFIGURE:
------------------
1. activate web service in moodle
1. Activate web service in moodle.
----------------------------------
>site administration >plugins>web sevices >manage protocols
activate the xmlrpc web service
>site administration >plugins >web services >manage protocols activate the xmlrpc web service
>site administration >plugins>web sevices >manage tokens
create a token
>site administration >plugins >web services >manage tokens create a token
>site administration >plugins>web sevices >overview
activate webservice
>site administration >plugins >web services >overview activate webservice
2. Create confirmation email with login and password
----------------------------------------------------
we strongly suggest you to add those following lines at the bottom of your event confirmation email to communicate the login/password of moodle to your subscribers.
2. Create confirmation email with login and password.
-----------------------------------------------------
We strongly suggest you to add those following lines at the bottom of your event
confirmation email to communicate the login/password of moodle to your subscribers.
........your configuration text.......
+7 -2
View File
@@ -28,9 +28,14 @@
Creating registration with sale orders.
=======================================
This module allows you to automatize and connect your registration creation with your main sale flow and, therefore, to enable the invoicing feature of registrations.
This module allows you to automatize and connect your registration creation with
your main sale flow and therefore, to enable the invoicing feature of registrations.
It defines a new kind of service products that offers you the possibility to choose an event category associated with it. When you encode a sale order for that product, you will be able to choose an existing event of that category and when you confirm your sale order it will automatically create a registration for this event.
It defines a new kind of service products that offers you the possibility to
choose an event category associated with it. When you encode a sale order for
that product, you will be able to choose an existing event of that category and
when you confirm your sale order it will automatically create a registration for
this event.
""",
'author': 'OpenERP SA',
'depends': ['event','sale','sale_crm'],
+1 -1
View File
@@ -37,7 +37,7 @@ product()
class sale_order_line(osv.osv):
_inherit = 'sale.order.line'
_columns = {
'event_id': fields.many2one('event.event', 'Event', help="Choose an event and it will authomaticaly create a registration for this event"),
'event_id': fields.many2one('event.event', 'Event', help="Choose an event and it will automatically create a registration for this event."),
#those 2 fields are used for dynamic domains and filled by onchange
'event_type_id': fields.related('event_type_id', type='many2one', relation="event.type", string="Event Type"),
'event_ok': fields.related('event_ok', string='event_ok', type='boolean'),
+21 -24
View File
@@ -27,36 +27,33 @@
"author" : "OpenERP SA",
"category": 'Tools',
"description": """
Retrieve incoming email on POP / IMAP servers
=============================================
Retrieve incoming email on POP/IMAP servers.
============================================
Enter the parameters of your POP/IMAP account(s), and any incoming
emails on these accounts will be automatically downloaded into your OpenERP
system. All POP3/IMAP-compatible servers are supported, included those
that require an encrypted SSL/TLS connection.
Enter the parameters of your POP/IMAP account(s), and any incoming emails on
these accounts will be automatically downloaded into your OpenERP system. All
POP3/IMAP-compatible servers are supported, included those that require an
encrypted SSL/TLS connection.
This can be used to easily create email-based workflows for many
email-enabled OpenERP documents, such as:
This can be used to easily create email-based workflows for many email-enabled
OpenERP documents, such as:
* CRM Leads/Opportunities
* CRM Claims
* Project Issues
* Project Tasks
* Human Resource Recruitments (Applicants)
* etc.
* CRM Leads/Opportunities
* CRM Claims
* Project Issues
* Project Tasks
* Human Resource Recruitments (Applicants)
Just install the relevant application, and you can assign any of
these document types (Leads, Project Issues, etc.) to your incoming
email accounts. New emails will automatically spawn new documents
of the chosen type, so it's a snap to create a mailbox-to-OpenERP
integration. Even better: these documents directly act as mini
conversations synchronized by email. You can reply from within
OpenERP, and the answers will automatically be collected when
they come back, and attached to the same *conversation* document.
Just install the relevant application, and you can assign any of these document
types (Leads, Project Issues) to your incoming email accounts. New emails will
automatically spawn new documents of the chosen type, so it's a snap to create a
mailbox-to-OpenERP integration. Even better: these documents directly act as mini
conversations synchronized by email. You can reply from within OpenERP, and the
answers will automatically be collected when they come back, and attached to the
same *conversation* document.
For more specific needs, you may also assign custom-defined actions
(technically: Server Actions) to be triggered for each incoming
mail.
(technically: Server Actions) to be triggered for each incoming mail.
""",
'website': 'http://www.openerp.com',
'init_xml': [],
+1 -1
View File
@@ -24,7 +24,7 @@
'name': 'Google Users',
'version': '1.0',
'category': 'Tools',
'description': """The module adds google user in res user""",
'description': """The module adds google user in res user.""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
'depends': ['base'],
+2 -1
View File
@@ -26,8 +26,9 @@
"category": "Human Resources",
"sequence": 12,
"website": "http://www.openerp.com",
"summary": "Hierarchy, Jobs, Departments",
"description": """
Module for human resource management.
Module for Human Resource Management.
=====================================
You can manage:
+10
View File
@@ -212,6 +212,16 @@ class hr_employee(osv.osv):
'last_login': fields.related('user_id', 'date', type='datetime', string='Latest Connection', readonly=1),
}
def create(self, cr, uid, data, context=None):
employee_id = super(hr_employee, self).create(cr, uid, data, context=context)
try:
(model, mail_group_id) = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'mail', 'group_all_employees')
employee = self.browse(cr, uid, employee_id, context=context)
self.pool.get('mail.group').message_append_note(cr, uid, [mail_group_id], body='Welcome to %s! Please help him make its first steps in OpenERP!' % (employee.name), context=context)
except:
pass # group deleted: do not push a message
return employee_id
def unlink(self, cr, uid, ids, context=None):
resource_obj = self.pool.get('resource.resource')
resource_ids = []
+11 -10
View File
@@ -2,10 +2,11 @@
<openerp>
<data>
<menuitem id="menu_hr_root" icon="terp-hr" name="Human Resources" sequence="15"
web_icon="images/hr.png"
web_icon_hover="images/hr-hover.png"
groups="base.group_hr_manager,base.group_hr_user,base.group_user"/>
<!-- Top menu item -->
<menuitem name="Human Resources"
id="menu_hr_root"
groups="base.group_hr_manager,base.group_hr_user,base.group_user"
sequence="110"/>
<menuitem id="menu_hr_main" parent="menu_hr_root" name="Human Resources" sequence="0"/>
<menuitem id="menu_hr_configuration" name="Configuration" parent="hr.menu_hr_root" groups="base.group_hr_manager" sequence="50"/>
<menuitem id="menu_hr_management" name="Human Resources" parent="hr.menu_hr_configuration" sequence="25"/>
@@ -20,7 +21,7 @@
<field name="arch" type="xml">
<form string="Employee" version="7.0">
<sheet>
<field name="photo" widget='image' class="oe_right" on_change="onchange_photo(photo)"/>
<field name="photo" widget='image' class="oe_right" on_change="onchange_photo(photo)"/>
<div class="oe_title">
<label for="name" class="oe_edit_only"/>
<h1>
@@ -213,7 +214,7 @@
<field name="view_mode">form</field>
<field name="view_id" ref="view_employee_form"/>
<field name="act_window_id" ref="open_view_employee_list_my"/>
</record>
</record>
<menuitem action="open_view_employee_list_my" id="menu_open_view_employee_list_my" sequence="3" parent="menu_hr_main"/>
@@ -418,8 +419,8 @@
<search string="Jobs">
<field name="name" string="Job"/>
<separator orientation="vertical"/>
<filter icon="terp-camera_test"
domain="[('state','=','open')]"
<filter icon="terp-camera_test"
domain="[('state','=','open')]"
string="In Position"
help="In Position"/>
<filter icon="terp-personal+" domain="[('state','=','recruit')]" string="In Recruitment"
@@ -435,7 +436,7 @@
</search>
</field>
</record>
<record id="view_hr_job_employee_form" model="ir.ui.view">
<field name="name">hr.job.employee.form</field>
<field name="model">hr.job</field>
@@ -452,7 +453,7 @@
</form>
</field>
</record>
<record model="ir.actions.act_window" id="action_hr_job">
<field name="name">Job Positions</field>
<field name="res_model">hr.job</field>
+4 -3
View File
@@ -28,9 +28,10 @@
Add all information on the employee form to manage contracts.
=============================================================
* Marital status,
* Security number,
* Place of birth, birth date, ...
* Contract
* Place of Birth,
* Medical Examination Date
* Company Vehicle
You can assign several contracts per employee.
""",

Some files were not shown because too many files have changed in this diff Show More